LocalePack
ChromeFirefoxEdgeኦፔራሳፋሪየCWS ዝርዝር
Vue.jsReact
Next.jsi18nextReact Native
የዴቭ መመሪያዎችየስኬት ምሳሌዎች

Developer Guides

Developer Guides

Deep-dive guides on i18n formats and frameworks — messages.json, Next.js translations, i18next, and more — written for developers, not translators.

August 8, 2026

Localizing your Edge Add-ons listing

Why Partner Center shows only one listing language even when your package ships twenty, how __MSG_ manifest references drive language detection, and which listing fields Edge requires for every language versus just one.

edge add-ons listing localizationpartner center store listing languageedge extension listing translation
August 8, 2026

Localizing your Firefox AMO listing

How to localize an add-on listing on addons.mozilla.org: which fields can be translated, the 250-character summary ceiling and what it costs you in German and Russian, and the per-locale Developer Hub workflow.

AMO listing localizationfirefox add-on listing translationaddons.mozilla.org localize listing
August 8, 2026

chrome.i18n: the complete API reference

All four chrome.i18n methods with exact signatures and return types: which are synchronous, which return promises, what getMessage() returns when it fails, and how browser.i18n differs in Firefox and Safari.

chrome.i18nchrome.i18n apichrome i18n getmessagebrowser.i18n
August 8, 2026

Chrome extension locale codes: all 55

Every locale code Chrome accepts as a _locales folder name, with language and native names, the underscore-vs-hyphen trap that makes pt-BR silently ignored, and how Chrome picks a locale at runtime.

chrome extension locale codes_locales folder nameschrome supported localespt_BR vs pt-BR
August 8, 2026

chrome.i18n.getMessage() returns empty

getMessage() returns an empty string when a message is missing, and logs nothing at all. Every cause of the silent empty string, how to tell it apart from undefined, and how to confirm each one.

chrome.i18n.getMessage returns empty stringgetMessage emptychrome i18n not working
August 8, 2026

chrome.i18n in MV3 service workers

Synchronous getMessage() is an advantage in an MV3 service worker, not a problem — a common claim that gets this backwards. What actually breaks is the DOM, global-variable caching, localStorage and XMLHttpRequest.

chrome.i18n service workerchrome.i18n manifest v3i18n mv3 background
August 8, 2026

WXT i18n: @wxt-dev/i18n and messages.json

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.

wxt i18n@wxt-dev/i18nwxt localizationwxt messages.json
August 8, 2026

Plasmo i18n: the locales/ folder gotcha

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.

plasmo i18nplasmo localesplasmo messages.jsonplasmo localization
August 8, 2026

Adding i18n to a CRXJS extension

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.

crxjs i18ncrxjs localizationcrxjs messages.jsonvite extension i18n
July 3, 2026

Improve AI translation quality in messages.json

How to get accurate AI translations for your Chrome extension: write description fields that give the model context, define placeholders with examples, avoid string concatenation, and handle plurals, casing, and length expansion.

improve ai translation qualitymessages.json description fieldtranslate chrome.i18n placeholderschrome extension translation qualitymessages.json best practices
July 3, 2026

Best tools for Chrome extension localization

An honest comparison of tools that translate Chrome extension messages.json files: LocalePack, Crowdin, Lokalise, Phrase, POEditor, Localazy, Weblate, and Localeship — setup overhead, pricing models, and placeholder safety.

chrome extension localization toolsbest tool to translate chrome extensionmessages.json translation toolchrome extension i18n tools
March 26, 2026

LocalePack vs Localeship for Chrome Web Store Listing Translation

Honest comparison of LocalePack and Localeship for Chrome Web Store listing translation. Both are pay-per-use tools — the key difference is that LocalePack also translates in-extension messages.json strings.

localeship alternativechrome web store listing translation toollocaleship vs localepackcws listing translation no subscription
March 25, 2026

LocalePack vs POEditor for i18next JSON

Honest comparison of LocalePack and POEditor for i18next JSON translation. POEditor is a collaborative TMS with a string-count subscription and a free tier; LocalePack is upload → pay once → download.

poeditor alternative i18nextpoeditor alternative json translationi18next json translation without poeditorpoeditor alternative no subscription
March 25, 2026

LocalePack vs Phrase for Next.js JSON Translation

Honest comparison of LocalePack and Phrase Strings for Next.js locale JSON translation. Phrase is a full TMS with per-seat subscription pricing; LocalePack is upload → pay once → download.

phrase alternative next.js localizationphrase strings alternative jsonnext.js json translation without phrasephrase alternative no subscription
March 25, 2026

LocalePack vs Lokalise for Chrome Extensions

Honest comparison of LocalePack and Lokalise for Chrome extension messages.json translation. Lokalise is a full TMS with team workflows and a monthly subscription; LocalePack is upload → pay once → download.

lokalise alternative chrome extensionlokalise vs localepackchrome extension localization without lokaliselokalise alternative no subscription
March 25, 2026

LocalePack vs Crowdin for messages.json

Honest comparison of LocalePack and Crowdin for browser extension messages.json translation. Crowdin is a full TMS with ongoing subscription; LocalePack is upload → pay once → download.

crowdin alternative messages.jsoncrowdin alternative chrome extensionmessages.json translation without crowdincrowdin alternative no subscription
March 24, 2026

Automate Chrome Web Store listing translations with a console script

How to bulk-fill all 52 Chrome Web Store listing translations at once using a browser console script — no manual copy-paste per language.

chrome web store listing automationcws listing localization scriptchrome developer dashboard automationchrome store listing console script
March 8, 2026

Browser extension i18n without a TMS subscription

Why Crowdin, Lokalise, and Phrase are overkill for most browser extension projects — and three real alternatives for indie developers who need to translate messages.json without a monthly subscription.

crowdin alternative extensionlokalise alternativemessages.json translator no accountbrowser extension i18n
March 24, 2026

i18next JSON format: namespaces, {{placeholders}}, and _one/_other plurals

A complete reference for the i18next JSON locale format — namespace files, double-brace {{placeholder}} syntax, _one/_other plural keys, nested objects, and how to structure your locales/ folder.

i18next JSON formati18next namespacesi18next _one _otherreact-i18next JSON
March 24, 2026

vue-i18n locale files: JSON, YAML, pipe plurals, and {named} placeholders

The vue-i18n locale file format — pipe-separated plurals, {named} placeholders, linked locale messages, YAML support, and SFC i18n blocks.

vue-i18n JSONvue-i18n pipe pluralsvue-i18n placeholdervue localization
March 7, 2026

Next.js i18n: next-intl vs react-i18next vs i18next

Practical comparison of the three leading Next.js i18n libraries — App Router support, file format, TypeScript safety, pluralization syntax, and when to pick each one.

next.js i18nnext-intl vs react-i18nextnext.js app router i18nnext-intl
March 6, 2026

__MSG_key__ in manifest.json explained

How the __MSG_key__ substitution syntax works in Chrome and Firefox extension manifests: which fields support it, how Chrome resolves tokens at load time, and the pitfalls that cause silent failures or upload rejections.

__MSG_key__ manifest.json__MSG_appName__manifest.json i18nchrome extension name localization
March 6, 2026

Validate messages.json before shipping

How to catch every class of messages.json error before your users do: JSON syntax, missing required fields, missing keys across locales, malformed placeholder syntax, and manifest key mismatches.

validate messages.jsonmessages.json linter_locales validationplaceholder syntax
March 6, 2026

How to localize a Chrome extension (complete guide)

Step-by-step guide to adding i18n to a Chrome extension: _locales structure, default_locale, messages.json syntax, chrome.i18n.getMessage(), placeholder preservation, and how to test locale switching.

how to localize chrome extension_localesmessages.jsonchrome.i18n
February 21, 2026

messages.json format explained (with placeholders)

A complete reference for the WebExtension messages.json format: the message, description, and placeholders fields, $PLACEHOLDER$ syntax, $1 positional substitutions, and common mistakes.

messages.jsonplaceholders$PLACEHOLDER$$1chrome.i18n
February 21, 2026

Chrome extension i18n: _locales structure and default_locale

How to set up the _locales folder, what default_locale does in manifest.json, and how Chrome picks the right messages.json at runtime.

_localesdefault_localechrome extension i18n
February 21, 2026

default_locale: rules and common errors

Why default_locale is required when _locales exists, what happens when you omit it, and how to fix the most common manifest validation errors.

default_locale_localesmanifest.json
February 21, 2026

Firefox WebExtensions i18n: messages.json reference

Using browser.i18n in Firefox add-ons: the messages.json format, AMO localization requirements, and how to avoid common pitfalls on addons.mozilla.org.

firefox webextensions i18nbrowser.i18nAMO localization
February 21, 2026

Safari Web Extensions localization notes

How Safari Web Extensions use the same messages.json/_locales format as Chrome and Firefox, and what to know for Mac App Store submission.

safari web extension localizationmessages.json safari
February 21, 2026

Store listing localization vs in-extension i18n (Chrome + AMO pitfalls)

The difference between localizing your Chrome Web Store listing and localizing in-extension strings — and the _MSG_ pattern that bridges them.

chrome web store listing localizationAMO localization__MSG_
LocalePack
መመሪያዎችግላዊነትውሎችድጋፍ

© 2025 LocalePack. መብቶቹ ሁሉ የተጠበቁ ናቸው።

ይህ ፕሮጀክት በዚህ ተተርጉሟል LocalePack logoLocalePack