From b4f3a15458f9a07ee67ef3fb426109d1c50b6598 Mon Sep 17 00:00:00 2001 From: Constance Date: Wed, 6 Jan 2021 09:48:44 -0800 Subject: [PATCH 01/25] [Enterprise Search] Kea mount test helper (#87247) * Add Kea logic mount helper * Update existing mount() helpers to use new DRY helper * Add additional unmount helper + example test update --- .../public/applications/__mocks__/index.ts | 8 ++- .../public/applications/__mocks__/kea.mock.ts | 69 ++++++++++++++++++- .../credentials/credentials_logic.test.ts | 21 +----- .../document_creation_logic.test.ts | 22 +----- .../documents/document_detail_logic.test.ts | 21 +----- .../documents/documents_logic.test.ts | 21 +----- .../components/engine/engine_logic.test.ts | 21 +----- .../engine_overview_logic.test.ts | 12 +--- .../log_retention/log_retention_logic.test.ts | 21 +----- 9 files changed, 89 insertions(+), 127 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts index e8944b15978a9..57f4a9f66b987 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts @@ -10,7 +10,13 @@ export { mockLicensingValues } from './licensing_logic.mock'; export { mockHttpValues } from './http_logic.mock'; export { mockTelemetryActions } from './telemetry_logic.mock'; export { mockFlashMessagesValues, mockFlashMessagesActions } from './flash_messages_logic.mock'; -export { mockAllValues, mockAllActions, setMockValues, setMockActions } from './kea.mock'; +export { + mockAllValues, + mockAllActions, + setMockValues, + setMockActions, + LogicMounter, +} from './kea.mock'; export { mountAsync } from './mount_async.mock'; export { mountWithIntl } from './mount_with_i18n.mock'; diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/kea.mock.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/kea.mock.ts index 0176f8c03c632..78ffbcfa3526f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/kea.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/kea.mock.ts @@ -40,14 +40,18 @@ jest.mock('kea', () => ({ })); /** + * React component helpers + * * Call this function to override a specific set of Kea values while retaining all other defaults - * Example usage within a component test: * - * import '../../../__mocks__/kea'; - * import { setMockValues } from ''../../../__mocks__'; + * Example usage: + * + * import { setMockValues } from '../../../__mocks__/kea.mock'; + * import { SomeComponent } from './'; * * it('some test', () => { * setMockValues({ someValue: 'hello' }); + * shallow(); * }); */ import { useValues, useActions } from 'kea'; @@ -58,3 +62,62 @@ export const setMockValues = (values: object) => { export const setMockActions = (actions: object) => { (useActions as jest.Mock).mockImplementation(() => ({ ...mockAllActions, ...actions })); }; + +/** + * Kea logic helpers + * + * Call this function to mount a logic file and optionally override default values. + * Automatically DRYs out a lot of cruft for us, such as resetting context, creating the + * nested defaults path obj (see https://kea.js.org/docs/api/context#resetcontext), and + * returning an unmount function + * + * Example usage: + * + * import { LogicMounter } from '../../../__mocks__/kea.mock'; + * import { SomeLogic } from './'; + * + * const { mount, unmount } = new LogicMounter(SomeLogic); + * + * it('some test', () => { + * mount({ someValue: 'hello' }); + * unmount(); + * }); + */ +import { resetContext, Logic, LogicInput } from 'kea'; + +interface LogicFile { + inputs: Array>; + mount(): Function; +} +export class LogicMounter { + private logicFile: LogicFile; + private unmountFn!: Function; + + constructor(logicFile: LogicFile) { + this.logicFile = logicFile; + } + + // Reset context with optional default value overrides + public resetContext = (values?: object) => { + if (!values) { + resetContext({}); + } else { + const path = this.logicFile.inputs[0].path as string[]; // example: ['x', 'y', 'z'] + const defaults = path.reduceRight((value: object, key: string) => ({ [key]: value }), values); // example: { x: { y: { z: values } } } + resetContext({ defaults }); + } + }; + + // Automatically reset context & mount the logic file + public mount = (values?: object) => { + this.resetContext(values); + const unmount = this.logicFile.mount(); + this.unmountFn = unmount; + return unmount; // Keep Kea behavior of returning an unmount fn from mount + }; + + // Also add unmount as a class method that can be destructured on init without becoming stale later + public unmount = () => { + this.unmountFn(); + }; +} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts index 6523b4fb110b0..48be2b0ae8dfd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../__mocks__/kea.mock'; import { mockHttpValues } from '../../../__mocks__'; jest.mock('../../../shared/http', () => ({ @@ -57,24 +57,7 @@ describe('CredentialsLogic', () => { fullEngineAccessChecked: false, }; - const mount = (defaults?: object) => { - if (!defaults) { - resetContext({}); - } else { - resetContext({ - defaults: { - enterprise_search: { - app_search: { - credentials_logic: { - ...defaults, - }, - }, - }, - }, - }); - } - CredentialsLogic.mount(); - }; + const { mount } = new LogicMounter(CredentialsLogic); const newToken = { id: 1, diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_logic.test.ts index bb0103b07b072..c2a0d29cc1f40 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_logic.test.ts @@ -4,7 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../__mocks__/kea.mock'; + import dedent from 'dedent'; jest.mock('./utils', () => ({ @@ -39,24 +40,7 @@ describe('DocumentCreationLogic', () => { }; const mockFile = new File(['mockFile'], 'mockFile.json'); - const mount = (defaults?: object) => { - if (!defaults) { - resetContext({}); - } else { - resetContext({ - defaults: { - enterprise_search: { - app_search: { - document_creation_logic: { - ...defaults, - }, - }, - }, - }, - }); - } - DocumentCreationLogic.mount(); - }; + const { mount } = new LogicMounter(DocumentCreationLogic); beforeEach(() => { jest.clearAllMocks(); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail_logic.test.ts index d9a3de7c078cc..fe735f70247c6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail_logic.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../__mocks__/kea.mock'; import { mockHttpValues } from '../../../__mocks__'; jest.mock('../../../shared/http', () => ({ @@ -36,24 +36,7 @@ describe('DocumentDetailLogic', () => { fields: [], }; - const mount = (defaults?: object) => { - if (!defaults) { - resetContext({}); - } else { - resetContext({ - defaults: { - enterprise_search: { - app_search: { - document_detail_logic: { - ...defaults, - }, - }, - }, - }, - }); - } - DocumentDetailLogic.mount(); - }; + const { mount } = new LogicMounter(DocumentDetailLogic); beforeEach(() => { jest.clearAllMocks(); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents_logic.test.ts index 236172f0f7bdf..2863a39535ef4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents_logic.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../__mocks__/kea.mock'; import { DocumentsLogic } from './documents_logic'; @@ -13,24 +13,7 @@ describe('DocumentsLogic', () => { isDocumentCreationOpen: false, }; - const mount = (defaults?: object) => { - if (!defaults) { - resetContext({}); - } else { - resetContext({ - defaults: { - enterprise_search: { - app_search: { - documents_logic: { - ...defaults, - }, - }, - }, - }, - }); - } - DocumentsLogic.mount(); - }; + const { mount } = new LogicMounter(DocumentsLogic); describe('actions', () => { describe('openDocumentCreation', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine/engine_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine/engine_logic.test.ts index 13db440df739e..a77c6555b72df 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine/engine_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine/engine_logic.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../__mocks__/kea.mock'; import { mockHttpValues } from '../../../__mocks__'; jest.mock('../../../shared/http', () => ({ @@ -46,24 +46,7 @@ describe('EngineLogic', () => { engineNotFound: false, }; - const mount = (values?: object) => { - if (!values) { - resetContext({}); - } else { - resetContext({ - defaults: { - enterprise_search: { - app_search: { - engine_logic: { - ...values, - }, - }, - }, - }, - }); - } - EngineLogic.mount(); - }; + const { mount } = new LogicMounter(EngineLogic); beforeEach(() => { jest.clearAllMocks(); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_logic.test.ts index d35bde20f4f1e..2063f706a4741 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_logic.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../__mocks__/kea.mock'; import { mockHttpValues } from '../../../__mocks__'; jest.mock('../../../shared/http', () => ({ @@ -48,10 +48,7 @@ describe('EngineOverviewLogic', () => { timeoutId: null, }; - const mount = () => { - resetContext({}); - EngineOverviewLogic.mount(); - }; + const { mount, unmount } = new LogicMounter(EngineOverviewLogic); beforeEach(() => { jest.clearAllMocks(); @@ -141,12 +138,9 @@ describe('EngineOverviewLogic', () => { }); describe('unmount', () => { - let unmount: Function; - beforeEach(() => { jest.useFakeTimers(); - resetContext({}); - unmount = EngineOverviewLogic.mount(); + mount(); }); it('clears existing polling timeouts on unmount', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/log_retention/log_retention_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/log_retention/log_retention_logic.test.ts index c86d7e3e915e2..8310e2abe045b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/log_retention/log_retention_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/log_retention/log_retention_logic.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resetContext } from 'kea'; +import { LogicMounter } from '../../../../__mocks__/kea.mock'; import { mockHttpValues } from '../../../../__mocks__'; jest.mock('../../../../shared/http', () => ({ @@ -53,24 +53,7 @@ describe('LogRetentionLogic', () => { isLogRetentionUpdating: false, }; - const mount = (defaults?: object) => { - if (!defaults) { - resetContext({}); - } else { - resetContext({ - defaults: { - enterprise_search: { - app_search: { - log_retention_logic: { - ...defaults, - }, - }, - }, - }, - }); - } - LogRetentionLogic.mount(); - }; + const { mount } = new LogicMounter(LogRetentionLogic); beforeEach(() => { jest.clearAllMocks(); From 93262ba73690b14e2820d0c31417a521e8c13575 Mon Sep 17 00:00:00 2001 From: Ahmad Bamieh Date: Wed, 6 Jan 2021 19:51:49 +0200 Subject: [PATCH 02/25] [i18n] Integrate 7.11.0 Translations (#87452) --- .../translations/translations/ja-JP.json | 5770 +++++++++++----- .../translations/translations/zh-CN.json | 6118 +++++++++++------ 2 files changed, 8050 insertions(+), 3838 deletions(-) diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 4d15f444ad1a8..fef61667168a9 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -84,12 +84,14 @@ "advancedSettings.categoryNames.dashboardLabel": "ダッシュボード", "advancedSettings.categoryNames.discoverLabel": "発見", "advancedSettings.categoryNames.generalLabel": "一般", + "advancedSettings.categoryNames.machineLearningLabel": "機械学習", "advancedSettings.categoryNames.notificationsLabel": "通知", + "advancedSettings.categoryNames.observabilityLabel": "オブザーバビリティ", "advancedSettings.categoryNames.reportingLabel": "レポート", "advancedSettings.categoryNames.searchLabel": "検索", "advancedSettings.categoryNames.securitySolutionLabel": "セキュリティソリューション", "advancedSettings.categoryNames.timelionLabel": "Timelion", - "advancedSettings.categoryNames.visualizationsLabel": "可視化", + "advancedSettings.categoryNames.visualizationsLabel": "ビジュアライゼーション", "advancedSettings.categorySearchLabel": "カテゴリー", "advancedSettings.featureCatalogueTitle": "日付形式の変更、ダークモードの有効化など、Kibanaエクスペリエンスをカスタマイズします。", "advancedSettings.field.changeImageLinkAriaLabel": "{ariaName} を変更", @@ -113,7 +115,7 @@ "advancedSettings.form.cancelButtonLabel": "変更をキャンセル", "advancedSettings.form.clearNoSearchResultText": "(検索結果を消去)", "advancedSettings.form.clearSearchResultText": "(検索結果を消去)", - "advancedSettings.form.countOfSettingsChanged": "{unsavedCount} unsaved {unsavedCount, plural, one {setting} other {settings} }{hiddenCount, plural, =0 {} other {, # hidden} }", + "advancedSettings.form.countOfSettingsChanged": "{unsavedCount}保存されていない {unsavedCount, plural, other {個の設定} }{hiddenCount, plural, =0 {} other {, # 非表示} }", "advancedSettings.form.noSearchResultText": "設定が見つかりませんでした {clearSearch}", "advancedSettings.form.requiresPageReloadToastButtonLabel": "ページを再読み込み", "advancedSettings.form.requiresPageReloadToastDescription": "設定を有効にするためにページの再読み込みが必要です。", @@ -125,8 +127,8 @@ "advancedSettings.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", "advancedSettings.searchBarAriaLabel": "高度な設定を検索", "advancedSettings.voiceAnnouncement.ariaLabel": "詳細設定結果情報", - "advancedSettings.voiceAnnouncement.noSearchResultScreenReaderMessage": "{sectionLenght, plural, one {# セクション} other {# セクション}}に{optionLenght, plural, one {# オプション} other {# オプション}}があります。", - "advancedSettings.voiceAnnouncement.searchResultScreenReaderMessage": "{query} を検索しました。{sectionLenght, plural, one {# セクション} other {# セクション}}に{optionLenght, plural, one {# オプション} other {# オプション}}があります。", + "advancedSettings.voiceAnnouncement.noSearchResultScreenReaderMessage": "{sectionLenght, plural, other {# セクション}}に{optionLenght, plural, other {# オプション}}があります。", + "advancedSettings.voiceAnnouncement.searchResultScreenReaderMessage": "{query} を検索しました。{sectionLenght, plural, other {# セクション}}に{optionLenght, plural, other {# オプション}}があります。", "apmOss.tutorial.apmAgents.statusCheck.btnLabel": "エージェントステータスを確認", "apmOss.tutorial.apmAgents.statusCheck.errorMessage": "エージェントからまだデータを受け取っていません", "apmOss.tutorial.apmAgents.statusCheck.successMessage": "1 つまたは複数のエージェントからデータを受け取りました", @@ -144,9 +146,10 @@ "apmOss.tutorial.djangoClient.configure.commands.addAgentComment": "インストールされたアプリにエージェントを追加します", "apmOss.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "パフォーマンスメトリックを送信するには、追跡ミドルウェアを追加します。", "apmOss.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", - "apmOss.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})", - "apmOss.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "必要なサーバー名を設定します。使用できる文字:", - "apmOss.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います", + "apmOss.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "apmOss.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", + "apmOss.tutorial.djangoClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", + "apmOss.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", "apmOss.tutorial.djangoClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。", "apmOss.tutorial.djangoClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", "apmOss.tutorial.djangoClient.configure.title": "エージェントの構成", @@ -167,19 +170,21 @@ "apmOss.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", "apmOss.tutorial.flaskClient.configure.commands.configureElasticApmComment": "またはアプリケーションの設定で ELASTIC_APM を使用するよう構成します。", "apmOss.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します", - "apmOss.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})", - "apmOss.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "必要なサーバー名を設定します。使用できる文字:", - "apmOss.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います", + "apmOss.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "apmOss.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", + "apmOss.tutorial.flaskClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", + "apmOss.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", "apmOss.tutorial.flaskClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。", "apmOss.tutorial.flaskClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", "apmOss.tutorial.flaskClient.configure.title": "エージェントの構成", "apmOss.tutorial.flaskClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", "apmOss.tutorial.flaskClient.install.title": "APM エージェントのインストール", "apmOss.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します:", - "apmOss.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})", + "apmOss.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "apmOss.tutorial.goClient.configure.commands.setServiceEnvironment": "サービス環境を設定します", "apmOss.tutorial.goClient.configure.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は # a-z、A-Z、0-9、-、_、スペースです。", - "apmOss.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行可能な名前が使用されます。", - "apmOss.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server にトークンが必要な場合に使います", + "apmOss.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行ファイルの名前が使用されます。", + "apmOss.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", "apmOss.tutorial.goClient.configure.textPost": "高度な構成に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。", "apmOss.tutorial.goClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは実行ファイル名または「ELASTIC_APM_SERVICE_NAME」環境変数に基づいてプログラムで作成されます。", "apmOss.tutorial.goClient.configure.title": "エージェントの構成", @@ -192,23 +197,25 @@ "apmOss.tutorial.javaClient.download.textPre": "[Maven Central]({mavenCentralLink}) からエージェントをダウンロードします。アプリケーションにエージェントを依存関係として「追加しない」でください。", "apmOss.tutorial.javaClient.download.title": "APM エージェントのダウンロード", "apmOss.tutorial.javaClient.startApplication.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。", - "apmOss.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加してエージェントをシステムプロパティで構成します。\n\n * 必要なサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL (デフォルト: {customApmServerUrl})\n * アプリケーションのベースパッケージを設定します", + "apmOss.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加し、システムプロパティを使用してエージェントを構成します。\n\n * 任意のサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL(デフォルト:{customApmServerUrl})を設定します\n * APM Server シークレットトークンを設定します\n * サービス環境を設定します\n * アプリケーションのベースパッケージを設定します", "apmOss.tutorial.javaClient.startApplication.title": "javaagent フラグでアプリケーションを起動", "apmOss.tutorial.jsClient.enableRealUserMonitoring.textPre": "デフォルトでは、APM Server を実行すると RUM サポートは無効になります。RUM サポートを有効にする手順については、[ドキュメンテーション]({documentationLink}) をご覧ください。", "apmOss.tutorial.jsClient.enableRealUserMonitoring.title": "APMサーバーのリアルユーザー監視サポートを有効にする", - "apmOss.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})", - "apmOss.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "必要なサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)", - "apmOss.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します (ソースマップ機能に必要)", + "apmOss.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "apmOss.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "任意のサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)", + "apmOss.tutorial.jsClient.installDependency.commands.setServiceEnvironmentComment": "サービス環境を設定します", + "apmOss.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します(ソースマップ機能に必要)", "apmOss.tutorial.jsClient.installDependency.textPost": "React や Angular などのフレームワーク統合には、カスタム依存関係があります。詳細は [統合ドキュメント]({docLink}) をご覧ください。", "apmOss.tutorial.jsClient.installDependency.textPre": "「npm install @elastic/apm-rum --save」でエージェントをアプリケーションへの依存関係としてインストールできます。\n\nその後で以下のようにアプリケーションでエージェントを初期化して構成できます。", "apmOss.tutorial.jsClient.installDependency.title": "エージェントを依存関係としてセットアップ", "apmOss.tutorial.jsClient.scriptTags.textPre": "または、スクリプトタグを使用してエージェントのセットアップと構成ができます。` を追加