Skip to content

Commit 48fb59e

Browse files
committed
feat: add asian languages support and bump version to 1.0.5
- Add locales: ja (Japanese), vi (Vietnamese), th (Thai), ko (Korean) - Update settings UI to include new languages - Refactor language type definitions - Bump version to 1.0.5 in tauri.conf.json and package.json
1 parent 08c2262 commit 48fb59e

File tree

10 files changed

+584
-6
lines changed

10 files changed

+584
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "zero-limit",
3-
"version": "1.0.0",
3+
"version": "1.0.5",
44
"private": true,
55
"type": "module",
66
"scripts": {

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "ZeroLimit",
4-
"version": "1.0.0",
4+
"version": "1.0.5",
55
"identifier": "com.0xtbug.zero-limit",
66
"build": {
77
"beforeDevCommand": "pnpm dev",

src/i18n/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,21 @@ import { initReactI18next } from 'react-i18next';
77
import zhCN from './locales/zh-CN.json';
88
import en from './locales/en.json';
99
import id from './locales/id.json';
10+
import ja from './locales/ja.json';
11+
import vi from './locales/vi.json';
12+
import th from './locales/th.json';
13+
import ko from './locales/ko.json';
1014
import { getInitialLanguage } from '@/utils/language';
1115

1216
i18n.use(initReactI18next).init({
1317
resources: {
1418
'zh-CN': { translation: zhCN },
1519
en: { translation: en },
1620
id: { translation: id },
21+
ja: { translation: ja },
22+
vi: { translation: vi },
23+
th: { translation: th },
24+
ko: { translation: ko },
1725
},
1826
lng: getInitialLanguage(),
1927
fallbackLng: 'en',

src/i18n/locales/ja.json

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
{
2+
"common": {
3+
"loading": "読み込み中...",
4+
"error": "エラー",
5+
"success": "成功",
6+
"save": "保存",
7+
"cancel": "キャンセル",
8+
"delete": "削除",
9+
"confirm": "確認",
10+
"close": "閉じる",
11+
"refresh": "更新",
12+
"search": "検索",
13+
"noData": "利用可能なデータがありません",
14+
"copy": "コピー",
15+
"copied": "コピーしました!",
16+
"download": "ダウンロード",
17+
"upload": "アップロード"
18+
},
19+
"auth": {
20+
"login": "ログイン",
21+
"appTitle": "ZeroLimit",
22+
"logout": "ログアウト",
23+
"apiBase": "API ベースURL",
24+
"apiBasePlaceholder": "例: http://localhost:8317",
25+
"managementKey": "管理キー",
26+
"managementKeyPlaceholder": "管理キーを入力してください",
27+
"rememberMe": "認証情報を記憶する",
28+
"connecting": "接続中...",
29+
"connected": "接続済み",
30+
"disconnected": "未接続",
31+
"connectionError": "接続に失敗しました"
32+
},
33+
"nav": {
34+
"dashboard": "ダッシュボード",
35+
"settings": "設定",
36+
"apiKeys": "APIキー",
37+
"authFiles": "認証ファイル",
38+
"oauth": "OAuth",
39+
"quota": "クォータ",
40+
"usage": "使用状況",
41+
"config": "設定",
42+
"logs": "ログ",
43+
"system": "システム",
44+
"providers": "AIプロバイダー",
45+
"about": "情報"
46+
},
47+
"providers": {
48+
"title": "プロバイダー",
49+
"connectPrompt": "ZeroLimitサーバーに接続してプロバイダーを管理してください",
50+
"connectedAccounts": "接続済みアカウント",
51+
"active": "有効",
52+
"noAccounts": "接続されたアカウントはありません",
53+
"addProvider": "プロバイダーを追加",
54+
"enterConfig": "設定を入力",
55+
"connectionFailed": "接続に失敗しました",
56+
"waitingAuth": "認証を待機中...",
57+
"connecting": "接続中...",
58+
"googleProjectId": "Google Cloud プロジェクトID",
59+
"optional": "任意",
60+
"projectIdPlaceholder": "空欄の場合、最初に利用可能なプロジェクトを自動選択します",
61+
"projectIdHelp": "任意。指定しない場合、アカウント内で最初に利用可能なプロジェクトが自動的に選択されます。",
62+
"retryConnection": "再接続",
63+
"connect": "接続",
64+
"connectWithProject": "プロジェクトIDで接続",
65+
"autoSelect": "プロジェクトを自動選択",
66+
"completeLogin": "ブラウザでログインを完了してください",
67+
"openLink": "リンクを開く",
68+
"verify": "確認",
69+
"manualCallback": "有効なコールバックが自動検出されない場合:"
70+
},
71+
"quota": {
72+
"title": "クォータ",
73+
"loadQuota": "クォータを読み込む",
74+
"usage": "使用量",
75+
"limit": "上限",
76+
"remaining": "残り",
77+
"resetDate": "リセット日",
78+
"connectPrompt": "CLIProxyApiサーバーに接続してクォータを確認してください",
79+
"refreshAll": "すべて更新",
80+
"noCredentials": "認証ファイルが見つかりません。"
81+
},
82+
"settings": {
83+
"title": "設定",
84+
"theme": "テーマ",
85+
"themeDesc": "好みのカラーテーマを選択してください",
86+
"language": "言語",
87+
"languageDesc": "使用する言語を選択してください",
88+
"dark": "ダーク",
89+
"light": "ライト",
90+
"system": "システム"
91+
},
92+
"layout": {
93+
"connected": "接続済み",
94+
"disconnected": "未接続"
95+
},
96+
"account": {
97+
"title": "アカウント",
98+
"manageSession": "セッションを管理"
99+
},
100+
"quotaCard": {
101+
"usage": "使用量",
102+
"noUsage": "使用データがありません",
103+
"percentLeft": "残り {{percent}}%",
104+
"unknown": "不明"
105+
},
106+
"dashboard": {
107+
"title": "ダッシュボード",
108+
"connectionStatus": "接続状態",
109+
"serverVersion": "サーバーバージョン",
110+
"buildDate": "ビルド日時",
111+
"quickStats": "クイック統計",
112+
"totalRequests": "総リクエスト数",
113+
"successRate": "成功率",
114+
"activeFiles": "アクティブなファイル",
115+
"totalAccounts": "総アカウント数",
116+
"serverInfo": "CLIProxyApi サーバー情報",
117+
"apiBaseUrl": "API ベースURL",
118+
"greeting": {
119+
"morning": "おはようございます",
120+
"afternoon": "こんにちは",
121+
"evening": "こんばんは"
122+
},
123+
"welcomeMessage": "ZeroLimit ダッシュボードへようこそ。",
124+
"systemStatus": "CLIProxyApi ステータス",
125+
"status": {
126+
"active": "有効",
127+
"offline": "オフライン",
128+
"operational": "正常稼働",
129+
"error": "エラー"
130+
},
131+
"monitoringEnabled": "監視が有効です",
132+
"checkConnection": "接続を確認",
133+
"server": {
134+
"stable": "安定版",
135+
"latestRelease": "最新リリース",
136+
"port": "ポート"
137+
}
138+
}
139+
}

src/i18n/locales/ko.json

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
{
2+
"common": {
3+
"loading": "로딩 중...",
4+
"error": "오류",
5+
"success": "성공",
6+
"save": "저장",
7+
"cancel": "취소",
8+
"delete": "삭제",
9+
"confirm": "확인",
10+
"close": "닫기",
11+
"refresh": "새로고침",
12+
"search": "검색",
13+
"noData": "사용 가능한 데이터가 없습니다",
14+
"copy": "복사",
15+
"copied": "복사되었습니다!",
16+
"download": "다운로드",
17+
"upload": "업로드"
18+
},
19+
"auth": {
20+
"login": "로그인",
21+
"appTitle": "ZeroLimit",
22+
"logout": "로그아웃",
23+
"apiBase": "API 기본 URL",
24+
"apiBasePlaceholder": "예: http://localhost:8317",
25+
"managementKey": "관리 키",
26+
"managementKeyPlaceholder": "관리 키를 입력하세요",
27+
"rememberMe": "자격 증명 저장",
28+
"connecting": "연결 중...",
29+
"connected": "연결됨",
30+
"disconnected": "연결 끊김",
31+
"connectionError": "연결에 실패했습니다"
32+
},
33+
"nav": {
34+
"dashboard": "대시보드",
35+
"settings": "설정",
36+
"apiKeys": "API 키",
37+
"authFiles": "인증 파일",
38+
"oauth": "OAuth",
39+
"quota": "할당량",
40+
"usage": "사용량",
41+
"config": "설정",
42+
"logs": "로그",
43+
"system": "시스템",
44+
"providers": "AI 제공자",
45+
"about": "정보"
46+
},
47+
"providers": {
48+
"title": "제공자",
49+
"connectPrompt": "ZeroLimit 서버에 연결하여 제공자를 관리하세요",
50+
"connectedAccounts": "연결된 계정",
51+
"active": "활성",
52+
"noAccounts": "연결된 계정이 없습니다",
53+
"addProvider": "제공자 추가",
54+
"enterConfig": "설정 입력",
55+
"connectionFailed": "연결 실패",
56+
"waitingAuth": "인증 대기 중...",
57+
"connecting": "연결 중...",
58+
"googleProjectId": "Google Cloud 프로젝트 ID",
59+
"optional": "선택 사항",
60+
"projectIdPlaceholder": "비워두면 사용 가능한 첫 번째 프로젝트를 자동 선택합니다",
61+
"projectIdHelp": "선택 사항입니다. 지정하지 않으면 계정에서 사용 가능한 첫 번째 프로젝트가 자동으로 선택됩니다.",
62+
"retryConnection": "연결 재시도",
63+
"connect": "연결",
64+
"connectWithProject": "프로젝트 ID로 연결",
65+
"autoSelect": "프로젝트 자동 선택",
66+
"completeLogin": "브라우저에서 로그인을 완료하세요",
67+
"openLink": "링크 열기",
68+
"verify": "확인",
69+
"manualCallback": "유효한 콜백이 자동으로 감지되지 않는 경우:"
70+
},
71+
"quota": {
72+
"title": "할당량",
73+
"loadQuota": "할당량 불러오기",
74+
"usage": "사용량",
75+
"limit": "한도",
76+
"remaining": "남은 양",
77+
"resetDate": "초기화 날짜",
78+
"connectPrompt": "CLIProxyApi 서버에 연결하여 할당량을 확인하세요",
79+
"refreshAll": "모두 새로고침",
80+
"noCredentials": "인증 파일을 찾을 수 없습니다."
81+
},
82+
"settings": {
83+
"title": "설정",
84+
"theme": "테마",
85+
"themeDesc": "선호하는 색상 테마를 선택하세요",
86+
"language": "언어",
87+
"languageDesc": "사용할 언어를 선택하세요",
88+
"dark": "다크",
89+
"light": "라이트",
90+
"system": "시스템"
91+
},
92+
"layout": {
93+
"connected": "연결됨",
94+
"disconnected": "연결 끊김"
95+
},
96+
"account": {
97+
"title": "계정",
98+
"manageSession": "세션 관리"
99+
},
100+
"quotaCard": {
101+
"usage": "사용량",
102+
"noUsage": "사용 데이터가 없습니다",
103+
"percentLeft": "남은 비율 {{percent}}%",
104+
"unknown": "알 수 없음"
105+
},
106+
"dashboard": {
107+
"title": "대시보드",
108+
"connectionStatus": "연결 상태",
109+
"serverVersion": "서버 버전",
110+
"buildDate": "빌드 날짜",
111+
"quickStats": "빠른 통계",
112+
"totalRequests": "총 요청 수",
113+
"successRate": "성공률",
114+
"activeFiles": "활성 파일",
115+
"totalAccounts": "총 계정 수",
116+
"serverInfo": "CLIProxyApi 서버 정보",
117+
"apiBaseUrl": "API 기본 URL",
118+
"greeting": {
119+
"morning": "좋은 아침입니다",
120+
"afternoon": "안녕하세요",
121+
"evening": "좋은 저녁입니다"
122+
},
123+
"welcomeMessage": "ZeroLimit 대시보드에 다시 오신 것을 환영합니다.",
124+
"systemStatus": "CLIProxyApi 상태",
125+
"status": {
126+
"active": "활성",
127+
"offline": "오프라인",
128+
"operational": "정상 작동",
129+
"error": "오류"
130+
},
131+
"monitoringEnabled": "모니터링 활성화됨",
132+
"checkConnection": "연결 확인",
133+
"server": {
134+
"stable": "안정 버전",
135+
"latestRelease": "최신 릴리스",
136+
"port": "포트"
137+
}
138+
}
139+
}

0 commit comments

Comments
 (0)