From c18e122d1d82ecae1027c7a15db12e182a4f6328 Mon Sep 17 00:00:00 2001 From: forestsource Date: Sun, 10 Sep 2023 15:51:46 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90:=20Japanese=20translation=20(#895)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Nav/SettingsTabs/General.tsx | 1 + client/src/localization/Translation.tsx | 4 + client/src/localization/languages/Eng.tsx | 1 + client/src/localization/languages/Jp.tsx | 254 ++++++++++++++++++ 4 files changed, 260 insertions(+) create mode 100644 client/src/localization/languages/Jp.tsx diff --git a/client/src/components/Nav/SettingsTabs/General.tsx b/client/src/components/Nav/SettingsTabs/General.tsx index 6b9189301d..55146786ae 100644 --- a/client/src/components/Nav/SettingsTabs/General.tsx +++ b/client/src/components/Nav/SettingsTabs/General.tsx @@ -85,6 +85,7 @@ export const LangSelector = ({ + ); diff --git a/client/src/localization/Translation.tsx b/client/src/localization/Translation.tsx index 02ee39ba4b..f2ef23f1c5 100644 --- a/client/src/localization/Translation.tsx +++ b/client/src/localization/Translation.tsx @@ -7,6 +7,7 @@ import Portuguese from './languages/Br'; import Spanish from './languages/Es'; import French from './languages/Fr'; import Russian from './languages/Ru'; +import Japanese from './languages/Jp'; // === import additional language files here === // // New method on String allow using "{\d}" placeholder for @@ -55,6 +56,9 @@ export const getTranslations = (langCode: string) => { if (langCode === 'ru') { return Russian; } + if (langCode === 'jp') { + return Japanese; + } // === add conditionals here for additional languages here === // return English; // default to English diff --git a/client/src/localization/languages/Eng.tsx b/client/src/localization/languages/Eng.tsx index 305f81b672..937bcd676a 100644 --- a/client/src/localization/languages/Eng.tsx +++ b/client/src/localization/languages/Eng.tsx @@ -260,4 +260,5 @@ export default { com_nav_lang_polish: 'Polski', com_nav_lang_brazilian_portuguese: 'Português Brasileiro', com_nav_lang_russian: 'Русский', + com_nav_lang_japanese: '日本語', }; diff --git a/client/src/localization/languages/Jp.tsx b/client/src/localization/languages/Jp.tsx new file mode 100644 index 0000000000..f2bb00695f --- /dev/null +++ b/client/src/localization/languages/Jp.tsx @@ -0,0 +1,254 @@ +// English phrases + +export default { + com_ui_examples: '例', + com_ui_new_chat: '新規チャット', + com_ui_example_quantum_computing: '量子コンピュータを簡単な単語で説明してください', + com_ui_example_10_year_old_b_day: '10歳の誕生日で行うクリエイティブなアイデアはありますか?', + com_ui_example_http_in_js: 'JavascriptでHTTPリクエストを作成するにはどうすればよいですか?', + com_ui_capabilities: '能力(機能)', + com_ui_capability_remember: 'ユーザと話した以前の会話の内容を思い出せます', + com_ui_capability_correction: 'ユーザは内容を修正して改善できます', + com_ui_capability_decline_requests: '不適切な要求を断るように学習されています', + com_ui_limitations: '制限事項', + com_ui_limitation_incorrect_info: '誤った情報を生成することがあります', + com_ui_limitation_harmful_biased: + '有害な指示や偏った内容を生成する可能性があります', + com_ui_limitation_limited_2021: '2021年以降の世界と出来事に関しては知識が乏しいです', + com_ui_input: '入力', + com_ui_close: '閉じる', + com_ui_model: 'モデル', + com_ui_select_model: 'モデル選択', + com_ui_use_prompt: 'Use prompt', + com_ui_prev: '前', + com_ui_next: '次', + com_ui_prompt_templates: 'プロンプトテンプレート', + com_ui_hide_prompt_templates: 'プロンプトテンプレートを隠す', + com_ui_showing: '表示', + com_ui_of: 'of', + com_ui_entries: 'エントリー', + com_ui_pay_per_call: 'すべてのAIチャットを1つの場所で。月額ではなく利用した分だけ支払いを。', + com_ui_enter: 'Enter', + com_ui_submit: '送信する', + com_ui_upload_success: 'アップロード成功', + com_ui_upload_invalid: '不正なファイルです', + com_ui_cancel: 'キャンセル', + com_ui_save: '保存', + com_ui_copy_to_clipboard: 'クリップボードへコピー', + com_ui_copied_to_clipboard: 'コピーしました', + com_ui_regenerate: '再度 生成する', + com_ui_continue: '続きを生成する', + com_ui_edit: '編集', + com_ui_success: '成功', + com_ui_all: 'すべて', + com_ui_clear: '削除する', + com_ui_revoke: '無効にする', + com_ui_revoke_info: 'ユーザへ発行した認証情報をすべて無効にする。', + com_ui_confirm_action: '実行する', + com_ui_chats: 'チャット', + com_ui_delete: '削除', + com_ui_delete_conversation: 'チャットを削除しますか?', + com_ui_delete_conversation_confirm: 'このチャットは削除されます。', + com_auth_error_login: + '入力された情報ではログインできませんでした。認証情報を確認した上で再度お試しください。', + com_auth_error_login_rl: + 'お使いのIPアドレスから短時間に多数のログイン試行がありました。しばらくしてから再度お試しください。', + com_auth_no_account: 'アカウントをお持ちでない場合はこちら', + com_auth_sign_up: '登録', + com_auth_sign_in: 'ログイン', + com_auth_google_login: 'Googleでログインする', + com_auth_facebook_login: 'Facebookでログインする', + com_auth_github_login: 'Githubでログインする', + com_auth_discord_login: 'Discordでログインする', + com_auth_email: 'メール', + com_auth_email_required: 'メールは必須です', + com_auth_email_min_length: 'メールアドレスは最低6文字は必要です', + com_auth_email_max_length: 'メールアドレスは最大120文字です', + com_auth_email_pattern: '有効なメールアドレスを入力してください', + com_auth_email_address: 'メールアドレス', + com_auth_password: 'パスワード', + com_auth_password_required: 'パスワードは必須です', + com_auth_password_min_length: 'パスワードは最低8文字です', + com_auth_password_max_length: 'パスワードは最大128文字です', + com_auth_password_forgot: 'パスワードを忘れた場合はこちら', + com_auth_password_confirm: '確認用パスワード', + com_auth_password_not_match: 'パスワードが一致しません', + com_auth_continue: '続ける', + com_auth_create_account: 'アカウント登録', + com_auth_error_create: + 'アカウント登録に失敗しました。もう一度試してください。', + com_auth_full_name: '姓名', + com_auth_name_required: '姓名は必須です', + com_auth_name_min_length: '姓名は最低3文字は必要です', + com_auth_name_max_length: '姓名は最大80文字です', + com_auth_username: 'ユーザ名 (オプション)', + com_auth_username_required: 'は必須です', + com_auth_username_min_length: 'ユーザ名は最低2文字です', + com_auth_username_max_length: 'ユーザ名は最大20文字です', + com_auth_already_have_account: '既にアカウントがある場合はこちら', + com_auth_login: 'ログイン', + com_auth_reset_password: 'パスワードリセット', + com_auth_click: 'クリック', + com_auth_here: 'こちら', + com_auth_to_reset_your_password: 'to reset your password.', + com_auth_reset_password_link_sent: 'メールを送信する', + com_auth_reset_password_email_sent: + 'パスワードリセット方法を記載したメールを送信しました。', + com_auth_error_reset_password: + 'パスワードリセット中に問題が発生しました。指定されたメールアドレスのユーザは存在しません。別のメールアドレスでもう一度お試しください。', + com_auth_reset_password_success: 'パスワードリセットに成功しました', + com_auth_login_with_new_password: '新しいパスワードでログインを試してみてください。', + com_auth_error_invalid_reset_token: '無効なパスワードリセットトークンです。', + com_auth_click_here: 'ここをクリック', + com_auth_to_try_again: 'to try again.', + com_auth_submit_registration: '登録をする', + com_auth_welcome_back: 'おかえりなさい', + com_endpoint_open_menu: 'メニューを開く', + com_endpoint_bing_enable_sydney: 'Sydney有効化', + com_endpoint_bing_to_enable_sydney: '(Sydneyを利用する)', + com_endpoint_bing_jailbreak: 'ジェイルブレイク', + com_endpoint_bing_context_placeholder: + 'Bingは最大7kトークンの「コンテキスト」を参照できます。具体的な上限は不明ですが、7kトークンを超えるとエラーになる可能性があります。', + com_endpoint_bing_system_message_placeholder: + '警告: この機能を悪用するとBingの利用を「禁止」される可能性があります。すべての内容を表示するには「System Message」をクリックしてください。省略された場合は、安全と考えられる「Sydney」プリセットが使われます', + com_endpoint_system_message: 'System Message', + com_endpoint_default_blank: 'default: blank', + com_endpoint_default_false: 'default: false', + com_endpoint_default_creative: 'default: creative', + com_endpoint_default_empty: 'default: empty', + com_endpoint_default_with_num: 'default: {0}', + com_endpoint_context: 'コンテキスト', + com_endpoint_tone_style: 'トーンスタイル', + com_endpoint_token_count: 'トークン数', + com_endpoint_output: '出力', + com_endpoint_google_temp: + '大きい値 = ランダム性が増します。低い値 = より決定論的になります。この値を変更するか、Top P を変更するをおすすめしますが、両方を変更するのはおすすめしません。', + com_endpoint_google_topp: + 'Top-p はモデルがトークンをどのように選択して出力するかを変更する。K(topKを参照)の確率の合計がtop-pの確率と等しくなるまでのトークンが選択される。', + com_endpoint_google_topk: + 'Top-k はモデルがトークンをどのように選択して出力するかを変更する。top-kが1の場合はモデルの語彙に含まれるすべてのトークンの中で最も確率が高い1つが選択される(greedy decodingと呼ばれている)。top-kが3の場合は上位3つのトークンの中から選択される。(temperatureを使用)', + com_endpoint_google_maxoutputtokens: + ' 生成されるレスポンスの最大トークン数。短いレスポンスには低い値を、長いレスポンスには高い値を指定する。', + com_endpoint_google_custom_name_placeholder: 'PaLM2用の名前を設定する', + com_endpoint_prompt_prefix_placeholder: 'custom instructions か context を設定する。空の場合は無視されます。', + com_endpoint_custom_name: 'プリセット名', + com_endpoint_prompt_prefix: 'プロンプトの先頭', + com_endpoint_temperature: 'Temperature', + com_endpoint_default: 'default', + com_endpoint_top_p: 'Top P', + com_endpoint_top_k: 'Top K', + com_endpoint_max_output_tokens: '最大出力トークン数', + com_endpoint_openai_temp: + '大きい値 = ランダム性が増します。低い値 = より決定論的になります。この値を変更するか、Top P を変更するをおすすめしますが、両方を変更するのはおすすめしません。', + com_endpoint_openai_max: + '生成するトークンの最大値。入力トークンと生成トークンの長さの合計は、モデルのコンテキスト長によって制限されます。', + com_endpoint_openai_topp: + 'nucleus sampling と呼ばれるtemperatureを使用したサンプリングの代わりに、top_p確率質量のトークンの結果を考慮する。つまり、0.1とすると確率質量の上位10%を構成するトークンのみが考慮されます。この値かtemperatureを変更することをおすすめしますが、両方を変更するのはおすすめしません。', + com_endpoint_openai_freq: + '-2.0から2.0の値。正の値を入力すると、テキストの繰り返し頻度に基づいたペナルティを課し、言葉通り「同じ行」を繰り返す可能性を減少させる。', + com_endpoint_openai_pres: + '-2.0から2.0の値。正の値は入力すると、新規トークンの出現に基づいたペナルティを課し、新しいトピックについて話す可能性を高める。', + com_endpoint_openai_custom_name_placeholder: 'ChatGPT用の名前を設定する', + com_endpoint_openai_prompt_prefix_placeholder: + 'System Message に含める Custom Instructions。デフォルト: none', + com_endpoint_anthropic_temp: + '0から1の値。分析的・多岐の選択になる課題には0に近い値を入力する。創造的・生成的な課題には1に近い値を入力する。この値か Top P を変更することをおすすめしますが、両方を変更するのはおすすめしません。', + com_endpoint_anthropic_topp: + 'Top-p はモデルがトークンをどのように選択して出力するかを変更する。K(topKを参照)の確率の合計がtop-pの確率と等しくなるまでのトークンが選択される。', + com_endpoint_anthropic_topk: + 'Top-k はモデルがトークンをどのように選択して出力するかを変更する。top-kが1の場合はモデルの語彙に含まれるすべてのトークンの中で最も確率が高い1つが選択される(greedy decodingと呼ばれている)。top-kが3の場合は上位3つのトークンの中から選択される。(temperatureを使用)', + com_endpoint_anthropic_maxoutputtokens: + '生成されるレスポンスの最大トークン数。短いレスポンスには低い値を、長いレスポンスには高い値を指定する。', + com_endpoint_anthropic_custom_name_placeholder: 'Anthropic用の名前を設定する', + com_endpoint_frequency_penalty: 'Frequency Penalty', + com_endpoint_presence_penalty: 'Presence Penalty', + com_endpoint_plug_use_functions: 'Use Functions', + com_endpoint_plug_skip_completion: 'Skip Completion', + com_endpoint_disabled_with_tools: 'disabled with tools', + com_endpoint_disabled_with_tools_placeholder: 'Disabled with Tools Selected', + com_endpoint_plug_set_custom_instructions_for_gpt_placeholder: + 'System Message に含める Custom Instructions。デフォルト: none', + com_endpoint_import: 'インポート', + com_endpoint_set_custom_name: 'このプリセットを見つけやすいように名前を設定する。', + com_endpoint_preset: 'プリセット', + com_endpoint_presets: 'プリセット', + com_endpoint_preset_name: 'プリセット名', + com_endpoint_new_topic: '新規トピック', + com_endpoint: 'エンドポイント', + com_endpoint_hide: '非表示', + com_endpoint_show: '表示', + com_endpoint_examples: ' プリセット名', + com_endpoint_completion: 'コンプリーション', + com_endpoint_agent: 'エージェント', + com_endpoint_show_what_settings: '設定 {0} を表示する', + com_endpoint_save: 'セーブ', + com_endpoint_export: 'エクスポート', + com_endpoint_save_as_preset: 'プリセットとして保存する', + com_endpoint_presets_clear_warning: + '本当にすべてのプリセットを削除しますか? この操作は元に戻せません。', + com_endpoint_not_implemented: 'まだ実装されていません', + com_endpoint_no_presets: 'プリセットがありません', + com_endpoint_not_available: 'エンドポイントは利用できません', + com_endpoint_view_options: 'オプションを見る', + com_endpoint_save_convo_as_preset: '会話をプリセットとして保存する', + com_endpoint_my_preset: '自分のプリセット', + com_endpoint_agent_model: 'エージェントモデル (Recommended: GPT-3.5)', + com_endpoint_completion_model: 'コンプリーションモデル (Recommended: GPT-4)', + com_endpoint_func_hover: 'プラグインをOpenAIの関数として使えるようにする', + com_endpoint_skip_hover: + 'コンプリーションのステップをスキップする。(最終的な回答と生成されたステップをレビューする機能)', + com_endpoint_config_key: 'API Keyを設定する', + com_endpoint_config_key_for: 'API Key の設定: ', + com_endpoint_config_key_name: 'Key', + com_endpoint_config_value: '値を入力してください', + com_endpoint_config_key_name_placeholder: 'API key を入力してください', + com_endpoint_config_key_encryption: '鍵は暗号化されます。削除予定日:', + com_endpoint_config_key_expiry: 'すでに有効期限切れ', + com_endpoint_config_key_import_json_key: 'Service Account JSON Key をインポートする。', + com_endpoint_config_key_import_json_key_success: 'Service Account JSON Keyのインポートに成功しました。', + com_endpoint_config_key_import_json_key_invalid: + '無効なService Account JSON Keyです。正しいファイルか確認してください。', + com_endpoint_config_key_get_edge_key: 'Bing用のアクセストークンを取得するためにログインをしてください: ', + com_endpoint_config_key_get_edge_key_dev_tool: + 'サイトにログインした状態で、開発ツールまたは拡張機能を使用して、_U クッキーの内容をコピーします。もし失敗する場合は次の手順に従ってください。', + com_endpoint_config_key_edge_instructions: '手順', + com_endpoint_config_key_edge_full_key_string: 'to provide the full cookie strings.', + com_endpoint_config_key_chatgpt: 'ChatGPTの「Free Version」のアクセストークンを入手するためにへログインをしてください:', + com_endpoint_config_key_chatgpt_then_visit: 'つぎに、ここへアクセスしてください:', + com_endpoint_config_key_chatgpt_copy_token: 'トークンをコピーしてください。', + com_endpoint_config_key_google_need_to: 'こちらを有効化する必要があります:', + com_endpoint_config_key_google_vertex_ai: 'Vertex AI API', + com_endpoint_config_key_google_vertex_api: '(Google Cloud) 次に、', + com_endpoint_config_key_google_service_account: 'Service Accountを作成する', + com_endpoint_config_key_google_vertex_api_role: + '必ず「作成して続行」をクリックして、最低でも「Vertex AI ユーザー」ロールを与えてください。最後にここにインポートするJSONキーを作成してください。', + com_nav_export_filename: 'ファイル名', + com_nav_export_filename_placeholder: 'ファイル名を入力してください', + com_nav_export_type: 'タイプ', + com_nav_export_include_endpoint_options: 'エンドポイントのオプションを含める', + com_nav_enabled: '有効化', + com_nav_not_supported: 'サポートされていません', + com_nav_export_all_message_branches: 'すべての子メッセージを含める', + com_nav_export_recursive_or_sequential: '再帰的? or 順次的?', + com_nav_export_recursive: '再帰的', + com_nav_export_conversation: '会話をエクスポートする', + com_nav_theme: 'テーマ', + com_nav_theme_system: 'システム', + com_nav_theme_dark: 'ダーク', + com_nav_theme_light: 'ライト', + com_nav_clear_all_chats: 'すべてのチャットを削除する', + com_nav_confirm_clear: 'Confirm Clear', + com_nav_close_sidebar: 'サイドバーを閉じる', + com_nav_open_sidebar: 'サイドバーを開く', + com_nav_log_out: 'ログアウト', + com_nav_user: 'ユーザ', + com_nav_clear_conversation: '会話を削除する', + com_nav_clear_conversation_confirm_message: + '本当にすべての会話を削除しますか? この操作は取り消せません。', + com_nav_help_faq: 'ヘルプ & FAQ', + com_nav_settings: '設定', + com_nav_search_placeholder: 'メッセージ検索', + com_nav_setting_general: '一般', + com_nav_setting_data: 'データ管理', + com_nav_language: '言語' +};