feat: add Japanese (ja) locale support
This commit is contained in:
153
src/lib/i18n.ts
153
src/lib/i18n.ts
@@ -625,7 +625,157 @@ const de: Record<keyof typeof en, string> = {
|
|||||||
'slash.help': 'Verfügbare Befehle anzeigen',
|
'slash.help': 'Verfügbare Befehle anzeigen',
|
||||||
};
|
};
|
||||||
|
|
||||||
const messages: Record<string, Record<string, string>> = { en, fr, es, de };
|
const ja: Record<keyof typeof en, string> = {
|
||||||
|
'login.title': 'PinchChat',
|
||||||
|
'login.subtitle': 'OpenClawゲートウェイに接続',
|
||||||
|
'login.gatewayUrl': 'ゲートウェイURL',
|
||||||
|
'login.token': 'トークン',
|
||||||
|
'login.tokenPlaceholder': 'ゲートウェイトークンを入力',
|
||||||
|
'login.connect': '接続',
|
||||||
|
'login.connecting': '接続中…',
|
||||||
|
'login.showToken': 'トークンを表示',
|
||||||
|
'login.hideToken': 'トークンを非表示',
|
||||||
|
'login.storedLocally': '認証情報はブラウザにローカル保存されます',
|
||||||
|
'login.wsHint': 'URLはws://またはwss://で始まる必要があります',
|
||||||
|
|
||||||
|
'header.title': 'PinchChat',
|
||||||
|
'header.connected': '接続済み',
|
||||||
|
'header.disconnected': '切断',
|
||||||
|
'header.logout': 'ログアウト',
|
||||||
|
'header.toggleSidebar': 'サイドバーの表示切替',
|
||||||
|
'header.changeLanguage': '言語を変更',
|
||||||
|
'header.soundOn': '通知音を有効にする',
|
||||||
|
'header.soundOff': '通知音を無効にする',
|
||||||
|
|
||||||
|
'chat.welcome': 'PinchChat',
|
||||||
|
'chat.welcomeSub': 'メッセージを送信して始めましょう',
|
||||||
|
'chat.suggestions': '例えば…',
|
||||||
|
'chat.suggestion1': '最近のメールをまとめて',
|
||||||
|
'chat.suggestion2': '今日のカレンダーは?',
|
||||||
|
'chat.suggestion3': '最新ニュースをウェブで検索して',
|
||||||
|
'chat.suggestion4': 'スクリプトを書くのを手伝って',
|
||||||
|
'chat.loadingHistory': 'メッセージを読み込み中…',
|
||||||
|
'chat.inputPlaceholder': 'メッセージを入力…',
|
||||||
|
'chat.inputLabel': 'メッセージ',
|
||||||
|
'chat.attachFile': 'ファイルを添付',
|
||||||
|
'chat.send': '送信',
|
||||||
|
'chat.stop': '停止',
|
||||||
|
'chat.showPreview': 'Markdownプレビュー',
|
||||||
|
'chat.hidePreview': 'プレビューを非表示',
|
||||||
|
'chat.scrollToBottom': '新しいメッセージ',
|
||||||
|
'chat.scrollDown': '一番下へスクロール',
|
||||||
|
'chat.collapseTools': 'すべてのツールを折りたたむ',
|
||||||
|
'chat.expandTools': 'すべてのツールを展開',
|
||||||
|
'chat.messages': 'チャットメッセージ',
|
||||||
|
'chat.thinking': '思考中…',
|
||||||
|
|
||||||
|
'sidebar.title': 'セッション',
|
||||||
|
'sidebar.empty': 'セッションなし',
|
||||||
|
'sidebar.search': 'セッションを検索…',
|
||||||
|
'sidebar.noResults': '結果なし',
|
||||||
|
'sidebar.pin': 'セッションをピン留め',
|
||||||
|
'sidebar.unpin': 'ピン留めを解除',
|
||||||
|
'sidebar.pinned': 'ピン留め',
|
||||||
|
'sidebar.delete': 'セッションを削除',
|
||||||
|
'sidebar.deleteConfirm': 'このセッションを削除しますか?元に戻せません。',
|
||||||
|
'sidebar.deleteCancel': 'キャンセル',
|
||||||
|
'sidebar.openSplit': '分割ビューで開く',
|
||||||
|
'sidebar.close': 'サイドバーを閉じる',
|
||||||
|
'sidebar.clearSearch': '検索をクリア',
|
||||||
|
'sidebar.filterAll': 'すべて',
|
||||||
|
'sidebar.filterActive': 'アクティブ',
|
||||||
|
'split.close': '分割ビューを閉じる',
|
||||||
|
'app.mainChat': 'メインチャット',
|
||||||
|
'app.splitPane': '分割ペイン',
|
||||||
|
'app.skipToChat': '入力欄へ移動',
|
||||||
|
|
||||||
|
'thinking.label': '思考',
|
||||||
|
'thinking.reasoning': '推論中…',
|
||||||
|
|
||||||
|
'tool.parameters': 'パラメータ',
|
||||||
|
'tool.result': '結果',
|
||||||
|
|
||||||
|
'connection.reconnecting': '接続が切断されました — 再接続中…',
|
||||||
|
'connection.reconnected': '再接続しました!',
|
||||||
|
|
||||||
|
'message.copy': 'メッセージをコピー',
|
||||||
|
'message.copied': 'コピーしました!',
|
||||||
|
'message.retry': 'メッセージを再送信',
|
||||||
|
'message.metadata': 'メッセージの詳細',
|
||||||
|
'message.rawJson': '生JSON',
|
||||||
|
'message.hideRawJson': '生JSONを非表示',
|
||||||
|
|
||||||
|
'time.yesterday': '昨日',
|
||||||
|
'time.today': '今日',
|
||||||
|
|
||||||
|
'shortcuts.title': 'キーボードショートカット',
|
||||||
|
'shortcuts.send': 'メッセージを送信',
|
||||||
|
'shortcuts.newline': '改行',
|
||||||
|
'shortcuts.search': 'セッションを検索',
|
||||||
|
'shortcuts.switchSession': '前 / 次のセッション',
|
||||||
|
'shortcuts.closeSidebar': 'サイドバー / 検索を閉じる',
|
||||||
|
'shortcuts.stop': '生成を停止',
|
||||||
|
'shortcuts.help': 'ショートカットを表示',
|
||||||
|
'shortcuts.close': '閉じる',
|
||||||
|
'shortcuts.chatSection': 'チャット',
|
||||||
|
|
||||||
|
'error.title': 'エラーが発生しました',
|
||||||
|
'error.description': 'インターフェースの表示中に予期しないエラーが発生しました。再試行するかページをリロードしてください。',
|
||||||
|
'error.retry': '再試行',
|
||||||
|
'error.reload': 'ページをリロード',
|
||||||
|
'shortcuts.navigationSection': 'ナビゲーション',
|
||||||
|
'shortcuts.generalSection': '全般',
|
||||||
|
|
||||||
|
'header.export': '会話をMarkdownでエクスポート',
|
||||||
|
'header.compact': 'コンパクト化',
|
||||||
|
'header.compacting': 'コンパクト化中…',
|
||||||
|
'header.sessionInfo': 'セッション情報',
|
||||||
|
'sessionInfo.sessionKey': 'セッションキー',
|
||||||
|
'sessionInfo.channel': 'チャンネル',
|
||||||
|
'sessionInfo.kind': '種類',
|
||||||
|
'sessionInfo.model': 'モデル',
|
||||||
|
'sessionInfo.agent': 'エージェント',
|
||||||
|
'sessionInfo.messages': 'メッセージ',
|
||||||
|
'sessionInfo.totalTokens': '合計トークン',
|
||||||
|
'sessionInfo.inputTokens': '入力',
|
||||||
|
'sessionInfo.outputTokens': '出力',
|
||||||
|
'sessionInfo.contextWindow': 'コンテキスト',
|
||||||
|
'sessionInfo.lastActive': '最終アクティブ',
|
||||||
|
|
||||||
|
'theme.title': 'テーマ',
|
||||||
|
'theme.mode': 'モード',
|
||||||
|
'theme.accent': 'アクセント',
|
||||||
|
'theme.system': 'システム',
|
||||||
|
'theme.dark': 'ダーク',
|
||||||
|
'theme.light': 'ライト',
|
||||||
|
'theme.oled': 'OLED',
|
||||||
|
|
||||||
|
'search.placeholder': 'メッセージを検索…',
|
||||||
|
'search.noResults': '0件',
|
||||||
|
'search.prev': '前の結果',
|
||||||
|
'search.next': '次の結果',
|
||||||
|
'shortcuts.searchMessages': 'メッセージを検索',
|
||||||
|
|
||||||
|
'settings.sendShortcut': '送信キー',
|
||||||
|
'settings.sendEnter': 'Enter',
|
||||||
|
'settings.sendCtrlEnter': 'Ctrl+Enter',
|
||||||
|
|
||||||
|
'message.bookmark': 'メッセージをブックマーク',
|
||||||
|
'message.removeBookmark': 'ブックマークを削除',
|
||||||
|
'chat.bookmarks': 'ブックマーク',
|
||||||
|
'chat.export': '会話をエクスポート',
|
||||||
|
'chat.contextCompacted': 'コンテキストがコンパクト化されました — 古いメッセージはローカルキャッシュに保存',
|
||||||
|
'slash.commands': 'コマンド',
|
||||||
|
'slash.status': 'セッションのステータスと使用量を表示',
|
||||||
|
'slash.reasoning': '推論モードの切替',
|
||||||
|
'slash.verbose': '詳細出力の切替',
|
||||||
|
'slash.model': 'このセッションのモデルを変更',
|
||||||
|
'slash.compact': '会話コンテキストをコンパクト化',
|
||||||
|
'slash.reset': 'セッションをリセット',
|
||||||
|
'slash.help': '利用可能なコマンドを表示',
|
||||||
|
};
|
||||||
|
|
||||||
|
const messages: Record<string, Record<string, string>> = { en, fr, es, de, ja };
|
||||||
|
|
||||||
export const supportedLocales = Object.keys(messages) as string[];
|
export const supportedLocales = Object.keys(messages) as string[];
|
||||||
|
|
||||||
@@ -635,6 +785,7 @@ export const localeLabels: Record<string, string> = {
|
|||||||
fr: 'FR',
|
fr: 'FR',
|
||||||
es: 'ES',
|
es: 'ES',
|
||||||
de: 'DE',
|
de: 'DE',
|
||||||
|
ja: 'JA',
|
||||||
};
|
};
|
||||||
|
|
||||||
function resolveInitialLocale(): string {
|
function resolveInitialLocale(): string {
|
||||||
|
|||||||
Reference in New Issue
Block a user