From e21dccf33aeb7c77a4120b2341e89eeb1d59dd4d Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Wed, 24 Sep 2025 17:09:52 +0800 Subject: [PATCH 01/11] i18n(ja-JP): add Japanese locale #159 --- packages/javascript/src/i18n/ja-JP.ts | 160 ++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 packages/javascript/src/i18n/ja-JP.ts diff --git a/packages/javascript/src/i18n/ja-JP.ts b/packages/javascript/src/i18n/ja-JP.ts new file mode 100644 index 00000000..d50ce57e --- /dev/null +++ b/packages/javascript/src/i18n/ja-JP.ts @@ -0,0 +1,160 @@ +/** + * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. 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. + */ + +/* eslint-disable sort-keys */ + +import { I18nTranslations, I18nMetadata, I18nBundle } from "../models/i18n"; + +const translations: I18nTranslations = { + /* |---------------------------------------------------------------| */ + /* | Elements | */ + /* |---------------------------------------------------------------| */ + + /* Buttons */ + "elements.buttons.signIn": "ログイン", + "elements.buttons.signOut": "ログアウト", + "elements.buttons.signUp": "サインアップ", + "elements.buttons.facebook": "Facebookで続行", + "elements.buttons.google": "Googleで続行", + "elements.buttons.github": "GitHubで続行", + "elements.buttons.microsoft": "Microsoftで続行", + "elements.buttons.linkedin": "LinkedInで続行", + "elements.buttons.ethereum": "Ethereumでサインイン", + "elements.buttons.multi.option": "{connection}で続行", + "elements.buttons.social": "{connection}で続行", + + /* Fields */ + "elements.fields.placeholder": "{field}を入力してください", + + /* |---------------------------------------------------------------| */ + /* | Widgets | */ + /* |---------------------------------------------------------------| */ + + /* Base Sign In */ + "signin.title": "ログイン", + "signin.subtitle": "続行するには認証情報を入力してください。", + + /* Base Sign Up */ + "signup.title": "サインアップ", + "signup.subtitle": "はじめるには新しいアカウントを作成してください。", + + /* Email OTP */ + "email.otp.title": "OTP認証", + "email.otp.subtitle": "メールに送信されたコードを入力してください。", + "email.otp.submit.button": "続行", + + /* Identifier First */ + "identifier.first.title": "ログイン", + "identifier.first.subtitle": "ユーザー名またはメールアドレスを入力してください。", + "identifier.first.submit.button": "続行", + + /* SMS OTP */ + "sms.otp.title": "OTP認証", + "sms.otp.subtitle": "電話番号に送信されたコードを入力してください。", + "sms.otp.submit.button": "続行", + + /* TOTP */ + "totp.title": "本人確認", + "totp.subtitle": "認証アプリのコードを入力してください。", + "totp.submit.button": "続行", + + /* Username Password */ + "username.password.submit.button": "続行", + "username.password.title": "ログイン", + "username.password.subtitle": "ユーザー名とパスワードを入力してください。", + + /* |---------------------------------------------------------------| */ + /* | User Profile | */ + /* |---------------------------------------------------------------| */ + + "user.profile.title": "プロフィール", + "user.profile.update.generic.error": "プロフィール更新中にエラーが発生しました。もう一度お試しください。", + + /* |---------------------------------------------------------------| */ + /* | Organization Switcher | */ + /* |---------------------------------------------------------------| */ + + "organization.switcher.select.organization": "組織を選択", + "organization.switcher.switch.organization": "組織を切り替え", + "organization.switcher.loading.organizations": "組織を読み込み中…", + "organization.switcher.members": "メンバー", + "organization.switcher.member": "メンバー", + "organization.switcher.create.organization": "組織を作成", + "organization.switcher.manage.organizations": "組織を管理", + "organization.switcher.manage.button": "管理", + "organization.switcher.organizations.title": "組織", + "organization.switcher.switch.button": "切り替え", + "organization.switcher.no.access": "アクセス権がありません", + "organization.switcher.status.label": "ステータス:", + "organization.switcher.showing.count": "全{total}件中{showing}件を表示", + "organization.switcher.refresh.button": "更新", + "organization.switcher.load.more": "さらに読み込む", + "organization.switcher.loading.more": "読み込み中…", + "organization.switcher.no.organizations": "組織が見つかりません", + "organization.switcher.error.prefix": "エラー:", + + "organization.profile.title": "組織プロファイル", + "organization.profile.loading": "組織を読み込み中…", + "organization.profile.error": "組織の読み込みに失敗しました", + + "organization.create.title": "組織の作成", + "organization.create.name.label": "組織名", + "organization.create.name.placeholder": "組織名を入力", + "organization.create.handle.label": "組織ハンドル", + "organization.create.handle.placeholder": "my-organization", + "organization.create.description.label": "説明", + "organization.create.description.placeholder": "組織の説明を入力", + "organization.create.button": "組織を作成", + "organization.create.creating": "作成中…", + "organization.create.cancel": "キャンセル", + + /* |---------------------------------------------------------------| */ + /* | Messages | */ + /* |---------------------------------------------------------------| */ + + "messages.loading": "読み込み中…", + + /* |---------------------------------------------------------------| */ + /* | Errors | */ + /* |---------------------------------------------------------------| */ + + "errors.title": "エラー", + "errors.sign.in.initialization": "初期化中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.failure": "サインイン処理中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.completion.failure": + "サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.passkeys.failure": + "パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.passkeys.completion.failure": + "パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。", +}; + +const metadata: I18nMetadata = { + localeCode: "ja-JP", + countryCode: "JP", + languageCode: "ja", + displayName: "日本語 (日本)", + direction: "ltr", +}; + +const ja_JP: I18nBundle = { + metadata, + translations, +}; + +export default ja_JP; From c7805bc2173cb0bb90e2e2bf515919703269afac Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Tue, 30 Sep 2025 12:11:08 +0800 Subject: [PATCH 02/11] Update ja-JP.ts --- packages/javascript/src/i18n/ja-JP.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/javascript/src/i18n/ja-JP.ts b/packages/javascript/src/i18n/ja-JP.ts index d50ce57e..8986fe64 100644 --- a/packages/javascript/src/i18n/ja-JP.ts +++ b/packages/javascript/src/i18n/ja-JP.ts @@ -60,7 +60,8 @@ const translations: I18nTranslations = { /* Identifier First */ "identifier.first.title": "ログイン", - "identifier.first.subtitle": "ユーザー名またはメールアドレスを入力してください。", + "identifier.first.subtitle": + "ユーザー名またはメールアドレスを入力してください。", "identifier.first.submit.button": "続行", /* SMS OTP */ @@ -83,7 +84,8 @@ const translations: I18nTranslations = { /* |---------------------------------------------------------------| */ "user.profile.title": "プロフィール", - "user.profile.update.generic.error": "プロフィール更新中にエラーが発生しました。もう一度お試しください。", + "user.profile.update.generic.error": + "プロフィール更新中にエラーが発生しました。もう一度お試しください。", /* |---------------------------------------------------------------| */ /* | Organization Switcher | */ @@ -134,8 +136,10 @@ const translations: I18nTranslations = { /* |---------------------------------------------------------------| */ "errors.title": "エラー", - "errors.sign.in.initialization": "初期化中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.failure": "サインイン処理中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.initialization": + "初期化中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.failure": + "サインイン処理中にエラーが発生しました。後でもう一度お試しください。", "errors.sign.in.flow.completion.failure": "サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。", "errors.sign.in.flow.passkeys.failure": From 6e9ba286b1f03fbfc6cb8521beaa060603e2790a Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Tue, 30 Sep 2025 13:23:13 +0800 Subject: [PATCH 03/11] Create ja-JP.ts in new file directory ### Summary Add Japanese locale (ja-JP) translations. ### Related Issue Fixes #161 e2e: N/A (not applicable for locale addition) Manual test: Checked locally, Japanese labels render correctly UX/UI: N/A Documentation: N/A Unit/Integration tests: N/A Security: Confirmed, no secrets committed ----------original message------------------ ### Purpose ### Related Issues - ### Related PRs - ### Checklist - [ ] e2e cypress tests locally verified. - [ ] Manual test round performed and verified. - [ ] UX/UI review done on the final implementation. - [ ] Documentation provided. (Add links if there are any) - [ ] Unit tests provided. (Add links if there are any) - [ ] Integration tests provided. (Add links if there are any) ### Security checks - [ ] Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? - [ ] Ran FindSecurityBugs plugin and verified report? - [ ] Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? --- packages/i18n/src/translations/ja-JP.ts | 164 ++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 packages/i18n/src/translations/ja-JP.ts diff --git a/packages/i18n/src/translations/ja-JP.ts b/packages/i18n/src/translations/ja-JP.ts new file mode 100644 index 00000000..8986fe64 --- /dev/null +++ b/packages/i18n/src/translations/ja-JP.ts @@ -0,0 +1,164 @@ +/** + * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. 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. + */ + +/* eslint-disable sort-keys */ + +import { I18nTranslations, I18nMetadata, I18nBundle } from "../models/i18n"; + +const translations: I18nTranslations = { + /* |---------------------------------------------------------------| */ + /* | Elements | */ + /* |---------------------------------------------------------------| */ + + /* Buttons */ + "elements.buttons.signIn": "ログイン", + "elements.buttons.signOut": "ログアウト", + "elements.buttons.signUp": "サインアップ", + "elements.buttons.facebook": "Facebookで続行", + "elements.buttons.google": "Googleで続行", + "elements.buttons.github": "GitHubで続行", + "elements.buttons.microsoft": "Microsoftで続行", + "elements.buttons.linkedin": "LinkedInで続行", + "elements.buttons.ethereum": "Ethereumでサインイン", + "elements.buttons.multi.option": "{connection}で続行", + "elements.buttons.social": "{connection}で続行", + + /* Fields */ + "elements.fields.placeholder": "{field}を入力してください", + + /* |---------------------------------------------------------------| */ + /* | Widgets | */ + /* |---------------------------------------------------------------| */ + + /* Base Sign In */ + "signin.title": "ログイン", + "signin.subtitle": "続行するには認証情報を入力してください。", + + /* Base Sign Up */ + "signup.title": "サインアップ", + "signup.subtitle": "はじめるには新しいアカウントを作成してください。", + + /* Email OTP */ + "email.otp.title": "OTP認証", + "email.otp.subtitle": "メールに送信されたコードを入力してください。", + "email.otp.submit.button": "続行", + + /* Identifier First */ + "identifier.first.title": "ログイン", + "identifier.first.subtitle": + "ユーザー名またはメールアドレスを入力してください。", + "identifier.first.submit.button": "続行", + + /* SMS OTP */ + "sms.otp.title": "OTP認証", + "sms.otp.subtitle": "電話番号に送信されたコードを入力してください。", + "sms.otp.submit.button": "続行", + + /* TOTP */ + "totp.title": "本人確認", + "totp.subtitle": "認証アプリのコードを入力してください。", + "totp.submit.button": "続行", + + /* Username Password */ + "username.password.submit.button": "続行", + "username.password.title": "ログイン", + "username.password.subtitle": "ユーザー名とパスワードを入力してください。", + + /* |---------------------------------------------------------------| */ + /* | User Profile | */ + /* |---------------------------------------------------------------| */ + + "user.profile.title": "プロフィール", + "user.profile.update.generic.error": + "プロフィール更新中にエラーが発生しました。もう一度お試しください。", + + /* |---------------------------------------------------------------| */ + /* | Organization Switcher | */ + /* |---------------------------------------------------------------| */ + + "organization.switcher.select.organization": "組織を選択", + "organization.switcher.switch.organization": "組織を切り替え", + "organization.switcher.loading.organizations": "組織を読み込み中…", + "organization.switcher.members": "メンバー", + "organization.switcher.member": "メンバー", + "organization.switcher.create.organization": "組織を作成", + "organization.switcher.manage.organizations": "組織を管理", + "organization.switcher.manage.button": "管理", + "organization.switcher.organizations.title": "組織", + "organization.switcher.switch.button": "切り替え", + "organization.switcher.no.access": "アクセス権がありません", + "organization.switcher.status.label": "ステータス:", + "organization.switcher.showing.count": "全{total}件中{showing}件を表示", + "organization.switcher.refresh.button": "更新", + "organization.switcher.load.more": "さらに読み込む", + "organization.switcher.loading.more": "読み込み中…", + "organization.switcher.no.organizations": "組織が見つかりません", + "organization.switcher.error.prefix": "エラー:", + + "organization.profile.title": "組織プロファイル", + "organization.profile.loading": "組織を読み込み中…", + "organization.profile.error": "組織の読み込みに失敗しました", + + "organization.create.title": "組織の作成", + "organization.create.name.label": "組織名", + "organization.create.name.placeholder": "組織名を入力", + "organization.create.handle.label": "組織ハンドル", + "organization.create.handle.placeholder": "my-organization", + "organization.create.description.label": "説明", + "organization.create.description.placeholder": "組織の説明を入力", + "organization.create.button": "組織を作成", + "organization.create.creating": "作成中…", + "organization.create.cancel": "キャンセル", + + /* |---------------------------------------------------------------| */ + /* | Messages | */ + /* |---------------------------------------------------------------| */ + + "messages.loading": "読み込み中…", + + /* |---------------------------------------------------------------| */ + /* | Errors | */ + /* |---------------------------------------------------------------| */ + + "errors.title": "エラー", + "errors.sign.in.initialization": + "初期化中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.failure": + "サインイン処理中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.completion.failure": + "サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.passkeys.failure": + "パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。", + "errors.sign.in.flow.passkeys.completion.failure": + "パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。", +}; + +const metadata: I18nMetadata = { + localeCode: "ja-JP", + countryCode: "JP", + languageCode: "ja", + displayName: "日本語 (日本)", + direction: "ltr", +}; + +const ja_JP: I18nBundle = { + metadata, + translations, +}; + +export default ja_JP; From 091ca0c3c80d9b05420f0f37a352e8496c1b019f Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Thu, 2 Oct 2025 15:05:25 +0800 Subject: [PATCH 04/11] Delete packages/i18n/src/translations/ja-JP.ts --- packages/i18n/src/translations/ja-JP.ts | 164 ------------------------ 1 file changed, 164 deletions(-) delete mode 100644 packages/i18n/src/translations/ja-JP.ts diff --git a/packages/i18n/src/translations/ja-JP.ts b/packages/i18n/src/translations/ja-JP.ts deleted file mode 100644 index 8986fe64..00000000 --- a/packages/i18n/src/translations/ja-JP.ts +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. 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. - */ - -/* eslint-disable sort-keys */ - -import { I18nTranslations, I18nMetadata, I18nBundle } from "../models/i18n"; - -const translations: I18nTranslations = { - /* |---------------------------------------------------------------| */ - /* | Elements | */ - /* |---------------------------------------------------------------| */ - - /* Buttons */ - "elements.buttons.signIn": "ログイン", - "elements.buttons.signOut": "ログアウト", - "elements.buttons.signUp": "サインアップ", - "elements.buttons.facebook": "Facebookで続行", - "elements.buttons.google": "Googleで続行", - "elements.buttons.github": "GitHubで続行", - "elements.buttons.microsoft": "Microsoftで続行", - "elements.buttons.linkedin": "LinkedInで続行", - "elements.buttons.ethereum": "Ethereumでサインイン", - "elements.buttons.multi.option": "{connection}で続行", - "elements.buttons.social": "{connection}で続行", - - /* Fields */ - "elements.fields.placeholder": "{field}を入力してください", - - /* |---------------------------------------------------------------| */ - /* | Widgets | */ - /* |---------------------------------------------------------------| */ - - /* Base Sign In */ - "signin.title": "ログイン", - "signin.subtitle": "続行するには認証情報を入力してください。", - - /* Base Sign Up */ - "signup.title": "サインアップ", - "signup.subtitle": "はじめるには新しいアカウントを作成してください。", - - /* Email OTP */ - "email.otp.title": "OTP認証", - "email.otp.subtitle": "メールに送信されたコードを入力してください。", - "email.otp.submit.button": "続行", - - /* Identifier First */ - "identifier.first.title": "ログイン", - "identifier.first.subtitle": - "ユーザー名またはメールアドレスを入力してください。", - "identifier.first.submit.button": "続行", - - /* SMS OTP */ - "sms.otp.title": "OTP認証", - "sms.otp.subtitle": "電話番号に送信されたコードを入力してください。", - "sms.otp.submit.button": "続行", - - /* TOTP */ - "totp.title": "本人確認", - "totp.subtitle": "認証アプリのコードを入力してください。", - "totp.submit.button": "続行", - - /* Username Password */ - "username.password.submit.button": "続行", - "username.password.title": "ログイン", - "username.password.subtitle": "ユーザー名とパスワードを入力してください。", - - /* |---------------------------------------------------------------| */ - /* | User Profile | */ - /* |---------------------------------------------------------------| */ - - "user.profile.title": "プロフィール", - "user.profile.update.generic.error": - "プロフィール更新中にエラーが発生しました。もう一度お試しください。", - - /* |---------------------------------------------------------------| */ - /* | Organization Switcher | */ - /* |---------------------------------------------------------------| */ - - "organization.switcher.select.organization": "組織を選択", - "organization.switcher.switch.organization": "組織を切り替え", - "organization.switcher.loading.organizations": "組織を読み込み中…", - "organization.switcher.members": "メンバー", - "organization.switcher.member": "メンバー", - "organization.switcher.create.organization": "組織を作成", - "organization.switcher.manage.organizations": "組織を管理", - "organization.switcher.manage.button": "管理", - "organization.switcher.organizations.title": "組織", - "organization.switcher.switch.button": "切り替え", - "organization.switcher.no.access": "アクセス権がありません", - "organization.switcher.status.label": "ステータス:", - "organization.switcher.showing.count": "全{total}件中{showing}件を表示", - "organization.switcher.refresh.button": "更新", - "organization.switcher.load.more": "さらに読み込む", - "organization.switcher.loading.more": "読み込み中…", - "organization.switcher.no.organizations": "組織が見つかりません", - "organization.switcher.error.prefix": "エラー:", - - "organization.profile.title": "組織プロファイル", - "organization.profile.loading": "組織を読み込み中…", - "organization.profile.error": "組織の読み込みに失敗しました", - - "organization.create.title": "組織の作成", - "organization.create.name.label": "組織名", - "organization.create.name.placeholder": "組織名を入力", - "organization.create.handle.label": "組織ハンドル", - "organization.create.handle.placeholder": "my-organization", - "organization.create.description.label": "説明", - "organization.create.description.placeholder": "組織の説明を入力", - "organization.create.button": "組織を作成", - "organization.create.creating": "作成中…", - "organization.create.cancel": "キャンセル", - - /* |---------------------------------------------------------------| */ - /* | Messages | */ - /* |---------------------------------------------------------------| */ - - "messages.loading": "読み込み中…", - - /* |---------------------------------------------------------------| */ - /* | Errors | */ - /* |---------------------------------------------------------------| */ - - "errors.title": "エラー", - "errors.sign.in.initialization": - "初期化中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.failure": - "サインイン処理中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.completion.failure": - "サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.passkeys.failure": - "パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.passkeys.completion.failure": - "パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。", -}; - -const metadata: I18nMetadata = { - localeCode: "ja-JP", - countryCode: "JP", - languageCode: "ja", - displayName: "日本語 (日本)", - direction: "ltr", -}; - -const ja_JP: I18nBundle = { - metadata, - translations, -}; - -export default ja_JP; From 072d68243428ecdec3cd1af47225a27066e45ad3 Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Thu, 2 Oct 2025 15:18:52 +0800 Subject: [PATCH 05/11] Create ja-JP.tr --- packages/i18n/src/translations/ja-JP.tr | 159 ++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 packages/i18n/src/translations/ja-JP.tr diff --git a/packages/i18n/src/translations/ja-JP.tr b/packages/i18n/src/translations/ja-JP.tr new file mode 100644 index 00000000..251c0c12 --- /dev/null +++ b/packages/i18n/src/translations/ja-JP.tr @@ -0,0 +1,159 @@ +/** + * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. 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. + */ + +/* eslint-disable sort-keys */ +/* eslint-disable @typescript-eslint/naming-convention */ + +import {I18nTranslations, I18nMetadata, I18nBundle} from '../models/i18n'; + +const translations: I18nTranslations = { + /* |---------------------------------------------------------------| */ + /* | Elements | */ + /* |---------------------------------------------------------------| */ + + /* Buttons */ + 'elements.buttons.signIn': 'ログイン', + 'elements.buttons.signOut': 'ログアウト', + 'elements.buttons.signUp': 'サインアップ', + 'elements.buttons.facebook': 'Facebookで続行', + 'elements.buttons.google': 'Googleで続行', + 'elements.buttons.github': 'GitHubで続行', + 'elements.buttons.microsoft': 'Microsoftで続行', + 'elements.buttons.linkedin': 'LinkedInで続行', + 'elements.buttons.ethereum': 'Ethereumでサインイン', + 'elements.buttons.multi.option': '{connection}で続行', + 'elements.buttons.social': '{connection}で続行', + + /* Fields */ + 'elements.fields.placeholder': '{field}を入力してください', + + /* |---------------------------------------------------------------| */ + /* | Widgets | */ + /* |---------------------------------------------------------------| */ + + /* Base Sign In */ + 'signin.title': 'ログイン', + 'signin.subtitle': '続行するには認証情報を入力してください。', + + /* Base Sign Up */ + 'signup.title': 'サインアップ', + 'signup.subtitle': 'はじめるには新しいアカウントを作成してください。', + + /* Email OTP */ + 'email.otp.title': 'OTP認証', + 'email.otp.subtitle': 'メールに送信されたコードを入力してください。', + 'email.otp.submit.button': '続行', + + /* Identifier First */ + 'identifier.first.title': 'ログイン', + 'identifier.first.subtitle': 'ユーザー名またはメールアドレスを入力してください。', + 'identifier.first.submit.button': '続行', + + /* SMS OTP */ + 'sms.otp.title': 'OTP認証', + 'sms.otp.subtitle': '電話番号に送信されたコードを入力してください。', + 'sms.otp.submit.button': '続行', + + /* TOTP */ + 'totp.title': '本人確認', + 'totp.subtitle': '認証アプリのコードを入力してください。', + 'totp.submit.button': '続行', + + /* Username Password */ + 'username.password.submit.button': '続行', + 'username.password.title': 'ログイン', + 'username.password.subtitle': 'ユーザー名とパスワードを入力してください。', + + /* |---------------------------------------------------------------| */ + /* | User Profile | */ + /* |---------------------------------------------------------------| */ + + 'user.profile.title': 'プロフィール', + 'user.profile.update.generic.error': 'プロフィール更新中にエラーが発生しました。もう一度お試しください。', + + /* |---------------------------------------------------------------| */ + /* | Organization Switcher | */ + /* |---------------------------------------------------------------| */ + + 'organization.switcher.select.organization': '組織を選択', + 'organization.switcher.switch.organization': '組織を切り替え', + 'organization.switcher.loading.organizations': '組織を読み込み中…', + 'organization.switcher.members': 'メンバー', + 'organization.switcher.member': 'メンバー', + 'organization.switcher.create.organization': '組織を作成', + 'organization.switcher.manage.organizations': '組織を管理', + 'organization.switcher.manage.button': '管理', + 'organization.switcher.organizations.title': '組織', + 'organization.switcher.switch.button': '切り替え', + 'organization.switcher.no.access': 'アクセス権がありません', + 'organization.switcher.status.label': 'ステータス:', + 'organization.switcher.showing.count': '全{total}件中{showing}件を表示', + 'organization.switcher.refresh.button': '更新', + 'organization.switcher.load.more': 'さらに読み込む', + 'organization.switcher.loading.more': '読み込み中…', + 'organization.switcher.no.organizations': '組織が見つかりません', + 'organization.switcher.error.prefix': 'エラー:', + 'organization.profile.title': '組織プロファイル', + 'organization.profile.loading': '組織を読み込み中…', + 'organization.profile.error': '組織の読み込みに失敗しました', + + 'organization.create.title': '組織の作成', + 'organization.create.name.label': '組織名', + 'organization.create.name.placeholder': '組織名を入力', + 'organization.create.handle.label': '組織ハンドル', + 'organization.create.handle.placeholder': 'my-organization', + 'organization.create.description.label': '説明', + 'organization.create.description.placeholder': '組織の説明を入力', + 'organization.create.button': '組織を作成', + 'organization.create.creating': '作成中…', + 'organization.create.cancel': 'キャンセル', + + /* |---------------------------------------------------------------| */ + /* | Messages | */ + /* |---------------------------------------------------------------| */ + + 'messages.loading': '読み込み中…', + + /* |---------------------------------------------------------------| */ + /* | Errors | */ + /* |---------------------------------------------------------------| */ + + 'errors.title': 'エラー', + 'errors.sign.in.initialization': '初期化中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.failure': 'サインイン処理中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.completion.failure': + 'サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.passkeys.failure': 'パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.passkeys.completion.failure': + 'パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。', +}; + +const metadata: I18nMetadata = { + localeCode: 'ja-JP', + countryCode: 'JP', + languageCode: 'ja', + displayName: '日本語 (日本)', + direction: 'ltr', +}; + +const en_US: I18nBundle = { + metadata, + translations, +}; + +export default ja_JP; From 65ae98a1045f240f8d57d911a169338489f2b0ac Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Thu, 2 Oct 2025 15:20:23 +0800 Subject: [PATCH 06/11] Update ja-JP.tr From bc7670a8f8fc1b7486e92380607c2fa02851f424 Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Thu, 2 Oct 2025 15:33:10 +0800 Subject: [PATCH 07/11] Rename ja-JP.tr to ja-JP.ts --- packages/i18n/src/translations/{ja-JP.tr => ja-JP.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/i18n/src/translations/{ja-JP.tr => ja-JP.ts} (100%) diff --git a/packages/i18n/src/translations/ja-JP.tr b/packages/i18n/src/translations/ja-JP.ts similarity index 100% rename from packages/i18n/src/translations/ja-JP.tr rename to packages/i18n/src/translations/ja-JP.ts From 2adf97bee2edc92a3c1c1b4fc95de00546eb9e2a Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Mon, 6 Oct 2025 13:52:04 +0800 Subject: [PATCH 08/11] Delete packages/i18n/src/translations/ja-JP.ts --- packages/i18n/src/translations/ja-JP.ts | 159 ------------------------ 1 file changed, 159 deletions(-) delete mode 100644 packages/i18n/src/translations/ja-JP.ts diff --git a/packages/i18n/src/translations/ja-JP.ts b/packages/i18n/src/translations/ja-JP.ts deleted file mode 100644 index 251c0c12..00000000 --- a/packages/i18n/src/translations/ja-JP.ts +++ /dev/null @@ -1,159 +0,0 @@ -/** - * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. 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. - */ - -/* eslint-disable sort-keys */ -/* eslint-disable @typescript-eslint/naming-convention */ - -import {I18nTranslations, I18nMetadata, I18nBundle} from '../models/i18n'; - -const translations: I18nTranslations = { - /* |---------------------------------------------------------------| */ - /* | Elements | */ - /* |---------------------------------------------------------------| */ - - /* Buttons */ - 'elements.buttons.signIn': 'ログイン', - 'elements.buttons.signOut': 'ログアウト', - 'elements.buttons.signUp': 'サインアップ', - 'elements.buttons.facebook': 'Facebookで続行', - 'elements.buttons.google': 'Googleで続行', - 'elements.buttons.github': 'GitHubで続行', - 'elements.buttons.microsoft': 'Microsoftで続行', - 'elements.buttons.linkedin': 'LinkedInで続行', - 'elements.buttons.ethereum': 'Ethereumでサインイン', - 'elements.buttons.multi.option': '{connection}で続行', - 'elements.buttons.social': '{connection}で続行', - - /* Fields */ - 'elements.fields.placeholder': '{field}を入力してください', - - /* |---------------------------------------------------------------| */ - /* | Widgets | */ - /* |---------------------------------------------------------------| */ - - /* Base Sign In */ - 'signin.title': 'ログイン', - 'signin.subtitle': '続行するには認証情報を入力してください。', - - /* Base Sign Up */ - 'signup.title': 'サインアップ', - 'signup.subtitle': 'はじめるには新しいアカウントを作成してください。', - - /* Email OTP */ - 'email.otp.title': 'OTP認証', - 'email.otp.subtitle': 'メールに送信されたコードを入力してください。', - 'email.otp.submit.button': '続行', - - /* Identifier First */ - 'identifier.first.title': 'ログイン', - 'identifier.first.subtitle': 'ユーザー名またはメールアドレスを入力してください。', - 'identifier.first.submit.button': '続行', - - /* SMS OTP */ - 'sms.otp.title': 'OTP認証', - 'sms.otp.subtitle': '電話番号に送信されたコードを入力してください。', - 'sms.otp.submit.button': '続行', - - /* TOTP */ - 'totp.title': '本人確認', - 'totp.subtitle': '認証アプリのコードを入力してください。', - 'totp.submit.button': '続行', - - /* Username Password */ - 'username.password.submit.button': '続行', - 'username.password.title': 'ログイン', - 'username.password.subtitle': 'ユーザー名とパスワードを入力してください。', - - /* |---------------------------------------------------------------| */ - /* | User Profile | */ - /* |---------------------------------------------------------------| */ - - 'user.profile.title': 'プロフィール', - 'user.profile.update.generic.error': 'プロフィール更新中にエラーが発生しました。もう一度お試しください。', - - /* |---------------------------------------------------------------| */ - /* | Organization Switcher | */ - /* |---------------------------------------------------------------| */ - - 'organization.switcher.select.organization': '組織を選択', - 'organization.switcher.switch.organization': '組織を切り替え', - 'organization.switcher.loading.organizations': '組織を読み込み中…', - 'organization.switcher.members': 'メンバー', - 'organization.switcher.member': 'メンバー', - 'organization.switcher.create.organization': '組織を作成', - 'organization.switcher.manage.organizations': '組織を管理', - 'organization.switcher.manage.button': '管理', - 'organization.switcher.organizations.title': '組織', - 'organization.switcher.switch.button': '切り替え', - 'organization.switcher.no.access': 'アクセス権がありません', - 'organization.switcher.status.label': 'ステータス:', - 'organization.switcher.showing.count': '全{total}件中{showing}件を表示', - 'organization.switcher.refresh.button': '更新', - 'organization.switcher.load.more': 'さらに読み込む', - 'organization.switcher.loading.more': '読み込み中…', - 'organization.switcher.no.organizations': '組織が見つかりません', - 'organization.switcher.error.prefix': 'エラー:', - 'organization.profile.title': '組織プロファイル', - 'organization.profile.loading': '組織を読み込み中…', - 'organization.profile.error': '組織の読み込みに失敗しました', - - 'organization.create.title': '組織の作成', - 'organization.create.name.label': '組織名', - 'organization.create.name.placeholder': '組織名を入力', - 'organization.create.handle.label': '組織ハンドル', - 'organization.create.handle.placeholder': 'my-organization', - 'organization.create.description.label': '説明', - 'organization.create.description.placeholder': '組織の説明を入力', - 'organization.create.button': '組織を作成', - 'organization.create.creating': '作成中…', - 'organization.create.cancel': 'キャンセル', - - /* |---------------------------------------------------------------| */ - /* | Messages | */ - /* |---------------------------------------------------------------| */ - - 'messages.loading': '読み込み中…', - - /* |---------------------------------------------------------------| */ - /* | Errors | */ - /* |---------------------------------------------------------------| */ - - 'errors.title': 'エラー', - 'errors.sign.in.initialization': '初期化中にエラーが発生しました。後でもう一度お試しください。', - 'errors.sign.in.flow.failure': 'サインイン処理中にエラーが発生しました。後でもう一度お試しください。', - 'errors.sign.in.flow.completion.failure': - 'サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。', - 'errors.sign.in.flow.passkeys.failure': 'パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。', - 'errors.sign.in.flow.passkeys.completion.failure': - 'パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。', -}; - -const metadata: I18nMetadata = { - localeCode: 'ja-JP', - countryCode: 'JP', - languageCode: 'ja', - displayName: '日本語 (日本)', - direction: 'ltr', -}; - -const en_US: I18nBundle = { - metadata, - translations, -}; - -export default ja_JP; From 234b11afe3363f1bb6c6face3dc9a02b92f20a9c Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Mon, 6 Oct 2025 15:59:15 +0800 Subject: [PATCH 09/11] Create breezy-masks-greet.md --- .changeset/breezy-masks-greet.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/breezy-masks-greet.md diff --git a/.changeset/breezy-masks-greet.md b/.changeset/breezy-masks-greet.md new file mode 100644 index 00000000..a111dcac --- /dev/null +++ b/.changeset/breezy-masks-greet.md @@ -0,0 +1,5 @@ +--- +'@asgardeo/i18n': minor +--- + +chore: add 'Japanese - ja-JP' language support From 61d30b6ef26b31bee6860baa387f870e6def9361 Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Wed, 8 Oct 2025 10:05:51 +0800 Subject: [PATCH 10/11] Create ja-JP.ts --- packages/i18n/src/translations/ja-JP.ts | 159 ++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 packages/i18n/src/translations/ja-JP.ts diff --git a/packages/i18n/src/translations/ja-JP.ts b/packages/i18n/src/translations/ja-JP.ts new file mode 100644 index 00000000..251c0c12 --- /dev/null +++ b/packages/i18n/src/translations/ja-JP.ts @@ -0,0 +1,159 @@ +/** + * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. 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. + */ + +/* eslint-disable sort-keys */ +/* eslint-disable @typescript-eslint/naming-convention */ + +import {I18nTranslations, I18nMetadata, I18nBundle} from '../models/i18n'; + +const translations: I18nTranslations = { + /* |---------------------------------------------------------------| */ + /* | Elements | */ + /* |---------------------------------------------------------------| */ + + /* Buttons */ + 'elements.buttons.signIn': 'ログイン', + 'elements.buttons.signOut': 'ログアウト', + 'elements.buttons.signUp': 'サインアップ', + 'elements.buttons.facebook': 'Facebookで続行', + 'elements.buttons.google': 'Googleで続行', + 'elements.buttons.github': 'GitHubで続行', + 'elements.buttons.microsoft': 'Microsoftで続行', + 'elements.buttons.linkedin': 'LinkedInで続行', + 'elements.buttons.ethereum': 'Ethereumでサインイン', + 'elements.buttons.multi.option': '{connection}で続行', + 'elements.buttons.social': '{connection}で続行', + + /* Fields */ + 'elements.fields.placeholder': '{field}を入力してください', + + /* |---------------------------------------------------------------| */ + /* | Widgets | */ + /* |---------------------------------------------------------------| */ + + /* Base Sign In */ + 'signin.title': 'ログイン', + 'signin.subtitle': '続行するには認証情報を入力してください。', + + /* Base Sign Up */ + 'signup.title': 'サインアップ', + 'signup.subtitle': 'はじめるには新しいアカウントを作成してください。', + + /* Email OTP */ + 'email.otp.title': 'OTP認証', + 'email.otp.subtitle': 'メールに送信されたコードを入力してください。', + 'email.otp.submit.button': '続行', + + /* Identifier First */ + 'identifier.first.title': 'ログイン', + 'identifier.first.subtitle': 'ユーザー名またはメールアドレスを入力してください。', + 'identifier.first.submit.button': '続行', + + /* SMS OTP */ + 'sms.otp.title': 'OTP認証', + 'sms.otp.subtitle': '電話番号に送信されたコードを入力してください。', + 'sms.otp.submit.button': '続行', + + /* TOTP */ + 'totp.title': '本人確認', + 'totp.subtitle': '認証アプリのコードを入力してください。', + 'totp.submit.button': '続行', + + /* Username Password */ + 'username.password.submit.button': '続行', + 'username.password.title': 'ログイン', + 'username.password.subtitle': 'ユーザー名とパスワードを入力してください。', + + /* |---------------------------------------------------------------| */ + /* | User Profile | */ + /* |---------------------------------------------------------------| */ + + 'user.profile.title': 'プロフィール', + 'user.profile.update.generic.error': 'プロフィール更新中にエラーが発生しました。もう一度お試しください。', + + /* |---------------------------------------------------------------| */ + /* | Organization Switcher | */ + /* |---------------------------------------------------------------| */ + + 'organization.switcher.select.organization': '組織を選択', + 'organization.switcher.switch.organization': '組織を切り替え', + 'organization.switcher.loading.organizations': '組織を読み込み中…', + 'organization.switcher.members': 'メンバー', + 'organization.switcher.member': 'メンバー', + 'organization.switcher.create.organization': '組織を作成', + 'organization.switcher.manage.organizations': '組織を管理', + 'organization.switcher.manage.button': '管理', + 'organization.switcher.organizations.title': '組織', + 'organization.switcher.switch.button': '切り替え', + 'organization.switcher.no.access': 'アクセス権がありません', + 'organization.switcher.status.label': 'ステータス:', + 'organization.switcher.showing.count': '全{total}件中{showing}件を表示', + 'organization.switcher.refresh.button': '更新', + 'organization.switcher.load.more': 'さらに読み込む', + 'organization.switcher.loading.more': '読み込み中…', + 'organization.switcher.no.organizations': '組織が見つかりません', + 'organization.switcher.error.prefix': 'エラー:', + 'organization.profile.title': '組織プロファイル', + 'organization.profile.loading': '組織を読み込み中…', + 'organization.profile.error': '組織の読み込みに失敗しました', + + 'organization.create.title': '組織の作成', + 'organization.create.name.label': '組織名', + 'organization.create.name.placeholder': '組織名を入力', + 'organization.create.handle.label': '組織ハンドル', + 'organization.create.handle.placeholder': 'my-organization', + 'organization.create.description.label': '説明', + 'organization.create.description.placeholder': '組織の説明を入力', + 'organization.create.button': '組織を作成', + 'organization.create.creating': '作成中…', + 'organization.create.cancel': 'キャンセル', + + /* |---------------------------------------------------------------| */ + /* | Messages | */ + /* |---------------------------------------------------------------| */ + + 'messages.loading': '読み込み中…', + + /* |---------------------------------------------------------------| */ + /* | Errors | */ + /* |---------------------------------------------------------------| */ + + 'errors.title': 'エラー', + 'errors.sign.in.initialization': '初期化中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.failure': 'サインイン処理中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.completion.failure': + 'サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.passkeys.failure': 'パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。', + 'errors.sign.in.flow.passkeys.completion.failure': + 'パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。', +}; + +const metadata: I18nMetadata = { + localeCode: 'ja-JP', + countryCode: 'JP', + languageCode: 'ja', + displayName: '日本語 (日本)', + direction: 'ltr', +}; + +const en_US: I18nBundle = { + metadata, + translations, +}; + +export default ja_JP; From ea6b108e3dc7e78c7e3f1afe88d4081f8b5f15e8 Mon Sep 17 00:00:00 2001 From: Lyla Byun Date: Wed, 8 Oct 2025 10:11:01 +0800 Subject: [PATCH 11/11] Delete packages/javascript/src/i18n/ja-JP.ts --- packages/javascript/src/i18n/ja-JP.ts | 164 -------------------------- 1 file changed, 164 deletions(-) delete mode 100644 packages/javascript/src/i18n/ja-JP.ts diff --git a/packages/javascript/src/i18n/ja-JP.ts b/packages/javascript/src/i18n/ja-JP.ts deleted file mode 100644 index 8986fe64..00000000 --- a/packages/javascript/src/i18n/ja-JP.ts +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. 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. - */ - -/* eslint-disable sort-keys */ - -import { I18nTranslations, I18nMetadata, I18nBundle } from "../models/i18n"; - -const translations: I18nTranslations = { - /* |---------------------------------------------------------------| */ - /* | Elements | */ - /* |---------------------------------------------------------------| */ - - /* Buttons */ - "elements.buttons.signIn": "ログイン", - "elements.buttons.signOut": "ログアウト", - "elements.buttons.signUp": "サインアップ", - "elements.buttons.facebook": "Facebookで続行", - "elements.buttons.google": "Googleで続行", - "elements.buttons.github": "GitHubで続行", - "elements.buttons.microsoft": "Microsoftで続行", - "elements.buttons.linkedin": "LinkedInで続行", - "elements.buttons.ethereum": "Ethereumでサインイン", - "elements.buttons.multi.option": "{connection}で続行", - "elements.buttons.social": "{connection}で続行", - - /* Fields */ - "elements.fields.placeholder": "{field}を入力してください", - - /* |---------------------------------------------------------------| */ - /* | Widgets | */ - /* |---------------------------------------------------------------| */ - - /* Base Sign In */ - "signin.title": "ログイン", - "signin.subtitle": "続行するには認証情報を入力してください。", - - /* Base Sign Up */ - "signup.title": "サインアップ", - "signup.subtitle": "はじめるには新しいアカウントを作成してください。", - - /* Email OTP */ - "email.otp.title": "OTP認証", - "email.otp.subtitle": "メールに送信されたコードを入力してください。", - "email.otp.submit.button": "続行", - - /* Identifier First */ - "identifier.first.title": "ログイン", - "identifier.first.subtitle": - "ユーザー名またはメールアドレスを入力してください。", - "identifier.first.submit.button": "続行", - - /* SMS OTP */ - "sms.otp.title": "OTP認証", - "sms.otp.subtitle": "電話番号に送信されたコードを入力してください。", - "sms.otp.submit.button": "続行", - - /* TOTP */ - "totp.title": "本人確認", - "totp.subtitle": "認証アプリのコードを入力してください。", - "totp.submit.button": "続行", - - /* Username Password */ - "username.password.submit.button": "続行", - "username.password.title": "ログイン", - "username.password.subtitle": "ユーザー名とパスワードを入力してください。", - - /* |---------------------------------------------------------------| */ - /* | User Profile | */ - /* |---------------------------------------------------------------| */ - - "user.profile.title": "プロフィール", - "user.profile.update.generic.error": - "プロフィール更新中にエラーが発生しました。もう一度お試しください。", - - /* |---------------------------------------------------------------| */ - /* | Organization Switcher | */ - /* |---------------------------------------------------------------| */ - - "organization.switcher.select.organization": "組織を選択", - "organization.switcher.switch.organization": "組織を切り替え", - "organization.switcher.loading.organizations": "組織を読み込み中…", - "organization.switcher.members": "メンバー", - "organization.switcher.member": "メンバー", - "organization.switcher.create.organization": "組織を作成", - "organization.switcher.manage.organizations": "組織を管理", - "organization.switcher.manage.button": "管理", - "organization.switcher.organizations.title": "組織", - "organization.switcher.switch.button": "切り替え", - "organization.switcher.no.access": "アクセス権がありません", - "organization.switcher.status.label": "ステータス:", - "organization.switcher.showing.count": "全{total}件中{showing}件を表示", - "organization.switcher.refresh.button": "更新", - "organization.switcher.load.more": "さらに読み込む", - "organization.switcher.loading.more": "読み込み中…", - "organization.switcher.no.organizations": "組織が見つかりません", - "organization.switcher.error.prefix": "エラー:", - - "organization.profile.title": "組織プロファイル", - "organization.profile.loading": "組織を読み込み中…", - "organization.profile.error": "組織の読み込みに失敗しました", - - "organization.create.title": "組織の作成", - "organization.create.name.label": "組織名", - "organization.create.name.placeholder": "組織名を入力", - "organization.create.handle.label": "組織ハンドル", - "organization.create.handle.placeholder": "my-organization", - "organization.create.description.label": "説明", - "organization.create.description.placeholder": "組織の説明を入力", - "organization.create.button": "組織を作成", - "organization.create.creating": "作成中…", - "organization.create.cancel": "キャンセル", - - /* |---------------------------------------------------------------| */ - /* | Messages | */ - /* |---------------------------------------------------------------| */ - - "messages.loading": "読み込み中…", - - /* |---------------------------------------------------------------| */ - /* | Errors | */ - /* |---------------------------------------------------------------| */ - - "errors.title": "エラー", - "errors.sign.in.initialization": - "初期化中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.failure": - "サインイン処理中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.completion.failure": - "サインイン処理の完了中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.passkeys.failure": - "パスキーでのサインイン中にエラーが発生しました。後でもう一度お試しください。", - "errors.sign.in.flow.passkeys.completion.failure": - "パスキーによるサインイン完了中にエラーが発生しました。後でもう一度お試しください。", -}; - -const metadata: I18nMetadata = { - localeCode: "ja-JP", - countryCode: "JP", - languageCode: "ja", - displayName: "日本語 (日本)", - direction: "ltr", -}; - -const ja_JP: I18nBundle = { - metadata, - translations, -}; - -export default ja_JP;