From 1c08a01c7dd3e7ee286c749577a6d87fd0164ec1 Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Tue, 4 Feb 2020 13:38:18 -0600 Subject: [PATCH] =?UTF-8?q?Advanced=20settings=20component=20registry=20?= =?UTF-8?q?=E2=87=92=20kibana=20platform=20plugin=20(#55940)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * advanced settings component registry to new platform --- .i18nrc.json | 1 + .../advanced_settings.test.tsx.snap | 12 +- .../settings/advanced_settings.test.tsx | 18 + .../sections/settings/advanced_settings.tsx | 19 +- .../component_registry.test.tsx.snap | 5 - .../components/component_registry.test.tsx | 82 -- .../settings/components/component_registry.ts | 83 -- .../default_component_registry.test.tsx | 44 -- .../public/views/management/management.js | 9 +- src/legacy/ui/public/management/index.d.ts | 8 - src/legacy/ui/public/management/index.js | 6 - .../public/new_platform/__mocks__/helpers.ts | 3 + .../new_platform/new_platform.karma_mock.js | 7 + .../ui/public/new_platform/new_platform.ts | 6 + src/plugins/advanced_settings/kibana.json | 7 + .../component_registry.test.tsx.snap | 3 + .../component_registry.test.tsx | 90 +++ .../component_registry/component_registry.ts | 91 +++ .../public/component_registry/index.ts | 20 + .../__snapshots__/page_footer.test.tsx.snap | 0 .../component_registry}/page_footer/index.ts | 0 .../page_footer/page_footer.test.tsx | 0 .../page_footer/page_footer.ts | 0 .../__snapshots__/page_subtitle.test.tsx.snap | 0 .../page_subtitle/index.ts | 0 .../page_subtitle/page_subtitle.test.tsx | 0 .../page_subtitle/page_subtitle.ts | 0 .../__snapshots__/page_title.test.tsx.snap | 2 +- .../component_registry}/page_title/index.ts | 0 .../page_title/page_title.test.tsx | 0 .../page_title/page_title.tsx | 2 +- src/plugins/advanced_settings/public/index.ts | 27 + src/plugins/advanced_settings/public/mocks.ts | 33 + .../advanced_settings/public/plugin.ts} | 28 +- src/plugins/advanced_settings/public/types.ts | 27 + .../advanced_settings_service.test.tsx | 21 +- .../advanced_settings_service.tsx | 22 +- x-pack/legacy/plugins/spaces/public/legacy.ts | 5 +- .../legacy/plugins/spaces/public/plugin.tsx | 11 +- .../translations/translations/ja-JP.json | 716 ++++++++++++++++++ .../translations/translations/zh-CN.json | 716 ++++++++++++++++++ 41 files changed, 1829 insertions(+), 295 deletions(-) delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/settings/components/__snapshots__/component_registry.test.tsx.snap delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.test.tsx delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.ts delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.test.tsx create mode 100644 src/plugins/advanced_settings/kibana.json create mode 100644 src/plugins/advanced_settings/public/component_registry/__snapshots__/component_registry.test.tsx.snap create mode 100644 src/plugins/advanced_settings/public/component_registry/component_registry.test.tsx create mode 100644 src/plugins/advanced_settings/public/component_registry/component_registry.ts create mode 100644 src/plugins/advanced_settings/public/component_registry/index.ts rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_footer/__snapshots__/page_footer.test.tsx.snap (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_footer/index.ts (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_footer/page_footer.test.tsx (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_footer/page_footer.ts (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_subtitle/__snapshots__/page_subtitle.test.tsx.snap (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_subtitle/index.ts (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_subtitle/page_subtitle.test.tsx (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_subtitle/page_subtitle.ts (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_title/__snapshots__/page_title.test.tsx.snap (85%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_title/index.ts (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_title/page_title.test.tsx (100%) rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components => plugins/advanced_settings/public/component_registry}/page_title/page_title.tsx (91%) create mode 100644 src/plugins/advanced_settings/public/index.ts create mode 100644 src/plugins/advanced_settings/public/mocks.ts rename src/{legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.ts => plugins/advanced_settings/public/plugin.ts} (54%) create mode 100644 src/plugins/advanced_settings/public/types.ts diff --git a/.i18nrc.json b/.i18nrc.json index 7d7685b5c1ef1..e0acda70cc348 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -26,6 +26,7 @@ "src/legacy/core_plugins/management", "src/plugins/management" ], + "advancedSettings": "src/plugins/advanced_settings", "kibana_react": "src/legacy/core_plugins/kibana_react", "kibana-react": "src/plugins/kibana_react", "kibana_utils": "src/plugins/kibana_utils", diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/__snapshots__/advanced_settings.test.tsx.snap b/src/legacy/core_plugins/kibana/public/management/sections/settings/__snapshots__/advanced_settings.test.tsx.snap index 4814432c832e2..e76435fdb73b2 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/__snapshots__/advanced_settings.test.tsx.snap +++ b/src/legacy/core_plugins/kibana/public/management/sections/settings/__snapshots__/advanced_settings.test.tsx.snap @@ -6,7 +6,7 @@ exports[`AdvancedSettings should render read-only when saving is disabled 1`] = gutterSize="none" > - + - + @@ -139,7 +139,7 @@ exports[`AdvancedSettings should render read-only when saving is disabled 1`] = } showNoResultsMessage={true} /> - - + - + @@ -322,7 +322,7 @@ exports[`AdvancedSettings should render specific setting if given setting key 1` } showNoResultsMessage={true} /> - ({ npStart: mockConfig(), @@ -215,6 +217,22 @@ function mockConfig() { core: { uiSettings: config, }, + plugins: { + advancedSettings: { + component: { + register: jest.fn(), + get: () => { + const foo: React.ComponentType = () =>
Hello
; + foo.displayName = 'foo_component'; + return foo; + }, + componentType: { + PAGE_TITLE_COMPONENT: 'page_title_component', + PAGE_SUBTITLE_COMPONENT: 'page_subtitle_component', + }, + }, + }, + }, }; } diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/advanced_settings.tsx b/src/legacy/core_plugins/kibana/public/management/sections/settings/advanced_settings.tsx index 569ef73f2b453..c995b391d3d2d 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/advanced_settings.tsx +++ b/src/legacy/core_plugins/kibana/public/management/sections/settings/advanced_settings.tsx @@ -31,14 +31,6 @@ import { getAriaName, toEditableConfig, DEFAULT_CATEGORY } from './lib'; import { FieldSetting, IQuery } from './types'; -import { - registerDefaultComponents, - PAGE_TITLE_COMPONENT, - PAGE_SUBTITLE_COMPONENT, - PAGE_FOOTER_COMPONENT, -} from './components/default_component_registry'; -import { getSettingsComponent } from './components/component_registry'; - interface AdvancedSettingsProps { queryText: string; enableSaving: boolean; @@ -75,8 +67,6 @@ export class AdvancedSettings extends Component diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/__snapshots__/component_registry.test.tsx.snap b/src/legacy/core_plugins/kibana/public/management/sections/settings/components/__snapshots__/component_registry.test.tsx.snap deleted file mode 100644 index 070b387057061..0000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/__snapshots__/component_registry.test.tsx.snap +++ /dev/null @@ -1,5 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`getSettingsComponent should throw an error when requesting a component that does not exist 1`] = `"Component not found with id does not exist"`; - -exports[`registerSettingsComponent should disallow registering a component with a duplicate id 1`] = `"Component with id test2 is already registered."`; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.test.tsx b/src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.test.tsx deleted file mode 100644 index 24e9e5dd3809c..0000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.test.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import React, { FunctionComponent } from 'react'; -import { - tryRegisterSettingsComponent, - registerSettingsComponent, - getSettingsComponent, -} from './component_registry'; - -describe('tryRegisterSettingsComponent', () => { - it('should allow a component to be registered', () => { - const component = () =>
; - expect(tryRegisterSettingsComponent('tryTest1', component)).toEqual(true); - }); - - it('should return false if the component is already registered, and not allow an override', () => { - const component = () =>
; - expect(tryRegisterSettingsComponent('tryTest2', component)).toEqual(true); - - const updatedComponent = () =>
; - expect(tryRegisterSettingsComponent('tryTest2', updatedComponent)).toEqual(false); - expect(getSettingsComponent('tryTest2')).toBe(component); - }); -}); - -describe('registerSettingsComponent', () => { - it('should allow a component to be registered', () => { - const component = () =>
; - registerSettingsComponent('test', component); - }); - - it('should disallow registering a component with a duplicate id', () => { - const component = () =>
; - registerSettingsComponent('test2', component); - expect(() => registerSettingsComponent('test2', () => )).toThrowErrorMatchingSnapshot(); - }); - - it('should allow a component to be overriden', () => { - const component = () =>
; - registerSettingsComponent('test3', component); - - const anotherComponent = () => ; - registerSettingsComponent('test3', anotherComponent, true); - - expect(getSettingsComponent('test3')).toBe(anotherComponent); - }); - - it('should set a displayName for the component', () => { - const component = () =>
; - registerSettingsComponent('display_name_component', component); - expect((component as FunctionComponent).displayName).toEqual('display_name_component'); - }); -}); - -describe('getSettingsComponent', () => { - it('should allow a component to be retrieved', () => { - const component = () =>
; - registerSettingsComponent('test4', component); - expect(getSettingsComponent('test4')).toBe(component); - }); - - it('should throw an error when requesting a component that does not exist', () => { - expect(() => getSettingsComponent('does not exist')).toThrowErrorMatchingSnapshot(); - }); -}); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.ts b/src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.ts deleted file mode 100644 index b58180c498edf..0000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/component_registry.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { ComponentType } from 'react'; - -type Id = string; -const registry: Record | undefined>> = {}; - -/** - * Attempts to register the provided component. - * If a component with that ID is already registered, then the registration fails. - * - * @param {*} id the id of the component to register - * @param {*} component the component - */ -export function tryRegisterSettingsComponent( - id: Id, - component: ComponentType | undefined> -) { - if (id in registry) { - return false; - } - - registerSettingsComponent(id, component); - return true; -} - -/** - * Attempts to register the provided component, with the ability to optionally allow - * the component to override an existing one. - * - * If the intent is to override, then `allowOverride` must be set to true, otherwise an exception is thrown. - * - * @param {*} id the id of the component to register - * @param {*} component the component - * @param {*} allowOverride (default: false) - optional flag to allow this component to override a previously registered component - */ -export function registerSettingsComponent( - id: Id, - component: ComponentType | undefined>, - allowOverride = false -) { - if (!allowOverride && id in registry) { - throw new Error(`Component with id ${id} is already registered.`); - } - - // Setting a display name if one does not already exist. - // This enhances the snapshots, as well as the debugging experience. - if (!component.displayName) { - component.displayName = id; - } - - registry[id] = component; -} - -/** - * Retrieve a registered component by its ID. - * If the component does not exist, then an exception is thrown. - * - * @param {*} id the ID of the component to retrieve - */ -export function getSettingsComponent(id: Id): ComponentType | undefined> { - if (!(id in registry)) { - throw new Error(`Component not found with id ${id}`); - } - return registry[id]; -} diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.test.tsx b/src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.test.tsx deleted file mode 100644 index ff3f75b79baef..0000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.test.tsx +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import React from 'react'; -import { registerDefaultComponents, PAGE_TITLE_COMPONENT } from './default_component_registry'; -import { getSettingsComponent, registerSettingsComponent } from './component_registry'; -import { PageTitle } from './page_title'; - -describe('default_component_registry', () => { - it('should register default components with the registry', () => { - registerDefaultComponents(); - expect(getSettingsComponent(PAGE_TITLE_COMPONENT)).toEqual(PageTitle); - }); - - it('should be able to call "registerDefaultComponents" several times without throwing', () => { - registerDefaultComponents(); - registerDefaultComponents(); - registerDefaultComponents(); - }); - - it('should not override components if they are already registered', () => { - const newComponent = () =>
; - registerSettingsComponent(PAGE_TITLE_COMPONENT, newComponent, true); - registerDefaultComponents(); - - expect(getSettingsComponent(PAGE_TITLE_COMPONENT)).toEqual(newComponent); - }); -}); diff --git a/src/legacy/core_plugins/telemetry/public/views/management/management.js b/src/legacy/core_plugins/telemetry/public/views/management/management.js index 796caf1c8cfe6..7032775e391bb 100644 --- a/src/legacy/core_plugins/telemetry/public/views/management/management.js +++ b/src/legacy/core_plugins/telemetry/public/views/management/management.js @@ -19,7 +19,7 @@ import React from 'react'; import routes from 'ui/routes'; -import { registerSettingsComponent, PAGE_FOOTER_COMPONENT } from 'ui/management'; +import { npSetup } from 'ui/new_platform'; import { TelemetryOptInProvider } from '../../services'; import { TelemetryForm } from '../../components'; @@ -27,6 +27,7 @@ routes.defaults(/\/management/, { resolve: { telemetryManagementSection: function(Private) { const telemetryOptInProvider = Private(TelemetryOptInProvider); + const componentRegistry = npSetup.plugins.advancedSettings.component; const Component = props => ( ); - registerSettingsComponent(PAGE_FOOTER_COMPONENT, Component, true); + componentRegistry.register( + componentRegistry.componentType.PAGE_FOOTER_COMPONENT, + Component, + true + ); }, }, }); diff --git a/src/legacy/ui/public/management/index.d.ts b/src/legacy/ui/public/management/index.d.ts index 7880e1d5d0295..529efd36623a3 100644 --- a/src/legacy/ui/public/management/index.d.ts +++ b/src/legacy/ui/public/management/index.d.ts @@ -18,15 +18,7 @@ */ declare module 'ui/management' { - export const PAGE_TITLE_COMPONENT: string; - export const PAGE_SUBTITLE_COMPONENT: string; - export const PAGE_FOOTER_COMPONENT: string; export const SidebarNav: React.FC; - export function registerSettingsComponent( - id: string, - component: string | React.FC, - allowOverride: boolean - ): void; export const management: any; // TODO - properly provide types export const MANAGEMENT_BREADCRUMB: { text: string; diff --git a/src/legacy/ui/public/management/index.js b/src/legacy/ui/public/management/index.js index b2f1946dbc59c..25d3678c5dbba 100644 --- a/src/legacy/ui/public/management/index.js +++ b/src/legacy/ui/public/management/index.js @@ -17,12 +17,6 @@ * under the License. */ -export { - PAGE_TITLE_COMPONENT, - PAGE_SUBTITLE_COMPONENT, - PAGE_FOOTER_COMPONENT, -} from '../../../core_plugins/kibana/public/management/sections/settings/components/default_component_registry'; -export { registerSettingsComponent } from '../../../core_plugins/kibana/public/management/sections/settings/components/component_registry'; export { MANAGEMENT_BREADCRUMB } from './breadcrumbs'; import { npStart } from 'ui/new_platform'; export const management = npStart.plugins.management.legacy; diff --git a/src/legacy/ui/public/new_platform/__mocks__/helpers.ts b/src/legacy/ui/public/new_platform/__mocks__/helpers.ts index 439ac9b5713df..cf24b0e9675fa 100644 --- a/src/legacy/ui/public/new_platform/__mocks__/helpers.ts +++ b/src/legacy/ui/public/new_platform/__mocks__/helpers.ts @@ -29,6 +29,7 @@ import { managementPluginMock } from '../../../../../plugins/management/public/m import { usageCollectionPluginMock } from '../../../../../plugins/usage_collection/public/mocks'; import { kibanaLegacyPluginMock } from '../../../../../plugins/kibana_legacy/public/mocks'; import { chartPluginMock } from '../../../../../plugins/charts/public/mocks'; +import { advancedSettingsMock } from '../../../../../plugins/advanced_settings/public/mocks'; /* eslint-enable @kbn/eslint/no-restricted-paths */ export const pluginsMock = { @@ -41,6 +42,7 @@ export const pluginsMock = { expressions: expressionsPluginMock.createSetupContract(), uiActions: uiActionsPluginMock.createSetupContract(), usageCollection: usageCollectionPluginMock.createSetupContract(), + advancedSettings: advancedSettingsMock.createSetupContract(), kibana_legacy: kibanaLegacyPluginMock.createSetupContract(), }), createStart: () => ({ @@ -52,6 +54,7 @@ export const pluginsMock = { expressions: expressionsPluginMock.createStartContract(), uiActions: uiActionsPluginMock.createStartContract(), management: managementPluginMock.createStartContract(), + advancedSettings: advancedSettingsMock.createStartContract(), kibana_legacy: kibanaLegacyPluginMock.createStartContract(), }), }; diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index c2c8b5a0fae7a..7f4f67ebb06d3 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -20,6 +20,7 @@ import sinon from 'sinon'; import { getFieldFormatsRegistry } from '../../../../test_utils/public/stub_field_formats'; import { METRIC_TYPE } from '@kbn/analytics'; +import { ComponentRegistry } from '../../../../../src/plugins/advanced_settings/public/'; const mockObservable = () => { return { @@ -58,6 +59,12 @@ const mockCore = { export const npSetup = { core: mockCore, plugins: { + advancedSettings: { + component: { + register: sinon.fake(), + componentType: ComponentRegistry.componentType, + }, + }, usageCollection: { allowTrackUserAgent: sinon.fake(), reportUiStats: sinon.fake(), diff --git a/src/legacy/ui/public/new_platform/new_platform.ts b/src/legacy/ui/public/new_platform/new_platform.ts index 2ade98ec54efd..62abe2eb9b5ba 100644 --- a/src/legacy/ui/public/new_platform/new_platform.ts +++ b/src/legacy/ui/public/new_platform/new_platform.ts @@ -32,6 +32,10 @@ import { DevToolsSetup, DevToolsStart } from '../../../../plugins/dev_tools/publ import { KibanaLegacySetup, KibanaLegacyStart } from '../../../../plugins/kibana_legacy/public'; import { HomePublicPluginSetup, HomePublicPluginStart } from '../../../../plugins/home/public'; import { SharePluginSetup, SharePluginStart } from '../../../../plugins/share/public'; +import { + AdvancedSettingsSetup, + AdvancedSettingsStart, +} from '../../../../plugins/advanced_settings/public'; import { ManagementSetup, ManagementStart } from '../../../../plugins/management/public'; import { BfetchPublicSetup, BfetchPublicStart } from '../../../../plugins/bfetch/public'; import { UsageCollectionSetup } from '../../../../plugins/usage_collection/public'; @@ -54,6 +58,7 @@ export interface PluginsSetup { kibana_legacy: KibanaLegacySetup; share: SharePluginSetup; usageCollection: UsageCollectionSetup; + advancedSettings: AdvancedSettingsSetup; management: ManagementSetup; } @@ -71,6 +76,7 @@ export interface PluginsStart { kibana_legacy: KibanaLegacyStart; share: SharePluginStart; management: ManagementStart; + advancedSettings: AdvancedSettingsStart; } export const npSetup = { diff --git a/src/plugins/advanced_settings/kibana.json b/src/plugins/advanced_settings/kibana.json new file mode 100644 index 0000000000000..5fc1e916ae45f --- /dev/null +++ b/src/plugins/advanced_settings/kibana.json @@ -0,0 +1,7 @@ +{ + "id": "advancedSettings", + "version": "kibana", + "server": false, + "ui": true, + "requiredPlugins": [] +} diff --git a/src/plugins/advanced_settings/public/component_registry/__snapshots__/component_registry.test.tsx.snap b/src/plugins/advanced_settings/public/component_registry/__snapshots__/component_registry.test.tsx.snap new file mode 100644 index 0000000000000..1d6cc882cb344 --- /dev/null +++ b/src/plugins/advanced_settings/public/component_registry/__snapshots__/component_registry.test.tsx.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ComponentRegistry register should disallow registering a component with a duplicate id 1`] = `"Component with id advanced_settings_page_title is already registered."`; diff --git a/src/plugins/advanced_settings/public/component_registry/component_registry.test.tsx b/src/plugins/advanced_settings/public/component_registry/component_registry.test.tsx new file mode 100644 index 0000000000000..3b722e9517fdb --- /dev/null +++ b/src/plugins/advanced_settings/public/component_registry/component_registry.test.tsx @@ -0,0 +1,90 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import React from 'react'; +import { ComponentRegistry } from './component_registry'; + +describe('ComponentRegistry', () => { + describe('register', () => { + it('should allow a component to be registered', () => { + const component = () =>
; + new ComponentRegistry().setup.register( + ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, + component + ); + }); + + it('should disallow registering a component with a duplicate id', () => { + const registry = new ComponentRegistry(); + const component = () =>
; + registry.setup.register(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, component); + expect(() => + registry.setup.register(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, () => ( + + )) + ).toThrowErrorMatchingSnapshot(); + }); + + it('should allow a component to be overriden', () => { + const registry = new ComponentRegistry(); + const component = () =>
; + registry.setup.register(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, component); + + const anotherComponent = () => ; + registry.setup.register( + ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, + anotherComponent, + true + ); + + expect(registry.start.get(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT)).toBe( + anotherComponent + ); + }); + }); + + describe('get', () => { + it('should allow a component to be retrieved', () => { + const registry = new ComponentRegistry(); + const component = () =>
; + registry.setup.register(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, component); + expect(registry.start.get(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT)).toBe( + component + ); + }); + }); + + it('should set a displayName for the component if one does not exist', () => { + const component: React.ComponentType = () =>
; + const registry = new ComponentRegistry(); + registry.setup.register(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, component); + + expect(component.displayName).toEqual(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT); + }); + + it('should not set a displayName for the component if one already exists', () => { + const component: React.ComponentType = () =>
; + component.displayName = ''; + const registry = new ComponentRegistry(); + + registry.setup.register(ComponentRegistry.componentType.PAGE_TITLE_COMPONENT, component); + + expect(component.displayName).toEqual(''); + }); +}); diff --git a/src/plugins/advanced_settings/public/component_registry/component_registry.ts b/src/plugins/advanced_settings/public/component_registry/component_registry.ts new file mode 100644 index 0000000000000..cc61798e84cb7 --- /dev/null +++ b/src/plugins/advanced_settings/public/component_registry/component_registry.ts @@ -0,0 +1,91 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { ComponentType } from 'react'; +import { PageTitle } from './page_title'; +import { PageSubtitle } from './page_subtitle'; +import { PageFooter } from './page_footer'; + +type Id = + | 'advanced_settings_page_title' + | 'advanced_settings_page_subtitle' + | 'advanced_settings_page_footer'; + +const componentType: { [key: string]: Id } = { + PAGE_TITLE_COMPONENT: 'advanced_settings_page_title' as Id, + PAGE_SUBTITLE_COMPONENT: 'advanced_settings_page_subtitle' as Id, + PAGE_FOOTER_COMPONENT: 'advanced_settings_page_footer' as Id, +}; + +type RegistryComponent = ComponentType | undefined>; + +export class ComponentRegistry { + static readonly componentType = componentType; + static readonly defaultRegistry: Record = { + advanced_settings_page_title: PageTitle, + advanced_settings_page_subtitle: PageSubtitle, + advanced_settings_page_footer: PageFooter, + }; + + registry: { [key in Id]?: RegistryComponent } = {}; + + /** + * Attempts to register the provided component, with the ability to optionally allow + * the component to override an existing one. + * + * If the intent is to override, then `allowOverride` must be set to true, otherwise an exception is thrown. + * + * @param {*} id the id of the component to register + * @param {*} component the component + * @param {*} allowOverride (default: false) - optional flag to allow this component to override a previously registered component + */ + private register(id: Id, component: RegistryComponent, allowOverride = false) { + if (!allowOverride && id in this.registry) { + throw new Error(`Component with id ${id} is already registered.`); + } + + // Setting a display name if one does not already exist. + // This enhances the snapshots, as well as the debugging experience. + if (!component.displayName) { + component.displayName = id; + } + + this.registry[id] = component; + } + + /** + * Retrieve a registered component by its ID. + * If the component does not exist, then an exception is thrown. + * + * @param {*} id the ID of the component to retrieve + */ + private get(id: Id): RegistryComponent { + return this.registry[id] || ComponentRegistry.defaultRegistry[id]; + } + + setup = { + componentType: ComponentRegistry.componentType, + register: this.register.bind(this), + }; + + start = { + componentType: ComponentRegistry.componentType, + get: this.get.bind(this), + }; +} diff --git a/src/plugins/advanced_settings/public/component_registry/index.ts b/src/plugins/advanced_settings/public/component_registry/index.ts new file mode 100644 index 0000000000000..79c9248e0c2a9 --- /dev/null +++ b/src/plugins/advanced_settings/public/component_registry/index.ts @@ -0,0 +1,20 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export { ComponentRegistry } from './component_registry'; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/__snapshots__/page_footer.test.tsx.snap b/src/plugins/advanced_settings/public/component_registry/page_footer/__snapshots__/page_footer.test.tsx.snap similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/__snapshots__/page_footer.test.tsx.snap rename to src/plugins/advanced_settings/public/component_registry/page_footer/__snapshots__/page_footer.test.tsx.snap diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/index.ts b/src/plugins/advanced_settings/public/component_registry/page_footer/index.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/index.ts rename to src/plugins/advanced_settings/public/component_registry/page_footer/index.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/page_footer.test.tsx b/src/plugins/advanced_settings/public/component_registry/page_footer/page_footer.test.tsx similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/page_footer.test.tsx rename to src/plugins/advanced_settings/public/component_registry/page_footer/page_footer.test.tsx diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/page_footer.ts b/src/plugins/advanced_settings/public/component_registry/page_footer/page_footer.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_footer/page_footer.ts rename to src/plugins/advanced_settings/public/component_registry/page_footer/page_footer.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/__snapshots__/page_subtitle.test.tsx.snap b/src/plugins/advanced_settings/public/component_registry/page_subtitle/__snapshots__/page_subtitle.test.tsx.snap similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/__snapshots__/page_subtitle.test.tsx.snap rename to src/plugins/advanced_settings/public/component_registry/page_subtitle/__snapshots__/page_subtitle.test.tsx.snap diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/index.ts b/src/plugins/advanced_settings/public/component_registry/page_subtitle/index.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/index.ts rename to src/plugins/advanced_settings/public/component_registry/page_subtitle/index.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/page_subtitle.test.tsx b/src/plugins/advanced_settings/public/component_registry/page_subtitle/page_subtitle.test.tsx similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/page_subtitle.test.tsx rename to src/plugins/advanced_settings/public/component_registry/page_subtitle/page_subtitle.test.tsx diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/page_subtitle.ts b/src/plugins/advanced_settings/public/component_registry/page_subtitle/page_subtitle.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_subtitle/page_subtitle.ts rename to src/plugins/advanced_settings/public/component_registry/page_subtitle/page_subtitle.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/__snapshots__/page_title.test.tsx.snap b/src/plugins/advanced_settings/public/component_registry/page_title/__snapshots__/page_title.test.tsx.snap similarity index 85% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/__snapshots__/page_title.test.tsx.snap rename to src/plugins/advanced_settings/public/component_registry/page_title/__snapshots__/page_title.test.tsx.snap index 8dd4e501067b5..10b799a986b84 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/__snapshots__/page_title.test.tsx.snap +++ b/src/plugins/advanced_settings/public/component_registry/page_title/__snapshots__/page_title.test.tsx.snap @@ -7,7 +7,7 @@ exports[`PageTitle should render normally 1`] = ` > diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/index.ts b/src/plugins/advanced_settings/public/component_registry/page_title/index.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/index.ts rename to src/plugins/advanced_settings/public/component_registry/page_title/index.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/page_title.test.tsx b/src/plugins/advanced_settings/public/component_registry/page_title/page_title.test.tsx similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/page_title.test.tsx rename to src/plugins/advanced_settings/public/component_registry/page_title/page_title.test.tsx diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/page_title.tsx b/src/plugins/advanced_settings/public/component_registry/page_title/page_title.tsx similarity index 91% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/page_title.tsx rename to src/plugins/advanced_settings/public/component_registry/page_title/page_title.tsx index cb807302c2380..18d9c60d331bb 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/page_title/page_title.tsx +++ b/src/plugins/advanced_settings/public/component_registry/page_title/page_title.tsx @@ -25,7 +25,7 @@ export const PageTitle = () => { return (

- +

); diff --git a/src/plugins/advanced_settings/public/index.ts b/src/plugins/advanced_settings/public/index.ts new file mode 100644 index 0000000000000..13be36e671f75 --- /dev/null +++ b/src/plugins/advanced_settings/public/index.ts @@ -0,0 +1,27 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { PluginInitializerContext } from 'kibana/public'; +import { AdvancedSettingsPlugin } from './plugin'; +export { AdvancedSettingsSetup, AdvancedSettingsStart } from './types'; +export { ComponentRegistry } from './component_registry'; + +export function plugin(initializerContext: PluginInitializerContext) { + return new AdvancedSettingsPlugin(); +} diff --git a/src/plugins/advanced_settings/public/mocks.ts b/src/plugins/advanced_settings/public/mocks.ts new file mode 100644 index 0000000000000..e147f57101aae --- /dev/null +++ b/src/plugins/advanced_settings/public/mocks.ts @@ -0,0 +1,33 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { ComponentRegistry } from './component_registry'; + +const register = jest.fn(); +const get = jest.fn(); +const componentType = ComponentRegistry.componentType; + +export const advancedSettingsMock = { + createSetupContract() { + return { register, componentType }; + }, + createStartContract() { + return { get, componentType }; + }, +}; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.ts b/src/plugins/advanced_settings/public/plugin.ts similarity index 54% rename from src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.ts rename to src/plugins/advanced_settings/public/plugin.ts index 80b2f2e79b9c7..692e515ca4e5e 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/settings/components/default_component_registry.ts +++ b/src/plugins/advanced_settings/public/plugin.ts @@ -17,17 +17,23 @@ * under the License. */ -import { tryRegisterSettingsComponent } from './component_registry'; -import { PageTitle } from './page_title'; -import { PageSubtitle } from './page_subtitle'; -import { PageFooter } from './page_footer'; +import { CoreSetup, CoreStart, Plugin } from 'kibana/public'; +import { ComponentRegistry } from './component_registry'; +import { AdvancedSettingsSetup, AdvancedSettingsStart } from './types'; -export const PAGE_TITLE_COMPONENT = 'advanced_settings_page_title'; -export const PAGE_SUBTITLE_COMPONENT = 'advanced_settings_page_subtitle'; -export const PAGE_FOOTER_COMPONENT = 'advanced_settings_page_footer'; +const component = new ComponentRegistry(); -export function registerDefaultComponents() { - tryRegisterSettingsComponent(PAGE_TITLE_COMPONENT, PageTitle); - tryRegisterSettingsComponent(PAGE_SUBTITLE_COMPONENT, PageSubtitle); - tryRegisterSettingsComponent(PAGE_FOOTER_COMPONENT, PageFooter); +export class AdvancedSettingsPlugin + implements Plugin { + public setup(core: CoreSetup) { + return { + component: component.setup, + }; + } + + public start(core: CoreStart) { + return { + component: component.start, + }; + } } diff --git a/src/plugins/advanced_settings/public/types.ts b/src/plugins/advanced_settings/public/types.ts new file mode 100644 index 0000000000000..a9b965c3c22de --- /dev/null +++ b/src/plugins/advanced_settings/public/types.ts @@ -0,0 +1,27 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { ComponentRegistry } from './component_registry'; + +export interface AdvancedSettingsSetup { + component: ComponentRegistry['setup']; +} +export interface AdvancedSettingsStart { + component: ComponentRegistry['start']; +} diff --git a/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.test.tsx b/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.test.tsx index aa3c6acf26236..3c6b2332bbbdc 100644 --- a/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.test.tsx +++ b/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.test.tsx @@ -5,33 +5,30 @@ */ import { AdvancedSettingsService } from './advanced_settings_service'; -jest.mock('ui/management', () => { - return { - PAGE_TITLE_COMPONENT: 'page_title_component', - PAGE_SUBTITLE_COMPONENT: 'page_subtitle_component', - }; -}); +import { advancedSettingsMock } from '../../../../../../src/plugins/advanced_settings/public/mocks'; + +const componentRegistryMock = advancedSettingsMock.createSetupContract(); describe('Advanced Settings Service', () => { describe('#setup', () => { it('registers space-aware components to augment the advanced settings screen', () => { const deps = { getActiveSpace: jest.fn().mockResolvedValue({ id: 'foo', name: 'foo-space' }), - registerSettingsComponent: jest.fn(), + componentRegistry: componentRegistryMock, }; const advancedSettingsService = new AdvancedSettingsService(); advancedSettingsService.setup(deps); - expect(deps.registerSettingsComponent).toHaveBeenCalledTimes(2); - expect(deps.registerSettingsComponent).toHaveBeenCalledWith( - 'page_title_component', + expect(deps.componentRegistry.register).toHaveBeenCalledTimes(2); + expect(deps.componentRegistry.register).toHaveBeenCalledWith( + componentRegistryMock.componentType.PAGE_TITLE_COMPONENT, expect.any(Function), true ); - expect(deps.registerSettingsComponent).toHaveBeenCalledWith( - 'page_subtitle_component', + expect(deps.componentRegistry.register).toHaveBeenCalledWith( + componentRegistryMock.componentType.PAGE_SUBTITLE_COMPONENT, expect.any(Function), true ); diff --git a/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.tsx b/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.tsx index 9c6c2fcc2cdda..a1552add18f2d 100644 --- a/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.tsx +++ b/x-pack/legacy/plugins/spaces/public/advanced_settings/advanced_settings_service.tsx @@ -4,25 +4,29 @@ * you may not use this file except in compliance with the Elastic License. */ import React from 'react'; -import { PAGE_TITLE_COMPONENT, PAGE_SUBTITLE_COMPONENT } from 'ui/management'; import { Space } from '../../common/model/space'; import { AdvancedSettingsTitle, AdvancedSettingsSubtitle } from './components'; +import { AdvancedSettingsSetup } from '../../../../../../src/plugins/advanced_settings/public'; interface SetupDeps { getActiveSpace: () => Promise; - registerSettingsComponent: ( - id: string, - component: string | React.FC, - allowOverride: boolean - ) => void; + componentRegistry: AdvancedSettingsSetup['component']; } export class AdvancedSettingsService { - public setup({ getActiveSpace, registerSettingsComponent }: SetupDeps) { + public setup({ getActiveSpace, componentRegistry }: SetupDeps) { const PageTitle = () => ; const SubTitle = () => ; - registerSettingsComponent(PAGE_TITLE_COMPONENT, PageTitle, true); - registerSettingsComponent(PAGE_SUBTITLE_COMPONENT, SubTitle, true); + componentRegistry.register( + componentRegistry.componentType.PAGE_TITLE_COMPONENT, + PageTitle, + true + ); + componentRegistry.register( + componentRegistry.componentType.PAGE_SUBTITLE_COMPONENT, + SubTitle, + true + ); } } diff --git a/x-pack/legacy/plugins/spaces/public/legacy.ts b/x-pack/legacy/plugins/spaces/public/legacy.ts index 1dffbd2661714..200cae5498595 100644 --- a/x-pack/legacy/plugins/spaces/public/legacy.ts +++ b/x-pack/legacy/plugins/spaces/public/legacy.ts @@ -4,7 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -import { registerSettingsComponent } from 'ui/management'; import { npSetup, npStart } from 'ui/new_platform'; import { setup as managementSetup } from '../../../../../src/legacy/core_plugins/management/public/legacy'; import { plugin } from '.'; @@ -16,9 +15,7 @@ const spacesPlugin: SpacesPlugin = plugin(); const pluginsSetup: PluginsSetup = { home: npSetup.plugins.home, management: managementSetup, - __managementLegacyCompat: { - registerSettingsComponent, - }, + advancedSettings: npSetup.plugins.advancedSettings, }; const pluginsStart: PluginsStart = { diff --git a/x-pack/legacy/plugins/spaces/public/plugin.tsx b/x-pack/legacy/plugins/spaces/public/plugin.tsx index 1ddb69a5b595c..e6271ac3a0a70 100644 --- a/x-pack/legacy/plugins/spaces/public/plugin.tsx +++ b/x-pack/legacy/plugins/spaces/public/plugin.tsx @@ -8,6 +8,7 @@ import { CoreSetup, CoreStart, Plugin } from 'src/core/public'; import { HomePublicPluginSetup } from 'src/plugins/home/public'; import { ManagementSetup } from 'src/legacy/core_plugins/management/public'; import { ManagementStart } from 'src/plugins/management/public'; +import { AdvancedSettingsSetup } from 'src/plugins/advanced_settings/public'; import { SpacesManager } from './spaces_manager'; import { initSpacesNavControl } from './nav_control'; import { createSpacesFeatureCatalogueEntry } from './create_feature_catalogue_entry'; @@ -22,13 +23,7 @@ export interface SpacesPluginStart { export interface PluginsSetup { home?: HomePublicPluginSetup; management: ManagementSetup; - __managementLegacyCompat: { - registerSettingsComponent: ( - id: string, - component: string | React.FC, - allowOverride: boolean - ) => void; - }; + advancedSettings: AdvancedSettingsSetup; } export interface PluginsStart { @@ -53,7 +48,7 @@ export class SpacesPlugin implements Plugin this.spacesManager.getActiveSpace(), - registerSettingsComponent: plugins.__managementLegacyCompat.registerSettingsComponent, + componentRegistry: plugins.advancedSettings.component, }); if (plugins.home) { diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a4af12b7af186..e1da338891309 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -974,6 +974,722 @@ "kbn.advancedSettings.visualization.tileMap.wmsDefaultsTitle": "デフォルトの WMS プロパティ", "kbn.advancedSettings.visualizeEnableLabsText": "ユーザーが実験的なビジュアライゼーションを作成、表示、編集できるようになります。無効の場合、\n ユーザーは本番準備が整ったビジュアライゼーションのみを利用できます。", "kbn.advancedSettings.visualizeEnableLabsTitle": "実験的なビジュアライゼーションを有効にする", + "kbn.context.breadcrumb": "{indexPatternTitle}#{docId} のコンテキスト", + "kbn.context.failedToLoadAnchorDocumentDescription": "別ののドキュメントの読み込みに失敗しました", + "kbn.context.failedToLoadAnchorDocumentErrorDescription": "別のドキュメントの読み込みに失敗しました。", + "kbn.context.loadButtonLabel": "読み込み", + "kbn.context.loadingDescription": "読み込み中…", + "kbn.context.newerDocumentsAriaLabel": "新しいドキュメントの数", + "kbn.context.newerDocumentsDescription": "新しいドキュメント", + "kbn.context.newerDocumentsWarning": "アンカーよりも新しいドキュメントは {docCount} 件しか見つかりませんでした。", + "kbn.context.newerDocumentsWarningZero": "アンカーよりも新しいドキュメントは見つかりませんでした。", + "kbn.context.noSearchableTiebreakerFieldDescription": "インデックスパターン {indexPatternId} で検索可能なタイブレーカーフィールドが見つかりませんでした。高度な設定 {tieBreakerFields} tを変更してこのインデックスパターンの有効なフィールドを含めてください。", + "kbn.context.olderDocumentsAriaLabel": "古いドキュメントの数", + "kbn.context.olderDocumentsDescription": "古いドキュメント", + "kbn.context.olderDocumentsWarning": "アンカーよりも古いドキュメントは {docCount} 件しか見つかりませんでした。", + "kbn.context.olderDocumentsWarningZero": "アンカーよりも古いドキュメントは見つかりませんでした。", + "kbn.context.reloadPageDescription.discoverLinkText": "ディスカバリ", + "kbn.context.reloadPageDescription.reloadOrVisitTextMessage": "再読み込みするか", + "kbn.context.reloadPageDescription.selectValidAnchorDocumentTextMessage": "にアクセスして有効な別のドキュメントを選択してください。", + "kbn.context.unableToLoadAnchorDocumentDescription": "別のドキュメントが読み込めません", + "kbn.context.unableToLoadDocumentDescription": "ドキュメントが読み込めません", + "kbn.dashboard.addVisualizationLinkAriaLabel": "ビジュアライゼーションを追加", + "kbn.dashboard.badge.readOnly.text": "読み込み専用", + "kbn.dashboard.badge.readOnly.tooltip": "ダッシュボードを保存できません", + "kbn.dashboard.changeViewModeConfirmModal.cancelButtonLabel": "編集を続行", + "kbn.dashboard.changeViewModeConfirmModal.confirmButtonLabel": "変更を破棄", + "kbn.dashboard.changeViewModeConfirmModal.discardChangesDescription": "変更を破棄すると、元に戻すことはできません。", + "kbn.dashboard.changeViewModeConfirmModal.discardChangesTitle": "ダッシュボードへの変更を破棄しますか?", + "kbn.dashboard.dashboardAppBreadcrumbsTitle": "ダッシュボード", + "kbn.dashboard.dashboardBreadcrumbsTitle": "ダッシュボード", + "kbn.dashboard.dashboardWasNotSavedDangerMessage": "ダッシュボード「{dashTitle}」は保存されませんでした。エラー: {errorMessage}", + "kbn.dashboard.dashboardWasSavedSuccessMessage": "ダッシュボード「{dashTitle}」が保存されました。", + "kbn.dashboard.featureCatalogue.dashboardDescription": "ビジュアライゼーションと保存された検索のコレクションの表示と共有を行います。", + "kbn.dashboard.featureCatalogue.dashboardTitle": "ダッシュボード", + "kbn.dashboard.fillDashboardTitle": "このダッシュボードは空です。コンテンツを追加しましょう!", + "kbn.dashboard.howToStartWorkingOnNewDashboardDescription1": "上のメニューバーの ", + "kbn.dashboard.howToStartWorkingOnNewDashboardDescription2": " ダッシュボードの作成を始めましょう。", + "kbn.dashboard.howToStartWorkingOnNewDashboardEditLinkText": "編集", + "kbn.dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription": "あらゆる Kibana アプリからダッシュボードでデータビューを組み合わせて、すべてを 1 か所に表示できます。", + "kbn.dashboard.listing.createNewDashboard.createButtonLabel": "新規ダッシュボードを作成", + "kbn.dashboard.listing.createNewDashboard.newToKibanaDescription": "Kibana は初心者ですか?{sampleDataInstallLink} してお試しください。", + "kbn.dashboard.listing.createNewDashboard.sampleDataInstallLinkText": "サンプルデータをインストール", + "kbn.dashboard.listing.createNewDashboard.title": "初めてのダッシュボードを作成してみましょう。", + "kbn.dashboard.listing.dashboardsTitle": "ダッシュボード", + "kbn.dashboard.listing.noItemsMessage": "ダッシュボードがないようです。", + "kbn.dashboard.listing.table.descriptionColumnName": "説明", + "kbn.dashboard.listing.table.entityName": "ダッシュボード", + "kbn.dashboard.listing.table.entityNamePlural": "ダッシュボード", + "kbn.dashboard.listing.table.titleColumnName": "タイトル", + "kbn.dashboard.panel.invalidData": "URLの無効なデータ", + "kbn.dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "「6.1.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルには想定された列または行フィールドがありません", + "kbn.dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "「6.3.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルに必要なフィールドがありません: {key}", + "kbn.dashboard.savedDashboard.newDashboardTitle": "新規ダッシュボード", + "kbn.dashboard.savedDashboardsTitle": "ダッシュボード", + "kbn.dashboard.stateManager.timeNotSavedWithDashboardErrorMessage": "このダッシュボードに時刻が保存されていないため、同期できません。", + "kbn.dashboard.strings.dashboardEditTitle": "{title} を編集中", + "kbn.dashboard.strings.dashboardUnsavedEditTitle": "{title} を編集中 (未保存)", + "kbn.dashboard.topNav.cloneModal.cancelButtonLabel": "キャンセル", + "kbn.dashboard.topNav.cloneModal.cloneDashboardModalHeaderTitle": "ダッシュボードのクローンを作成", + "kbn.dashboard.topNav.cloneModal.confirmButtonLabel": "クローンの確認", + "kbn.dashboard.topNav.cloneModal.confirmCloneDescription": "クローンの確認", + "kbn.dashboard.topNav.cloneModal.dashboardExistsDescription": "{confirmClone} をクリックして重複タイトルでダッシュボードのクローンを作成します。", + "kbn.dashboard.topNav.cloneModal.dashboardExistsTitle": "「{newDashboardName}」というタイトルのダッシュボードが既に存在します。", + "kbn.dashboard.topNav.cloneModal.enterNewNameForDashboardDescription": "ダッシュボードの新しい名前を入力してください。", + "kbn.dashboard.topNav.options.hideAllPanelTitlesSwitchLabel": "パネルタイトルを表示", + "kbn.dashboard.topNav.options.useMarginsBetweenPanelsSwitchLabel": "パネルの間に余白を使用", + "kbn.dashboard.topNav.saveModal.descriptionFormRowLabel": "説明", + "kbn.dashboard.topNav.saveModal.storeTimeWithDashboardFormRowHelpText": "有効化すると、ダッシュボードが読み込まれるごとに現在選択された時刻の時間フィルターが変更されます。", + "kbn.dashboard.topNav.saveModal.storeTimeWithDashboardFormRowLabel": "ダッシュボードに時刻を保存", + "kbn.dashboard.topNav.showCloneModal.dashboardCopyTitle": "{title} のコピー", + "kbn.dashboard.topNave.addButtonAriaLabel": "追加", + "kbn.dashboard.topNave.addConfigDescription": "ダッシュボードにパネルを追加します", + "kbn.dashboard.topNave.cancelButtonAriaLabel": "キャンセル", + "kbn.dashboard.topNave.cloneButtonAriaLabel": "クローンを作成", + "kbn.dashboard.topNave.cloneConfigDescription": "ダッシュボードのコピーを作成します", + "kbn.dashboard.topNave.editButtonAriaLabel": "編集", + "kbn.dashboard.topNave.editConfigDescription": "編集モードに切り替えます", + "kbn.dashboard.topNave.fullScreenButtonAriaLabel": "全画面", + "kbn.dashboard.topNave.fullScreenConfigDescription": "全画面モード", + "kbn.dashboard.topNave.optionsButtonAriaLabel": "オプション", + "kbn.dashboard.topNave.optionsConfigDescription": "オプション", + "kbn.dashboard.topNave.saveButtonAriaLabel": "保存", + "kbn.dashboard.topNave.saveConfigDescription": "ダッシュボードを保存します", + "kbn.dashboard.topNave.shareButtonAriaLabel": "共有", + "kbn.dashboard.topNave.shareConfigDescription": "ダッシュボードを共有します", + "kbn.dashboard.topNave.viewConfigDescription": "編集をキャンセルして表示限定モードに切り替えます", + "kbn.dashboard.urlWasRemovedInSixZeroWarningMessage": "URL「dashboard/create」は 6.0 で廃止されました。ブックマークを更新してください。", + "kbn.dashboard.visitVisualizeAppLinkText": "可視化アプリにアクセス", + "kbn.dashboardTitle": "ダッシュボード", + "kbn.devToolsTitle": "開発ツール", + "kbn.discover.backToTopLinkText": "最上部へ戻る。", + "kbn.discover.badge.readOnly.text": "読み込み専用", + "kbn.discover.badge.readOnly.tooltip": "検索を保存できません", + "kbn.discover.bucketIntervalTooltip": "この間隔は選択された時間範囲に表示される {bucketsDescription} が作成されるため、{bucketIntervalDescription} にスケーリングされています。", + "kbn.discover.bucketIntervalTooltip.tooLargeBucketsText": "大きすぎるバケット", + "kbn.discover.bucketIntervalTooltip.tooManyBucketsText": "バケットが多すぎます", + "kbn.discover.discoverBreadcrumbTitle": "ディスカバリ", + "kbn.discover.discoverDescription": "ドキュメントにクエリをかけたりフィルターを適用することで、データをインタラクティブに閲覧できます。", + "kbn.discover.discoverTitle": "ディスカバー", + "kbn.discover.documentsAriaLabel": "ドキュメント", + "kbn.discover.errorLoadingData": "データの読み込み中にエラーが発生", + "kbn.discover.fetchError.howToAddressErrorDescription": "このエラーは、{scriptedFields} タブにある {managementLink} の {fetchErrorScript} フィールドを編集することで解決できます。", + "kbn.discover.fetchError.managmentLinkText": "管理 > インデックスパターン", + "kbn.discover.fetchError.scriptedFieldsText": "「スクリプトフィールド」", + "kbn.discover.fieldChooser.detailViews.emptyStringText": "空の文字列", + "kbn.discover.fieldChooser.detailViews.filterOutValueButtonAriaLabel": "この値を除外", + "kbn.discover.fieldChooser.detailViews.filterValueButtonAriaLabel": "この値でフィルターを適用", + "kbn.discover.fieldChooser.detailViews.recordsText": "記録", + "kbn.discover.fieldChooser.detailViews.topValuesInRecordsDescription": "次の記録のトップ 5 の値", + "kbn.discover.fieldChooser.detailViews.visualizeLinkText": "可視化", + "kbn.discover.fieldChooser.detailViews.warningsText": "{warningsLength, plural, one {# 警告} other {# 警告}}", + "kbn.discover.fieldChooser.discoverField.addButtonLabel": "追加", + "kbn.discover.fieldChooser.discoverField.bucketAriaLabel": "値: {value}", + "kbn.discover.fieldChooser.discoverField.emptyStringText": "空の文字列", + "kbn.discover.fieldChooser.discoverField.removeButtonLabel": "削除", + "kbn.discover.fieldChooser.discoverField.scriptedFieldsTakeLongExecuteDescription": "スクリプトフィールドは実行に時間がかかる場合があります。", + "kbn.discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForGeoFieldsErrorMessage": "ジオフィールドは分析できません。", + "kbn.discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForObjectFieldsErrorMessage": "オブジェクトフィールドは分析できません。", + "kbn.discover.fieldChooser.fieldCalculator.fieldIsNotPresentInDocumentsErrorMessage": "このフィールドは Elasticsearch マッピングに表示されますが、ドキュメントテーブルの {hitsLength} 件のドキュメントには含まれません。可視化や検索は可能な場合があります。", + "kbn.discover.fieldChooser.fieldFilterFacetButtonLabel": "フィルタリングされたフィールド", + "kbn.discover.fieldChooser.filter.aggregatableLabel": "集約可能", + "kbn.discover.fieldChooser.filter.availableFieldsTitle": "利用可能なフィールド", + "kbn.discover.fieldChooser.filter.hideMissingFieldsLabel": "未入力のフィールドを非表示", + "kbn.discover.fieldChooser.filter.indexAndFieldsSectionAriaLabel": "インデックスとフィールド", + "kbn.discover.fieldChooser.filter.popularTitle": "人気", + "kbn.discover.fieldChooser.filter.searchableLabel": "検索可能", + "kbn.discover.fieldChooser.filter.selectedFieldsTitle": "スクリプトフィールド", + "kbn.discover.fieldChooser.filter.typeLabel": "タイプ", + "kbn.discover.fieldChooser.searchPlaceHolder": "検索フィールド", + "kbn.discover.fieldChooser.toggleFieldFilterButtonHideAriaLabel": "フィールド設定を非表示", + "kbn.discover.fieldChooser.toggleFieldFilterButtonShowAriaLabel": "フィールド設定を表示", + "kbn.discover.fieldNameIcons.booleanAriaLabel": "ブールフィールド", + "kbn.discover.fieldNameIcons.conflictFieldAriaLabel": "矛盾フィールド", + "kbn.discover.fieldNameIcons.dateFieldAriaLabel": "日付フィールド", + "kbn.discover.fieldNameIcons.geoPointFieldAriaLabel": "地理ポイント", + "kbn.discover.fieldNameIcons.geoShapeFieldAriaLabel": "地理情報図形", + "kbn.discover.fieldNameIcons.ipAddressFieldAriaLabel": "IP アドレスフィールド", + "kbn.discover.fieldNameIcons.murmur3FieldAriaLabel": "Murmur3 フィールド", + "kbn.discover.fieldNameIcons.numberFieldAriaLabel": "数値フィールド", + "kbn.discover.fieldNameIcons.sourceFieldAriaLabel": "ソースフィールド", + "kbn.discover.fieldNameIcons.stringFieldAriaLabel": "文字列フィールド", + "kbn.discover.fieldNameIcons.unknownFieldAriaLabel": "不明なフィールド", + "kbn.discover.histogram.partialData.bucketTooltipText": "選択された時間範囲にはこのバケット全体は含まれていませんが、一部データが含まれている可能性があります。", + "kbn.discover.histogramOfFoundDocumentsAriaLabel": "発見されたドキュメントのヒストグラム", + "kbn.discover.hitsPluralTitle": "{hits, plural, one {ヒット} other {ヒット}}", + "kbn.discover.howToChangeTheTimeTooltip": "時刻を変更するには、ナビゲーションバーのカレンダーアイコンをクリックします", + "kbn.discover.howToSeeOtherMatchingDocumentsDescription": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", + "kbn.discover.inspectorRequestDataTitle": "データ", + "kbn.discover.inspectorRequestDescription": "このリクエストは Elasticsearch にクエリをかけ、検索データを取得します。", + "kbn.discover.localMenu.inspectTitle": "検査", + "kbn.discover.localMenu.localMenu.newSearchTitle": "新規", + "kbn.discover.localMenu.newSearchDescription": "新規検索", + "kbn.discover.localMenu.openInspectorForSearchDescription": "検索用にインスペクターを開きます", + "kbn.discover.localMenu.openSavedSearchDescription": "保存された検索を開きます", + "kbn.discover.localMenu.openTitle": "開く", + "kbn.discover.localMenu.saveSaveSearchDescription": "ビジュアライゼーションとダッシュボードで使用できるようにディスカバリの検索を保存します", + "kbn.discover.localMenu.saveSearchDescription": "検索を保存します", + "kbn.discover.localMenu.saveTitle": "保存", + "kbn.discover.localMenu.shareSearchDescription": "検索を共有します", + "kbn.discover.localMenu.shareTitle": "共有", + "kbn.discover.noResults.addressShardFailuresTitle": "シャードエラーの解決", + "kbn.discover.noResults.expandYourTimeRangeTitle": "時間範囲を拡大", + "kbn.discover.noResults.indexFailureIndexText": "インデックス {failureIndex}", + "kbn.discover.noResults.indexFailureShardText": "{index}、シャード {failureShard}", + "kbn.discover.noResults.queryMayNotMatchTitle": "表示されているインデックスの 1 つまたは複数にデータフィールドが含まれています。クエリが現在の時間範囲のデータと一致しないか、現在選択された時間範囲にデータが全く存在しない可能性があります。データが存在する時間範囲に変えることができます。", + "kbn.discover.noResults.requiredPluginIsNotInstalledOrDisabledTitle": "{unsupportedType} インデックスに基づくインデックスパターンには X-Pack の {unsupportedType} プラグインが必要で、このプラグインは現在インストールされていないか無効になっています。", + "kbn.discover.noResults.searchExamples.400to499StatusCodeExampleTitle": "400-499 のすべてのステータスコードを検索", + "kbn.discover.noResults.searchExamples.400to499StatusCodeWithPhpExtensionExampleTitle": "400-499 の php 拡張子のステータスコードを検索", + "kbn.discover.noResults.searchExamples.400to499StatusCodeWithPhpOrHtmlExtensionExampleTitle": "400-499 の php または html 拡張子のステータスコードを検索", + "kbn.discover.noResults.searchExamples.anyField200StatusCodeExampleTitle": "いずれかのフィールドに数字 200 が含まれているリクエストを検索", + "kbn.discover.noResults.searchExamples.howTosearchForWebServerLogsDescription": "画面上部の検索バーは、Elasticsearch の Lucene {queryStringSyntaxLink} サポートを利用します。新規フィールドにパースされたウェブサーバーログの検索方法の例は、次の通りです。", + "kbn.discover.noResults.searchExamples.noResultsMatchSearchCriteriaTitle": "検索条件と一致する結果がありません。", + "kbn.discover.noResults.searchExamples.queryStringSyntaxLinkText": "クエリ文字列の構文", + "kbn.discover.noResults.searchExamples.refineYourQueryTitle": "クエリの調整", + "kbn.discover.noResults.searchExamples.statusField200StatusCodeExampleTitle": "ステータスフィールドの 200 を検索", + "kbn.discover.noResults.shardFailuresDescription": "次のシャードエラーが発生しました:", + "kbn.discover.notifications.notSavedSearchTitle": "検索「{savedSearchTitle}」は保存されませんでした。", + "kbn.discover.notifications.savedSearchTitle": "検索「{savedSearchTitle}」が保存されました。", + "kbn.discover.painlessError.painlessScriptedFieldErrorMessage": "Painless スクリプトのフィールド「{script}」のエラー.", + "kbn.discover.reloadSavedSearchButton": "検索をリセット", + "kbn.discover.rootBreadcrumb": "ディスカバリ", + "kbn.discover.savedSearch.savedObjectName": "保存された検索", + "kbn.discover.scaledToDescription": "{bucketIntervalDescription} にスケーリング済み", + "kbn.discover.searchingTitle": "検索中", + "kbn.discover.showingDefaultIndexPatternWarningDescription": "デフォルトのインデックスパターン「{loadedIndexPatternTitle}」 ({loadedIndexPatternId}) を表示中", + "kbn.discover.showingSavedIndexPatternWarningDescription": "保存されたインデックスパターン「{ownIndexPatternTitle}」 ({ownIndexPatternId}) を表示中", + "kbn.discover.skipToBottomButtonLabel": "最下部に移動", + "kbn.discover.topNav.openSearchPanel.manageSearchesButtonLabel": "検索の管理", + "kbn.discover.topNav.openSearchPanel.noSearchesFoundDescription": "一致する検索が見つかりませんでした。", + "kbn.discover.topNav.openSearchPanel.openSearchTitle": "検索を開く", + "kbn.discover.uninitializedRefreshButtonText": "データを更新", + "kbn.discover.uninitializedText": "クエリを作成、フィルターを追加、または [更新] をクリックして、現在のクエリの結果を取得します。", + "kbn.discover.uninitializedTitle": "検索開始", + "kbn.discover.valueIsNotConfiguredIndexPatternIDWarningTitle": "{stateVal} は設定されたインデックスパターン ID ではありません", + "kbn.discoverTitle": "ディスカバリ", + "kbn.doc.couldNotFindDocumentsDescription": "その ID に一致するドキュメントがありません。", + "kbn.doc.failedToExecuteQueryDescription": "クエリの実行に失敗しました", + "kbn.doc.failedToLocateDocumentDescription": "ドキュメントが見つかりませんでした", + "kbn.doc.failedToLocateIndexPattern": "ID {indexPatternId} に一致するインデックスパターンがありません", + "kbn.doc.loadingDescription": "読み込み中…", + "kbn.doc.somethingWentWrongDescription": "{indexName} が欠けています。", + "kbn.doc.somethingWentWrongDescriptionAddon": "インデックスが存在することを確認してください。", + "kbn.docTable.limitedSearchResultLabel": "{resultCount} 件の結果に制限。検索結果の絞り込み。", + "kbn.docTable.noResultsTitle": "結果が見つかりませんでした", + "kbn.docTable.pagerControl.pagesCountLabel": "{startItem}–{endItem} of {totalItems}", + "kbn.docTable.tableHeader.moveColumnLeftButtonAriaLabel": "{columnName} 列を左に移動", + "kbn.docTable.tableHeader.moveColumnLeftButtonTooltip": "列を左に移動", + "kbn.docTable.tableHeader.moveColumnRightButtonAriaLabel": "{columnName} 列を右に移動", + "kbn.docTable.tableHeader.moveColumnRightButtonTooltip": "列を右に移動", + "kbn.docTable.tableHeader.removeColumnButtonAriaLabel": "{columnName} 列を削除", + "kbn.docTable.tableHeader.removeColumnButtonTooltip": "列の削除", + "kbn.docTable.tableHeader.sortByColumnAscendingAriaLabel": "{columnName} を昇順に並べ替える", + "kbn.docTable.tableHeader.sortByColumnDescendingAriaLabel": "{columnName} を降順に並べ替える", + "kbn.docTable.tableHeader.sortByColumnUnsortedAriaLabel": "{columnName} で並べ替えを止める", + "kbn.docTable.tableRow.detailHeading": "拡張ドキュメント", + "kbn.docTable.tableRow.filterForValueButtonAriaLabel": "値でフィルタリング", + "kbn.docTable.tableRow.filterForValueButtonTooltip": "値でフィルタリング", + "kbn.docTable.tableRow.filterOutValueButtonAriaLabel": "値を除外", + "kbn.docTable.tableRow.filterOutValueButtonTooltip": "値を除外", + "kbn.docTable.tableRow.toggleRowDetailsButtonAriaLabel": "行の詳細を切り替える", + "kbn.docTable.tableRow.viewSingleDocumentLinkText": "単一のドキュメントを表示", + "kbn.docTable.tableRow.viewSurroundingDocumentsLinkText": "周りのドキュメントを表示", + "kbn.embeddable.errorTitle": "データの取得中にエラーが発生", + "kbn.embeddable.inspectorRequestDataTitle": "データ", + "kbn.embeddable.inspectorRequestDescription": "このリクエストは Elasticsearch にクエリをかけ、検索データを取得します。", + "kbn.embeddable.search.displayName": "検索", + "kbn.home.addData.apm.addApmButtonLabel": "APM を追加", + "kbn.home.addData.apm.nameDescription": "APM は、集約内から自動的に詳細なパフォーマンスメトリックやエラーを集めます。", + "kbn.home.addData.apm.nameTitle": "APM", + "kbn.home.addData.logging.addLogDataButtonLabel": "ログデータを追加", + "kbn.home.addData.logging.nameDescription": "頻繁に使用するデータソースからログを投入し、構成済みのダッシュボードで簡単に可視化できます。", + "kbn.home.addData.logging.nameTitle": "ログ", + "kbn.home.addData.metrics.addMetricsDataButtonLabel": "メトリックデータを追加", + "kbn.home.addData.metrics.nameDescription": "サーバーのオペレーティングシステムと実行中のサービスからメトリックを収集します。", + "kbn.home.addData.metrics.nameTitle": "メトリック", + "kbn.home.addData.sampleDataLink": "データセットと Kibana ダッシュボードを読み込む", + "kbn.home.addData.sampleDataTitle": "サンプルデータの追加", + "kbn.home.addData.siem.addSiemEventsButtonLabel": "セキュリティイベントを追加", + "kbn.home.addData.siem.nameDescription": "即利用可能なビジュアライゼーションで、セキュリティイベントをまとめてインタラクティブな調査を可能にします。", + "kbn.home.addData.siem.nameTitle": "SIEM", + "kbn.home.addData.uploadFileLink": "CSV、NDJSON、またはログファイルをインポート", + "kbn.home.addData.uploadFileTitle": "ログファイルからデータをアップロード", + "kbn.home.addData.yourDataLink": "Elasticsearch インデックスに接続", + "kbn.home.addData.yourDataTitle": "Elasticsearch データの使用", + "kbn.home.breadcrumbs.addDataTitle": "データの投入", + "kbn.home.breadcrumbs.homeTitle": "ホーム", + "kbn.home.dataManagementDisableCollection": "収集を停止するには、", + "kbn.home.dataManagementDisableCollectionLink": "ここで使用状況データを無効にします。", + "kbn.home.dataManagementDisclaimerPrivacy": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については ", + "kbn.home.dataManagementDisclaimerPrivacyLink": "プライバシーポリシーをご覧ください。", + "kbn.home.dataManagementEnableCollection": " 収集を開始するには、", + "kbn.home.dataManagementEnableCollectionLink": "ここで使用状況データを有効にします。", + "kbn.home.directories.manage.nameTitle": "Elastic Stack の管理", + "kbn.home.directories.notFound.description": "お探しのものが見つかりませんでしたか?", + "kbn.home.directories.notFound.viewFullButtonLabel": "Kibana プラグインの完全なディレクトリを表示", + "kbn.home.directories.visualize.nameTitle": "データの可視化と閲覧", + "kbn.home.directory.directoryTitle": "ディレクトリ", + "kbn.home.directory.tabs.administrativeTitle": "管理", + "kbn.home.directory.tabs.allTitle": "すべて", + "kbn.home.directory.tabs.dataTitle": "データの閲覧と可視化", + "kbn.home.directory.tabs.otherTitle": "その他", + "kbn.home.exploreButtonLabel": "独りで閲覧", + "kbn.home.exploreYourDataDescription": "すべてのステップを終えたら、データ閲覧準備の完了です。", + "kbn.home.letsStartDescription": "クラスターにデータがありません。サンプルデータやダッシュボードで試すこともできますし、いきなり独自のデータを使用することもできます。", + "kbn.home.letsStartTitle": "始めましょう", + "kbn.home.loadTutorials.requestFailedErrorMessage": "リクエスト失敗、ステータスコード: {status}", + "kbn.home.loadTutorials.unableToLoadErrorMessage": "チュートリアルが読み込めません。", + "kbn.home.recentlyAccessed.recentlyViewedTitle": "最近閲覧", + "kbn.home.sampleDataSet.installedLabel": "{name} がインストールされました", + "kbn.home.sampleDataSet.unableToInstallErrorMessage": "サンプルデータセット「{name}」をインストールできません", + "kbn.home.sampleDataSet.unableToLoadListErrorMessage": "サンプルデータセットのリストを読み込めません", + "kbn.home.sampleDataSet.unableToUninstallErrorMessage": "サンプルデータセット「{name}」をアンインストールできません", + "kbn.home.sampleDataSet.uninstalledLabel": "{name} がアンインストールされました", + "kbn.home.sampleDataSetCard.addButtonAriaLabel": "{datasetName} を追加", + "kbn.home.sampleDataSetCard.addButtonLabel": "データの投入", + "kbn.home.sampleDataSetCard.addingButtonAriaLabel": "{datasetName} を追加中", + "kbn.home.sampleDataSetCard.addingButtonLabel": "追加中", + "kbn.home.sampleDataSetCard.dashboardLinkLabel": "ダッシュボード", + "kbn.home.sampleDataSetCard.default.addButtonAriaLabel": "{datasetName} を追加", + "kbn.home.sampleDataSetCard.default.addButtonLabel": "データの投入", + "kbn.home.sampleDataSetCard.default.unableToVerifyErrorMessage": "データセットステータスを確認できません、エラー: {statusMsg}", + "kbn.home.sampleDataSetCard.removeButtonAriaLabel": "{datasetName} を削除", + "kbn.home.sampleDataSetCard.removeButtonLabel": "削除", + "kbn.home.sampleDataSetCard.removingButtonAriaLabel": "{datasetName} を削除中", + "kbn.home.sampleDataSetCard.removingButtonLabel": "削除中", + "kbn.home.sampleDataSetCard.viewDataButtonAriaLabel": "{datasetName} を表示", + "kbn.home.sampleDataSetCard.viewDataButtonLabel": "データを表示", + "kbn.home.tryButtonLabel": "サンプルデータを試す", + "kbn.home.tutorial.addDataToKibanaTitle": "Kibana にデータを追加", + "kbn.home.tutorial.card.sampleDataDescription": "これらの「ワンクリック」データセットで Kibana の探索を始めましょう。", + "kbn.home.tutorial.card.sampleDataTitle": "サンプルデータ", + "kbn.home.tutorial.elasticCloudButtonLabel": "Elastic Cloud", + "kbn.home.tutorial.instruction.copyButtonLabel": "スニペットをコピー", + "kbn.home.tutorial.instructionSet.checkStatusButtonLabel": "ステータスを確認", + "kbn.home.tutorial.instructionSet.customizeLabel": "コードスニペットのカスタマイズ", + "kbn.home.tutorial.instructionSet.noDataLabel": "データが見つかりません", + "kbn.home.tutorial.instructionSet.statusCheckTitle": "ステータス確認", + "kbn.home.tutorial.instructionSet.successLabel": "成功", + "kbn.home.tutorial.instructionSet.toggleAriaLabel": "コマンドパラメーターの可視性を調整します", + "kbn.home.tutorial.introduction.betaLabel": "ベータ", + "kbn.home.tutorial.introduction.imageAltDescription": "プライマリダッシュボードのスクリーンショット", + "kbn.home.tutorial.introduction.viewButtonLabel": "エクスポートされたフィールドを表示", + "kbn.home.tutorial.noTutorialLabel": "チュートリアル {tutorialId} が見つかりません", + "kbn.home.tutorial.savedObject.addedLabel": "{savedObjectsLength} 件の保存されたオブジェクトが追加されました", + "kbn.home.tutorial.savedObject.confirmButtonLabel": "上書きを確定", + "kbn.home.tutorial.savedObject.defaultButtonLabel": "Kibana オブジェクトを読み込む", + "kbn.home.tutorial.savedObject.installLabel": "インデックスパターン、ビジュアライゼーション、事前定義済みのダッシュボードをインポートします。", + "kbn.home.tutorial.savedObject.installStatusLabel": "{savedObjectsLength} 件中 {overwriteErrorsLength} 件のオブジェクトが既に存在します。インポートして既存のオブジェクトを上書きするには、「上書きを確定」をクリックしてください。オブジェクトへの変更はすべて失われます。", + "kbn.home.tutorial.savedObject.loadTitle": "Kibana オブジェクトを読み込む", + "kbn.home.tutorial.savedObject.requestFailedErrorMessage": "リクエスト失敗、エラー: {message}", + "kbn.home.tutorial.savedObject.unableToAddErrorMessage": "{savedObjectsLength} 件中 {errorsLength} 件の kibana オブジェクトが追加できません、エラー: {errorMessage}", + "kbn.home.tutorial.selfManagedButtonLabel": "セルフマネージド", + "kbn.home.tutorial.tabs.allTitle": "すべて", + "kbn.home.tutorial.tabs.loggingTitle": "ログ", + "kbn.home.tutorial.tabs.metricsTitle": "メトリック", + "kbn.home.tutorial.tabs.sampleDataTitle": "サンプルデータ", + "kbn.home.tutorial.tabs.siemTitle": "SIEM", + "kbn.home.tutorial.unexpectedStatusCheckStateErrorDescription": "予期せぬステータス確認ステータス {statusCheckState}", + "kbn.home.tutorial.unhandledInstructionTypeErrorDescription": "予期せぬ指示タイプ {visibleInstructions}", + "kbn.home.welcomeDescription": "Elastic Stack への開かれた窓", + "kbn.home.welcomeHomePageHeader": "Kibana ホーム", + "kbn.home.welcomeTitle": "Kibana へようこそ", + "kbn.management.advancedSettings.badge.readOnly.text": "読み込み専用", + "kbn.management.advancedSettings.badge.readOnly.tooltip": "高度な設定を保存できません", + "kbn.management.createIndexPattern.betaLabel": "ベータ", + "kbn.management.createIndexPattern.emptyState.checkDataButton": "新規データを確認", + "kbn.management.createIndexPattern.emptyStateHeader": "Elasticsearch データが見つかりませんでした", + "kbn.management.createIndexPattern.emptyStateLabel.emptyStateDetail": "{needToIndex} {learnHowLink} または {getStartedLink}", + "kbn.management.createIndexPattern.emptyStateLabel.getStartedLink": "サンプルデータで始めましょう。", + "kbn.management.createIndexPattern.emptyStateLabel.learnHowLink": "方法を学習", + "kbn.management.createIndexPattern.emptyStateLabel.needToIndexLabel": "インデックスパターンを作成する前に、Elasticsearch へのデータのインデックスが必要です。", + "kbn.management.createIndexPattern.includeSystemIndicesToggleSwitchLabel": "システムインデックスを含める", + "kbn.management.createIndexPattern.loadClustersFailMsg": "リモートクラスターの読み込みに失敗", + "kbn.management.createIndexPattern.loadIndicesFailMsg": "インデックスの読み込みに失敗", + "kbn.management.createIndexPattern.loadingState.checkingLabel": "Elasticsearch データを確認中", + "kbn.management.createIndexPattern.step.indexPattern.allowLabel": "インデックスパターンでワイルドカードとして {asterisk} を使用できます。", + "kbn.management.createIndexPattern.step.indexPattern.disallowLabel": "スペースや {characterList} は使用できません。", + "kbn.management.createIndexPattern.step.indexPatternLabel": "インデックスパターン", + "kbn.management.createIndexPattern.step.indexPatternPlaceholder": "index-name-*", + "kbn.management.createIndexPattern.step.invalidCharactersErrorMessage": "{indexPatternName} にはスペースや {characterList} は使えません。", + "kbn.management.createIndexPattern.step.loadingHeader": "一致するインデックスを検索中…", + "kbn.management.createIndexPattern.step.loadingLabel": "お待ちください…", + "kbn.management.createIndexPattern.step.nextStepButton": "次のステップ", + "kbn.management.createIndexPattern.step.pagingLabel": "ページごとの行数: {perPage}", + "kbn.management.createIndexPattern.step.status.matchAnyLabel.matchAnyDetail": "インデックスパターンは下の{strongIndices} の いずれかに一致します。", + "kbn.management.createIndexPattern.step.status.noSystemIndicesLabel": "パターンに一致する Elasticsearch インデックスがありません。", + "kbn.management.createIndexPattern.step.status.noSystemIndicesWithPromptLabel": "パターンに一致する Elasticsearch インデックスがありません。一致するシステムインデックスを表示するには、右上のスイッチを切り替えます。", + "kbn.management.createIndexPattern.step.status.notMatchLabel.allIndicesLabel": "{indicesLength, plural, one {# インデックス} other {# インデックス}}", + "kbn.management.createIndexPattern.step.status.notMatchLabel.notMatchDetail": "入力されたインデックスパターンがどのインデックスにも一致しません。下の {indicesLength, plural, one {} other {}}{strongIndices} と一致させることができます。", + "kbn.management.createIndexPattern.step.status.partialMatchLabel.partialMatchDetail": "インデックスパターンがどのインデックスとも一致ませんが、似た {matchedIndicesLength, plural, one {} other {}}{strongIndices} があります。", + "kbn.management.createIndexPattern.step.status.partialMatchLabel.strongIndicesLabel": "{matchedIndicesLength, plural, one {# インデックス} other {# インデックス}}", + "kbn.management.createIndexPattern.step.status.successLabel.strongIndicesLabel": "{indicesLength, plural, one {# インデックス} other {# インデックス}}", + "kbn.management.createIndexPattern.step.status.successLabel.strongSuccessLabel": "成功!", + "kbn.management.createIndexPattern.step.status.successLabel.successDetail": "{strongSuccess} インデックスパターンが {strongIndices} と一致しています。", + "kbn.management.createIndexPattern.step.warningHeader": "既に {query} という名前のインデックスパターンがあります。", + "kbn.management.createIndexPattern.stepHeader": "ステップ 1/2:インデックスパターンの定義", + "kbn.management.createIndexPattern.stepTime.backButton": "戻る", + "kbn.management.createIndexPattern.stepTime.createPatternButton": "インデックスパターンを作成", + "kbn.management.createIndexPattern.stepTime.creatingLabel": "インデックスパターンを作成中…", + "kbn.management.createIndexPattern.stepTime.error": "エラー", + "kbn.management.createIndexPattern.stepTime.field.loadingDropDown": "読み込み中…", + "kbn.management.createIndexPattern.stepTime.field.noTimeFieldsLabel": "このインデックスパターンに一致するインデックスには時間フィールドがありません。", + "kbn.management.createIndexPattern.stepTime.fieldHeader": "時間フィルターのフィールド名", + "kbn.management.createIndexPattern.stepTime.fieldLabel": "時間フィルターはこのフィールドを使って時間でフィールドを絞ります。", + "kbn.management.createIndexPattern.stepTime.fieldWarningLabel": "時間フィールドを使わないこともできますが、その場合データを時間範囲で絞ることができません。", + "kbn.management.createIndexPattern.stepTime.noTimeFieldOptionLabel": "時間フィルターを使用しない", + "kbn.management.createIndexPattern.stepTime.noTimeFieldsLabel": "このインデックスパターンに一致するインデックスには時間フィールドがありません。", + "kbn.management.createIndexPattern.stepTime.options.hideButton": "高度なオプションを非表示", + "kbn.management.createIndexPattern.stepTime.options.patternHeader": "カスタムインデックスパターン ID", + "kbn.management.createIndexPattern.stepTime.options.patternLabel": "Kibana はそれぞれのインデックスパターンに固有の識別子を割り当てます。固有 ID を使用しない場合は、カスタム ID を入力してください。", + "kbn.management.createIndexPattern.stepTime.options.patternPlaceholder": "custom-index-pattern-id", + "kbn.management.createIndexPattern.stepTime.options.showButton": "高度なオプションを表示", + "kbn.management.createIndexPattern.stepTime.patterAlreadyExists": "カスタムインデックスパターン ID が既に存在します。", + "kbn.management.createIndexPattern.stepTime.refreshButton": "更新", + "kbn.management.createIndexPattern.stepTimeHeader": "ステップ 2/2:設定の変更", + "kbn.management.createIndexPattern.stepTimeLabel": "{indexPattern} を {indexPatternName} に定義しました。次に、作成前に他の設定を行うことができます。", + "kbn.management.createIndexPatternHeader": "{indexPatternName} の作成", + "kbn.management.createIndexPatternLabel": "Kibana は、可視化などを目的に Elasticsearch インデックスからデータを取得するために、インデックスパターンを使用します。", + "kbn.management.editIndexPattern.deleteButton": "削除", + "kbn.management.editIndexPattern.deleteFieldButton": "削除", + "kbn.management.editIndexPattern.deleteHeader": "インデックスパターンを削除しますか?", + "kbn.management.editIndexPattern.detailsAria": "インデックスパターンの詳細", + "kbn.management.editIndexPattern.editFieldButton": "編集", + "kbn.management.editIndexPattern.fields.allLangsDropDown": "すべての言語", + "kbn.management.editIndexPattern.fields.allTypesDropDown": "すべてのフィールドタイプ", + "kbn.management.editIndexPattern.fields.filterAria": "フィルター", + "kbn.management.editIndexPattern.fields.filterPlaceholder": "フィルター", + "kbn.management.editIndexPattern.fields.table.additionalInfoAriaLabel": "追加フィールド情報", + "kbn.management.editIndexPattern.fields.table.aggregatableDescription": "これらのフィールドはビジュアライゼーションの集約に使用できます", + "kbn.management.editIndexPattern.fields.table.aggregatableLabel": "集約可能", + "kbn.management.editIndexPattern.fields.table.editDescription": "編集", + "kbn.management.editIndexPattern.fields.table.editLabel": "編集", + "kbn.management.editIndexPattern.fields.table.excludedDescription": "取得の際に _source から除外されるフィールドです", + "kbn.management.editIndexPattern.fields.table.excludedLabel": "除外", + "kbn.management.editIndexPattern.fields.table.formatHeader": "フォーマット", + "kbn.management.editIndexPattern.fields.table.isAggregatableAria": "は集約可能です", + "kbn.management.editIndexPattern.fields.table.isExcludedAria": "は除外されています", + "kbn.management.editIndexPattern.fields.table.isSearchableAria": "は検索可能です", + "kbn.management.editIndexPattern.fields.table.multiTypeAria": "複数タイプのフィールド", + "kbn.management.editIndexPattern.fields.table.multiTypeTooltip": "フィールドのタイプがインデックスごとに変わります。多くの分析機能には使用できません。", + "kbn.management.editIndexPattern.fields.table.nameHeader": "名前", + "kbn.management.editIndexPattern.fields.table.primaryTimeAriaLabel": "プライマリ時間フィールド", + "kbn.management.editIndexPattern.fields.table.primaryTimeTooltip": "このフィールドはイベントの発生時刻を表します。", + "kbn.management.editIndexPattern.fields.table.searchableDescription": "これらのフィールドはフィルターバーで使用できます", + "kbn.management.editIndexPattern.fields.table.searchableHeader": "検索可能", + "kbn.management.editIndexPattern.fields.table.typeHeader": "タイプ", + "kbn.management.editIndexPattern.mappingConflictHeader": "マッピングの矛盾", + "kbn.management.editIndexPattern.mappingConflictLabel": "{conflictFieldsLength, plural, one {フィールドが} other {# フィールドが}}このパターンと一致するインデックスの間で異なるタイプ (文字列、整数など) に定義されています。これらの矛盾したフィールドは Kibana の一部で使用できますが、Kibana がタイプを把握しなければならない機能には使用できません。この問題を修正するにはデータのレンダリングが必要です。", + "kbn.management.editIndexPattern.notDateErrorMessage": "このフィールドは日付ではなく {fieldType} です。", + "kbn.management.editIndexPattern.refreshAria": "フィールドリストを再度読み込みます", + "kbn.management.editIndexPattern.refreshButton": "更新", + "kbn.management.editIndexPattern.refreshHeader": "フィールドリストを更新しますか?", + "kbn.management.editIndexPattern.refreshLabel": "この操作は各フィールドの使用頻度をリセットします。", + "kbn.management.editIndexPattern.refreshTooltip": "フィールドリストを更新", + "kbn.management.editIndexPattern.removeAria": "インデックスパターンを削除", + "kbn.management.editIndexPattern.removeTooltip": "インデックスパターンを削除います", + "kbn.management.editIndexPattern.scripted.addFieldButton": "スクリプトフィールドを追加", + "kbn.management.editIndexPattern.scripted.deleteField.cancelButton": "キャンセル", + "kbn.management.editIndexPattern.scripted.deleteField.deleteButton": "削除", + "kbn.management.editIndexPattern.scripted.deleteFieldLabel": "スクリプトフィールド「{fieldName}」を削除しますか?", + "kbn.management.editIndexPattern.scripted.deprecationLangHeader": "廃止された言語が使用されています", + "kbn.management.editIndexPattern.scripted.deprecationLangLabel.deprecationLangDetail": "次の廃止された言語が使用されています: {deprecatedLangsInUse}これらの言語は、Kibana と Elasticsearch の次のメジャーなバージョンでサポートされなくなります。問題を避けるため、スクリプトフィールドを {link} に変換してください。", + "kbn.management.editIndexPattern.scripted.deprecationLangLabel.painlessDescription": "パターン", + "kbn.management.editIndexPattern.scripted.newFieldPlaceholder": "新規スクリプトフィールド", + "kbn.management.editIndexPattern.scripted.noFieldLabel": "「{indexPatternTitle}」インデックスパターンには「{fieldName}」というスクリプトフィールドがありません", + "kbn.management.editIndexPattern.scripted.table.deleteDescription": "このフィールドを削除します", + "kbn.management.editIndexPattern.scripted.table.deleteHeader": "削除", + "kbn.management.editIndexPattern.scripted.table.editDescription": "このフィールドを編集します", + "kbn.management.editIndexPattern.scripted.table.editHeader": "編集", + "kbn.management.editIndexPattern.scripted.table.formatDescription": "フィールドに使用されているフォーマットです", + "kbn.management.editIndexPattern.scripted.table.formatHeader": "フォーマット", + "kbn.management.editIndexPattern.scripted.table.langDescription": "フィールドに使用されている言語です", + "kbn.management.editIndexPattern.scripted.table.langHeader": "言語", + "kbn.management.editIndexPattern.scripted.table.nameDescription": "フィールドの名前です", + "kbn.management.editIndexPattern.scripted.table.nameHeader": "名前", + "kbn.management.editIndexPattern.scripted.table.scriptDescription": "フィールドのスクリプトです", + "kbn.management.editIndexPattern.scripted.table.scriptHeader": "スクリプト", + "kbn.management.editIndexPattern.scripted.unknownModeErrorMessage": "不明なフィールド設定モード {mode}", + "kbn.management.editIndexPattern.scriptedHeader": "スクリプトフィールド", + "kbn.management.editIndexPattern.scriptedLabel": "ビジュアライゼーションにスクリプトフィールドを使用し、ドキュメントに表示させることができます。但し、スクリプトフィールドは検索できません。", + "kbn.management.editIndexPattern.setDefaultAria": "デフォルトのインデックスに設定", + "kbn.management.editIndexPattern.setDefaultTooltip": "デフォルトのインデックスに設定します", + "kbn.management.editIndexPattern.source.addButtonLabel": "追加", + "kbn.management.editIndexPattern.source.deleteFilter.cancelButtonLabel": "キャンセル", + "kbn.management.editIndexPattern.source.deleteFilter.deleteButtonLabel": "削除", + "kbn.management.editIndexPattern.source.deleteSourceFilterLabel": "ソースフィルター「{value}」を削除しますか?", + "kbn.management.editIndexPattern.source.noteLabel": "下の表で、マルチフィールドが一致として誤って表示されます。これらのフィルターは、オリジナルのソースドキュメントの\\フィールドのみに適用されるため、一致するマルチフィールドはフィルタリングされません。", + "kbn.management.editIndexPattern.source.table.cancelAria": "キャンセル", + "kbn.management.editIndexPattern.source.table.deleteAria": "削除", + "kbn.management.editIndexPattern.source.table.editAria": "編集", + "kbn.management.editIndexPattern.source.table.filterDescription": "フィルター名", + "kbn.management.editIndexPattern.source.table.filterHeader": "フィルター", + "kbn.management.editIndexPattern.source.table.matchesDescription": "フィールドに使用されている言語です", + "kbn.management.editIndexPattern.source.table.matchesHeader": "一致", + "kbn.management.editIndexPattern.source.table.notMatchedLabel": "ソースフィルターが既知のフィールドと一致しません。", + "kbn.management.editIndexPattern.source.table.saveAria": "保存", + "kbn.management.editIndexPattern.sourceHeader": "ソースフィルター", + "kbn.management.editIndexPattern.sourceLabel": "ソースフィルターは、ドキュメントソースの取得時に 1 つまたは複数のフィールドを除外するのに使用される場合もあります。これはディスカバリアプリでのドキュメントの表示中、またはダッシュボードアプリの保存された検索の結果を表示する表で起こります。それぞれの行は 1 つのドキュメントのソースで作成されており、ドキュメントに大きなフィールドや重要ではないフィールドが含まれている場合、このレベルでフィルターで除外すると良いかもしれません。", + "kbn.management.editIndexPattern.sourcePlaceholder": "ソースフィルター、ワイルドカード使用可 (例: 「user」と入力して「user」で始まるフィールドをフィルタリング)", + "kbn.management.editIndexPattern.tabs.fieldsHeader": "フィールド", + "kbn.management.editIndexPattern.tabs.scriptedHeader": "スクリプトフィールド", + "kbn.management.editIndexPattern.tabs.sourceHeader": "ソースフィルター", + "kbn.management.editIndexPattern.timeFilterHeader": "時間フィルターフィールド名: {timeFieldName}", + "kbn.management.editIndexPattern.timeFilterLabel.mappingAPILink": "マッピング API", + "kbn.management.editIndexPattern.timeFilterLabel.timeFilterDetail": "このページは {indexPatternTitle} インデックス内のすべてのフィールドと、Elasticsearch に記録された各フィールドのコアタイプを一覧表示します。フィールドタイプを変更するには Elasticsearch を使用します", + "kbn.management.editIndexPatternLiveRegionAriaLabel": "インデックスパターン", + "kbn.management.indexPattern.confirmOverwriteButton": "上書き", + "kbn.management.indexPattern.confirmOverwriteLabel": "「{title}」に上書きしてよろしいですか?", + "kbn.management.indexPattern.confirmOverwriteTitle": "{type} を上書きしますか?", + "kbn.management.indexPattern.sectionsHeader": "インデックスパターン", + "kbn.management.indexPattern.titleExistsLabel": "「{title}」というタイトルのインデックスパターンが既に存在します。", + "kbn.management.indexPatternHeader": "インデックスパターン", + "kbn.management.indexPatternLabel": "Elasticsearch からのデータの取得に役立つインデックスパターンを管理します。", + "kbn.management.indexPatternList.createButton.betaLabel": "ベータ", + "kbn.management.indexPatternPrompt.exampleOne": "チャートを作成したりコンテンツを素早くクエリできるように log-west-001 という名前の単一のデータソースをインデックスします。", + "kbn.management.indexPatternPrompt.exampleOneTitle": "単一のデータソース", + "kbn.management.indexPatternPrompt.examplesTitle": "インデックスパターンの例", + "kbn.management.indexPatternPrompt.exampleThree": "比較目的に履歴の動向を集約できるよう、これらのログのアーカイブされた月々のロールアップメトリックスを指定通りに別々のインデックスパターンにグループ分けします。", + "kbn.management.indexPatternPrompt.exampleThreeTitle": "カスタムグルーピング", + "kbn.management.indexPatternPrompt.exampleTwo": "すべての西海岸のサーバーログに対してクエリを実行できるように、頭に「log-west」の付いたすべての受信データソースをグループ化します。", + "kbn.management.indexPatternPrompt.exampleTwoTitle": "複数データソース", + "kbn.management.indexPatternPrompt.subtitle": "インデックスパターンは、Kibana で共有フィールドにクエリを実行できるよう、種類の異なるデータソースをバケットにまとめることができます。", + "kbn.management.indexPatternPrompt.title": "インデックスパターンについて", + "kbn.management.indexPatterns.badge.readOnly.text": "読み込み専用", + "kbn.management.indexPatterns.badge.readOnly.tooltip": "インデックスパターンを保存できません", + "kbn.management.indexPatterns.createBreadcrumb": "インデックスパターンを作成", + "kbn.management.indexPatterns.createFieldBreadcrumb": "フィールドを作成", + "kbn.management.indexPatterns.listBreadcrumb": "インデックスパターン", + "kbn.management.indexPatternTable.createBtn": "インデックスパターンの作成", + "kbn.management.indexPatternTable.title": "インデックスパターン", + "kbn.management.landing.header": "Kibana {version} 管理", + "kbn.management.landing.subhead": "インデックス、インデックスパターン、保存されたオブジェクト、Kibana の設定、その他を管理します。", + "kbn.management.landing.text": "すべてのツールの一覧は、左のメニューにあります。", + "kbn.management.objects.confirmModalOptions.deleteButtonLabel": "削除", + "kbn.management.objects.confirmModalOptions.modalDescription": "削除されたオブジェクトは復元できません", + "kbn.management.objects.confirmModalOptions.modalTitle": "保存された Kibana オブジェクトを削除しますか?", + "kbn.management.objects.deleteSavedObjectsConfirmModalDescription": "この操作は次の保存されたオブジェクトを削除します:", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "キャンセル", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.deleteButtonLabel": "削除", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.deleteProcessButtonLabel": "削除中…", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.idColumnName": "ID", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.titleColumnName": "タイトル", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.typeColumnName": "タイプ", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModalTitle": "保存されたオブジェクトの削除", + "kbn.management.objects.objectsTable.export.dangerNotification": "エクスポートを生成できません", + "kbn.management.objects.objectsTable.export.successNotification": "ファイルはバックグラウンドでダウンロード中です", + "kbn.management.objects.objectsTable.export.successWithMissingRefsNotification": "ファイルはバックグラウンドでダウンロード中です。一部の関連オブジェクトが見つかりませんでした。足りないオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.cancelButtonLabel": "キャンセル", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.exportAllButtonLabel": "すべてエクスポート:", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.exportOptionsLabel": "オプション", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.includeReferencesDeepLabel": "関連オブジェクトを含める", + "kbn.management.objects.objectsTable.exportObjectsConfirmModalDescription": "エクスポートするタイプを選択してください", + "kbn.management.objects.objectsTable.exportObjectsConfirmModalTitle": "{filteredItemCount, plural, one{# オブジェクト} other {# オブジェクト}}をエクスポート", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.resolvingConflictsLoadingMessage": "矛盾を解決中…", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.retryingFailedObjectsLoadingMessage": "失敗したオブジェクトを再試行中…", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.savedSearchAreLinkedProperlyLoadingMessage": "保存された検索が正しくリンクされていることを確認してください…", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.savingConflictsLoadingMessage": "矛盾を保存中…", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteBody": "{title} を上書きしてよろしいですか?", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteCancelButtonText": "キャンセル", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteOverwriteButtonText": "上書き", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteTitle": "{type} を上書きしますか?", + "kbn.management.objects.objectsTable.flyout.errorCalloutTitle": "申し訳ございませんが、エラーが発生しました", + "kbn.management.objects.objectsTable.flyout.import.cancelButtonLabel": "キャンセル", + "kbn.management.objects.objectsTable.flyout.import.confirmButtonLabel": "インポート", + "kbn.management.objects.objectsTable.flyout.importFailedDescription": "{totalImportCount} 個中 {failedImportCount} 個のオブジェクトのインポートに失敗しました。インポート失敗", + "kbn.management.objects.objectsTable.flyout.importFailedMissingReference": "{type} [id={id}] は {refType} [id={refId}] を見つけられませんでした", + "kbn.management.objects.objectsTable.flyout.importFailedTitle": "インポート失敗", + "kbn.management.objects.objectsTable.flyout.importFailedUnsupportedType": "{type} [id={id}] サポートされていないタイプ", + "kbn.management.objects.objectsTable.flyout.importFileErrorMessage": "ファイルを処理できませんでした。", + "kbn.management.objects.objectsTable.flyout.importLegacyFileErrorMessage": "ファイルを処理できませんでした。", + "kbn.management.objects.objectsTable.flyout.importPromptText": "インポート", + "kbn.management.objects.objectsTable.flyout.importSavedObjectTitle": "保存されたオブジェクトのインポート", + "kbn.management.objects.objectsTable.flyout.importSuccessful.confirmAllChangesButtonLabel": "すべての変更を確定", + "kbn.management.objects.objectsTable.flyout.importSuccessful.confirmButtonLabel": "完了", + "kbn.management.objects.objectsTable.flyout.importSuccessfulCallout.noObjectsImportedTitle": "オブジェクトがインポートされませんでした", + "kbn.management.objects.objectsTable.flyout.importSuccessfulDescription": "{importCount} 個のオブジェクトがインポートされました。", + "kbn.management.objects.objectsTable.flyout.importSuccessfulTitle": "インポート成功", + "kbn.management.objects.objectsTable.flyout.indexPatternConflictsCalloutLinkText": "新規インデックスパターンを作成", + "kbn.management.objects.objectsTable.flyout.indexPatternConflictsDescription": "次の保存されたオブジェクトは、存在しないインデックスパターンを使用しています。別のデックスパターンを選択してください。必要に応じて {indexPatternLink} できます。", + "kbn.management.objects.objectsTable.flyout.indexPatternConflictsTitle": "インデックスパターンの矛盾", + "kbn.management.objects.objectsTable.flyout.invalidFormatOfImportedFileErrorMessage": "保存されたオブジェクトのファイル形式が無効なため、インポートできません。", + "kbn.management.objects.objectsTable.flyout.legacyFileUsedBody": "最新のレポートで NDJSON ファイルを作成すれば完了です。", + "kbn.management.objects.objectsTable.flyout.legacyFileUsedTitle": "JSON ファイルのサポートが終了します", + "kbn.management.objects.objectsTable.flyout.overwriteSavedObjectsLabel": "すべての保存されたオブジェクトを自動的に上書きしますか?", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnCountDescription": "影響されるオブジェクトの数です", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnCountName": "カウント", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnIdDescription": "インデックスパターンの ID です", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnIdName": "ID", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnNewIndexPatternName": "新規インデックスパターン", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsDescription": "影響されるオブジェクトのサンプルです", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsName": "影響されるオブジェクトのサンプル", + "kbn.management.objects.objectsTable.flyout.resolveImportErrorsFileErrorMessage": "ファイルを処理できませんでした。", + "kbn.management.objects.objectsTable.flyout.selectFileToImportFormRowLabel": "インポートするファイルを選択してください", + "kbn.management.objects.objectsTable.header.exportButtonLabel": "{filteredCount, plural, one{# オブジェクト} other {# オブジェクト}}をエクスポート", + "kbn.management.objects.objectsTable.header.importButtonLabel": "インポート", + "kbn.management.objects.objectsTable.header.refreshButtonLabel": "更新", + "kbn.management.objects.objectsTable.header.savedObjectsTitle": "保存されたオブジェクト", + "kbn.management.objects.objectsTable.howToDeleteSavedObjectsDescription": "ここから保存された検索などの保存されたオブジェクトを削除できます。保存されたオブジェクトの生データを編集することもできます。通常、オブジェクトは関連アプリケーションでのみ編集され、こn画面で編集するよりもそちらのほうが賢明です。", + "kbn.management.objects.objectsTable.relationships.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", + "kbn.management.objects.objectsTable.relationships.columnActions.inspectActionName": "検査", + "kbn.management.objects.objectsTable.relationships.columnActionsName": "アクション", + "kbn.management.objects.objectsTable.relationships.columnRelationship.childAsValue": "子", + "kbn.management.objects.objectsTable.relationships.columnRelationship.parentAsValue": "ペアレント", + "kbn.management.objects.objectsTable.relationships.columnRelationshipName": "直接関係", + "kbn.management.objects.objectsTable.relationships.columnTitleDescription": "保存されたオブジェクトのタイトルです", + "kbn.management.objects.objectsTable.relationships.columnTitleName": "タイトル", + "kbn.management.objects.objectsTable.relationships.columnTypeDescription": "保存されたオブジェクトのタイプです", + "kbn.management.objects.objectsTable.relationships.columnTypeName": "タイプ", + "kbn.management.objects.objectsTable.relationships.relationshipsTitle": "{title} に関連する保存されたオブジェクトはこちらです。この {type} を削除すると、親オブジェクトに影響がありますが、子オブジェクトには影響はありません。", + "kbn.management.objects.objectsTable.relationships.renderErrorMessage": "エラー", + "kbn.management.objects.objectsTable.relationships.search.filters.relationship.childAsValue.view": "子", + "kbn.management.objects.objectsTable.relationships.search.filters.relationship.name": "直接関係", + "kbn.management.objects.objectsTable.relationships.search.filters.relationship.parentAsValue.view": "親", + "kbn.management.objects.objectsTable.relationships.search.filters.type.name": "タイプ", + "kbn.management.objects.objectsTable.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", + "kbn.management.objects.objectsTable.table.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", + "kbn.management.objects.objectsTable.table.columnActions.inspectActionName": "検査", + "kbn.management.objects.objectsTable.table.columnActions.viewRelationshipsActionDescription": "この保存されたオブジェクトと他の保存されたオブジェクトとの関係性を表示します", + "kbn.management.objects.objectsTable.table.columnActions.viewRelationshipsActionName": "関係性", + "kbn.management.objects.objectsTable.table.columnActionsName": "アクション", + "kbn.management.objects.objectsTable.table.columnTitleDescription": "保存されたオブジェクトのタイトルです", + "kbn.management.objects.objectsTable.table.columnTitleName": "タイトル", + "kbn.management.objects.objectsTable.table.columnTypeDescription": "保存されたオブジェクトのタイプです", + "kbn.management.objects.objectsTable.table.columnTypeName": "タイプ", + "kbn.management.objects.objectsTable.table.deleteButtonLabel": "削除", + "kbn.management.objects.objectsTable.table.deleteButtonTitle": "保存されたオブジェクトを削除できません", + "kbn.management.objects.objectsTable.table.exportButtonLabel": "エクスポート", + "kbn.management.objects.objectsTable.table.exportPopoverButtonLabel": "エクスポート", + "kbn.management.objects.objectsTable.table.typeFilterName": "タイプ", + "kbn.management.objects.objectsTable.unableFindSavedObjectsNotificationMessage": "保存されたオブジェクトが見つかりません", + "kbn.management.objects.parsingFieldErrorMessage": "{fieldName} をインデックスパターン {indexName} 用にパース中にエラーが発生しました: {errorMessage}", + "kbn.management.objects.savedObjectsDescription": "保存された検索、ビジュアライゼーション、ダッシュボードのインポート、エクスポート、管理を行います", + "kbn.management.objects.savedObjectsSectionLabel": "保存されたオブジェクト", + "kbn.management.objects.savedObjectsTitle": "保存されたオブジェクト", + "kbn.management.objects.view.cancelButtonAriaLabel": "キャンセル", + "kbn.management.objects.view.cancelButtonLabel": "キャンセル", + "kbn.management.objects.view.deleteItemButtonLabel": "{title} を削除", + "kbn.management.objects.view.editItemTitle": "{title} の編集", + "kbn.management.objects.view.fieldDoesNotExistErrorMessage": "このオブジェクトに関連付けられたフィールドは、現在このインデックスパターンに存在しません。", + "kbn.management.objects.view.howToFixErrorDescription": "このエラーの原因がわかる場合は修正してください。わからない場合は上の削除ボタンをクリックしてください。", + "kbn.management.objects.view.howToModifyObjectDescription": " オブジェクトの編集は上級ユーザー向けです。オブジェクトのプロパティが検証されておらず、無効なオブジェクトはエラー、データ損失、またはそれ以上の問題の原因となります。コードを熟知した人に指示されていない限り、この設定は変更しない方が無難です。", + "kbn.management.objects.view.howToModifyObjectTitle": "十分ご注意ください!", + "kbn.management.objects.view.indexPatternDoesNotExistErrorMessage": "このオブジェクトに関連付けられたインデックスパターンは現在存在しません。", + "kbn.management.objects.view.saveButtonAriaLabel": "{ title } オブジェクトを保存", + "kbn.management.objects.view.saveButtonLabel": "{ title } オブジェクトを保存", + "kbn.management.objects.view.savedObjectProblemErrorMessage": "この保存されたオブジェクトに問題があります", + "kbn.management.objects.view.savedSearchDoesNotExistErrorMessage": "このオブジェクトに関連付けられた保存された検索は現在存在しません。", + "kbn.management.objects.view.viewItemButtonLabel": "{title} を表示", + "kbn.management.objects.view.viewItemTitle": "{title} を表示", + "kbn.management.savedObjects.editBreadcrumb": "{savedObjectType} を編集", + "kbn.management.savedObjects.indexBreadcrumb": "保存されたオブジェクト", + "kbn.management.settings.advancedSettingsDescription": "Kibana の動作を管理する設定を直接変更します。", + "kbn.management.settings.advancedSettingsLabel": "高度な設定", + "kbn.management.settings.breadcrumb": "高度な設定", + "kbn.management.settings.callOutCautionDescription": "これらの設定は非常に上級ユーザー向けなのでご注意ください。ここでの変更は Kibana の重要な部分に不具合を生じさせる可能性があります。これらの設定はドキュメントに記載されていなかったり、サポートされていなかったり、実験的であったりします。フィールドにデフォルトの値が設定されている場合、そのフィールドを未入力のままにするとデフォルトに戻り、他の構成により利用できない可能性があります。カスタム設定を削除すると、Kibana の構成から永久に削除されます。", + "kbn.management.settings.callOutCautionTitle": "注意:不具合が起こる可能性があります", + "kbn.management.settings.categoryNames.dashboardLabel": "ダッシュボード", + "kbn.management.settings.categoryNames.discoverLabel": "ディスカバリ", + "kbn.management.settings.categoryNames.generalLabel": "一般", + "kbn.management.settings.categoryNames.notificationsLabel": "通知", + "kbn.management.settings.categoryNames.reportingLabel": "レポート", + "kbn.management.settings.categoryNames.searchLabel": "検索", + "kbn.management.settings.categoryNames.siemLabel": "SIEM", + "kbn.management.settings.categoryNames.timelionLabel": "Timelion", + "kbn.management.settings.categoryNames.visualizationsLabel": "ビジュアライゼーション", + "kbn.management.settings.categorySearchLabel": "カテゴリー", + "kbn.management.settings.field.cancelEditingButtonAriaLabel": "{ariaName} の編集をキャンセル", + "kbn.management.settings.field.cancelEditingButtonLabel": "キャンセル", + "kbn.management.settings.field.changeImageLinkAriaLabel": "{ariaName} を変更", + "kbn.management.settings.field.changeImageLinkText": "画像を変更", + "kbn.management.settings.field.codeEditorSyntaxErrorMessage": "無効な JSON 構文", + "kbn.management.settings.field.customSettingAriaLabel": "カスタム設定", + "kbn.management.settings.field.customSettingTooltip": "カスタム設定", + "kbn.management.settings.field.defaultValueText": "デフォルト: {value}", + "kbn.management.settings.field.defaultValueTypeJsonText": "デフォルト: {value}", + "kbn.management.settings.field.helpText": "この設定は Kibana サーバーにより上書きされ、変更することはできません。", + "kbn.management.settings.field.imageChangeErrorMessage": "画像を保存できませんでした", + "kbn.management.settings.field.imageTooLargeErrorMessage": "画像が大きすぎます。最大サイズは {maxSizeDescription} です", + "kbn.management.settings.field.offLabel": "オフ", + "kbn.management.settings.field.onLabel": "オン", + "kbn.management.settings.field.requiresPageReloadToastButtonLabel": "ページを再読み込み", + "kbn.management.settings.field.requiresPageReloadToastDescription": "「{settingName}」設定を有効にするには、ページを再読み込みしてください。", + "kbn.management.settings.field.resetFieldErrorMessage": "{name} をリセットできませんでした", + "kbn.management.settings.field.resetToDefaultLinkAriaLabel": "{ariaName} をデフォルトにリセット", + "kbn.management.settings.field.resetToDefaultLinkText": "デフォルトにリセット", + "kbn.management.settings.field.saveButtonAriaLabel": "{ariaName} を保存", + "kbn.management.settings.field.saveButtonLabel": "保存", + "kbn.management.settings.field.saveFieldErrorMessage": "{name} を保存できませんでした", + "kbn.management.settings.form.clearNoSearchResultText": "(検索結果を消去)", + "kbn.management.settings.form.clearSearchResultText": "(検索結果を消去)", + "kbn.management.settings.form.noSearchResultText": "設定が見つかりませんでした {clearSearch}", + "kbn.management.settings.form.searchResultText": "検索用語により {settingsCount} 件の設定が非表示になっています {clearSearch}", + "advancedSettings.pageTitle": "設定", + "kbn.management.settings.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", + "kbn.management.settings.searchBarAriaLabel": "高度な設定を検索", + "kbn.management.settings.sectionLabel": "高度な設定", + "kbn.managementTitle": "管理", + "kbn.settings.advancedSettings.voiceAnnouncement.searchResultScreenReaderMessage": "{query} を検索しました。{sectionLenght, plural, one {# セクション} other {# セクション}}に{optionLenght, plural, one {# オプション} other { # オプション}}があります。", + "kbn.topNavMenu.openInspectorButtonLabel": "検査", + "kbn.topNavMenu.refreshButtonLabel": "更新", + "kbn.topNavMenu.saveVisualizationButtonLabel": "保存", + "kbn.topNavMenu.shareVisualizationButtonLabel": "共有", + "kbn.visualize.badge.readOnly.text": "読み込み専用", + "kbn.visualize.badge.readOnly.tooltip": "ビジュアライゼーションを保存できません", + "kbn.visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "indexPattern または savedSearchId が必要です", + "kbn.visualize.editor.createBreadcrumb": "作成", + "kbn.visualize.experimentalVisInfoText": "このビジュアライゼーションは実験的なものです。", + "kbn.visualize.linkedToSearch.unlinkButtonTooltip": "保存された検索からリンクを解除するにはダブルクリックします", + "kbn.visualize.linkedToSearch.unlinkSuccessNotificationText": "保存された検索「{searchTitle}」からリンクが解除されました", + "kbn.visualize.linkedToSearchInfoText": "保存された検索にリンクされています", + "kbn.visualize.listing.betaTitle": "ベータ", + "kbn.visualize.listing.betaTooltip": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャル GA 機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャル GA 機能の SLA が適用されません", + "kbn.visualize.listing.breadcrumb": "可視化", + "kbn.visualize.listing.createNew.createButtonLabel": "新規ビジュアライゼーションを追加", + "kbn.visualize.listing.createNew.description": "データに基づき異なるビジュアライゼーションを作成できます。", + "kbn.visualize.listing.createNew.title": "最初のビジュアライゼーションの作成", + "kbn.visualize.listing.experimentalTitle": "実験的", + "kbn.visualize.listing.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", + "kbn.visualize.listing.noItemsMessage": "ビジュアライゼーションがないようです。", + "kbn.visualize.listing.table.entityName": "ビジュアライゼーション", + "kbn.visualize.listing.table.entityNamePlural": "ビジュアライゼーション", + "kbn.visualize.listing.table.listTitle": "ビジュアライゼーション", + "kbn.visualize.listing.table.titleColumnName": "タイトル", + "kbn.visualize.listing.table.typeColumnName": "タイプ", + "kbn.visualize.newVisWizard.betaDescription": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャル GA 機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャル GA 機能の SLA が適用されません", + "kbn.visualize.newVisWizard.betaTitle": "ベータ", + "kbn.visualize.newVisWizard.chooseSourceTitle": "ソースの選択", + "kbn.visualize.newVisWizard.experimentalDescription": "このビジュアライゼーションは実験的なものです。デザインと導入は安定したビジュアライゼーションよりも完成度が低く、変更される可能性があります。", + "kbn.visualize.newVisWizard.experimentalTitle": "実験的", + "kbn.visualize.newVisWizard.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", + "kbn.visualize.newVisWizard.filterVisTypeAriaLabel": "ビジュアライゼーションのタイプでフィルタリング", + "kbn.visualize.newVisWizard.helpText": "タイプを選択してビジュアライゼーションの作成を始めましょう。", + "kbn.visualize.newVisWizard.helpTextAriaLabel": "タイプを選択してビジュアライゼーションの作成を始めましょう。ESC を押してこのモダルを閉じます。Tab キーを押して次に進みます。", + "kbn.visualize.newVisWizard.newVisTypeTitle": "新規 {visTypeName}", + "kbn.visualize.newVisWizard.resultsFound": "{resultCount} 個の{resultCount, plural, one {タイプ} other {タイプ} } が見つかりました", + "kbn.visualize.newVisWizard.searchSelection.notFoundLabel": "一致するインデックスまたは保存された検索が見つかりませんでした。", + "kbn.visualize.newVisWizard.searchSelection.savedObjectType.indexPattern": "インデックスパターン", + "kbn.visualize.newVisWizard.searchSelection.savedObjectType.search": "保存された検索", + "kbn.visualize.newVisWizard.selectVisType": "ビジュアライゼーションのタイプを選択してください", + "kbn.visualize.newVisWizard.title": "新規ビジュアライゼーション", + "kbn.visualize.newVisWizard.visTypeAliasDescription": "Visualize外でKibanaアプリケーションを開きます。", + "kbn.visualize.newVisWizard.visTypeAliasTitle": "Kibanaアプリケーション", + "kbn.visualize.pageHeading": "{chartName} {chartType} ビジュアライゼーション", + "kbn.visualize.saveDialog.saveAndAddToDashboardButtonLabel": "保存してダッシュボードに追加", + "kbn.visualize.topNavMenu.openInspectorButtonAriaLabel": "ビジュアライゼーションのインスペクターを開く", + "kbn.visualize.topNavMenu.openInspectorDisabledButtonTooltip": "このビジュアライゼーションはインスペクターをサポートしていません。", + "kbn.visualize.topNavMenu.refreshButtonAriaLabel": "更新", + "kbn.visualize.topNavMenu.saveVisualization.failureNotificationText": "「{visTitle}」の保存中にエラーが発生しました", + "kbn.visualize.topNavMenu.saveVisualization.successNotificationText": "「{visTitle}」が保存されました", + "kbn.visualize.topNavMenu.saveVisualizationButtonAriaLabel": "ビジュアライゼーションを保存", + "kbn.visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "保存する前に変更を適用または破棄", + "kbn.visualize.topNavMenu.shareVisualizationButtonAriaLabel": "ビジュアライゼーションを共有", + "kbn.visualize.visualizeDescription": "ビジュアライゼーションを作成して Elasticsearch インデックスに保存されたデータを集約します。", + "kbn.visualize.visualizeListingBreadcrumbsTitle": "可視化", + "kbn.visualize.visualizeListingDeleteErrorTitle": "ビジュアライゼーションの削除中にエラーが発生", + "kbn.visualize.wizard.step1Breadcrumb": "作成", + "kbn.visualize.wizard.step2Breadcrumb": "作成", + "kbn.visualizeTitle": "可視化", "home.tutorials.common.auditbeat.cloudInstructions.gettingStarted.title": "はじめに", "home.tutorials.common.auditbeat.premCloudInstructions.gettingStarted.title": "はじめに", "home.tutorials.common.auditbeat.premInstructions.gettingStarted.title": "はじめに", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 14a27f6098935..820c513966691 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -974,6 +974,722 @@ "kbn.advancedSettings.visualization.tileMap.wmsDefaultsTitle": "默认 WMS 属性", "kbn.advancedSettings.visualizeEnableLabsText": "允许用户创建、查看和编辑实验性可视化。如果禁用,\n 仅被视为生产就绪的可视化可供用户使用。", "kbn.advancedSettings.visualizeEnableLabsTitle": "启用实验性可视化", + "kbn.context.breadcrumb": "{indexPatternTitle}#{docId} 的上下文", + "kbn.context.failedToLoadAnchorDocumentDescription": "无法加载该定位点文档", + "kbn.context.failedToLoadAnchorDocumentErrorDescription": "无法加载定位点文档。", + "kbn.context.loadButtonLabel": "加载", + "kbn.context.loadingDescription": "正在加载……", + "kbn.context.newerDocumentsAriaLabel": "较新文档数目", + "kbn.context.newerDocumentsDescription": "较新文档", + "kbn.context.newerDocumentsWarning": "仅可以找到 {docCount} 个比定位标记新的文档。", + "kbn.context.newerDocumentsWarningZero": "找不到比定位标记新的文档。", + "kbn.context.noSearchableTiebreakerFieldDescription": "索引模式 {indexPatternId} 中找不到任何可搜索的平分决胜字段。请更改高级设置“{tieBreakerFields}”以包括此索引模式的有效字段。", + "kbn.context.olderDocumentsAriaLabel": "较旧文档数目", + "kbn.context.olderDocumentsDescription": "较旧文档", + "kbn.context.olderDocumentsWarning": "仅可以找到 {docCount} 个比定位标记旧的文档。", + "kbn.context.olderDocumentsWarningZero": "找不到比定位标记旧的文档。", + "kbn.context.reloadPageDescription.discoverLinkText": "Discover", + "kbn.context.reloadPageDescription.reloadOrVisitTextMessage": "请重新加载或访问", + "kbn.context.reloadPageDescription.selectValidAnchorDocumentTextMessage": "以选择有效地定位点文档。", + "kbn.context.unableToLoadAnchorDocumentDescription": "无法加载该定位点文档", + "kbn.context.unableToLoadDocumentDescription": "无法加载文档", + "kbn.dashboard.addVisualizationLinkAriaLabel": "添加可视化", + "kbn.dashboard.badge.readOnly.text": "只读", + "kbn.dashboard.badge.readOnly.tooltip": "无法保存仪表板", + "kbn.dashboard.changeViewModeConfirmModal.cancelButtonLabel": "继续编辑", + "kbn.dashboard.changeViewModeConfirmModal.confirmButtonLabel": "放弃更改", + "kbn.dashboard.changeViewModeConfirmModal.discardChangesDescription": "放弃更改后,它们将无法恢复。", + "kbn.dashboard.changeViewModeConfirmModal.discardChangesTitle": "放弃对仪表板的更改?", + "kbn.dashboard.dashboardAppBreadcrumbsTitle": "仪表板", + "kbn.dashboard.dashboardBreadcrumbsTitle": "仪表板", + "kbn.dashboard.dashboardWasNotSavedDangerMessage": "仪表板 “{dashTitle}” 未保存。错误:{errorMessage}", + "kbn.dashboard.dashboardWasSavedSuccessMessage": "仪表板 “{dashTitle}” 已保存", + "kbn.dashboard.featureCatalogue.dashboardDescription": "显示和共享可视化和已保存搜索的集合。", + "kbn.dashboard.featureCatalogue.dashboardTitle": "仪表板", + "kbn.dashboard.fillDashboardTitle": "此仪表板是空的。让我们来填充它!", + "kbn.dashboard.howToStartWorkingOnNewDashboardDescription1": "单击上述菜单栏中的 ", + "kbn.dashboard.howToStartWorkingOnNewDashboardDescription2": " 按钮以着手处理新的仪表板。", + "kbn.dashboard.howToStartWorkingOnNewDashboardEditLinkText": "编辑", + "kbn.dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription": "您可以将任何 Kibana 应用的数据视图组合到一个仪表板中,从而在一个位置查看所有内容。", + "kbn.dashboard.listing.createNewDashboard.createButtonLabel": "创建新的仪表板", + "kbn.dashboard.listing.createNewDashboard.newToKibanaDescription": "Kibana 新手?{sampleDataInstallLink}来试用一下。", + "kbn.dashboard.listing.createNewDashboard.sampleDataInstallLinkText": "安装一些样例数据", + "kbn.dashboard.listing.createNewDashboard.title": "创建您的首个仪表板", + "kbn.dashboard.listing.dashboardsTitle": "仪表板", + "kbn.dashboard.listing.noItemsMessage": "似乎您没有任何仪表板。", + "kbn.dashboard.listing.table.descriptionColumnName": "描述", + "kbn.dashboard.listing.table.entityName": "仪表板", + "kbn.dashboard.listing.table.entityNamePlural": "仪表板", + "kbn.dashboard.listing.table.titleColumnName": "标题", + "kbn.dashboard.panel.invalidData": "url 中的数据无效", + "kbn.dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "无法迁移用于“6.1.0”向后兼容的面板数据,面板不包含所需的列和/或行字段", + "kbn.dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "无法迁移用于“6.3.0”向后兼容的面板数据,面板不包含预期字段:{key}", + "kbn.dashboard.savedDashboard.newDashboardTitle": "新建仪表板", + "kbn.dashboard.savedDashboardsTitle": "仪表板", + "kbn.dashboard.stateManager.timeNotSavedWithDashboardErrorMessage": "时间未随此仪表板保存,因此无法同步。", + "kbn.dashboard.strings.dashboardEditTitle": "编辑 {title}", + "kbn.dashboard.strings.dashboardUnsavedEditTitle": "编辑 {title}(未保存)", + "kbn.dashboard.topNav.cloneModal.cancelButtonLabel": "取消", + "kbn.dashboard.topNav.cloneModal.cloneDashboardModalHeaderTitle": "克隆面板", + "kbn.dashboard.topNav.cloneModal.confirmButtonLabel": "确认克隆", + "kbn.dashboard.topNav.cloneModal.confirmCloneDescription": "确认克隆", + "kbn.dashboard.topNav.cloneModal.dashboardExistsDescription": "单击 “{confirmClone}” 以克隆具有重复标题的仪表板。", + "kbn.dashboard.topNav.cloneModal.dashboardExistsTitle": "具有标题 {newDashboardName} 的仪表板已存在。", + "kbn.dashboard.topNav.cloneModal.enterNewNameForDashboardDescription": "请为您的仪表板输入新的名称。", + "kbn.dashboard.topNav.options.hideAllPanelTitlesSwitchLabel": "显示面板标题", + "kbn.dashboard.topNav.options.useMarginsBetweenPanelsSwitchLabel": "在面板间使用边距", + "kbn.dashboard.topNav.saveModal.descriptionFormRowLabel": "描述", + "kbn.dashboard.topNav.saveModal.storeTimeWithDashboardFormRowHelpText": "每次加载此仪表板时,这都会将时间筛选更改为当前选定的时间。", + "kbn.dashboard.topNav.saveModal.storeTimeWithDashboardFormRowLabel": "将时间随仪表板保存", + "kbn.dashboard.topNav.showCloneModal.dashboardCopyTitle": "{title} 副本", + "kbn.dashboard.topNave.addButtonAriaLabel": "添加", + "kbn.dashboard.topNave.addConfigDescription": "将面板保存到仪表板", + "kbn.dashboard.topNave.cancelButtonAriaLabel": "取消", + "kbn.dashboard.topNave.cloneButtonAriaLabel": "克隆", + "kbn.dashboard.topNave.cloneConfigDescription": "创建仪表板的副本", + "kbn.dashboard.topNave.editButtonAriaLabel": "编辑", + "kbn.dashboard.topNave.editConfigDescription": "切换到编辑模式", + "kbn.dashboard.topNave.fullScreenButtonAriaLabel": "全屏", + "kbn.dashboard.topNave.fullScreenConfigDescription": "全屏模式", + "kbn.dashboard.topNave.optionsButtonAriaLabel": "选项", + "kbn.dashboard.topNave.optionsConfigDescription": "选项", + "kbn.dashboard.topNave.saveButtonAriaLabel": "保存", + "kbn.dashboard.topNave.saveConfigDescription": "保存您的仪表板", + "kbn.dashboard.topNave.shareButtonAriaLabel": "共享", + "kbn.dashboard.topNave.shareConfigDescription": "共享仪表板", + "kbn.dashboard.topNave.viewConfigDescription": "取消编辑并切换到仅查看模式", + "kbn.dashboard.urlWasRemovedInSixZeroWarningMessage": "6.0 中未移除 url“dashboard/create”。请更新您的书签。", + "kbn.dashboard.visitVisualizeAppLinkText": "访问 Visualize 应用", + "kbn.dashboardTitle": "仪表板", + "kbn.devToolsTitle": "开发工具", + "kbn.discover.backToTopLinkText": "返至顶部。", + "kbn.discover.badge.readOnly.text": "只读", + "kbn.discover.badge.readOnly.tooltip": "无法保存搜索", + "kbn.discover.bucketIntervalTooltip": "此时间间隔将创建{bucketsDescription}而无法在选定时间范围内显示 ,因此其已缩放至 {bucketIntervalDescription}", + "kbn.discover.bucketIntervalTooltip.tooLargeBucketsText": "过大的存储桶", + "kbn.discover.bucketIntervalTooltip.tooManyBucketsText": "过多的存储桶", + "kbn.discover.discoverBreadcrumbTitle": "Discover", + "kbn.discover.discoverDescription": "通过查询和筛选原始文档来以交互方式浏览您的数据。", + "kbn.discover.discoverTitle": "Discover", + "kbn.discover.documentsAriaLabel": "文档", + "kbn.discover.errorLoadingData": "加载数据时出错", + "kbn.discover.fetchError.howToAddressErrorDescription": "您可以通过编辑 “{scriptedFields}” 选项卡下 “{managementLink}” 中的 “{fetchErrorScript}” 字段来解决此错误。", + "kbn.discover.fetchError.managmentLinkText": "管理 > 索引模式", + "kbn.discover.fetchError.scriptedFieldsText": "“脚本字段”", + "kbn.discover.fieldChooser.detailViews.emptyStringText": "空字符串", + "kbn.discover.fieldChooser.detailViews.filterOutValueButtonAriaLabel": "筛除此值", + "kbn.discover.fieldChooser.detailViews.filterValueButtonAriaLabel": "筛留此值", + "kbn.discover.fieldChooser.detailViews.recordsText": "个记录", + "kbn.discover.fieldChooser.detailViews.topValuesInRecordsDescription": "排名前 5 位的值,范围:", + "kbn.discover.fieldChooser.detailViews.visualizeLinkText": "可视化", + "kbn.discover.fieldChooser.detailViews.warningsText": "{warningsLength, plural, one {# 个警告} other {# 个警告}}", + "kbn.discover.fieldChooser.discoverField.addButtonLabel": "添加", + "kbn.discover.fieldChooser.discoverField.bucketAriaLabel": "值:{value}", + "kbn.discover.fieldChooser.discoverField.emptyStringText": "空字符串", + "kbn.discover.fieldChooser.discoverField.removeButtonLabel": "移除", + "kbn.discover.fieldChooser.discoverField.scriptedFieldsTakeLongExecuteDescription": "脚本字段执行时间会很长。", + "kbn.discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForGeoFieldsErrorMessage": "分析不适用于地理字段。", + "kbn.discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForObjectFieldsErrorMessage": "分析不适用于对象字段。", + "kbn.discover.fieldChooser.fieldCalculator.fieldIsNotPresentInDocumentsErrorMessage": "此字段在您的 Elasticsearch 映射中,但不在文档表中显示的 {hitsLength} 个文档中。您可能仍能够基于其进行可视化或搜索。", + "kbn.discover.fieldChooser.fieldFilterFacetButtonLabel": "已筛选字段", + "kbn.discover.fieldChooser.filter.aggregatableLabel": "可聚合", + "kbn.discover.fieldChooser.filter.availableFieldsTitle": "可用字段", + "kbn.discover.fieldChooser.filter.hideMissingFieldsLabel": "隐藏缺失字段", + "kbn.discover.fieldChooser.filter.indexAndFieldsSectionAriaLabel": "索引和字段", + "kbn.discover.fieldChooser.filter.popularTitle": "常用", + "kbn.discover.fieldChooser.filter.searchableLabel": "可搜索", + "kbn.discover.fieldChooser.filter.selectedFieldsTitle": "选定字段", + "kbn.discover.fieldChooser.filter.typeLabel": "类型", + "kbn.discover.fieldChooser.searchPlaceHolder": "搜索字段", + "kbn.discover.fieldChooser.toggleFieldFilterButtonHideAriaLabel": "隐藏字段设置", + "kbn.discover.fieldChooser.toggleFieldFilterButtonShowAriaLabel": "显示字段设置", + "kbn.discover.fieldNameIcons.booleanAriaLabel": "布尔字段", + "kbn.discover.fieldNameIcons.conflictFieldAriaLabel": "冲突字段", + "kbn.discover.fieldNameIcons.dateFieldAriaLabel": "日期字段", + "kbn.discover.fieldNameIcons.geoPointFieldAriaLabel": "地理位置点字段", + "kbn.discover.fieldNameIcons.geoShapeFieldAriaLabel": "几何形状字段", + "kbn.discover.fieldNameIcons.ipAddressFieldAriaLabel": "IP 地址字段", + "kbn.discover.fieldNameIcons.murmur3FieldAriaLabel": "Murmur3 字段", + "kbn.discover.fieldNameIcons.numberFieldAriaLabel": "数字字段", + "kbn.discover.fieldNameIcons.sourceFieldAriaLabel": "源字段", + "kbn.discover.fieldNameIcons.stringFieldAriaLabel": "字符串字段", + "kbn.discover.fieldNameIcons.unknownFieldAriaLabel": "未知字段", + "kbn.discover.histogram.partialData.bucketTooltipText": "选定的时间范围不包括此整个存储桶,其可能包含部分数据。", + "kbn.discover.histogramOfFoundDocumentsAriaLabel": "已找到文档的直方图", + "kbn.discover.hitsPluralTitle": "{hits, plural, one {次命中} other {次命中}}", + "kbn.discover.howToChangeTheTimeTooltip": "要更改时间,请单击导航栏中的日历图标", + "kbn.discover.howToSeeOtherMatchingDocumentsDescription": "以下是匹配您的搜索的前 {sampleSize} 个文档,请优化您的搜索以查看其他文档。", + "kbn.discover.inspectorRequestDataTitle": "数据", + "kbn.discover.inspectorRequestDescription": "此请求将查询 Elasticsearch 以获取搜索的数据。", + "kbn.discover.localMenu.inspectTitle": "检查", + "kbn.discover.localMenu.localMenu.newSearchTitle": "新建", + "kbn.discover.localMenu.newSearchDescription": "新搜索", + "kbn.discover.localMenu.openInspectorForSearchDescription": "打开 Inspector 以进行搜索", + "kbn.discover.localMenu.openSavedSearchDescription": "打开保存的搜索", + "kbn.discover.localMenu.openTitle": "打开", + "kbn.discover.localMenu.saveSaveSearchDescription": "保存您的 Discover 搜索,以便可以在可视化和仪表板中使用该搜索", + "kbn.discover.localMenu.saveSearchDescription": "保存搜索", + "kbn.discover.localMenu.saveTitle": "保存", + "kbn.discover.localMenu.shareSearchDescription": "共享搜索", + "kbn.discover.localMenu.shareTitle": "共享", + "kbn.discover.noResults.addressShardFailuresTitle": "解决分片故障", + "kbn.discover.noResults.expandYourTimeRangeTitle": "展开时间范围", + "kbn.discover.noResults.indexFailureIndexText": "索引 {failureIndex}", + "kbn.discover.noResults.indexFailureShardText": "{index},分片 {failureShard}", + "kbn.discover.noResults.queryMayNotMatchTitle": "您正在查看的一个或多个索引包含日期字段。您的查询在当前时间范围内可能不匹配任何数据,也可能在当前选定的时间范围内没有任何数据。您可以尝试将时间范围更改为包含数据的时间范围。", + "kbn.discover.noResults.requiredPluginIsNotInstalledOrDisabledTitle": "基于 {unsupportedType} 索引的索引模式需要 X-Pack 的 {unsupportedType} 插件,但其未安装或已禁用", + "kbn.discover.noResults.searchExamples.400to499StatusCodeExampleTitle": "查找所有介于 400-499 之间的状态代码", + "kbn.discover.noResults.searchExamples.400to499StatusCodeWithPhpExtensionExampleTitle": "查找状态代码 400-499 以及扩展名 php", + "kbn.discover.noResults.searchExamples.400to499StatusCodeWithPhpOrHtmlExtensionExampleTitle": "查找状态代码 400-499 以及扩展名 php 或 html", + "kbn.discover.noResults.searchExamples.anyField200StatusCodeExampleTitle": "查找任意字段包含数字 200 的请求", + "kbn.discover.noResults.searchExamples.howTosearchForWebServerLogsDescription": "顶部的搜索栏采用了 Elasticsearch 对 Lucene {queryStringSyntaxLink} 的支持技术。以下是一些示例,说明如何搜索已解析成若干字段的 Web 服务器日志。", + "kbn.discover.noResults.searchExamples.noResultsMatchSearchCriteriaTitle": "没有任何结果匹配您的搜索条件", + "kbn.discover.noResults.searchExamples.queryStringSyntaxLinkText": "查询字符串语法", + "kbn.discover.noResults.searchExamples.refineYourQueryTitle": "优化您的查询", + "kbn.discover.noResults.searchExamples.statusField200StatusCodeExampleTitle": "在状态字段中查找 200", + "kbn.discover.noResults.shardFailuresDescription": "发生了以下分片故障:", + "kbn.discover.notifications.notSavedSearchTitle": "搜索 “{savedSearchTitle}” 未保存。", + "kbn.discover.notifications.savedSearchTitle": "搜索 “{savedSearchTitle}” 已保存", + "kbn.discover.painlessError.painlessScriptedFieldErrorMessage": "Painless 脚本字段 “{script}” 有错误。", + "kbn.discover.reloadSavedSearchButton": "重置搜索", + "kbn.discover.rootBreadcrumb": "Discover", + "kbn.discover.savedSearch.savedObjectName": "已保存搜索", + "kbn.discover.scaledToDescription": "已缩放至 {bucketIntervalDescription}", + "kbn.discover.searchingTitle": "正在搜索", + "kbn.discover.showingDefaultIndexPatternWarningDescription": "显示默认索引模式:“{loadedIndexPatternTitle}” ({loadedIndexPatternId})", + "kbn.discover.showingSavedIndexPatternWarningDescription": "显示保存的索引模式:“{ownIndexPatternTitle}” ({ownIndexPatternId})", + "kbn.discover.skipToBottomButtonLabel": "跳至底部", + "kbn.discover.topNav.openSearchPanel.manageSearchesButtonLabel": "管理搜索", + "kbn.discover.topNav.openSearchPanel.noSearchesFoundDescription": "未找到匹配的搜索。", + "kbn.discover.topNav.openSearchPanel.openSearchTitle": "打开搜索", + "kbn.discover.uninitializedRefreshButtonText": "刷新数据", + "kbn.discover.uninitializedText": "编写查询,添加一些筛选,或只需单击“刷新”来检索当前查询的结果。", + "kbn.discover.uninitializedTitle": "开始搜索", + "kbn.discover.valueIsNotConfiguredIndexPatternIDWarningTitle": "{stateVal} 不是配置的索引模式 ID", + "kbn.discoverTitle": "Discover", + "kbn.doc.couldNotFindDocumentsDescription": "无文档匹配该 ID。", + "kbn.doc.failedToExecuteQueryDescription": "无法执行查询", + "kbn.doc.failedToLocateDocumentDescription": "无法找到文档", + "kbn.doc.failedToLocateIndexPattern": "无索引模式匹配 ID {indexPatternId}", + "kbn.doc.loadingDescription": "正在加载……", + "kbn.doc.somethingWentWrongDescription": "{indexName} 缺失。", + "kbn.doc.somethingWentWrongDescriptionAddon": "请确保索引存在。", + "kbn.docTable.limitedSearchResultLabel": "仅限 {resultCount} 个结果。优化您的搜索。", + "kbn.docTable.noResultsTitle": "找不到结果", + "kbn.docTable.pagerControl.pagesCountLabel": "{startItem}–{endItem} / {totalItems}", + "kbn.docTable.tableHeader.moveColumnLeftButtonAriaLabel": "向左移动“{columnName}”列", + "kbn.docTable.tableHeader.moveColumnLeftButtonTooltip": "向左移动列", + "kbn.docTable.tableHeader.moveColumnRightButtonAriaLabel": "向右移动“{columnName}”列", + "kbn.docTable.tableHeader.moveColumnRightButtonTooltip": "向右移动列", + "kbn.docTable.tableHeader.removeColumnButtonAriaLabel": "删除“{columnName}”列", + "kbn.docTable.tableHeader.removeColumnButtonTooltip": "删除列", + "kbn.docTable.tableHeader.sortByColumnAscendingAriaLabel": "升序排序 {columnName}", + "kbn.docTable.tableHeader.sortByColumnDescendingAriaLabel": "降序排序 {columnName}", + "kbn.docTable.tableHeader.sortByColumnUnsortedAriaLabel": "停止按 {columnName} 排序", + "kbn.docTable.tableRow.detailHeading": "已展开文档", + "kbn.docTable.tableRow.filterForValueButtonAriaLabel": "筛留值", + "kbn.docTable.tableRow.filterForValueButtonTooltip": "筛留值", + "kbn.docTable.tableRow.filterOutValueButtonAriaLabel": "筛除值", + "kbn.docTable.tableRow.filterOutValueButtonTooltip": "筛除值", + "kbn.docTable.tableRow.toggleRowDetailsButtonAriaLabel": "切换行详细信息", + "kbn.docTable.tableRow.viewSingleDocumentLinkText": "查看单个文档", + "kbn.docTable.tableRow.viewSurroundingDocumentsLinkText": "查看周围文档", + "kbn.embeddable.errorTitle": "提取数据时出错", + "kbn.embeddable.inspectorRequestDataTitle": "数据", + "kbn.embeddable.inspectorRequestDescription": "此请求将查询 Elasticsearch 以获取搜索的数据。", + "kbn.embeddable.search.displayName": "搜索", + "kbn.home.addData.apm.addApmButtonLabel": "添加 APM", + "kbn.home.addData.apm.nameDescription": "APM 自动从您的应用程序内收集深入全面的性能指标和错误。", + "kbn.home.addData.apm.nameTitle": "APM", + "kbn.home.addData.logging.addLogDataButtonLabel": "添加日志数据", + "kbn.home.addData.logging.nameDescription": "从常见的数据源采集日志,并在预配置的仪表板中轻松实现可视化。", + "kbn.home.addData.logging.nameTitle": "日志", + "kbn.home.addData.metrics.addMetricsDataButtonLabel": "添加指标数据", + "kbn.home.addData.metrics.nameDescription": "从您的服务器上运行的操作系统和服务收集指标。", + "kbn.home.addData.metrics.nameTitle": "指标", + "kbn.home.addData.sampleDataLink": "加载数据集和 Kibana 仪表板", + "kbn.home.addData.sampleDataTitle": "添加样例数据", + "kbn.home.addData.siem.addSiemEventsButtonLabel": "添加安全事件", + "kbn.home.addData.siem.nameDescription": "集中安全事件,以通过即用型可视化实现交互式调查。", + "kbn.home.addData.siem.nameTitle": "SIEM", + "kbn.home.addData.uploadFileLink": "导入 CSV、NDJSON 或日志文件", + "kbn.home.addData.uploadFileTitle": "从日志文件上传数据", + "kbn.home.addData.yourDataLink": "连接到您的 Elasticsearch 索引", + "kbn.home.addData.yourDataTitle": "使用 Elasticsearch 数据", + "kbn.home.breadcrumbs.addDataTitle": "添加数据", + "kbn.home.breadcrumbs.homeTitle": "主页", + "kbn.home.dataManagementDisableCollection": "要停止收集,", + "kbn.home.dataManagementDisableCollectionLink": "请在此禁用使用情况数据。", + "kbn.home.dataManagementDisclaimerPrivacy": "要了解使用情况数据如何帮助我们管理和改善产品和服务,请参阅我们的 ", + "kbn.home.dataManagementDisclaimerPrivacyLink": "隐私声明。", + "kbn.home.dataManagementEnableCollection": " 要启动收集,", + "kbn.home.dataManagementEnableCollectionLink": "请在此处启用使用情况数据。", + "kbn.home.directories.manage.nameTitle": "管理 Elastic Stack", + "kbn.home.directories.notFound.description": "未找到要寻找的内容?", + "kbn.home.directories.notFound.viewFullButtonLabel": "查看 Kibana 插件的完整目录", + "kbn.home.directories.visualize.nameTitle": "可视化和浏览数据", + "kbn.home.directory.directoryTitle": "目录", + "kbn.home.directory.tabs.administrativeTitle": "管理", + "kbn.home.directory.tabs.allTitle": "全部", + "kbn.home.directory.tabs.dataTitle": "数据浏览和可视化", + "kbn.home.directory.tabs.otherTitle": "其他", + "kbn.home.exploreButtonLabel": "自己浏览", + "kbn.home.exploreYourDataDescription": "完成所有步骤后,您便可以随时浏览自己的数据。", + "kbn.home.letsStartDescription": "我们注意到在您的集群中没有任何数据。您可以试用我们的样例数据和仪表板,也可以直接使用自己的数据。", + "kbn.home.letsStartTitle": "开始使用", + "kbn.home.loadTutorials.requestFailedErrorMessage": "请求失败,状态代码:{status}", + "kbn.home.loadTutorials.unableToLoadErrorMessage": "无法加载教程", + "kbn.home.recentlyAccessed.recentlyViewedTitle": "最近查看", + "kbn.home.sampleDataSet.installedLabel": "{name} 已安装", + "kbn.home.sampleDataSet.unableToInstallErrorMessage": "无法安装样例数据集:{name}", + "kbn.home.sampleDataSet.unableToLoadListErrorMessage": "无法加载样例数据集列表", + "kbn.home.sampleDataSet.unableToUninstallErrorMessage": "无法卸载样例数据集:{name}", + "kbn.home.sampleDataSet.uninstalledLabel": "{name} 已卸载", + "kbn.home.sampleDataSetCard.addButtonAriaLabel": "添加{datasetName}", + "kbn.home.sampleDataSetCard.addButtonLabel": "添加数据", + "kbn.home.sampleDataSetCard.addingButtonAriaLabel": "正在添加 {datasetName}", + "kbn.home.sampleDataSetCard.addingButtonLabel": "正在添加", + "kbn.home.sampleDataSetCard.dashboardLinkLabel": "仪表板", + "kbn.home.sampleDataSetCard.default.addButtonAriaLabel": "添加{datasetName}", + "kbn.home.sampleDataSetCard.default.addButtonLabel": "添加数据", + "kbn.home.sampleDataSetCard.default.unableToVerifyErrorMessage": "无法确认数据集状态,错误:{statusMsg}", + "kbn.home.sampleDataSetCard.removeButtonAriaLabel": "移除 {datasetName}", + "kbn.home.sampleDataSetCard.removeButtonLabel": "删除", + "kbn.home.sampleDataSetCard.removingButtonAriaLabel": "正在移除 {datasetName}", + "kbn.home.sampleDataSetCard.removingButtonLabel": "正在删除", + "kbn.home.sampleDataSetCard.viewDataButtonAriaLabel": "查看“{datasetName}”", + "kbn.home.sampleDataSetCard.viewDataButtonLabel": "查看数据", + "kbn.home.tryButtonLabel": "试用我的样例数据", + "kbn.home.tutorial.addDataToKibanaTitle": "将数据添加到 Kibana", + "kbn.home.tutorial.card.sampleDataDescription": "开始使用这些“一键式”数据集浏览 Kibana。", + "kbn.home.tutorial.card.sampleDataTitle": "样例数据", + "kbn.home.tutorial.elasticCloudButtonLabel": "Elastic Cloud", + "kbn.home.tutorial.instruction.copyButtonLabel": "复制代码片段", + "kbn.home.tutorial.instructionSet.checkStatusButtonLabel": "检查状态", + "kbn.home.tutorial.instructionSet.customizeLabel": "定制您的代码片段", + "kbn.home.tutorial.instructionSet.noDataLabel": "未找到任何数据", + "kbn.home.tutorial.instructionSet.statusCheckTitle": "状态检查", + "kbn.home.tutorial.instructionSet.successLabel": "成功", + "kbn.home.tutorial.instructionSet.toggleAriaLabel": "切换命令参数可见性", + "kbn.home.tutorial.introduction.betaLabel": "公测版", + "kbn.home.tutorial.introduction.imageAltDescription": "主仪表板的截图。", + "kbn.home.tutorial.introduction.viewButtonLabel": "查看导出的字段", + "kbn.home.tutorial.noTutorialLabel": "无法找到教程 {tutorialId}", + "kbn.home.tutorial.savedObject.addedLabel": "{savedObjectsLength} 个已保存对象已成功添加", + "kbn.home.tutorial.savedObject.confirmButtonLabel": "确认覆盖", + "kbn.home.tutorial.savedObject.defaultButtonLabel": "加载 Kibana 对象", + "kbn.home.tutorial.savedObject.installLabel": "导入索引模式、可视化和预定义仪表板。", + "kbn.home.tutorial.savedObject.installStatusLabel": "{savedObjectsLength} 个对象中有 {overwriteErrorsLength} 个已存在。单击“确认覆盖”以导入和覆盖现有对象。对这些对象的任何更改将丢失。", + "kbn.home.tutorial.savedObject.loadTitle": "加载 Kibana 对象", + "kbn.home.tutorial.savedObject.requestFailedErrorMessage": "请求失败,错误:{message}", + "kbn.home.tutorial.savedObject.unableToAddErrorMessage": "{savedObjectsLength} 个 kibana 对象中有 {errorsLength} 个无法添加,错误:{errorMessage}", + "kbn.home.tutorial.selfManagedButtonLabel": "自管型", + "kbn.home.tutorial.tabs.allTitle": "全部", + "kbn.home.tutorial.tabs.loggingTitle": "日志", + "kbn.home.tutorial.tabs.metricsTitle": "指标", + "kbn.home.tutorial.tabs.sampleDataTitle": "样例数据", + "kbn.home.tutorial.tabs.siemTitle": "SIEM", + "kbn.home.tutorial.unexpectedStatusCheckStateErrorDescription": "意外的状态检查状态 {statusCheckState}", + "kbn.home.tutorial.unhandledInstructionTypeErrorDescription": "未处理的指令类型 {visibleInstructions}", + "kbn.home.welcomeDescription": "您了解 Elastic Stack 的窗口", + "kbn.home.welcomeHomePageHeader": "Kibana 主页", + "kbn.home.welcomeTitle": "欢迎使用 Kibana", + "kbn.management.advancedSettings.badge.readOnly.text": "只读", + "kbn.management.advancedSettings.badge.readOnly.tooltip": "无法保存高级设置", + "kbn.management.createIndexPattern.betaLabel": "公测版", + "kbn.management.createIndexPattern.emptyState.checkDataButton": "检查新数据", + "kbn.management.createIndexPattern.emptyStateHeader": "找不到任何 Elasticsearch 数据", + "kbn.management.createIndexPattern.emptyStateLabel.emptyStateDetail": "{needToIndex}{learnHowLink}或{getStartedLink}", + "kbn.management.createIndexPattern.emptyStateLabel.getStartedLink": "开始使用一些样例数据集。", + "kbn.management.createIndexPattern.emptyStateLabel.learnHowLink": "了解操作方法", + "kbn.management.createIndexPattern.emptyStateLabel.needToIndexLabel": "您需要在 Elasticsearch 中索引一些数据后,才能创建索引模式。", + "kbn.management.createIndexPattern.includeSystemIndicesToggleSwitchLabel": "包括系统索引", + "kbn.management.createIndexPattern.loadClustersFailMsg": "无法加载远程集群", + "kbn.management.createIndexPattern.loadIndicesFailMsg": "无法加载索引", + "kbn.management.createIndexPattern.loadingState.checkingLabel": "正在检查 Elasticsearch 数据", + "kbn.management.createIndexPattern.step.indexPattern.allowLabel": "可以在索引模式中将 {asterisk} 用作通配符。", + "kbn.management.createIndexPattern.step.indexPattern.disallowLabel": "不能使用空格或字符 {characterList}。", + "kbn.management.createIndexPattern.step.indexPatternLabel": "索引模式", + "kbn.management.createIndexPattern.step.indexPatternPlaceholder": "index-name-*", + "kbn.management.createIndexPattern.step.invalidCharactersErrorMessage": "“{indexPatternName} 不能包含空格或字符:{characterList}", + "kbn.management.createIndexPattern.step.loadingHeader": "正在寻找匹配的索引......", + "kbn.management.createIndexPattern.step.loadingLabel": "请稍候......", + "kbn.management.createIndexPattern.step.nextStepButton": "下一步", + "kbn.management.createIndexPattern.step.pagingLabel": "每页行数:{perPage}", + "kbn.management.createIndexPattern.step.status.matchAnyLabel.matchAnyDetail": "您的索引模式可以匹配以下 {strongIndices}中的任意一个。", + "kbn.management.createIndexPattern.step.status.noSystemIndicesLabel": "没有 Elasticsearch 索引匹配您的模式。", + "kbn.management.createIndexPattern.step.status.noSystemIndicesWithPromptLabel": "没有 Elasticsearch 索引匹配您的模式。要查看匹配的系统索引,请切换右上角的开关。", + "kbn.management.createIndexPattern.step.status.notMatchLabel.allIndicesLabel": "{indicesLength, plural, one {# 个索引} other {# 个索引}}", + "kbn.management.createIndexPattern.step.status.notMatchLabel.notMatchDetail": "输入的索引模式不匹配任何索引。可以匹配您的以下{indicesLength, plural, one {} other {任何}} {strongIndices}。", + "kbn.management.createIndexPattern.step.status.partialMatchLabel.partialMatchDetail": "您的索引模式不匹配任何索引,但您有 {strongIndices}{matchedIndicesLength, plural, one {看起来} other {看起来}}类似。", + "kbn.management.createIndexPattern.step.status.partialMatchLabel.strongIndicesLabel": "{matchedIndicesLength, plural, one {# 个索引} other {# 个索引}}", + "kbn.management.createIndexPattern.step.status.successLabel.strongIndicesLabel": "{indicesLength, plural, one {# 个索引} other {# 个索引}}", + "kbn.management.createIndexPattern.step.status.successLabel.strongSuccessLabel": "成功!", + "kbn.management.createIndexPattern.step.status.successLabel.successDetail": "{strongSuccess}您的索引模式匹配 {strongIndices}。", + "kbn.management.createIndexPattern.step.warningHeader": "已有索引模式称作“{query}”", + "kbn.management.createIndexPattern.stepHeader": "第 1 步(共 2 步):定义索引模式", + "kbn.management.createIndexPattern.stepTime.backButton": "上一步", + "kbn.management.createIndexPattern.stepTime.createPatternButton": "创建索引模式", + "kbn.management.createIndexPattern.stepTime.creatingLabel": "正在创建索引模式……", + "kbn.management.createIndexPattern.stepTime.error": "错误", + "kbn.management.createIndexPattern.stepTime.field.loadingDropDown": "正在加载……", + "kbn.management.createIndexPattern.stepTime.field.noTimeFieldsLabel": "匹配此索引模式的索引不包含任何时间字段。", + "kbn.management.createIndexPattern.stepTime.fieldHeader": "时间筛选字段名称", + "kbn.management.createIndexPattern.stepTime.fieldLabel": "时间筛选将使用此字段按时间筛选您的数据。", + "kbn.management.createIndexPattern.stepTime.fieldWarningLabel": "您可以选择不使用时间字段,但将无法通过时间范围缩小您的数据范围。", + "kbn.management.createIndexPattern.stepTime.noTimeFieldOptionLabel": "我不想使用时间筛选", + "kbn.management.createIndexPattern.stepTime.noTimeFieldsLabel": "匹配此索引模式的索引不包含任何时间字段。", + "kbn.management.createIndexPattern.stepTime.options.hideButton": "隐藏高级选项", + "kbn.management.createIndexPattern.stepTime.options.patternHeader": "定制索引模式 ID", + "kbn.management.createIndexPattern.stepTime.options.patternLabel": "Kibana 将为每个索引模式提供唯一的标识符。如果不想使用此唯一 ID,请输入定制 ID。", + "kbn.management.createIndexPattern.stepTime.options.patternPlaceholder": "custom-index-pattern-id", + "kbn.management.createIndexPattern.stepTime.options.showButton": "显示高级选项", + "kbn.management.createIndexPattern.stepTime.patterAlreadyExists": "自定义索引模式 ID 已存在。", + "kbn.management.createIndexPattern.stepTime.refreshButton": "刷新", + "kbn.management.createIndexPattern.stepTimeHeader": "第 2 步(共 2 步):配置设置", + "kbn.management.createIndexPattern.stepTimeLabel": "您已将 “{indexPattern}” 定义为 “{indexPatternName}”。现在,在我们创建之前,您可以指定一些设置。", + "kbn.management.createIndexPatternHeader": "创建 {indexPatternName}", + "kbn.management.createIndexPatternLabel": "Kibana 使用索引模式从 Elasticsearch 索引中检索数据,以实现诸如可视化等功能。", + "kbn.management.editIndexPattern.deleteButton": "删除", + "kbn.management.editIndexPattern.deleteFieldButton": "删除", + "kbn.management.editIndexPattern.deleteHeader": "删除索引模式?", + "kbn.management.editIndexPattern.detailsAria": "索引模式详细信息", + "kbn.management.editIndexPattern.editFieldButton": "编辑", + "kbn.management.editIndexPattern.fields.allLangsDropDown": "所有语言", + "kbn.management.editIndexPattern.fields.allTypesDropDown": "所有字段类型", + "kbn.management.editIndexPattern.fields.filterAria": "筛选", + "kbn.management.editIndexPattern.fields.filterPlaceholder": "筛选", + "kbn.management.editIndexPattern.fields.table.additionalInfoAriaLabel": "其他字段信息", + "kbn.management.editIndexPattern.fields.table.aggregatableDescription": "这些字段可用在可视化聚合中", + "kbn.management.editIndexPattern.fields.table.aggregatableLabel": "可聚合", + "kbn.management.editIndexPattern.fields.table.editDescription": "编辑", + "kbn.management.editIndexPattern.fields.table.editLabel": "编辑", + "kbn.management.editIndexPattern.fields.table.excludedDescription": "提取 _source 时从其中排除的字段", + "kbn.management.editIndexPattern.fields.table.excludedLabel": "已排除", + "kbn.management.editIndexPattern.fields.table.formatHeader": "格式", + "kbn.management.editIndexPattern.fields.table.isAggregatableAria": "可聚合", + "kbn.management.editIndexPattern.fields.table.isExcludedAria": "已排除", + "kbn.management.editIndexPattern.fields.table.isSearchableAria": "可搜索", + "kbn.management.editIndexPattern.fields.table.multiTypeAria": "多类型字段", + "kbn.management.editIndexPattern.fields.table.multiTypeTooltip": "此字段的类型在不同的索引中会有所不同。其不可用于许多分析功能。", + "kbn.management.editIndexPattern.fields.table.nameHeader": "名称", + "kbn.management.editIndexPattern.fields.table.primaryTimeAriaLabel": "主要时间字段", + "kbn.management.editIndexPattern.fields.table.primaryTimeTooltip": "此字段表示事件发生的时间。", + "kbn.management.editIndexPattern.fields.table.searchableDescription": "这些字段可用于筛选栏", + "kbn.management.editIndexPattern.fields.table.searchableHeader": "可搜索", + "kbn.management.editIndexPattern.fields.table.typeHeader": "类型", + "kbn.management.editIndexPattern.mappingConflictHeader": "映射冲突", + "kbn.management.editIndexPattern.mappingConflictLabel": "匹配此模式的各个索引中{conflictFieldsLength, plural, one {一个字段已} other {# 个字段已}}定义为若干类型(字符串、整数等)。您仍能够在 Kibana 的各个部分中使用这些冲突类型,但它们将无法用于需要 Kibana 知道其类型的函数。要解决此问题,需要重新索引您的数据。", + "kbn.management.editIndexPattern.notDateErrorMessage": "该字段是{fieldType},不是日期。", + "kbn.management.editIndexPattern.refreshAria": "重新加载字段列表", + "kbn.management.editIndexPattern.refreshButton": "刷新", + "kbn.management.editIndexPattern.refreshHeader": "刷新字段列表?", + "kbn.management.editIndexPattern.refreshLabel": "此操作重置每个字段的常用度计数器。", + "kbn.management.editIndexPattern.refreshTooltip": "重新刷新字段列表", + "kbn.management.editIndexPattern.removeAria": "删除索引模式", + "kbn.management.editIndexPattern.removeTooltip": "删除索引模式", + "kbn.management.editIndexPattern.scripted.addFieldButton": "添加脚本字段", + "kbn.management.editIndexPattern.scripted.deleteField.cancelButton": "取消", + "kbn.management.editIndexPattern.scripted.deleteField.deleteButton": "删除", + "kbn.management.editIndexPattern.scripted.deleteFieldLabel": "删除脚本字段 “{fieldName}”?", + "kbn.management.editIndexPattern.scripted.deprecationLangHeader": "在用的弃用语言", + "kbn.management.editIndexPattern.scripted.deprecationLangLabel.deprecationLangDetail": "以下已弃用语言正被使用:{deprecatedLangsInUse}。Kibana 和 Elasticsearch 下一主要版本将移除对这些语言的支持。将您的脚本字段转换成 {link} 以避免问题。", + "kbn.management.editIndexPattern.scripted.deprecationLangLabel.painlessDescription": "Painless", + "kbn.management.editIndexPattern.scripted.newFieldPlaceholder": "新建脚本字段", + "kbn.management.editIndexPattern.scripted.noFieldLabel": "“{indexPatternTitle}” 索引模式没有称作 “{fieldName}” 的脚本字段", + "kbn.management.editIndexPattern.scripted.table.deleteDescription": "删除此字段", + "kbn.management.editIndexPattern.scripted.table.deleteHeader": "删除", + "kbn.management.editIndexPattern.scripted.table.editDescription": "编辑此字段", + "kbn.management.editIndexPattern.scripted.table.editHeader": "编辑", + "kbn.management.editIndexPattern.scripted.table.formatDescription": "用于该字段的格式", + "kbn.management.editIndexPattern.scripted.table.formatHeader": "格式", + "kbn.management.editIndexPattern.scripted.table.langDescription": "用于该字段的语言", + "kbn.management.editIndexPattern.scripted.table.langHeader": "语言", + "kbn.management.editIndexPattern.scripted.table.nameDescription": "字段的名称", + "kbn.management.editIndexPattern.scripted.table.nameHeader": "名称", + "kbn.management.editIndexPattern.scripted.table.scriptDescription": "字段的脚本", + "kbn.management.editIndexPattern.scripted.table.scriptHeader": "脚本", + "kbn.management.editIndexPattern.scripted.unknownModeErrorMessage": "未知 fieldSettings 模式 {mode}", + "kbn.management.editIndexPattern.scriptedHeader": "脚本字段", + "kbn.management.editIndexPattern.scriptedLabel": "可以在可视化中使用脚本字段,并在您的文档中显示它们。但是,您不能搜索脚本字段。", + "kbn.management.editIndexPattern.setDefaultAria": "设置为默认索引", + "kbn.management.editIndexPattern.setDefaultTooltip": "设置为默认索引", + "kbn.management.editIndexPattern.source.addButtonLabel": "添加", + "kbn.management.editIndexPattern.source.deleteFilter.cancelButtonLabel": "取消", + "kbn.management.editIndexPattern.source.deleteFilter.deleteButtonLabel": "删除", + "kbn.management.editIndexPattern.source.deleteSourceFilterLabel": "删除源筛选 “{value}”?", + "kbn.management.editIndexPattern.source.noteLabel": "请注意,多字段将错误地显示为下表中的匹配。这些筛选仅应用于原始源文档中的字段,因此实际未筛选匹配的多字段。", + "kbn.management.editIndexPattern.source.table.cancelAria": "取消", + "kbn.management.editIndexPattern.source.table.deleteAria": "删除", + "kbn.management.editIndexPattern.source.table.editAria": "编辑", + "kbn.management.editIndexPattern.source.table.filterDescription": "筛选名称", + "kbn.management.editIndexPattern.source.table.filterHeader": "筛选", + "kbn.management.editIndexPattern.source.table.matchesDescription": "用于该字段的语言", + "kbn.management.editIndexPattern.source.table.matchesHeader": "匹配", + "kbn.management.editIndexPattern.source.table.notMatchedLabel": "源筛选不匹配任何已知字段。", + "kbn.management.editIndexPattern.source.table.saveAria": "保存", + "kbn.management.editIndexPattern.sourceHeader": "源筛选", + "kbn.management.editIndexPattern.sourceLabel": "提取文档源时,源筛选可用于排除一个或多个字段。在 Discover 应用中查看文档时会发生此问题,表在 Dashboard 应用中显示已保存搜索的结果时也会发生此问题。每行使用单个文档的源进行生成,如果您具有含有较大或不重要字段的文档,则通过在此较低层级筛除这些字段会更好。", + "kbn.management.editIndexPattern.sourcePlaceholder": "源筛选,接受通配符(例如“user*”用于筛选以“user”开头的字段)", + "kbn.management.editIndexPattern.tabs.fieldsHeader": "字段", + "kbn.management.editIndexPattern.tabs.scriptedHeader": "脚本字段", + "kbn.management.editIndexPattern.tabs.sourceHeader": "源筛选", + "kbn.management.editIndexPattern.timeFilterHeader": "时间筛选字段名称:{timeFieldName}", + "kbn.management.editIndexPattern.timeFilterLabel.mappingAPILink": "映射 API", + "kbn.management.editIndexPattern.timeFilterLabel.timeFilterDetail": "此页根据 Elasticsearch 的记录列出“{indexPatternTitle}”索引中的每个字段以及字段的关联核心类型。要更改字段类型,请使用 Elasticsearch", + "kbn.management.editIndexPatternLiveRegionAriaLabel": "索引模式", + "kbn.management.indexPattern.confirmOverwriteButton": "覆盖", + "kbn.management.indexPattern.confirmOverwriteLabel": "确定要覆盖 “{title}”?", + "kbn.management.indexPattern.confirmOverwriteTitle": "覆盖“{type}”?", + "kbn.management.indexPattern.sectionsHeader": "索引模式", + "kbn.management.indexPattern.titleExistsLabel": "具有标题 “{title}” 的索引模式已存在。", + "kbn.management.indexPatternHeader": "索引模式", + "kbn.management.indexPatternLabel": "管理帮助从 Elasticsearch 检索数据的索引模式。", + "kbn.management.indexPatternList.createButton.betaLabel": "公测版", + "kbn.management.indexPatternPrompt.exampleOne": "索引单个称作 log-west-001 的数据源,以便可以快速地构建图表或查询其内容。", + "kbn.management.indexPatternPrompt.exampleOneTitle": "单数据源", + "kbn.management.indexPatternPrompt.examplesTitle": "索引模式示例", + "kbn.management.indexPatternPrompt.exampleThree": "具体而言,将这些日志每月存档的汇总/打包指标分组成不同的索引模式,从而可以聚合历史趋势以进行比较。", + "kbn.management.indexPatternPrompt.exampleThreeTitle": "定制分组", + "kbn.management.indexPatternPrompt.exampleTwo": "分组以 log-west* 开头的所有传入数据源,以便可以查询所有所有西海岸服务器日志。", + "kbn.management.indexPatternPrompt.exampleTwoTitle": "多数据源", + "kbn.management.indexPatternPrompt.subtitle": "索引模式允许您将异类的数据源一起装入存储桶,从而可以在 Kibana 中查询它们共享的字段。", + "kbn.management.indexPatternPrompt.title": "关于索引模式", + "kbn.management.indexPatterns.badge.readOnly.text": "只读", + "kbn.management.indexPatterns.badge.readOnly.tooltip": "无法保存索引模式", + "kbn.management.indexPatterns.createBreadcrumb": "创建索引模式", + "kbn.management.indexPatterns.createFieldBreadcrumb": "创建字段", + "kbn.management.indexPatterns.listBreadcrumb": "索引模式", + "kbn.management.indexPatternTable.createBtn": "创建索引模式", + "kbn.management.indexPatternTable.title": "索引模式", + "kbn.management.landing.header": "Kibana {version} 管理", + "kbn.management.landing.subhead": "管理您的索引、索引模式、已保存对象、Kibana 设置等等。", + "kbn.management.landing.text": "在左侧菜单中可找到完整工具列表", + "kbn.management.objects.confirmModalOptions.deleteButtonLabel": "删除", + "kbn.management.objects.confirmModalOptions.modalDescription": "您无法恢复删除的对象", + "kbn.management.objects.confirmModalOptions.modalTitle": "删除已保存 Kibana 对象?", + "kbn.management.objects.deleteSavedObjectsConfirmModalDescription": "此操作将删除以下已保存对象:", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "取消", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.deleteButtonLabel": "删除", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.deleteProcessButtonLabel": "正在删除……", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.idColumnName": "ID", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.titleColumnName": "标题", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModal.typeColumnName": "类型", + "kbn.management.objects.objectsTable.deleteSavedObjectsConfirmModalTitle": "删除已保存对象", + "kbn.management.objects.objectsTable.export.dangerNotification": "无法生成报告", + "kbn.management.objects.objectsTable.export.successNotification": "您的文件正在后台下载", + "kbn.management.objects.objectsTable.export.successWithMissingRefsNotification": "您的文件正在后台下载。找不到某些相关对象。有关缺失对象列表,请查看导出文件的最后一行。", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.cancelButtonLabel": "取消", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.exportAllButtonLabel": "全部导出", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.exportOptionsLabel": "选项", + "kbn.management.objects.objectsTable.exportObjectsConfirmModal.includeReferencesDeepLabel": "包括相关对象", + "kbn.management.objects.objectsTable.exportObjectsConfirmModalDescription": "选择要导出的类型。", + "kbn.management.objects.objectsTable.exportObjectsConfirmModalTitle": "导出 {filteredItemCount, plural, one{# 个对象} other {# 个对象}}", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.resolvingConflictsLoadingMessage": "正在解决冲突……", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.retryingFailedObjectsLoadingMessage": "正在重试失败的对象……", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.savedSearchAreLinkedProperlyLoadingMessage": "确保已保存搜索已正确链接……", + "kbn.management.objects.objectsTable.flyout.confirmLegacyImport.savingConflictsLoadingMessage": "正在保存冲突……", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteBody": "确定要覆盖 “{title}”?", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteCancelButtonText": "取消", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteOverwriteButtonText": "覆盖", + "kbn.management.objects.objectsTable.flyout.confirmOverwriteTitle": "覆盖“{type}”?", + "kbn.management.objects.objectsTable.flyout.errorCalloutTitle": "抱歉,出现了错误", + "kbn.management.objects.objectsTable.flyout.import.cancelButtonLabel": "取消", + "kbn.management.objects.objectsTable.flyout.import.confirmButtonLabel": "导入", + "kbn.management.objects.objectsTable.flyout.importFailedDescription": "无法导入 {failedImportCount} 个对象,共 {totalImportCount} 个。导入失败", + "kbn.management.objects.objectsTable.flyout.importFailedMissingReference": "{type} [id={id}] 无法找到 {refType} [id={refId}]", + "kbn.management.objects.objectsTable.flyout.importFailedTitle": "导入失败", + "kbn.management.objects.objectsTable.flyout.importFailedUnsupportedType": "{type} [id={id}] 不受支持的类型", + "kbn.management.objects.objectsTable.flyout.importFileErrorMessage": "无法处理该文件。", + "kbn.management.objects.objectsTable.flyout.importLegacyFileErrorMessage": "无法处理该文件。", + "kbn.management.objects.objectsTable.flyout.importPromptText": "导入", + "kbn.management.objects.objectsTable.flyout.importSavedObjectTitle": "导入已保存对象", + "kbn.management.objects.objectsTable.flyout.importSuccessful.confirmAllChangesButtonLabel": "确认所有更改", + "kbn.management.objects.objectsTable.flyout.importSuccessful.confirmButtonLabel": "完成", + "kbn.management.objects.objectsTable.flyout.importSuccessfulCallout.noObjectsImportedTitle": "未导入任何对象", + "kbn.management.objects.objectsTable.flyout.importSuccessfulDescription": "已成功导入 {importCount} 个对象。", + "kbn.management.objects.objectsTable.flyout.importSuccessfulTitle": "导入成功", + "kbn.management.objects.objectsTable.flyout.indexPatternConflictsCalloutLinkText": "创建新的索引模式", + "kbn.management.objects.objectsTable.flyout.indexPatternConflictsDescription": "以下已保存对象使用不存在的索引模式。请选择要重新关联的索引模式。必要时,您可以{indexPatternLink}。", + "kbn.management.objects.objectsTable.flyout.indexPatternConflictsTitle": "索引模式冲突", + "kbn.management.objects.objectsTable.flyout.invalidFormatOfImportedFileErrorMessage": "已保存对象文件格式无效,无法导入。", + "kbn.management.objects.objectsTable.flyout.legacyFileUsedBody": "只需使用更新的导出功能生成 NDJSON 文件,便万事俱备。", + "kbn.management.objects.objectsTable.flyout.legacyFileUsedTitle": "将不再支持 JSON 文件", + "kbn.management.objects.objectsTable.flyout.overwriteSavedObjectsLabel": "自动覆盖所有已保存对象?", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnCountDescription": "受影响对象数目", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnCountName": "计数", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnIdDescription": "索引模式的 ID", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnIdName": "ID", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnNewIndexPatternName": "新建索引模式", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsDescription": "受影响对象样例", + "kbn.management.objects.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsName": "受影响对象样例", + "kbn.management.objects.objectsTable.flyout.resolveImportErrorsFileErrorMessage": "无法处理该文件。", + "kbn.management.objects.objectsTable.flyout.selectFileToImportFormRowLabel": "请选择要导入的文件", + "kbn.management.objects.objectsTable.header.exportButtonLabel": "导出 {filteredCount, plural, one{# 个对象} other {# 个对象}}", + "kbn.management.objects.objectsTable.header.importButtonLabel": "导入", + "kbn.management.objects.objectsTable.header.refreshButtonLabel": "刷新", + "kbn.management.objects.objectsTable.header.savedObjectsTitle": "已保存对象", + "kbn.management.objects.objectsTable.howToDeleteSavedObjectsDescription": "从这里您可以删除已保存对象,如已保存搜索。还可以编辑已保存对象的原始数据。通常,对象只能通过其关联的应用程序进行修改;或许您应该遵循这一原则,而非使用此屏幕进行修改。", + "kbn.management.objects.objectsTable.relationships.columnActions.inspectActionDescription": "检查此已保存对象", + "kbn.management.objects.objectsTable.relationships.columnActions.inspectActionName": "检查", + "kbn.management.objects.objectsTable.relationships.columnActionsName": "操作", + "kbn.management.objects.objectsTable.relationships.columnRelationship.childAsValue": "子项", + "kbn.management.objects.objectsTable.relationships.columnRelationship.parentAsValue": "父项", + "kbn.management.objects.objectsTable.relationships.columnRelationshipName": "直接关系", + "kbn.management.objects.objectsTable.relationships.columnTitleDescription": "已保存对象的标题", + "kbn.management.objects.objectsTable.relationships.columnTitleName": "标题", + "kbn.management.objects.objectsTable.relationships.columnTypeDescription": "已保存对象的类型", + "kbn.management.objects.objectsTable.relationships.columnTypeName": "类型", + "kbn.management.objects.objectsTable.relationships.relationshipsTitle": "以下是与 {title} 相关的已保存对象。删除此{type}将影响其父级对象,但不会影响其子级对象。", + "kbn.management.objects.objectsTable.relationships.renderErrorMessage": "错误", + "kbn.management.objects.objectsTable.relationships.search.filters.relationship.childAsValue.view": "子项", + "kbn.management.objects.objectsTable.relationships.search.filters.relationship.name": "直接关系", + "kbn.management.objects.objectsTable.relationships.search.filters.relationship.parentAsValue.view": "父项", + "kbn.management.objects.objectsTable.relationships.search.filters.type.name": "类型", + "kbn.management.objects.objectsTable.searchBar.unableToParseQueryErrorMessage": "无法解析查询", + "kbn.management.objects.objectsTable.table.columnActions.inspectActionDescription": "检查此已保存对象", + "kbn.management.objects.objectsTable.table.columnActions.inspectActionName": "检查", + "kbn.management.objects.objectsTable.table.columnActions.viewRelationshipsActionDescription": "查看此已保存对象与其他已保存对象的关系", + "kbn.management.objects.objectsTable.table.columnActions.viewRelationshipsActionName": "关系", + "kbn.management.objects.objectsTable.table.columnActionsName": "操作", + "kbn.management.objects.objectsTable.table.columnTitleDescription": "已保存对象的标题", + "kbn.management.objects.objectsTable.table.columnTitleName": "标题", + "kbn.management.objects.objectsTable.table.columnTypeDescription": "已保存对象的类型", + "kbn.management.objects.objectsTable.table.columnTypeName": "类型", + "kbn.management.objects.objectsTable.table.deleteButtonLabel": "删除", + "kbn.management.objects.objectsTable.table.deleteButtonTitle": "无法删除已保存对象", + "kbn.management.objects.objectsTable.table.exportButtonLabel": "导出", + "kbn.management.objects.objectsTable.table.exportPopoverButtonLabel": "导出", + "kbn.management.objects.objectsTable.table.typeFilterName": "类型", + "kbn.management.objects.objectsTable.unableFindSavedObjectsNotificationMessage": "找不到已保存对象", + "kbn.management.objects.parsingFieldErrorMessage": "为索引模式 “{indexName}” 解析 “{fieldName}” 时发生错误:{errorMessage}", + "kbn.management.objects.savedObjectsDescription": "导入、导出和管理您的已保存搜索、可视化和仪表板。", + "kbn.management.objects.savedObjectsSectionLabel": "已保存对象", + "kbn.management.objects.savedObjectsTitle": "已保存对象", + "kbn.management.objects.view.cancelButtonAriaLabel": "取消", + "kbn.management.objects.view.cancelButtonLabel": "取消", + "kbn.management.objects.view.deleteItemButtonLabel": "删除“{title}”", + "kbn.management.objects.view.editItemTitle": "编辑“{title}", + "kbn.management.objects.view.fieldDoesNotExistErrorMessage": "与此对象关联的字段在该索引模式中已不存在。", + "kbn.management.objects.view.howToFixErrorDescription": "如果您清楚此错误的含义,请修复该错误 — 否则单击上面的删除按钮。", + "kbn.management.objects.view.howToModifyObjectDescription": " 修改对象仅适用于高级用户。对象属性未得到验证,无效的对象可能会导致错误、数据丢失或更坏的情况发生。除非熟悉该代码的人让您来这里,否则您可能不应该来这里。", + "kbn.management.objects.view.howToModifyObjectTitle": "谨慎操作!", + "kbn.management.objects.view.indexPatternDoesNotExistErrorMessage": "与此对象关联的索引模式已不存在。", + "kbn.management.objects.view.saveButtonAriaLabel": "保存 { title } 对象", + "kbn.management.objects.view.saveButtonLabel": "保存 { title } 对象", + "kbn.management.objects.view.savedObjectProblemErrorMessage": "此已保存对象有问题", + "kbn.management.objects.view.savedSearchDoesNotExistErrorMessage": "与此对象关联的已保存搜索已不存在。", + "kbn.management.objects.view.viewItemButtonLabel": "查看“{title}”", + "kbn.management.objects.view.viewItemTitle": "查看“{title}”", + "kbn.management.savedObjects.editBreadcrumb": "编辑 {savedObjectType}", + "kbn.management.savedObjects.indexBreadcrumb": "已保存对象", + "kbn.management.settings.advancedSettingsDescription": "直接编辑在 Kibana 中控制行为的设置。", + "kbn.management.settings.advancedSettingsLabel": "高级设置", + "kbn.management.settings.breadcrumb": "高级设置", + "kbn.management.settings.callOutCautionDescription": "此处请谨慎操作,这些设置仅供高级用户使用。您在这里所做的更改可能使 Kibana 的大部分功能出现问题。这些设置有一部分可能未在文档中说明、不受支持或是实验性设置。如果字段有默认值,将字段留空会将其设置为默认值,其他配置指令可能不接受其默认值。删除定制设置会将其从 Kibana 的配置中永久删除。", + "kbn.management.settings.callOutCautionTitle": "注意:在这里您可能会使问题出现", + "kbn.management.settings.categoryNames.dashboardLabel": "仪表板", + "kbn.management.settings.categoryNames.discoverLabel": "Discover", + "kbn.management.settings.categoryNames.generalLabel": "常规", + "kbn.management.settings.categoryNames.notificationsLabel": "通知", + "kbn.management.settings.categoryNames.reportingLabel": "报告", + "kbn.management.settings.categoryNames.searchLabel": "搜索", + "kbn.management.settings.categoryNames.siemLabel": "SIEM", + "kbn.management.settings.categoryNames.timelionLabel": "Timelion", + "kbn.management.settings.categoryNames.visualizationsLabel": "可视化", + "kbn.management.settings.categorySearchLabel": "类别", + "kbn.management.settings.field.cancelEditingButtonAriaLabel": "取消编辑 {ariaName}", + "kbn.management.settings.field.cancelEditingButtonLabel": "取消", + "kbn.management.settings.field.changeImageLinkAriaLabel": "更改 {ariaName}", + "kbn.management.settings.field.changeImageLinkText": "更改图片", + "kbn.management.settings.field.codeEditorSyntaxErrorMessage": "JSON 语法无效", + "kbn.management.settings.field.customSettingAriaLabel": "定制设置", + "kbn.management.settings.field.customSettingTooltip": "定制设置", + "kbn.management.settings.field.defaultValueText": "默认值:{value}", + "kbn.management.settings.field.defaultValueTypeJsonText": "默认值:{value}", + "kbn.management.settings.field.helpText": "此设置将由 Kibana 覆盖,无法更改。", + "kbn.management.settings.field.imageChangeErrorMessage": "图片无法保存", + "kbn.management.settings.field.imageTooLargeErrorMessage": "图像过大,最大大小为 {maxSizeDescription}", + "kbn.management.settings.field.offLabel": "关闭", + "kbn.management.settings.field.onLabel": "开启", + "kbn.management.settings.field.requiresPageReloadToastButtonLabel": "重新加载页面", + "kbn.management.settings.field.requiresPageReloadToastDescription": "请重新加载页面,以使“{settingName}”设置生效。", + "kbn.management.settings.field.resetFieldErrorMessage": "无法重置 {name}", + "kbn.management.settings.field.resetToDefaultLinkAriaLabel": "将 {ariaName} 重置为默认值", + "kbn.management.settings.field.resetToDefaultLinkText": "重置为默认值", + "kbn.management.settings.field.saveButtonAriaLabel": "保存 {ariaName}", + "kbn.management.settings.field.saveButtonLabel": "保存", + "kbn.management.settings.field.saveFieldErrorMessage": "无法保存 {name}", + "kbn.management.settings.form.clearNoSearchResultText": "(清除搜索)", + "kbn.management.settings.form.clearSearchResultText": "(清除搜索)", + "kbn.management.settings.form.noSearchResultText": "未找到设置{clearSearch}", + "kbn.management.settings.form.searchResultText": "搜索词隐藏了 {settingsCount} 个设置{clearSearch}", + "advancedSettings.pageTitle": "设置", + "kbn.management.settings.searchBar.unableToParseQueryErrorMessage": "无法解析查询", + "kbn.management.settings.searchBarAriaLabel": "搜索高级设置", + "kbn.management.settings.sectionLabel": "高级设置", + "kbn.managementTitle": "管理", + "kbn.settings.advancedSettings.voiceAnnouncement.searchResultScreenReaderMessage": "您已搜索 {query}。{sectionLenght, plural, one {# 个部分} other {# 个部分}}中有 {optionLenght, plural, one {# 个选项} other {# 个选项}}", + "kbn.topNavMenu.openInspectorButtonLabel": "检查", + "kbn.topNavMenu.refreshButtonLabel": "刷新", + "kbn.topNavMenu.saveVisualizationButtonLabel": "保存", + "kbn.topNavMenu.shareVisualizationButtonLabel": "共享", + "kbn.visualize.badge.readOnly.text": "只读", + "kbn.visualize.badge.readOnly.tooltip": "无法保存可视化", + "kbn.visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "必须提供 indexPattern 或 savedSearchId", + "kbn.visualize.editor.createBreadcrumb": "创建", + "kbn.visualize.experimentalVisInfoText": "此可视化标记为“实验”。", + "kbn.visualize.linkedToSearch.unlinkButtonTooltip": "双击可取消与“已保存搜索”的链接", + "kbn.visualize.linkedToSearch.unlinkSuccessNotificationText": "取消与已保存搜索 “{searchTitle}” 的链接", + "kbn.visualize.linkedToSearchInfoText": "链接到“已保存搜索”", + "kbn.visualize.listing.betaTitle": "公测版", + "kbn.visualize.listing.betaTooltip": "此可视化为公测版,可能会进行更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束", + "kbn.visualize.listing.breadcrumb": "可视化", + "kbn.visualize.listing.createNew.createButtonLabel": "新建可视化", + "kbn.visualize.listing.createNew.description": "可以根据您的数据创建不同的可视化。", + "kbn.visualize.listing.createNew.title": "创建首个可视化", + "kbn.visualize.listing.experimentalTitle": "实验性", + "kbn.visualize.listing.experimentalTooltip": "未来版本可能会更改或删除此可视化,其不受支持 SLA 的约束。", + "kbn.visualize.listing.noItemsMessage": "看起来您还没有任何可视化。", + "kbn.visualize.listing.table.entityName": "可视化", + "kbn.visualize.listing.table.entityNamePlural": "可视化", + "kbn.visualize.listing.table.listTitle": "可视化", + "kbn.visualize.listing.table.titleColumnName": "标题", + "kbn.visualize.listing.table.typeColumnName": "类型", + "kbn.visualize.newVisWizard.betaDescription": "此可视化为公测版,可能会进行更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束", + "kbn.visualize.newVisWizard.betaTitle": "公测版", + "kbn.visualize.newVisWizard.chooseSourceTitle": "选择源", + "kbn.visualize.newVisWizard.experimentalDescription": "这是实验性可视化。与稳定的可视化相比,其设计和实现均不够成熟,可能会随时发生更改。", + "kbn.visualize.newVisWizard.experimentalTitle": "实验性", + "kbn.visualize.newVisWizard.experimentalTooltip": "未来版本可能会更改或删除此可视化,其不受支持 SLA 的约束。", + "kbn.visualize.newVisWizard.filterVisTypeAriaLabel": "筛留可视化类型", + "kbn.visualize.newVisWizard.helpText": "通过为该可视化选择类型,来开始创建您的可视化。", + "kbn.visualize.newVisWizard.helpTextAriaLabel": "通过为该可视化选择类型,来开始创建您的可视化。按 Esc 键关闭此模式。按 Tab 键继续。", + "kbn.visualize.newVisWizard.newVisTypeTitle": "新建{visTypeName}", + "kbn.visualize.newVisWizard.resultsFound": "找到了 {resultCount} 个{resultCount, plural, one {类型} other {类型} }", + "kbn.visualize.newVisWizard.searchSelection.notFoundLabel": "未找到匹配的索引或已保存搜索。", + "kbn.visualize.newVisWizard.searchSelection.savedObjectType.indexPattern": "索引模式", + "kbn.visualize.newVisWizard.searchSelection.savedObjectType.search": "已保存搜索", + "kbn.visualize.newVisWizard.selectVisType": "选择可视化类型", + "kbn.visualize.newVisWizard.title": "新建可视化", + "kbn.visualize.newVisWizard.visTypeAliasDescription": "打开 Visualize 外部的 Kibana 应用程序。", + "kbn.visualize.newVisWizard.visTypeAliasTitle": "Kibana 应用程序", + "kbn.visualize.pageHeading": "{chartName} {chartType}可视化", + "kbn.visualize.saveDialog.saveAndAddToDashboardButtonLabel": "保存并添加到仪表板", + "kbn.visualize.topNavMenu.openInspectorButtonAriaLabel": "打开检查器查看可视化", + "kbn.visualize.topNavMenu.openInspectorDisabledButtonTooltip": "此可视化不支持任何检查器。", + "kbn.visualize.topNavMenu.refreshButtonAriaLabel": "刷新", + "kbn.visualize.topNavMenu.saveVisualization.failureNotificationText": "保存 “{visTitle}” 时出错", + "kbn.visualize.topNavMenu.saveVisualization.successNotificationText": "已保存“{visTitle}”", + "kbn.visualize.topNavMenu.saveVisualizationButtonAriaLabel": "保存可视化", + "kbn.visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "应用或放弃所做更改,然后保存", + "kbn.visualize.topNavMenu.shareVisualizationButtonAriaLabel": "共享可视化", + "kbn.visualize.visualizeDescription": "创建可视化并聚合存储在 Elasticsearch 索引中的数据。", + "kbn.visualize.visualizeListingBreadcrumbsTitle": "可视化", + "kbn.visualize.visualizeListingDeleteErrorTitle": "删除可视化时出错", + "kbn.visualize.wizard.step1Breadcrumb": "创建", + "kbn.visualize.wizard.step2Breadcrumb": "创建", + "kbn.visualizeTitle": "可视化", "home.tutorials.common.auditbeat.cloudInstructions.gettingStarted.title": "入门", "home.tutorials.common.auditbeat.premCloudInstructions.gettingStarted.title": "入门", "home.tutorials.common.auditbeat.premInstructions.gettingStarted.title": "入门",