[golang] 常見的多語系翻譯方案
1. 使用 go-playground/locales + universal-translator ✅(適用於表單驗證和錯誤訊息)
如果你已經使用了 go-playground/validator/v10,那麼可以搭配 go-playground/locales 和 universal-translator 來進行錯誤訊息翻譯。
安裝
使用範例
💡 優點:
- 易於整合
validator的錯誤訊息 - 提供多種語言(如
zh,en,ja等) - 自動翻譯驗證錯誤訊息
2. 使用 nicksnyder/go-i18n/v2 ✅(適用於一般應用程式)
go-i18n 是一個完整的國際化解決方案,支援 .json 或 .toml 格式來管理翻譯內容。
安裝
建立翻譯文件
建立 active.zh.json(繁體中文):
建立active.en.json(英文):
使用範例
💡 優點:
- 支援
.json和.toml文件,適合管理大量翻譯 - 可根據
Accept-Language自動切換語言 - 模板變數(
{name})支援
3. 使用 vktec/l10n-go ✅(輕量級)
l10n-go 是一個 超輕量級 的 i18n 方案,適合小型應用。
安裝
使用範例
優點:
- 極度輕量
- 簡單易用
4. 其他方案
golang.org/x/text/language:Google 官方text包,支援語言偵測與轉換(較底層)Smartling/Smartling-CLI:適用於雲端翻譯(企業級)
總結
| 解決方案 | 適用場景 | 特色 |
|---|---|---|
| go-playground/locales + universal-translator | 表單驗證 | 易與 validator 搭配,支援多語系 |
| nicksnyder/go-i18n | 一般應用程式 | JSON/TOML 格式管理翻譯,可根據 Accept-Language 切換 |
| vktec/l10n-go | 小型專案 | 極簡單,適合靜態翻譯 |
| golang.org/x/text/language | 進階應用 | Google 官方語言處理 |
如果你是處理 表單驗證錯誤,推薦 go-playground/universal-translator。
如果你要 管理大量翻譯,推薦 go-i18n。
留言
張貼留言