- Create 指定版本部署.md to explain fixed version deployment - Create 最新版.md detailing the use of the latest tag - Create 版本選擇指南.md to guide users on version selection - Add Nginx and Traefik configuration examples for reverse proxy - Introduce minimal and production configuration examples - Develop Docker deployment guide with detailed steps - Implement quick start guide for first-time Docker users - Include version update instructions and rollback procedures - Add troubleshooting section for common issues - Enhance overall documentation structure and links for better navigation
7.3 KiB
7.3 KiB
多語言支援(i18n)
⚠️ 此文件已遷移
本文件內容已整合至新的文件結構,請參閱:
- 🌐 多語言介面支援
此文件將在未來版本中移除。
ConvertX-CN 支援 65 種語言,是目前最完整的多語言檔案轉換服務。
支援語言列表
東亞語言(5 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
zh-TW |
繁體中文(預設) | 繁體中文 |
zh-CN |
簡體中文 | 简体中文 |
en |
英文 | English |
ja |
日文 | 日本語 |
ko |
韓文 | 한국어 |
西歐語言(10 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
de |
德文 | Deutsch |
fr |
法文 | Français |
es |
西班牙文 | Español |
it |
義大利文 | Italiano |
pt |
葡萄牙文 | Português |
nl |
荷蘭文 | Nederlands |
ca |
加泰隆尼亞文 | Català |
eu |
巴斯克文 | Euskara |
gl |
加利西亞文 | Galego |
mt |
馬爾他文 | Malti |
北歐語言(5 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
sv |
瑞典文 | Svenska |
da |
丹麥文 | Dansk |
fi |
芬蘭文 | Suomi |
no |
挪威文 | Norsk |
is |
冰島文 | Íslenska |
東歐語言(12 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
ru |
俄文 | Русский |
pl |
波蘭文 | Polski |
uk |
烏克蘭文 | Українська |
cs |
捷克文 | Čeština |
hu |
匈牙利文 | Magyar |
ro |
羅馬尼亞文 | Română |
bg |
保加利亞文 | Български |
hr |
克羅埃西亞文 | Hrvatski |
sk |
斯洛伐克文 | Slovenčina |
sl |
斯洛維尼亞文 | Slovenščina |
sr |
塞爾維亞文 | Српски |
mk |
馬其頓文 | Македонски |
波羅的海語言(3 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
lt |
立陶宛文 | Lietuvių |
lv |
拉脫維亞文 | Latviešu |
et |
愛沙尼亞文 | Eesti |
其他歐洲語言(4 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
el |
希臘文 | Ελληνικά |
sq |
阿爾巴尼亞文 | Shqip |
ga |
愛爾蘭文 | Gaeilge |
cy |
威爾斯文 | Cymraeg |
中東語言(4 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
ar |
阿拉伯文 | العربية |
he |
希伯來文 | עברית |
fa |
波斯文 | فارسی |
tr |
土耳其文 | Türkçe |
南亞語言(10 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
hi |
印地文 | हिन्दी |
bn |
孟加拉文 | বাংলা |
ta |
泰米爾文 | தமிழ் |
te |
泰盧固文 | తెలుగు |
mr |
馬拉地文 | मराठी |
gu |
古吉拉特文 | ગુજરાતી |
kn |
卡納達文 | ಕನ್ನಡ |
ml |
馬拉雅拉姆文 | മലയാളം |
ne |
尼泊爾文 | नेपाली |
si |
僧伽羅文 | සිංහල |
東南亞語言(8 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
th |
泰文 | ไทย |
vi |
越南文 | Tiếng Việt |
id |
印尼文 | Bahasa Indonesia |
ms |
馬來文 | Bahasa Melayu |
fil |
菲律賓文 | Filipino |
my |
緬甸文 | မြန်မာ |
km |
高棉文 | ខ្មែរ |
lo |
寮文 | ລາວ |
非洲語言(4 種)
| 代碼 | 語言 | 原生名稱 |
|---|---|---|
af |
南非語 | Afrikaans |
sw |
斯瓦希里文 | Kiswahili |
am |
阿姆哈拉文 | አማርኛ |
zu |
祖魯文 | isiZulu |
語言切換
方法一:介面切換
- 在網站右上角的導航列找到語言圖示(🌐)
- 點擊後選擇偏好語言
- 語言偏好會自動保存到 Cookie 中
方法二:URL 參數
http://localhost:3000/?lang=ja
方法三:瀏覽器設定
ConvertX-CN 會自動偵測瀏覽器的語言設定。
自動偵測
首次訪問時,系統會根據以下優先順序選擇語言:
- Cookie 中儲存的語言偏好
- URL 參數中的
lang值 - 瀏覽器的
Accept-Language標頭 - 預設語言(繁體中文
zh-TW)
新增語言
如要添加新語言支援,請按以下步驟:
1. 建立翻譯檔案
在 src/locales/ 目錄新增語言檔案,例如 xx.json:
{
"common": {
"appName": "ConvertX-CN",
"poweredBy": "Powered by",
"version": "v{version}",
"loading": "...",
...
},
"nav": {
"history": "...",
"account": "...",
...
},
...
}
2. 在 index.ts 中註冊
編輯 src/i18n/index.ts:
// 導入新語言檔案
import xx from "../locales/xx.json";
// 在 SupportedLocale 類型中添加
export type SupportedLocale = "en" | "zh-TW" | ... | "xx";
// 在 supportedLocales 陣列中添加
export const supportedLocales: LocaleConfig[] = [
// ...
{ code: "xx", name: "Language Name", nativeName: "原生名稱" },
];
// 在 translations 物件中註冊
const translations: Record<SupportedLocale, TranslationData> = {
// ...
xx: xx as TranslationData,
};
3. 測試
bun run dev
# 訪問 http://localhost:3000/?lang=xx
語言選擇器 UI 規範
為確保語言切換體驗一致,ConvertX-CN 的語言選擇器遵循以下規範:
視覺設計
| 項目 | 規範 |
|---|---|
| 圖示大小 | 與旁邊文字高度一致(h-6 w-6) |
| 下拉選單背景 | 完全不透明(bg-neutral-800) |
| 捲動條 | 明確可見的 scrollbar 樣式 |
| 最大高度 | 320px,超過則顯示捲動條 |
行為規範
- Setup / Login / 主頁使用同一套語言選擇器組件
- 語言切換後自動重新載入頁面
- 語言偏好儲存於 Cookie,跨頁面保持一致
- 預設根據瀏覽器語言自動偵測
已知問題修復(v0.1.9)
- 語言圖示尺寸過小 → 已修復
- 下拉選單半透明 → 已修復
- 捲動條不明顯 → 已新增 scrollbar 樣式
翻譯 Fallback
如果某個翻譯鍵缺失,系統會:
- 嘗試使用英文(
en)翻譯 - 如果英文也缺失,顯示鍵名(如
nav.history)
貢獻翻譯
歡迎提交 Pull Request 來新增或改進翻譯!
翻譯指南
- 完整翻譯:確保所有鍵都有翻譯
- 保留佔位符:
{version}、{count}等佔位符不要翻譯 - 自然表達:使用該語言的自然表達方式
- 一致性:同一個詞在不同地方使用相同翻譯
- 測試:在實際介面中測試翻譯效果
提交流程
- Fork 此專案
- 建立新語言檔案或修改現有翻譯
- 測試確認無誤
- 提交 Pull Request