
AstrologerAI: an AI astrology app localized into 52 languages
How the AstrologerAI app translated its entire experience into 52 languages with LocalePack — 6.3M tokens for $58.73 — to reach a worldwide audience in their own language.
上傳你的來源 messages.json,選擇目標語言,一次付費,下載可直接上架的 _locales ZIP。
只要三個簡單步驟即可在地化你的 browser extension。翻譯會在付款後開始執行——我們會將工作排入佇列,並在幾分鐘內產生 ZIP。
拖放你的來源 messages.json 檔案。我們會立即解析並驗證 browser extension 格式。
從 52 種語言中選擇。付款前即可依檔案大小查看透明定價。
透過 Stripe 一次付費。我們會產生所有 _locales/{lang}/messages.json 檔案,並將它們打包成 ZIP。
上傳前就能清楚知道你將支付的金額。最終報價會在上傳後,依字串長度與所選語言計算。
將 messages.json 拖曳到這裡
或點擊以瀏覽
WebExtension messages.json format. Max 500KB.
已選擇 55 種語言中的 3 種
最終價格將於結帳頁面上傳檔案後計算
一次性付款 • 無訂閱
專為 browser extension 語系格式打造。不是通用翻譯工具。
專為 browser extension 的 messages.json 結構打造,支援 message、description 與 placeholders。
完整保留 $PLACEHOLDER$ 語法,不做任何變更。您的變數在所有語言中都能保持完整。
我們會讀取您的 description 欄位,並將其作為脈絡提示,以提供更精準的 AI 翻譯。
下載包含正確 _locales/{lang}/messages.json 資料夾結構的 ZIP。直接放進您的擴充功能即可。
所有語言同時翻譯。多數工作可在 5 分鐘內完成。
無訂閱、無月費。每次工作付一次,永久下載。
Every major browser reads the same _locales/{locale}/messages.json structure. Chrome, Edge and Opera expose the chrome.i18n namespace; Firefox and Safari expose browser.i18n. The file format, the placeholder syntax and the default_locale requirement are identical across all of them, which is why a single translated folder ships everywhere.
_locales/
├── en/
│ └── messages.json ← default_locale
├── de/
│ └── messages.json
├── fr/
│ └── messages.json
└── ja/
└── messages.json{
"appName": {
"message": "My Extension",
"description": "Extension name"
},
"greeting": {
"message": "Hello, $USER$!",
"placeholders": {
"user": { "content": "$1" }
}
}
}執行階段 API
chrome.i18n / browser.i18n呼叫範例
getMessage("key")在 manifest 中必填
"default_locale"In-extension strings come from _locales/. Store listing copy is managed separately in each store's own dashboard — translating one does not translate the other.
The messages.json format is shared across every major browser. Only four things vary, and none of them require re-translating your strings.
One translated _locales/ folder covers Chrome, Firefox, Edge, Opera, and Safari. The porting work is in the build, never in the strings.
通用翻譯工具不了解 browser extension 格式。
LocalePack | 人工翻譯 | 通用 TMS | |
|---|---|---|---|
| 設定時間 | 2 分鐘 | 每種語言數小時 | 30 分鐘以上 |
| 成本透明度 | |||
| WebExtension 格式安全性 | |||
| 佔位符保護 | |||
| 速度(52 種語言) | < 5 分鐘 | 週 | 小時 |
| 最適合 | Cross-browser extensions | 小型專案 | 企業級 Web 應用程式 |
使用 LocalePack 的真實專案,最多可支援 52 種語言,觸及全球受眾。

How the AstrologerAI app translated its entire experience into 52 languages with LocalePack — 6.3M tokens for $58.73 — to reach a worldwide audience in their own language.

How the DevToys.pro web app translated its entire UI into 52 languages with LocalePack — 5.8M tokens for $58.44 — and quadrupled its international organic traffic.

How the DevToys New Tab Chrome extension localized both its in-extension UI and its Chrome Web Store listing into 52 languages to reach a global audience.

We used our own tool to translate the entire LocalePack site into 52 languages — 2.9M tokens for $27.37 — so developers worldwide find us in their own language.
“幫我省下好幾個小時的繁瑣工作。上傳我的 messages.json,就能拿到完全符合我所需格式的完美翻譯。”
Sarah K.
獨立開發者,AdBlock 擴充功能
“We ship the same _locales folder to Chrome, Firefox and Edge. One translation pass covers all three.”
Marcus T.
擴充功能維護者
“透明定價是我決定購買的關鍵。在上傳任何內容之前,我就清楚知道自己會付多少。”
Dev J.
開源貢獻者
52
支援的語系
100%
Placeholder 安全輸出
ZIP
可直接上線
關於 LocalePack,你需要知道的一切。
Deep dives on the formats, APIs and errors behind this page — written for developers, not translators.
A complete reference for the WebExtension messages.json format: the message, description, and placeholders fields, $PLACEHOLDER$ syntax, $1 positional substitutions, and common mistakes.
How @wxt-dev/i18n compiles YAML, JSON, JSONC, JSON5 and TOML message files into standard _locales/{lang}/messages.json — setup, nested keys, plurals, substitutions, type safety, and how to translate a WXT project.
Plasmo does not read _locales/ at the project root. The three paths it does accept, where default_locale actually lives, the alphabetical-default trap, and how to place a translated _locales ZIP correctly.
CRXJS ships no i18n helper and its docs have no i18n page. Here is the working pattern: put _locales under public/, declare default_locale in manifest.config.ts, and call chrome.i18n directly.