mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-02 13:32:26 +00:00
feat(login): add Japanese localization for login frontend app (#10811)
<!-- Please inform yourself about the contribution guidelines on submitting a PR here: https://github.com/zitadel/zitadel/blob/main/CONTRIBUTING.md#submit-a-pull-request-pr. Take note of how PR/commit titles should be written and replace the template texts in the sections below. Don't remove any of the sections. It is important that the commit history clearly shows what is changed and why. Important: By submitting a contribution you agree to the terms from our Licensing Policy as described here: https://github.com/zitadel/zitadel/blob/main/LICENSING.md#community-contributions. --> # Which Problems Are Solved - Japanese users cannot use the Login UI in their native language, as only other locales (English, German, Italian, Spanish, Polish, Chinese, Russian, Turkish) are currently supported - The Login UI language selection does not include Japanese as an option # How the Problems Are Solved - Updated the `LANGS` array in `apps/login/src/lib/i18n.ts` to include Japanese (`{ name: "日本語", code: "ja" }`) - Enables Japanese language selection in the Login UI through browser language detection or manual locale setting # Additional Changes - No additional changes were necessary as other components (Console, email notifications, common messages, Go templates) already have Japanese locale support (`ja.json`/`ja.yaml` files exist) # Additional Context - This contribution enhances ZITADEL's internationalization support for Japanese-speaking users - The translation follows the same structure and key naming conventions as existing locale files - Testing can be performed by setting browser language to Japanese or using `NEXT_LOCALE=ja` cookie Co-authored-by: Max Peintner <max@caos.ch>
This commit is contained in:
333
apps/login/locales/ja.json
Normal file
333
apps/login/locales/ja.json
Normal file
@@ -0,0 +1,333 @@
|
||||
{
|
||||
"common": {
|
||||
"back": "戻る",
|
||||
"title": "ZITADELでログイン"
|
||||
},
|
||||
"accounts": {
|
||||
"title": "アカウント",
|
||||
"description": "使用するアカウントを選択してください。",
|
||||
"addAnother": "別のアカウントを追加",
|
||||
"noResults": "アカウントが見つかりません",
|
||||
"verified": "認証済み",
|
||||
"expired": "期限切れ"
|
||||
},
|
||||
"logout": {
|
||||
"title": "ログアウト",
|
||||
"description": "セッションを終了するアカウントをクリックしてください",
|
||||
"noResults": "アカウントが見つかりません",
|
||||
"clear": "セッション終了",
|
||||
"verifiedAt": "最後のアクティブ: {time}",
|
||||
"success": {
|
||||
"title": "ログアウト完了",
|
||||
"description": "正常にログアウトしました。"
|
||||
}
|
||||
},
|
||||
"loginname": {
|
||||
"title": "お帰りなさい!",
|
||||
"description": "ログイン情報を入力してください。",
|
||||
"register": "新規ユーザー登録",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"loginname": "ログイン名",
|
||||
"username": "ユーザー名",
|
||||
"usernameOrPhoneNumber": "ユーザー名または電話番号",
|
||||
"usernameOrEmail": "ユーザー名またはメールアドレス"
|
||||
},
|
||||
"required": {
|
||||
"loginName": "必須項目です"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"verify": {
|
||||
"title": "パスワード",
|
||||
"description": "パスワードを入力してください。",
|
||||
"resetPassword": "パスワードをリセット",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"password": "パスワード"
|
||||
},
|
||||
"required": {
|
||||
"password": "必須項目です"
|
||||
}
|
||||
},
|
||||
"set": {
|
||||
"title": "パスワード設定",
|
||||
"description": "アカウントのパスワードを設定してください",
|
||||
"codeSent": "確認コードをメールアドレスに送信しました。",
|
||||
"noCodeReceived": "コードが届きませんか?",
|
||||
"resend": "コードを再送信",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"code": "コード",
|
||||
"newPassword": "新しいパスワード",
|
||||
"confirmPassword": "パスワード確認"
|
||||
},
|
||||
"required": {
|
||||
"code": "必須項目です",
|
||||
"newPassword": "パスワードを入力してください!",
|
||||
"confirmPassword": "必須項目です"
|
||||
}
|
||||
},
|
||||
"change": {
|
||||
"title": "パスワード変更",
|
||||
"description": "アカウントのパスワードを設定してください",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"newPassword": "新しいパスワード",
|
||||
"confirmPassword": "パスワード確認"
|
||||
},
|
||||
"required": {
|
||||
"newPassword": "新しいパスワードを入力してください!",
|
||||
"confirmPassword": "必須項目です"
|
||||
}
|
||||
}
|
||||
},
|
||||
"idp": {
|
||||
"title": "SSOでサインイン",
|
||||
"description": "以下のプロバイダーを選択してサインインしてください",
|
||||
"orSignInWith": "または次でサインイン",
|
||||
"signInWithApple": "Appleでサインイン",
|
||||
"signInWithGoogle": "Googleでサインイン",
|
||||
"signInWithAzureAD": "AzureADでサインイン",
|
||||
"signInWithGithub": "GitHubでサインイン",
|
||||
"signInWithGitlab": "GitLabでサインイン",
|
||||
"loginSuccess": {
|
||||
"title": "ログイン成功",
|
||||
"description": "正常にログインしました!"
|
||||
},
|
||||
"linkingSuccess": {
|
||||
"title": "アカウント連携完了",
|
||||
"description": "アカウントの連携が完了しました!"
|
||||
},
|
||||
"registerSuccess": {
|
||||
"title": "登録完了",
|
||||
"description": "正常に登録されました!"
|
||||
},
|
||||
"loginError": {
|
||||
"title": "ログイン失敗",
|
||||
"description": "ログインの際にエラーが発生しました。"
|
||||
},
|
||||
"linkingError": {
|
||||
"title": "アカウント連携失敗",
|
||||
"description": "アカウント連携の際にエラーが発生しました。"
|
||||
},
|
||||
"completeRegister": {
|
||||
"title": "データを完成させる",
|
||||
"description": "メールアドレスと名前を入力して登録を完了してください。"
|
||||
}
|
||||
},
|
||||
"ldap": {
|
||||
"title": "LDAPログイン",
|
||||
"description": "LDAP認証情報を入力してください。",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"username": "ユーザー名",
|
||||
"password": "パスワード"
|
||||
},
|
||||
"required": {
|
||||
"username": "必須項目です",
|
||||
"password": "必須項目です"
|
||||
}
|
||||
},
|
||||
"mfa": {
|
||||
"verify": {
|
||||
"title": "本人確認",
|
||||
"description": "以下の要素の中から一つを選択してください。",
|
||||
"noResults": "設定可能な二要素認証がありません。"
|
||||
},
|
||||
"set": {
|
||||
"title": "二要素認証の設定",
|
||||
"description": "以下の二要素認証の中から一つを選択してください。",
|
||||
"skip": "スキップ"
|
||||
}
|
||||
},
|
||||
"otp": {
|
||||
"verify": {
|
||||
"title": "二要素認証",
|
||||
"totpDescription": "認証アプリからコードを入力してください。",
|
||||
"smsDescription": "SMSで受信したコードを入力してください。",
|
||||
"emailDescription": "メールで受信したコードを入力してください。",
|
||||
"noCodeReceived": "コードが届きませんか?",
|
||||
"resendCode": "コードを再送信",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"code": "コード"
|
||||
},
|
||||
"required": {
|
||||
"code": "必須項目です"
|
||||
}
|
||||
},
|
||||
"set": {
|
||||
"title": "二要素認証の設定",
|
||||
"totpDescription": "認証アプリでQRコードをスキャンしてください。",
|
||||
"smsDescription": "SMSでコードを受信する電話番号を入力してください。",
|
||||
"emailDescription": "メールでコードを受信するメールアドレスを入力してください。",
|
||||
"totpRegisterDescription": "QRコードをスキャンするか、URLに手動でアクセスしてください。",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"code": "コード"
|
||||
},
|
||||
"required": {
|
||||
"code": "必須項目です"
|
||||
}
|
||||
}
|
||||
},
|
||||
"passkey": {
|
||||
"verify": {
|
||||
"title": "パスキーで認証",
|
||||
"description": "デバイスが指紋、顔、または画面ロックの入力を求めます",
|
||||
"usePassword": "パスワードを使用",
|
||||
"submit": "続行"
|
||||
},
|
||||
"set": {
|
||||
"title": "パスキーの設定",
|
||||
"description": "デバイスが指紋、顔、または画面ロックの入力を求めます",
|
||||
"info": {
|
||||
"description": "パスキーは、指紋やApple FaceIDなどのデバイス上の認証方法です。",
|
||||
"link": "パスワードレス認証"
|
||||
},
|
||||
"skip": "スキップ",
|
||||
"submit": "続行"
|
||||
}
|
||||
},
|
||||
"u2f": {
|
||||
"verify": {
|
||||
"title": "二要素認証",
|
||||
"description": "デバイスでアカウントを確認してください。"
|
||||
},
|
||||
"set": {
|
||||
"title": "二要素認証の設定",
|
||||
"description": "デバイスを二要素認証として設定します。",
|
||||
"submit": "続行"
|
||||
}
|
||||
},
|
||||
"register": {
|
||||
"methods": {
|
||||
"passkey": "パスキー",
|
||||
"password": "パスワード"
|
||||
},
|
||||
"disabled": {
|
||||
"title": "登録が無効",
|
||||
"description": "登録が無効になっています。管理者にお問い合わせください。"
|
||||
},
|
||||
"missingdata": {
|
||||
"title": "データが不足",
|
||||
"description": "登録するにはメールアドレス、姓、名を入力してください。"
|
||||
},
|
||||
"title": "登録",
|
||||
"description": "ZITADELアカウントを作成します。",
|
||||
"noMethodAvailableWarning": "使用可能な認証方法がありません。管理者にお問い合わせください。",
|
||||
"selectMethod": "認証に使用する方法を選択してください",
|
||||
"agreeTo": "登録するには利用規約に同意する必要があります",
|
||||
"termsOfService": "利用規約",
|
||||
"privacyPolicy": "プライバシーポリシー",
|
||||
"submit": "続行",
|
||||
"password": {
|
||||
"title": "パスワード設定",
|
||||
"description": "アカウントのパスワードを設定してください",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"password": "パスワード",
|
||||
"confirmPassword": "パスワード確認"
|
||||
},
|
||||
"required": {
|
||||
"password": "パスワードを入力してください!",
|
||||
"confirmPassword": "必須項目です"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"firstname": "名",
|
||||
"lastname": "姓",
|
||||
"email": "メールアドレス"
|
||||
},
|
||||
"required": {
|
||||
"firstname": "必須項目です",
|
||||
"lastname": "必須項目です",
|
||||
"email": "必須項目です"
|
||||
}
|
||||
},
|
||||
"invite": {
|
||||
"title": "ユーザー招待",
|
||||
"description": "招待するユーザーのメールアドレスと名前を入力してください。",
|
||||
"info": "ユーザーには詳細な手順が記載されたメールが送信されます。",
|
||||
"notAllowed": "設定によりユーザーを招待できません。",
|
||||
"submit": "続行",
|
||||
"success": {
|
||||
"title": "ユーザーを招待しました",
|
||||
"description": "メールが正常に送信されました。",
|
||||
"verified": "ユーザーが招待され、既にメールアドレスが確認済みです。",
|
||||
"notVerifiedYet": "ユーザーが招待されました。詳細な手順が記載されたメールを受信します。",
|
||||
"submit": "別のユーザーを招待"
|
||||
}
|
||||
},
|
||||
"signedin": {
|
||||
"title": "ようこそ {user}さん!",
|
||||
"description": "サインインしました。",
|
||||
"continue": "続行",
|
||||
"error": {
|
||||
"title": "エラー",
|
||||
"description": "サインインの際にエラーが発生しました。"
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"userIdMissing": "ユーザーIDが指定されていません!",
|
||||
"successTitle": "ユーザー確認完了",
|
||||
"successDescription": "ユーザーの確認が正常に完了しました。",
|
||||
"setupAuthenticator": "認証の設定",
|
||||
"verify": {
|
||||
"title": "ユーザー確認",
|
||||
"description": "確認メールに記載されたコードを入力してください。",
|
||||
"noCodeReceived": "コードが届きませんか?",
|
||||
"resendCode": "コードを再送信",
|
||||
"codeSent": "確認コードをメールアドレスに送信しました。",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"code": "コード"
|
||||
},
|
||||
"required": {
|
||||
"code": "必須項目です"
|
||||
}
|
||||
}
|
||||
},
|
||||
"authenticator": {
|
||||
"title": "認証方法を選択",
|
||||
"description": "認証に使用する方法を選択してください",
|
||||
"noMethodsAvailable": "使用可能な認証方法がありません",
|
||||
"allSetup": "認証の設定は既に完了しています!",
|
||||
"linkWithIDP": "またはIDプロバイダーと連携"
|
||||
},
|
||||
"device": {
|
||||
"usercode": {
|
||||
"title": "デバイスコード",
|
||||
"description": "アプリまたはデバイスに表示されるコードを入力してください。",
|
||||
"submit": "続行",
|
||||
"labels": {
|
||||
"code": "コード"
|
||||
},
|
||||
"required": {
|
||||
"code": "必須項目です"
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "{appName}が接続を要求しています",
|
||||
"description": "{appName}は以下にアクセスします:",
|
||||
"disclaimer": "「許可」をクリックすることで、{appName}とZitadelがそれぞれの利用規約およびプライバシーポリシーに従ってあなたの情報を使用することを許可します。このアクセスはいつでも取り消すことができます。",
|
||||
"submit": "許可",
|
||||
"deny": "拒否"
|
||||
},
|
||||
"scope": {
|
||||
"openid": "本人確認を行います。",
|
||||
"email": "メールアドレスを表示します。",
|
||||
"profile": "すべてのプロフィール情報を表示します。",
|
||||
"offline_access": "アカウントへのオフラインアクセスを許可します。"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"noUserCode": "ユーザーコードが指定されていません!",
|
||||
"noDeviceRequest": "デバイスリクエストが見つかりません。",
|
||||
"unknownContext": "ユーザーのコンテキストを取得できませんでした。最初にユーザー名を入力するか、検索パラメータとしてloginNameを指定してください。",
|
||||
"sessionExpired": "現在のセッションが期限切れです。再度ログインしてください。",
|
||||
"failedLoading": "データの読み込みに失敗しました。再試行してください。",
|
||||
"tryagain": "再試行"
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,10 @@ export const LANGS: Lang[] = [
|
||||
name: "Türkçe",
|
||||
code: "tr",
|
||||
},
|
||||
{
|
||||
name: "日本語",
|
||||
code: "ja",
|
||||
},
|
||||
];
|
||||
|
||||
export const LANGUAGE_COOKIE_NAME = "NEXT_LOCALE";
|
||||
|
||||
Reference in New Issue
Block a user