diff --git a/src/locales/ja-JP.ts b/src/locales/ja-JP.ts new file mode 100644 index 00000000..33f16356 --- /dev/null +++ b/src/locales/ja-JP.ts @@ -0,0 +1,19 @@ +/** + * @description The directory name used in require.context must match the language configuration names defined in lang-config-map.ts. + * @example Directories like 'en-US' or 'zh-CN' should correspond exactly to the configuration names in lang-config-map.ts. + */ + +// @ts-ignore +const requireContext = require.context(`./ja-JP`, false, /\.ts$/); + +let languageConfig: Record = {}; + +requireContext.keys().forEach((fileName: any) => { + const moduleConfig = requireContext(fileName).default; + languageConfig = { + ...languageConfig, + ...moduleConfig + }; +}); + +export default languageConfig; diff --git a/src/locales/ja-JP/apikeys.ts b/src/locales/ja-JP/apikeys.ts new file mode 100644 index 00000000..6ca11cdf --- /dev/null +++ b/src/locales/ja-JP/apikeys.ts @@ -0,0 +1,15 @@ +export default { + 'apikeys.title': 'APIキー', + 'apikeys.table.apikeys': 'keys', + 'apikeys.button.create': '新しいAPIキーを作成', + 'apikeys.title.save': 'Save API Key', + 'apikeys.form.expiretime': '有効期限', + 'apikeys.form.apikey': 'APIキー', + 'apikeys.table.name': 'Key Name', + 'apikeys.table.save.tips': + 'キーをすぐにコピーしてください。一度閉じると再表示はできません。', + 'apikeys.form.expiration.7days': '7日間', + 'apikeys.form.expiration.1month': '1ヶ月', + 'apikeys.form.expiration.6months': '6ヶ月', + 'apikeys.form.expiration.never': '無期限' +}; diff --git a/src/locales/ja-JP/common.ts b/src/locales/ja-JP/common.ts new file mode 100644 index 00000000..5e6d9f87 --- /dev/null +++ b/src/locales/ja-JP/common.ts @@ -0,0 +1,237 @@ +export default { + 'common.button.resetdefault': 'デフォルトにリセット', + 'common.button.perview': 'プレビュー', + 'common.button.readonly': '読み取り専用', + 'common.button.editmode': '編集モード', + 'common.button.shortcut': 'キーボードショートカット', + 'common.button.add': '追加', + 'common.button.login': 'ログイン', + 'common.button.select': '選択', + 'common.button.selected': '選択済み', + 'common.button.continue': '続行', + 'common.button.upload': 'アップロード', + 'common.button.save': '保存', + 'common.button.saverun': '保存して実行', + 'common.button.run': '実行', + 'common.button.viewcode': 'コードを表示', + 'common.button.copy': 'コピー', + 'common.button.collapse': '折りたたむ', + 'common.button.expand': '展開', + 'common.button.cancel': 'キャンセル', + 'common.button.approval': '承認', + 'common.button.reject': '拒否', + 'common.button.more': 'もっと見る', + 'common.button.discard': '破棄する', + 'common.button.submit': '送信', + 'settings.system': 'システム設定', + 'common.button.search': '検索', + 'common.button.clear': 'クリア', + 'common.holder.search': '検索', + 'common.button.view': '詳細を表示', + 'common.button.detail': '詳細を表示', + 'common.button.reset': 'リセット', + 'common.button.export': 'エクスポート', + 'common.button.import': 'インポート', + 'common.button.retry': '再試行', + 'common.button.apply': '適用', + 'common.button.create.now': '今すぐ作成', + 'common.button.add.now': '今すぐ追加', + 'common.button.refresh': '更新', + 'common.button.delete': '削除', + 'common.button.create': '作成', + 'common.button.clone': '複製', + 'common.button.rollback': 'ロールバック', + 'common.button.new': '新規 {text}', + 'common.button.enabled': '有効', + 'common.button.disabled': '無効', + 'common.button.upgrade': 'アップグレード', + 'common.input.holder': '入力してください', + 'common.validate.value': '{name} の値は必須です', + 'common.button.edit': '編集', + 'common.button.authorize': 'ロール認可', + 'common.button.confirm': '確認', + 'common.button.viewlog': 'ログを表示', + 'common.table.operation': '操作', + 'common.table.createTime': '作成日時', + 'common.table.updateTime': '更新日時', + 'common.table.description': '説明', + 'common.table.name': '名前', + 'common.table.status': 'ステータス', + 'common.table.name.list': '{type} 名称', + 'common.search.name.placeholder': '名前でフィルタ', + 'common.search.id.placeholder': 'IDでフィルタ', + 'common.filter.byId': 'IDでフィルタ', + 'common.table.type': 'タイプ', + 'common.table.default': 'デフォルト値', + 'common.copy.success': 'コピー成功!', + 'common.copy.fail': 'コピー失敗!', + 'common.delete.success': '削除成功!', + 'common.delete.fail': '削除失敗', + 'common.edit.success': '更新成功!', + 'common.edit.fail': '更新失敗', + 'common.title.config': '設定', + 'common.message.fail': '失敗!', + 'common.message.success': '成功!', + 'common.delete.tips': '本当に削除しますか?', + 'common.button.close': '閉じる', + 'common.button.done': '完了', + 'common.button.next': '次へ', + 'common.button.prev': '前へ', + 'common.button.back': '戻る', + 'common.button.undo': '元に戻す', + 'common.button.discardChange': '変更を破棄', + 'common.tips.save': + '保存されていない変更があります。このページを離れると変更が破棄されます。', + 'common.tips.cancel': + '保存されていない変更があります。本当に変更を破棄しますか?', + 'common.tips.discard': '変更を破棄しますか?', + 'common.tips.title': 'ヒント:', + 'common.input.range.start': '開始値', + 'common.input.range.end': '終了値', + 'common.footer.version': 'バージョン', + 'common.footer.version.title': 'バージョン情報', + 'common.footer.version.web': 'UI', + 'common.footer.version.server': 'サーバー', + 'common.form.field.optional': '任意', + 'common.form.field.input.required': '必須', + 'common.form.field.select.required': '必須', + 'common.select.option': 'すべて', + 'common.checbox.all': 'すべて', + 'common.select.all': 'すべての {type}', + 'common.data.unkonwn': '不明', + 'common.data.none': 'データなし', + 'common.action.none': '利用不可', + 'common.button.addfile': 'ファイルを追加', + 'common.logout.msg': 'ログアウト成功', + 'common.button.logout': 'ログアウト', + 'common.form.rule.select': '{name} を選択してください', + 'common.form.rule.input': '{name} は必須です', + 'common.form.key': '同じキーが存在します', + 'common.date.utc': 'UTC時間', + 'common.date.local': 'ローカル時間', + 'common.button.deploy': 'デプロイ', + 'common.button.logs': 'ログ', + 'common.ws.close': '接続が失われました。再接続しますか?', + 'common.ws.reconnect': '再接続', + 'common.input.key': 'キー', + 'common.input.value': '値', + 'common.input.type': 'タイプ', + 'common.input.visible': '可視性', + 'common.input.description': '説明', + 'common.time.day': '日', + 'common.chart.filter.holder': 'データ項目をフィルタ', + 'common.chart.filter.tips': 'フィルタでさらに表示', + 'common.permission.401': 'ログインしていません', + 'common.permission.403': + '申し訳ありませんが、このページにアクセスする権限がありません。', + 'common.permission.404': + '申し訳ありませんが、アクセスしようとしたページは存在しません。', + 'common.permission.action.post': '作成', + 'common.permission.action.get': '検索', + 'common.permission.action.delete': '削除', + 'common.permission.action.put': '更新', + 'common.button.settings': '設定', + 'common.button.management': '管理', + 'common.cli.download': 'CLIをダウンロード', + 'common.button.download': 'ダウンロード', + 'common.table.sensitive': '機密', + 'common.table.createdBy': '操作者', + 'common.table.yes': 'はい', + 'common.table.no': 'いいえ', + 'common.validate.labelName': + '小文字の英数字または "-" のみを含み、英数字で始まり英数字で終わる必要があります。', + 'common.search.nodata': '一致するデータがありません', + 'common.data.empty': 'データなし', + 'common.tips.change': '保存されていない変更があります!', + 'common.copy.notSupport': + 'お使いのブラウザはクリップボードAPIをサポートしていません', + 'common.title.basicInfo': '基本情報', + 'common.help.need': 'ヘルプが必要ですか?', + 'common.help.eg': '例:', + 'common.filter.label': 'フィルタ', + 'common.filter.isrequired.holder': '任意', + 'common.filter.isrequired.true': '必須', + 'common.filter.isrequired.false': '任意ではない', + 'common.filter.attrs': '属性', + 'common.filter.filled.holder': '入力済み', + 'common.filter.filled.true': '入力済み', + 'common.filter.filled.false': '未入力', + 'common.environment.development': '開発', + 'common.environment.production': '本番', + 'common.environment.staging': 'ステージング', + 'common.time.label': '期間', + 'common.time.hour': '時間', + 'common.time.minute': '分', + 'common.issue.report': '問題を報告', + 'common.social.discord': 'Discordに参加', + 'common.table.mark': 'コメント', + 'common.table.rollback.mark': 'ロールバックコメント', + 'common.button.saveDeploy': '保存してデプロイ', + 'common.button.savePreview': '保存してプレビュー', + 'common.button.rollbackPreview': 'ロールバックプレビュー', + 'common.button.deployPreview': 'デプロイプレビュー', + 'common.button.draft': '下書きを保存', + 'common.button.stop': '停止', + 'common.button.start': '開始', + 'common.rule.object.key': 'キーは空にできません', + 'common.confirm.title': '本当に{action}しますか?', + 'common.rule.name': '名前は必須です', + 'common.rule.wordlimit': '最大 {length} 文字', + 'common.docs.link.tips': 'ドキュメントを表示', + 'common.docs.link': 'こちら', + 'common.result.nodata.subtitle': '作成されているか確認してください', + 'common.result.nodata.title': '{type} が見つかりません', + 'common.rule.array': '配列形式である必要があります', + 'common.rule.object': 'オブジェクト形式である必要があります', + 'common.rule.syntaxerror': '構文エラー', + 'common.code.hide.tips': '... {rows} 行を非表示、クリックして展開 ...', + 'common.nodata.created': '{type} はまだ作成されていません', + 'common.nodata.added': '{type} はまだ追加されていません', + 'common.status.edited': '編集済み', + 'common.table.user': 'ユーザー', + 'common.settings.instructions': '手順', + 'common.settings.language': '言語', + 'common.delete.confirm': '選択した {type} を削除してもよろしいですか?', + 'common.delete.single.confirm': + '{name} を削除してもよろしいですか?', + 'common.stop.confirm': '選択した {type} を停止してもよろしいですか?', + 'common.stop.single.confirm': + '{name} を停止してもよろしいですか?', + 'common.start.confirm': '選択した {type} を開始してもよろしいですか?', + 'common.start.single.confirm': + '{name} を開始してもよろしいですか?', + 'common.filter.name': '名前でフィルタ', + 'common.form.password': 'パスワード', + 'common.form.username': 'ユーザー名', + 'common.login.rember': 'ログイン状態を保持', + 'settings.company': 'SEAL', + 'common.button.help': 'ヘルプ', + 'common.button.feedback': 'フィードバック', + 'common.button.docs': 'ドキュメント', + 'common.button.version': 'バージョン', + 'common.title.delete.confirm': '削除を確認', + 'common.title.stop.confirm': '停止を確認', + 'common.title.start.confirm': '開始を確認', + 'common.title.recreate.confirm': '再作成を確認', + 'common.button.addLabel': 'ラベルを追加', + 'common.button.addSelector': 'セレクターを追加', + 'common.button.addParams': 'パラメータを追加', + 'common.button.vars': '変数を追加', + 'common.text.variable': '変数', + 'common.text.here': 'こちら', + 'common.text.latest': '最新', + 'common.text.new': '新規', + 'common.text.changelog': 'リリースノート', + 'common.button.recreate': '再作成', + 'common.button.delrecreate': '削除(再作成)', + 'common.options.all': 'すべて', + 'common.options.none': 'なし', + 'common.options.auto': '自動', + 'common.search.empty': '一致する結果が見つかりませんでした。', + 'common.button.downloadLog': 'ログをダウンロード', + 'common.button.faq': 'FAQ', + 'common.button.moreInfo': '詳細情報', + 'common.text.warning': '警告', + 'common.text.error': 'エラー', + 'common.text.tips': 'ヒント' +}; diff --git a/src/locales/ja-JP/dashboard.ts b/src/locales/ja-JP/dashboard.ts new file mode 100644 index 00000000..10484505 --- /dev/null +++ b/src/locales/ja-JP/dashboard.ts @@ -0,0 +1,25 @@ +export default { + 'dashboard.title': 'ダッシュボード', + 'dashboard.workers': 'ワーカー', + 'dashboard.models': 'モデル', + 'dashboard.totalgpus': 'GPU数', + 'dashboard.allocategpus': '割り当て済みGPU', + 'dashboard.instances': 'インスタンス', + 'dashboard.systemload': 'システム負荷', + 'dashboard.memory': 'メモリ', + 'dashboard.disk': 'ストレージ', + 'dashboard.vram': 'VRAM', + 'dashboard.cpuutilization': '平均CPU使用率', + 'dashboard.memoryutilization': '平均メモリ使用率', + 'dashboard.diskutilization': 'ストレージ使用率', + 'dashboard.vramutilization': '平均VRAM使用率', + 'dashboard.gpuutilization': '平均GPU使用率', + 'dashboard.usage': '使用状況', + 'dashboard.apirequest': 'APIリクエスト', + 'dashboard.tokens': 'トークン使用量', + 'dashboard.topusers': 'トップユーザー', + 'dashboard.activeModels': 'アクティブなモデル', + 'dashboard.runninginstances': '稼働中のインスタンス', + 'dashboard.activeModels.name': 'モデル名', + 'dashboard.allocatevram': '割り当て済みVRAM / RAM' +}; diff --git a/src/locales/ja-JP/menu.ts b/src/locales/ja-JP/menu.ts new file mode 100644 index 00000000..c2ae8600 --- /dev/null +++ b/src/locales/ja-JP/menu.ts @@ -0,0 +1,21 @@ +export default { + 'menu.dashboard': 'ダッシュボード', + 'menu.playground': 'プレイグラウンド', + 'menu.playground.rerank': 'リランク', + 'menu.playground.embedding': '埋め込み', + 'menu.playground.chat': 'チャット', + 'menu.playground.speech': '音声', + 'menu.playground.text2images': '画像生成', + 'menu.compare': '比較', + 'menu.models': 'モデル', + 'menu.models.modelList': 'デプロイと管理', + 'menu.models.modelCatalog': 'カタログ', + 'menu.models.catalog': 'モデルカタログ', + 'menu.modelCatalog': 'カタログ', + 'menu.resources': 'リソース', + 'menu.apikeys': 'APIキー', + 'menu.users': 'ユーザー', + 'menu.profile': 'プロフィール', + 'menu.login': 'ログイン', + 'menu.usage': '使用状況' +}; diff --git a/src/locales/ja-JP/models.ts b/src/locales/ja-JP/models.ts new file mode 100644 index 00000000..f7ef14cf --- /dev/null +++ b/src/locales/ja-JP/models.ts @@ -0,0 +1,120 @@ +export default { + 'models.button.deploy': 'モデルをデプロイ', + 'models.title': 'モデル', + 'models.title.edit': 'モデルを編集', + 'models.table.models': 'モデル', + 'models.table.name': 'モデル名', + 'models.form.source': 'ソース', + 'models.form.repoid': 'リポジトリID', + 'models.form.repoid.desc': 'GGUF形式のみサポートされています', + 'models.form.filename': 'ファイル名', + 'models.form.replicas': 'レプリカ', + 'models.form.selector': 'セレクター', + 'models.form.env': '環境変数', + 'models.form.configurations': '設定', + 'models.form.s3address': 'S3アドレス', + 'models.form.partialoffload.tips': + 'CPUオフロードを有効にすると、GPUStackは可能な限り多くのレイヤーをGPUにロードしてパフォーマンスを最大化します。GPUリソースが制限されている場合、一部のレイヤーがCPUにオフロードされ、GPUが利用できない場合は完全にCPU推論が使用されます。', + 'models.form.distribution.tips': + '単一のGPUまたはワーカーのリソースが不足している場合、計算の一部を単一または複数のリモートワーカーにオフロードすることを許可します。', + 'models.openinplayground': 'プレイグラウンドで開く', + 'models.instances': 'インスタンス', + 'models.table.replicas.edit': 'レプリカを編集', + 'model.form.ollama.model': 'Ollamaモデル', + 'model.form.ollamaholder': 'モデル名を選択または入力してください', + 'model.deploy.sort': '並び替え', + 'model.deploy.search.placeholder': '{source}からモデルを検索', + 'model.form.ollamatips': + 'ヒント: 以下はGPUStackで事前設定されたOllamaモデルです。希望するモデルを選択するか、右側の【{name}】入力ボックスにデプロイしたいモデルを直接入力してください。', + 'models.sort.name': '名前', + 'models.sort.size': 'サイズ', + 'models.sort.likes': 'いいね', + 'models.sort.trending': 'トレンド', + 'models.sort.downloads': 'ダウンロード数', + 'models.sort.updated': '更新日', + 'models.search.result': '{count} 件の結果', + 'models.data.card': 'モデルカード', + 'models.available.files': '利用可能なファイル', + 'models.viewin.hf': 'Hugging Faceで表示', + 'models.viewin.modelscope': 'ModelScopeで表示', + 'models.architecture': 'アーキテクチャ', + 'models.search.noresult': '関連するモデルが見つかりません', + 'models.search.nofiles': '利用可能なファイルがありません', + 'models.search.networkerror': 'ネットワーク接続エラー!', + 'models.search.hfvisit': 'アクセスできることを確認してください', + 'models.search.unsupport': + 'このモデルはサポートされておらず、デプロイ後に使用できない可能性があります。', + 'models.form.scheduletype': 'スケジュールタイプ', + 'models.form.categories': 'モデルカテゴリ', + 'models.form.scheduletype.auto': '自動', + 'models.form.scheduletype.manual': '手動', + 'models.form.scheduletype.auto.tips': + '現在のリソース状況に基づいて、モデルインスタンスを適切なGPU/ワーカーに自動的にデプロイします。', + 'models.form.scheduletype.manual.tips': + 'モデルインスタンスをデプロイするGPU/ワーカーを手動で指定できます。', + 'models.form.manual.schedule': '手動スケジュール', + 'models.table.gpuindex': 'GPUインデックス', + 'models.table.backend': 'バックエンド', + 'models.table.acrossworker': 'ワーカー間で分散', + 'models.table.cpuoffload': 'CPUオフロード', + 'models.table.layers': 'レイヤー', + 'models.form.backend': 'バックエンド', + 'models.form.backend_parameters': 'バックエンドパラメータ', + 'models.search.gguf.tips': + 'GGUFモデルはllama-boxを使用します(Linux、macOS、Windowsをサポート)。', + 'models.search.vllm.tips': + '非GGUFモデルは、音声にはvox-boxを、その他にはvLLM(x86 Linuxのみ)を使用します。', + 'models.search.voxbox.tips': + '音声モデルをデプロイするには、GGUFチェックボックスをオフにしてください。', + 'models.form.ollamalink': 'Ollamaライブラリでさらに探す', + 'models.form.backend_parameters.llamabox.placeholder': '例: --ctx-size=8192', + 'models.form.backend_parameters.vllm.placeholder': '例: --max-model-len=8192', + 'models.form.backend_parameters.vllm.tips': '詳細な{backend}パラメータ情報', + 'models.logs.pagination.prev': '前の{lines}行', + 'models.logs.pagination.next': '次の{lines}行', + 'models.logs.pagination.last': '最終ページ', + 'models.logs.pagination.first': '最初のページ', + 'models.form.localPath': 'ローカルパス', + 'models.form.filePath': 'モデルパス', + 'models.form.backendVersion': 'バックエンドバージョン', + 'models.form.backendVersion.tips': + '希望する{backend}バージョンを使用するには、システムがオンライン環境で対応するバージョンをインストールする仮想環境を自動的に作成します。GPUStackのアップグレード後もバックエンドバージョンは固定されます。{link}', + 'models.form.gpuselector': 'GPUセレクター', + 'models.form.backend.llamabox': + 'GGUF形式のモデル用(Linux、macOS、Windowsをサポート)。', + 'models.form.backend.vllm': + '非GGUF形式のモデル用(x86 Linuxのみをサポート)。', + 'models.form.backend.voxbox': '非GGUF形式の音声モデル用。', + 'models.form.search.gguftips': + 'macOSまたはWindowsをワーカーとして使用する場合、GGUFをチェックしてください(音声モデルの場合はオフにしてください)。', + 'models.form.button.addlabel': 'ラベルを追加', + 'models.filter.category': 'カテゴリでフィルタ', + 'models.list.more.logs': 'さらに表示', + 'models.catalog.release.date': 'リリース日', + 'models.localpath.gguf.tips.title': 'GGUF形式のモデル', + 'models.localpat.safe.tips.title': 'Safetensors形式のモデル', + 'models.localpath.shared.tips.title': '分割されたGGUF形式のモデル', + 'models.localpath.gguf.tips': + 'モデルファイルを指定してください。例: /data/models/model.gguf。', + 'models.localpath.safe.tips': + 'config.jsonファイルを含む.safetensorsディレクトリを指定してください。例: /data/models/model/。', + 'models.localpath.chunks.tips': `モデルの最初のシャードファイルを指定してください。例: /data/models/model-00001-of-00004.gguf。`, + 'models.form.replicas.tips': + '複数のレプリカにより、{api} 推論リクエストの負荷分散が可能になります。', + 'models.table.list.empty': 'まだモデルがありません!', + 'models.table.list.getStart': + '始めるには DeepSeek-R1-Distill-Qwen-1.5B', + 'models.table.llamaAcrossworker': 'Llama-box ワーカー間分散', + 'models.table.vllmAcrossworker': 'vLLM ワーカー間分散', + 'models.form.releases': 'リリース', + 'models.form.moreparameters': 'パラメータ説明', + 'models.table.vram.allocated': '割り当て済みVRAM', + 'models.form.backend.warning': + 'GGUF形式のモデルのバックエンドはllama-boxを使用します。', + 'models.form.ollama.warning': + 'Ollamaモデルのバックエンドをllama-boxを使用してデプロイします。', + 'models.form.backend.warning.llamabox': + 'llama-boxバックエンドを使用するには、モデルファイルのフルパスを指定してください(例:/data/models/model.gguf)。分割モデルの場合、最初のシャードのパスを指定してください(例:/data/models/model-00001-of-00004.gguf)。', + 'models.form.keyvalue.paste': + '複数行のテキストを貼り付けます。各行にはキーと値のペアが含まれ、キーと値は=記号で区切られ、異なるキーと値のペアは改行文字で区切られます。' +}; diff --git a/src/locales/ja-JP/playground.ts b/src/locales/ja-JP/playground.ts new file mode 100644 index 00000000..31efef31 --- /dev/null +++ b/src/locales/ja-JP/playground.ts @@ -0,0 +1,156 @@ +export default { + 'playground.system.tips': 'システム指示をここに入力してください', + 'playground.title': 'プレイグラウンド', + 'playground.system': 'システム', + 'playground.systemMessage': 'システム指示', + 'playground.user': 'ユーザー', + 'playground.assistant': 'アシスタント', + 'playground.newMessage': '新しいメッセージ', + 'playground.viewcode': 'コードを表示', + 'playground.model': 'モデル', + 'playground.parameters': 'パラメータ', + 'playground.viewcode.info': + '以下のコードを使用して、現在のプロンプトと設定をアプリケーションに統合できます。', + 'playground.completion': '補完', + 'playground.prompt': 'プロンプト', + 'playground.timeToFirstToken': '最初のトークンまでの時間', + 'playground.timePerOutputToken': '出力トークンごとの時間', + 'playground.tokenusage': 'トークン使用量', + 'models.openinplayground': 'プレイグラウンドで開く', + 'playground.tokenoutput': '出力', + 'playground.params.temperature.tips': + 'ランダム性を制御します:値を下げると、結果がより決定的になります。値が0に近づくと、モデルは決定的で反復的になります。', + 'playground.params.maxtokens.tips': + '生成されるトークンの最大数。入力トークンと生成トークンの合計長は、モデルのコンテキスト長によって制限されます。', + 'playground.params.topp.tips': + '核サンプリングによる多様性を制御します:0.5は、すべての可能性のうち半分を考慮します。', + 'playground.params.seed.tips': + '指定された場合、同じシードとパラメータでのリクエストが同じ結果を返すように、システムは可能な限り決定的にサンプルを生成します。', + 'playground.params.stop.tips': + '停止シーケンスは、AIがこれ以上トークンを生成しないようにするための事前定義またはユーザー指定のテキスト文字列です。', + 'playground.viewcode.tips': + 'APIキーは{here}で見つけることができます。アプリケーションにキーを公開するには、環境変数または秘密管理ツールを使用してください。', + 'playground.viewcode.here': 'こちら', + 'playground.delete.img': '画像を削除', + 'playground.img.upload': '画像をアップロード', + 'playground.img.upload.success': 'アップロード成功', + 'playground.img.upload.error': 'アップロードエラー', + 'playground.toolbar.clearmsg': 'メッセージをクリア', + 'playground.toolbar.autoplay': '自動再生', + 'playground.toolbar.prompts': 'プロンプト', + 'playground.toolbar.compare2Model': '2モデル比較', + 'playground.toolbar.compare3Model': '3モデル比較', + 'playground.toolbar.compare4Model': '4モデル比較', + 'playground.toolbar.compare6Model': '6モデル比較', + 'playground.input.holder': '/ を入力してメッセージを入力', + 'playground.input.prompt.holder': '/ を入力してプロンプトを入力', + 'playground.input.keyword.holder': '/ を入力してクエリを入力', + 'playground.input.text.holder': '/ を入力してテキストを入力', + 'playground.compare.apply': '適用', + 'playground.compare.applytoall': 'すべてのモデルに適用', + 'playground.model.noavailable': '利用可能なモデルがありません', + 'playground.model.noavailable.tips': + '最初にモデルをデプロイしてください。埋め込み専用モデルは使用できません。', + 'playground.params.counts': 'カウント', + 'playground.params.quality': '品質', + 'playground.params.style': 'スタイル', + 'playground.params.size': 'サイズ', + 'playground.params.voice': '声', + 'playground.params.format': '形式', + 'playground.params.speed': '速度', + 'playground.params.language': '言語', + 'playground.params.width': '幅', + 'playground.params.height': '高さ', + 'playground.params.custom': 'カスタム', + 'playground.params.empty.tips': '生成された画像はここに表示されます', + 'playground.params.standard': '標準', + 'playground.params.hd': 'HD', + 'playground.params.style.vivid': '鮮やか', + 'playground.params.style.natural': '自然', + 'playground.embedding.documents': 'ドキュメント', + 'playground.embedding.addtext': 'テキストを追加', + 'playground.embedding.inputyourtext': 'テキストを入力してください', + 'playground.embedding.output': '出力', + 'playground.embedding.chart': 'チャート', + 'playground.rerank.query': 'クエリ', + 'playground.rerank.rank': 'ランク', + 'playground.rerank.score': 'スコア', + 'playground.rerank.query.holder': 'クエリを入力してください', + 'playground.image.prompt': 'テキストプロンプト', + 'playground.audio.textinput': 'テキスト入力', + 'playground.audio.texttospeech': 'テキストから音声へ', + 'playground.audio.speechtotext': '音声からテキストへ', + 'playground.audio.texttospeech.tips': '生成された音声はここに表示されます', + 'playground.audio.speechtotext.tips': + '音声ファイルをアップロードするか録音を開始してください', + 'playground.audio.enablemic': + 'ブラウザの設定でマイクアクセスを有効にしてください。', + 'playground.audio.enablemic.doc': 'このリンクを参照してください', + 'playground.audio.startrecord': '録音を開始', + 'playground.audio.stoprecord': '録音を停止', + 'playground.audio.generating.tips': + '生成されたテキストはここに表示されます。', + 'playground.audio.uploadfile.tips': + '音声ファイルをアップロードしてください。対応フォーマット: {formats}', + 'playground.input.multiplePaste': 'バッチ入力モード', + 'playground.input.multiplePaste.tips': + '有効にすると、貼り付けた複数行のテキストが自動的に改行で分割され、フォーム内の個別のエントリとして処理されます。', + 'playground.audio.button.generate': 'テキストコンテンツを生成', + 'playground.multiple.on': '有効', + 'playground.multiple.off': '無効', + 'playground.image.params.sampler': 'サンプル方法', + 'playground.image.params.schedule': 'スケジュール方法', + 'playground.image.params.samplerSteps': 'サンプリングステップ', + 'playground.image.params.seed': 'シード', + 'playground.image.params.randomseed': 'ランダムシード', + 'playground.image.params.negativePrompt': 'ネガティブプロンプト', + 'playground.image.params.cfgScale': 'スケールファクター', + 'playground.image.params.custom': '高度な設定', + 'playground.image.params.custom.tips': 'APIスタイル', + 'playground.image.params.openai': 'OpenAI互換', + 'playground.embedding.handler.tips': '高さをリサイズ', + 'playground.embedding.pcatips1': + 'PCA(主成分分析)は、埋め込みベクトルの次元を削減し、視覚化を容易にします。', + 'playground.embedding.pcatips2': + 'チャート内の点の距離は、対応するドキュメント間の類似性を示します。点が近いほど、類似性が高いことを意味します。', + 'playground.audio.button.play': '再生', + 'playground.audio.button.download': 'ダウンロード', + 'playground.audio.button.stop': '停止', + 'playground.image.prompt.random': 'ランダムプロンプト', + 'playground.audio.button.fast': '早送り', + 'playground.audio.button.slow': 'スロー再生', + 'playground.audio.generating': '生成中', + 'playgorund.audio.voice.error': + '音声が利用できません。モデルが初期化中の可能性があります。少し待ってからリフレッシュしてください。', + 'playground.params.size.description': + '生成される画像の最大サイズは、モデルのデプロイパラメータによって制御されます。このリンクを参照してください', + 'playground.documents.verify.embedding': + '少なくとも2つのテキストを追加してください。', + 'playground.documents.verify.rerank': 'ドキュメントは空にできません。', + 'playground.image.guidance.tip': + 'ガイダンススケールは、画像の品質と多様性に影響を与えます。', + 'playground.image.cfg_scale.tip': + '分類器なしガイダンススケールは、プロンプトへの画像の適合性に影響を与えます。', + 'playground.image.strength.tip': + '値が高いほど、元の画像への変更が大きくなります。', + 'playground.image.edit.tips': + '画像をクリックまたはドラッグしてこのエリアにアップロード', + 'playground.image.saveMask': 'マスクを保存', + 'playground.image.negativeMask': 'マスクを反転', + 'playground.image.brushSize': 'ブラシサイズ', + 'playground.image.download': '画像をダウンロード', + 'playground.image.generate': '生成', + 'playground.image.edit': '編集', + 'playground.image.fitview': 'ビューに合わせる', + 'playground.chat.aithought': 'CoT', + 'playground.chat.thinking': '考え中...', + 'playground.image.mask.uploaded': 'マスクがアップロードされました', + 'playground.image.mask.upload': + 'マスクをアップロード: アップロード後は追加の描画はできません。', + 'playground.params.frequency_penalty.tips': `-2.0から2.0の間の数値。正の値は、これまでのテキストでの出現頻度に基づいて新しいトークンをペナルティ化し、同じ行をそのまま繰り返す可能性を減らします。`, + 'playground.params.presence_penalty.tips': `-2.0から2.0の間の数値。正の値は、これまでのテキストでの出現に基づいて新しいトークンをペナルティ化し、新しいトピックについて話す可能性を高めます。`, + 'playground.image.origin': 'オリジナル', + 'playground.image.mask': 'マスク', + 'playground.image.negativeMask.tips': + '1. 選択後は追加のマスクを描画できません。そのため、最初にマスクを描画してからオプションを選択してください。\n 2. マスク画像をアップロードすると、追加のマスクを生成することはできません。' +}; diff --git a/src/locales/ja-JP/resources.ts b/src/locales/ja-JP/resources.ts new file mode 100644 index 00000000..69674f74 --- /dev/null +++ b/src/locales/ja-JP/resources.ts @@ -0,0 +1,60 @@ +export default { + 'resources.title': 'リソース', + 'resources.nodes': 'ノード', + 'resources.button.create': 'ワーカーを追加', + 'resources.button.edit': 'ワーカーを編集', + 'resources.button.edittags': 'ラベルを編集', + 'resources.button.update': 'ラベルを更新', + 'resources.table.labels': 'ラベル', + 'resources.table.hostname': 'ホスト名', + 'resources.table.key.tips': '同じキーが存在します。', + 'resources.form.label': 'ラベル', + 'resources.form.advanced': '詳細設定', + 'resources.form.enablePartialOffload': 'CPUオフロードを許可', + 'resources.form.placementStrategy': '配置戦略', + 'resources.form.workerSelector': 'ワーカーセレクター', + 'resources.form.enableDistributedInferenceAcrossWorkers': + 'ワーカー間の分散推論を許可', + 'resources.form.spread.tips': + 'クラスター全体のリソースをすべてのワーカー間で比較的均等に分配します。これにより、単一のワーカーでリソースの断片化が発生する可能性があります。', + 'resources.form.binpack.tips': + 'クラスターリソースの全体的な利用率を優先し、ワーカー/GPU上のリソース断片化を減らします。', + 'resources.form.workerSelector.description': + 'システムは、事前定義されたラベルに基づいて、モデルインスタンスをデプロイするために最適なGPUまたはワーカーを選択します。', + 'resources.table.ip': 'IP', + 'resources.table.cpu': 'CPU', + 'resources.table.memory': 'メモリ', + 'resources.table.gpu': 'GPU', + 'resources.table.disk': 'ストレージ', + 'resources.table.vram': 'VRAM', + 'resources.table.index': 'インデックス', + 'resources.table.workername': 'ワーカー名', + 'resources.table.vender': 'ベンダー', + 'resources.table.temperature': '温度', + 'resources.table.core': 'コア数', + 'resources.table.utilization': '利用率', + 'resources.table.gpuutilization': 'GPU利用率', + 'resources.table.vramutilization': 'VRAM利用率', + 'resources.table.total': '合計', + 'resources.table.used': '使用済み', + 'resources.table.allocated': '割り当て済み', + 'resources.table.wokers': 'ワーカー', + 'resources.worker.linuxormaxos': 'LinuxまたはMacOS', + 'resources.table.unified': '統合メモリ', + 'resources.worker.add.step1': 'トークンを取得', + 'resources.worker.add.step2': 'ワーカーを登録', + 'resources.worker.add.step2.tips': + '注意: mytoken は、最初のステップで取得したトークンです。', + 'resources.worker.add.step3': + '成功後、ワーカーリストを更新して新しいワーカーを確認してください。', + 'resources.worker.container.supported': + 'MacOSまたはWindowsはサポートされていません。', + 'resources.worker.current.version': '現在のバージョンは {version} です。', + 'resources.worker.driver.install': + 'GPUStackをインストールする前に、必要なすべてのドライバーとライブラリがシステムにインストールされていることを確認してください。', + 'resources.worker.select.command': + 'ラベルを選択してコマンドを生成し、コピーを使用してコマンドをコピーします。', + 'resources.worker.script.install': 'スクリプトインストール', + 'resources.worker.container.install': 'コンテナインストール(Linuxのみ)', + 'resources.worker.cann.tips': `ASCEND_VISIBLE_DEVICES を必要なGPUインデックスに設定します。GPU0からGPU3の場合、ASCEND_VISIBLE_DEVICES=0,1,2,3 または ASCEND_VISIBLE_DEVICES=0-3 を使用します。` +}; diff --git a/src/locales/ja-JP/shortcuts.ts b/src/locales/ja-JP/shortcuts.ts new file mode 100644 index 00000000..c968c907 --- /dev/null +++ b/src/locales/ja-JP/shortcuts.ts @@ -0,0 +1,13 @@ +export default { + 'shortcuts.search.placeholder': 'キー設定を検索', + 'shortcuts.title': 'ショートカット', + 'shortcuts.playground.newmessage': '新しいメッセージ', + 'shortcuts.playground.clearmessage': 'メッセージをクリア', + 'shortcuts.playground.toggleparams': 'パラメータを折りたたむ/展開', + 'shortcuts.models.newmodelHF': 'Hugging Faceモデルをデプロイ', + 'shortcuts.models.newmodelLM': 'Ollamaモデルをデプロイ', + 'shortcuts.models.search': 'Hugging Faceからモデルを検索', + 'shortcuts.resources.addworker': 'ワーカーを追加', + 'shortcuts.apikeys.new': '新しいAPIキー', + 'shortcuts.users.new': '新しいユーザー' +}; diff --git a/src/locales/ja-JP/usage.ts b/src/locales/ja-JP/usage.ts new file mode 100644 index 00000000..05ec1ba9 --- /dev/null +++ b/src/locales/ja-JP/usage.ts @@ -0,0 +1,5 @@ +export default { + 'usage.title': '使用状況', + 'usage.filter.user': 'ユーザーでフィルタ', + 'usage.filter.model': 'モデルでフィルタ' +}; diff --git a/src/locales/ja-JP/users.ts b/src/locales/ja-JP/users.ts new file mode 100644 index 00000000..a1cf9af7 --- /dev/null +++ b/src/locales/ja-JP/users.ts @@ -0,0 +1,31 @@ +export default { + 'users.title': 'ユーザー', + 'users.button.create': 'ユーザーを追加', + 'users.form.edit': 'ユーザーを編集', + 'users.form.create': 'ユーザーを追加', + 'users.table.username': 'ユーザー名', + 'users.table.role': '役割', + 'users.form.fullname': 'フルネーム', + 'users.table.user': 'ユーザー', + 'users.form.admin': '管理者', + 'users.form.user': '一般ユーザー', + 'users.form.newpassword': '新しいパスワード', + 'users.form.currentpassword': '現在のパスワード', + 'users.form.updatepassword': 'パスワードを変更', + 'users.form.rule.password': + '大文字と小文字、数字、特殊文字(!@#$%^&*_+)を含む6〜12文字で、スペースは使用できません。', + 'users.password.uppcase': '少なくとも1つの大文字を含む', + 'users.password.lowercase': '少なくとも1つの小文字を含む', + 'users.password.number': '少なくとも1つの数字を含む', + 'users.password.special': '少なくとも1つの特殊文字を含む', + 'users.password.length': '6〜12文字の長さ', + 'users.password.modify.title': 'パスワードを変更', + 'users.password.modify.description': + 'アカウントのセキュリティのため、初期パスワードを変更してください。', + 'users.password.confirm': '新しいパスワードを確認', + 'users.password.confirm.empty': '新しいパスワードを確認してください。', + 'users.password.confirm.error': '入力された2つのパスワードが一致しません。', + 'users.login.title': 'ログイン', + 'users.version.islatest': 'GPUStack {version} は最新バージョンです', + 'users.version.update': 'GPUStack {version} が利用可能です' +};