What each tool costs, what it translates, and the publishing work it leaves to you
Disclosure: I build Localeship, one of the five tools below. Tools are listed by input type, then alphabetically. Each one, mine included, gets a “watch out for” section.
Translating a Chrome Web Store listing sounds like one task. It’s really two: getting the words right in each language, then getting those words into the right places. The name and short description ship inside your extension package. The detailed description goes into the developer dashboard, one language at a time, and the dashboard only offers languages your package already includes.
That split is why tools that all claim to “translate your listing” can leave you with very different amounts of work. This guide compares five of them on cost and coverage, then walks through publishing the result.
The short version
| If you want | Look at |
|---|---|
| To translate one launch or update without a subscription | LocalePack (per-job quote) or Localeship (prepaid credits, three free translations) |
| Help filling detailed descriptions in the dashboard | LocalePack or Localeship; both publish a console script |
| A hosted workspace for regular editing | Localizer.dev |
| Your own script and API key | Chrome Extension GPT Localizer, after updating its model setting |
| A free extension-package translator | Xtensions, plus a separate plan for the detailed description |
Translation quality depends on the language, your source copy, and your review, so try a small batch before you commit to any of them.
Listing limits at a glance
| Field | Limit | Where it lives |
|---|---|---|
| Locale codes | 55 in Chrome’s table | _locales/LOCALE_CODE folders |
| Extension name | 75 characters | Manifest, can reference a message |
| Short description | 132 characters | Manifest, can reference a message |
| Detailed description | 16,000 characters accepted by the dashboard field | Store listing section of the dashboard |
Google’s listing documentation doesn’t state a limit for the detailed description. The 16,000 figure comes from the dashboard’s text field, so treat it as current behavior that could change.
Translated text has to fit these limits too. German and Finnish, for example, often run longer than English, so a 130-character English short description leaves little room.
What Chrome Web Store listing translation covers
A store listing and an extension interface share some localization machinery, but they aren’t the same job.
| Content | Where you manage it |
|---|---|
| Extension name | Manifest field, which can reference a localized message |
| Short description | Manifest field, which can reference a localized message |
| Detailed store description | Store listing section of the developer dashboard |
| Interface text | Extension message files and the code that uses them |
| Localized screenshots and video | Locale-specific assets in the dashboard |
| Small and marquee promo tiles | The dashboard; these cannot be localized |
Message files use paths such as _locales/de/messages.json, and the manifest points its name and description at keys inside them. If an export uses different keys from your project, you need to reconcile them. An export might use appName where your manifest references extensionName.
Google’s listing instructions tie each dashboard language to one of the _locales/LOCALE_CODE directories in your package. So to add a German detailed description, the uploaded package needs _locales/de/messages.json, even if your interface stays in English.
Some exports also store the detailed description in the message file, under a key such as storeDesc. That’s convenient storage, but Chrome doesn’t read an arbitrary key and fill in the dashboard for you. You paste the text yourself or run a script that does it.
If you haven’t set up _locales yet, start with how to localize a Chrome extension. The i18n guide covers interface strings in more depth.
What “52 languages” actually means
Nearly every tool here advertises 52 languages, while Google’s table lists 55 locale codes. A code can be a language or a regional variant:
| Language group | Supported locale examples |
|---|---|
| English | en, en_AU, en_GB, en_US |
| Spanish | es, es_419 |
| Portuguese | pt_BR, pt_PT |
| Chinese | zh_CN, zh_TW |
LocalePack gets to 52 by leaving out the three regional English variants, which means an English source has 51 other locales to translate.
The same number doesn’t guarantee the same list. Xtensions also advertises 52, but its picker shows 55 entries. Localeship and Localizer.dev name example languages on their homepages instead of publishing a full list. Check the picker for the markets you actually need. Chrome ignores unsupported locale codes, so a mistyped folder name won’t give you a new language.
What free and paid plans really cover
Before comparing prices, decide what you’re buying: translated text, an editing workspace, generated files, or help entering text in the dashboard.
For each service, check:
- How many fields and languages the price covers.
- The minimum payment.
- How regeneration and later edits are charged.
- Whether you can download useful output.
- Which publishing steps stay manual.
Also compare the launch with the update that follows it. A low cost per translation can still mean a larger credit purchase, and a plan at 120 upfront.
How I compared these tools
I compared each tool on what it accepts, which listing fields it translates, what it outputs, what a full 51-locale translation costs, and which steps stay manual.
Sources, as of October 30, 2026: vendor pages for features and pricing, Google’s Chrome documentation for locale codes, character limits, and dashboard behavior, and the GPT Localizer source code at commit 8617016.
I did not run the competing tools end to end, so their features are described as each vendor documents them. I build Localeship, which is included here. Its section follows the same format and lists its limitations.
Five Chrome Web Store translation tools
LocalePack
Category: Listing translation priced per job.
Best suited to: Publishers who want help moving detailed descriptions into the dashboard.
LocalePack’s store-listing tool takes the extension name, short description, and store description, and offers 52 locales. It validates character limits as you type and delivers a ZIP of _locales/{lang}/messages.json files with appName, shortDesc, and storeDesc keys.
Each job costs a $9.99 base fee plus a per-language charge based on your text’s token count, shown on the checkout page before you pay. It is a one-time payment per job, not a subscription, and no free tier is advertised. For a sample listing with a 1,083-character detailed description, 51 locales came to $10.16. Optional priority processing adds $5 for delivery within an hour.
Its dashboard script runs in the DevTools console on the Store listing tab. You select the _locales folder from the ZIP, and it fills the detailed description for each language in the dropdown. It doesn’t touch the name or short description, which come from your package, and you review and click “Save draft” yourself.
Watch out for: You’re running third-party code in a logged-in session that can publish your extension, so read the script before pasting it. It relies on XPath selectors that can stop working if Google redesigns the dashboard. Its message keys may also differ from the ones your manifest uses.
Localeship
Category: A hosted listing translator with prepaid credits.
Best suited to: Occasional translation by developers who prefer credits to a subscription.
Localeship takes the extension name, short description, and detailed description. It advertises 52 languages, editable results with character counts, and _locales export.
New accounts get three free translations, each covering one language. Paid packs are $10 for 160 credits or $25 for 500. One credit covers all three listing fields in one language, and credits don’t expire.
At the smaller pack’s rate, a listing translated into 51 locales uses 51 credits, a $10 pack covers roughly three full launches or many smaller updates, though $10 is still the minimum paid purchase.
The integration guide includes a free console script. You paste it on the Store listing page and select your _locales folder, and it goes through the languages filling each detailed description from its storeDesc key. It doesn’t save anything: it highlights “Save draft” and leaves the review to you.
Watch out for: The script carries the same risks as LocalePack’s. It’s third-party code in a session that can publish your extension, and its XPath selectors can break when Google changes the dashboard, so read it first and have a fallback. It only handles the detailed description. The homepage names example languages instead of the full list, so confirm your target markets before buying.
Localizer.dev
Category: A subscription translation workspace.
Best suited to: Developers who want to review and edit listing translations in a hosted interface.
Localizer.dev takes the name, short description, and full description. It advertises 52 languages, providers including OpenAI, Google, and DeepL, manual editing, character checks, and localization-file export.
The published price is $19 billed monthly, or $10 per month billed annually, which is $120 upfront for a year. Both plans list the same features. If you refine terminology across releases, the editing controls may justify a recurring cost that a single launch wouldn’t.
Watch out for: The site doesn’t publish usage limits, and there’s no free plan or trial, though a 20-day money-back guarantee applies. Ask about limits before choosing the annual plan, and confirm how the translated full description reaches the dashboard.
Chrome Extension GPT Localizer
Category: A publicly available Node.js script.
Best suited to: Developers comfortable adapting code and using their own API key.
Chrome Extension GPT Localizer translates _locales/en/messages.json and a separate _locales/en/store_description.txt. It resolves those paths from the folder above the script, so it expects to sit one level below your extension root. Each run handles one target language, for example node localize.js de.
The code calls OpenAI’s gpt-4o model and sends screenshots as context when translating message files. There’s no per-listing quote: API usage is the cost, and credentials, execution, review, and publishing are on you. The code is small enough to read in one sitting, which makes it a reasonable starting point for your own workflow.
Watch out for:
- The model setting. OpenAI has announced that its GPT-4o snapshots will be removed from the API on January 14, 2027. Plan to change the model name.
- The screenshots folder. The README says the script works without screenshots, but the code reads a
screenshotsdirectory beside the script without checking that it exists. Create the folder, even if it’s empty, or add a check. - The store description file. The script always translates
store_description.txtafter writing the translated messages. If the file is missing, the run fails partway through. - Maintenance and reuse. The repository has a single commit from August 2024 and no license file, so ask the author before building on it.
Xtensions Localizer
Category: A free extension-package translator.
Best suited to: Developers who already have an internationalized extension package.
Xtensions Localizer lets you upload an extension ZIP or fetch a published extension, select languages, and download the translated extension. Its instructions say the ZIP should include a root-level manifest.json that sets default_locale.
It advertises free translation into 52 locales and works with add-ons that follow the WebExtensions specification, including Chrome, Firefox, Edge, and Opera extensions.
Watch out for: Detailed store-description translation isn’t documented, so plan to handle that text separately. That makes Xtensions a narrower option for a store listing, though it’s still useful if package localization is part of your job. The picker shows 55 entries, including the regional English variants, so select only the locales you intend to maintain.
Comparison table
| Tool | Input | Languages | Cost for 51 locales | Detailed store description | Fills the dashboard |
|---|---|---|---|---|---|
| LocalePack | Listing text | 52 locales | One-time quote at checkout | Translated (storeDesc key) | Console script, detailed description only |
| Localeship | Listing text | 52 advertised | 51 credits, about 10 minimum purchase | Translated (storeDesc key) | Console script, detailed description only |
| Localizer.dev | Listing text | 52 advertised | 120 for a year | Translated; confirm the export handoff | Not advertised |
| GPT Localizer | Project files | Any code you pass, one per run | OpenAI API usage | Separate translated text file | No |
| Xtensions | Extension ZIP or published extension | 52 advertised, 55 in picker | Free | Not documented | No |
Prices are in US dollars. Prices and published features were checked October 30, 2026. Use the linked product pages for current terms.
What a full translation costs
This table estimates the cost of translating one listing (name, short description, and detailed description) from English into 51 locales.
| Tool | Pricing model | Minimum payment | Cost of this job |
|---|---|---|---|
| LocalePack | One-time payment per job | $9.99 base fee per job | $10.16 for the sample listing |
| Localeship | Prepaid credits | $10 for 160 credits | 51 credits, about $3.19 |
| Localizer.dev | Subscription | $19 for one month | Included in the plan; usage limits not published |
| GPT Localizer | Your OpenAI API usage | None | API charges only; varies with text length and model |
| Xtensions | Free | None | Free; detailed description not covered |
Prices are in US dollars and were checked October 30, 2026. The Localeship figure is calculated from the smaller pack’s rate, but you still buy the whole pack. Credit and per-job prices pay for this job only, while a subscription pays for access over time, so the figures are not directly comparable.
How to translate and publish your Chrome Web Store listing
Step 1: Finalize the source copy
Fix unclear wording before multiplying it across languages. State what the extension does, which features require payment, and any important limitations. Keep a small glossary for product names and technical terms, and cut any long changelog from the description before you translate it.
Step 2: Choose languages you can maintain
Start with evidence: your existing audience, customer requests, or target markets. A smaller set of reviewed translations is easier to keep current than all 55 codes.
Decide what language experience you’re actually offering, too. A localized listing doesn’t make the interface, documentation, or support available in that language, so describe those accurately.
Step 3: Connect message files to the manifest
If a project has a _locales folder, Chrome requires the manifest to set default_locale. With English as the default, the relevant fields could look like this:
{
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
"default_locale": "en"
}
This is a fragment to merge into your existing manifest. The matching source file, _locales/en/messages.json, defines those keys:
{
"extensionName": {
"message": "Tab Organizer",
"description": "Extension name shown in the browser and the Chrome Web Store"
},
"extensionDescription": {
"message": "Group, search, and close tabs in one click.",
"description": "Short description, 132 characters maximum"
}
}
Each translated locale uses the same keys. For German, _locales/de/messages.json could contain:
{
"extensionName": {
"message": "Tab Organizer"
},
"extensionDescription": {
"message": "Tabs mit einem Klick gruppieren, durchsuchen und schließen."
}
}
Step 4: Review a small batch
Check meaning, brand names, character counts, formatting, and placeholders. Pay particular attention to pricing, permissions, and claims about what the extension can do.
A second automated translation can flag suspicious wording, but a fluent reviewer is better placed to judge whether it sounds natural. Give that reviewer the source text and some product context.
Step 5: Merge and test the package
Inspect generated changes before merging them. Keep existing interface messages when adding listing strings, and check that every manifest reference resolves. Then load the extension locally and look at the translated text.
Step 6: Complete the dashboard fields
Upload the updated package first, because the dashboard offers a locale only when the package includes its _locales folder.
Then select each locale in the Store listing section and add its detailed description, either by hand or with a script you’ve read. Add localized screenshots or video where they help.
Review every populated field before submitting. After publication, open the public listing in the intended language and confirm that the description and visuals agree. Keep the source copy and translations together in version control so later feature changes are easier to track.
Common localization problems
The language is missing from the dashboard dropdown. Check that the uploaded package includes a _locales folder for that exact locale code.
The name stays in English. Check that the manifest references the intended message key and that the locale file is in the package.
The detailed description stays in English. Check the dashboard field for that locale. A translated message file doesn’t fill it automatically.
A script skips Hebrew. Packages use he, while dashboard language lists have used Google’s older iw code. If Hebrew gets skipped, check that mapping first.
A script stops working. The dashboard has probably changed, which breaks the selectors. Fall back to pasting the remaining descriptions by hand and check for an updated script.
The short description is too long. Rewrite it to fit 132 characters while preserving its main meaning. Don’t rely on cutting off the ending.
New files remove existing translations. Merge the relevant keys into your project instead of replacing a complete catalog without checking the differences.
Different languages promise different features. Review claims against one source version. Google’s listing guidance says localized metadata shouldn’t significantly change the described set of features. The dashboard warns you when it detects an inconsistency, but the warning doesn’t block submission, so a clean submission doesn’t prove your translations match.
Frequently asked questions
Can I translate my Chrome Web Store listing without translating the whole interface?
Yes. Each locale needs a messages.json file with at least the name and description, since the dashboard only offers locales the package includes. The rest of your interface can stay in its original language. As long as your default locale’s file has every string, Chrome runs the extension however sparse the translation is. Just be clear with users about which languages the interface supports.
Should I translate every Chrome Web Store language at once?
Choose a scope you can review and update. Expanding in batches gives you time to fix terminology before you reuse it, and 52 languages help less when feature changes leave most of them out of date.
Can a general AI assistant translate a few descriptions?
Yes. For a small job, give it the source listing, product glossary, target locale, and field limits. Ask it to preserve brand names and avoid adding features.
For example: “Translate this extension listing for Brazilian Portuguese. Keep the product name unchanged, preserve technical placeholders, and keep the short description within 132 characters. Do not introduce new claims.”
You still need to review the output and prepare the package and dashboard fields.
Can these tools publish translations automatically?
Not fully. LocalePack and Localeship both offer console scripts that fill detailed descriptions, but you still review, save, and submit. The other tools document translation or export workflows only.
What are the alternatives to LocalePack?
It depends on what you’d change. For credits instead of a per-job quote, there’s Localeship, which I build, so compare both on your own listing. For an ongoing editing workspace, there’s Localizer.dev. To avoid a tool fee, GPT Localizer and Xtensions are the options, though you’d pay for API usage with the first and handle the detailed description separately with the second.
Will translation guarantee more installs?
No. Translation makes your product easier to understand, but it doesn’t establish that people want it or that the listing will rank for their searches. Track results after release, including the quality of the users you attract, and keep other listing changes in mind when you interpret any increase.
How do I keep translations current?
Treat the source listing as part of each release. When a feature, price, or limitation changes, find the affected passages and update the matching translations. Even a simple record of which source version each translation came from beats a folder of descriptions with no history.
Choosing your tool
For an occasional listing translation, LocalePack and Localeship both cost about $10 out of pocket for a first full translation. Each LocalePack job includes its $9.99 base fee, while leftover Localeship credits carry over to later updates. Choose LocalePack if help filling the dashboard matters most. Consider Localizer.dev when its editing workspace suits recurring work. Choose GPT Localizer if you want to maintain a script and update its model setting, or examine Xtensions when a free package translator covers part of your task.
Whichever you choose, review a small batch before expanding to every market. The goal is a listing that fits Chrome’s limits, describes your extension accurately, and stays accurate as the product changes.
Sources and further reading
- Chrome internationalization and supported locales
- Chrome Web Store listing and localization instructions
- Manifest name requirements
- Manifest description requirements
- LocalePack listing translator
- LocalePack locale coverage
- LocalePack dashboard automation guide
- Localeship features and pricing
- Localeship integration guide and dashboard script
- Localizer.dev features and pricing
- Localizer.dev refund policy
- Chrome Extension GPT Localizer README and code
- OpenAI API model deprecations
- Xtensions Localizer


Leave a Reply