Localization (software)
Internationalising software: string extraction, ICU messages, locale formats, translation files.
Download all 65
- Add lint checks that block hard-coded UI strings
Configures linters and CI so new hard-coded user-facing strings, string concatenation and missing catalog keys fail review, with an allowlist and a baseline so existing debt does not block work.
- App localisation track
Takes an English-only app to its first extra language in gated steps, from readiness scan and string extraction to formatting fixes, pseudo-localisation, translation hand-off and linguistic QA.
- Audit translation keys against the code
Cross-checks string catalogs against the code that uses them to find missing, unused, duplicate and dynamically built keys, then proposes a safe clean-up with nothing deleted on a guess.
- Automate translation file sync
Designs the pipeline between a repo and translators, with key extraction, upload to a translation system or vendor, download of finished locales, CI checks for keys and fallbacks, and approvals.
- Build a localization glossary
Builds a product term base from UI strings, with definitions, do-not-translate terms and proposed translations per locale, so localization stays consistent. Use before the first translation round.
- Choose an i18n library for a project
Compares i18n libraries for a given stack on message format, plurals, type safety, bundle size, server rendering and tooling, then recommends one with a small proof-of-concept plan.
- Configure translation fallbacks
Configures message fallback chains such as pt-BR to pt to en, partial-translation behaviour, correct lang marking of fallback text and missing-key reporting, so users never see raw keys.
- Convert translation files between formats
Converts string catalogs between formats such as gettext PO, XLIFF, JSON, ARB, Android XML and Apple strings, mapping placeholders, plurals, comments and status without losing data.
- Design international name and address fields
Designs form fields, validation and storage for personal names, postal addresses and phone numbers that work across countries. Use for international sign-up, checkout or shipping forms.
- Design an LLM translation pipeline for string catalogs
Designs an LLM translation step for app string catalogs with glossary and context injection, structured output, placeholder and plural validation, review routing by risk, caching and cost control.
- Design locale detection and routing
Designs how a web or mobile app picks and remembers language and region, with negotiation, explicit choice, URL strategy, hreflang, fallback chains and language kept separate from currency.
- Design localized API error messages
Designs API errors that clients can show in any language, with stable codes, structured parameters, field paths and a clear rule on whether the server or the client translates the text.
- Design a database schema for translated content
Designs how user- or admin-authored content such as product names, articles and categories is stored in several languages, with fallbacks, slugs, search, workflow status and migrations.
- Extract hard-coded UI strings
Finds hard-coded user-facing strings and moves them into an i18n catalog with meaningful keys and translator comments, without changing behaviour. Use when preparing an app for translation.
- Fix layout bugs caused by longer translations
Fixes truncation, overflow, clipped glyphs and broken alignment that appear when UI text is translated or pseudo-localized, using flexible layout instead of per-language hacks.
- Fix Unicode-unsafe string handling
Finds and fixes code that breaks on non-ASCII text, such as length limits, truncation, reversal, case changes, initials and slugs that split emoji, combining marks and scripts.
- Generate typed translation keys
Adds compile-time checked translation keys and message arguments in TypeScript, so a missing key, a misspelt placeholder or a missing plural count fails the build instead of shipping.
- Internationalisation-ready code rules
Standing rules that keep any user-facing code an assistant writes translatable, with catalog strings, ICU plurals, no concatenation, locale-aware formatting, logical CSS and no text in images.
- Implement locale-aware sorting and search
Implements locale-aware sorting, comparison and search with ICU collation, Unicode normalisation, case folding, accent-insensitive matching and database collations, plus tests that break naive code.
- Implement locale-aware formatting
Replaces hand-built date, time, number, currency, percentage and list formatting with locale-aware platform APIs across a codebase, and adds tests that run in several locales.
- Implement multi-currency prices and amounts
Implements selling and showing prices in several currencies, with per-currency price lists or rate-based conversion, rate snapshots, presentment versus settlement currency and locale-aware display.
- Lazy-load translation bundles
Splits translation catalogs by route or namespace and loads them on demand with long-lived caching, preloading and server-rendered payloads, without flashes of raw keys or a bloated first bundle.
- Localization engineer
Localization engineer who builds software that ships in many languages, with catalogs and ICU messages, CLDR formats, bidi, pseudo-localisation, translation pipelines and linguistic QA.
- Localize Android string resources
Localizes an Android app's resources properly, with strings.xml and plurals, formatting arguments, locale qualifiers, per-app language settings, Compose and View usage, and lint checks.
- Localize app store listings in a pipeline
Sets up localized App Store and Google Play listings as files in the repo, with per-locale metadata within each store's limits, keyword fields, localized screenshots, release notes and CI checks.
- Localise game strings and fonts
Plans and implements game localisation, covering string tables, variables and plurals, font atlases for CJK and Cyrillic, text expansion in fixed UI, subtitles and platform language rules.
- Localize a React Native or Expo app
Localizes a React Native or Expo app with device locale detection, message catalogs, Intl polyfills for Hermes, RTL handling, and native app names and permission strings per language.
- Localize emails, push and SMS sent by the server
Makes server-sent emails, push notifications, SMS and generated PDFs arrive in each recipient's language and formats, with a stored locale, time zone, fallbacks and per-locale tests.
- Localize units of measure
Adds metric, US and UK units with per-region defaults, a user override, conversion from a canonical stored unit, correct precision and rounding, and locale-aware unit formatting.
- Make a WordPress plugin or theme translatable
Makes a WordPress plugin or theme translation-ready with a matching text domain, escaping translation functions, plurals and context, translator comments, POT generation and JavaScript translations.
- Manage changes to source strings
Designs how edits to existing source-language strings reach translators, deciding new key versus same key, marking translations stale, what users see meanwhile, and reuse of translation memory.
- Migrate to another i18n library
Migrates from one i18n library or message format to another incrementally, converting catalogs and call sites with codemods behind an adapter, and proving parity by rendering every message in both.
- Parse localized user input
Makes forms accept numbers, amounts, dates and times as users type them in their locale, with locale-aware parsing, clear confirmation of what was understood and unambiguous storage.
- Plan a new language launch
Plans adding one more language or market to an already localised app, with translation effort, formats, legal and support content, store listings, native QA, flagged rollout and a checklist.
- Plan and implement right-to-left support
Plans and implements right-to-left layout support (logical properties, mirroring rules, bidi text, icons) for a web or mobile UI. Use when adding Arabic, Hebrew, Persian or Urdu.
- Propagate the user's locale through services
Carries the user's locale and time zone through API calls, background jobs, queues, events and microservices, with locale-aware cache keys, so every message, export and email uses the right language.
- Pseudo-localize the UI
Adds a pseudo-localisation build or mode that expands, accents and brackets strings to reveal truncation, concatenation and hard-coded text, then lists the issues found by screen.
- Review code for internationalization bugs
Reviews code for internationalization bugs such as concatenated strings, hard-coded date, number and currency formats, naive plurals, text expansion and RTL breakage. Use before adding new locales.
- Review UI copy before it goes to translators
Reviews new source-language UI strings for translation problems such as ambiguity, idioms, fragments, hidden plurals and gender, overloaded keys and missing context, and proposes fixed copy.
- QA a translated string catalog
QA-checks a translated catalog against its source for placeholder mismatches, broken syntax, truncation risk, terminology drift and untranslated strings. Use before merging translations.
- Set up Angular localisation
Sets up Angular's built-in i18n with stable message IDs, extract-i18n, XLIFF translation files and per-locale builds, or a runtime library when language switching without reload is required.
- Set up Django translations
Sets up Django translations with gettext, makemessages and compilemessages, LocaleMiddleware, i18n URL patterns, lazy strings, JavaScript catalogs and a choice for translated model fields.
- Set up translation for a docs site
Sets up a docs-as-code site in several languages, with locale folders, untranslated-page fallback, stale-page detection, localized search and URLs, and a sync with translators.
- Set up .NET resource localisation
Sets up ASP.NET Core localisation with resx resources, IStringLocalizer, request localisation middleware, data annotation messages, culture-aware formatting and ICU available in containers.
- Set up Flutter localisation with gen-l10n
Sets up Flutter localisation with ARB files and gen-l10n, placeholder metadata, ICU plurals and selects, locale switching, and the iOS supported-languages declaration.
- Set up i18n in a Go service or CLI
Sets up i18n in a Go service or CLI with go-i18n message files, CLDR plurals, language matching with x/text, per-request localizers, extraction and merge, and honest limits on date formatting.
- Set up iOS String Catalogs
Sets up or migrates an iOS or macOS app to Xcode String Catalogs, with localizable SwiftUI and UIKit strings, plurals and device variations, comments, InfoPlist strings and export for translators.
- Set up Laravel localisation
Sets up Laravel localisation with lang files or JSON strings, pluralisation, per-request locale middleware, translated validation messages, and correct locales for queued mail and notifications.
- Set up font stacks for many scripts
Builds web or app font stacks that render every target script well, with per-language fallbacks, CJK glyph variants, line height for tall scripts, subsetting and loading that does not stall pages.
- Set up i18n in a Next.js App Router app
Sets up internationalisation in a Next.js App Router app with locale routing, middleware, server and client component messages, localized metadata and static rendering kept intact.
- Set up Babel translations in a Python web app
Sets up Babel and gettext for a Flask or FastAPI app, with extraction config, PO and MO files, lazy strings, a per-request locale that is safe under async, Jinja usage and Babel formatting.
- Set up Rails I18n
Sets up Rails I18n with organised locale YAML, lazy lookups, per-request locale from URL or header, CLDR plural rules, model and error translations, and i18n-tasks checks.
- Set up react-i18next in a React app
Sets up react-i18next in a React app with namespaces, lazy-loaded resources, correct plural keys, Suspense, language detection, typed keys and extraction tooling.
- Set up Spring Boot message sources
Sets up Spring Boot localisation with MessageSource bundles, a LocaleResolver, validation messages from the same bundles, UTF-8 handling, and locales that survive async and background work.
- Set up i18n in a SvelteKit app
Sets up i18n in a SvelteKit app with locale-prefixed routes, per-request locale in server hooks, html lang, prerendering for every locale and typed, tree-shaken messages.
- Set up Symfony translations
Sets up Symfony Translation with ICU XLIFF or YAML catalogs, domains, a locale from the route plus a sticky session listener, translation extraction and debug checks, and Twig and form usage.
- Set up vue-i18n or Nuxt i18n
Sets up vue-i18n in a Vue app or the Nuxt i18n module, with locale routes, lazy-loaded and precompiled messages, Composition API usage, correct pluralisation and SEO tags.
- Fix text input for IME and non-US keyboards
Fixes inputs, editors and shortcuts that break for people typing Chinese, Japanese, Korean or with non-US keyboard layouts, covering IME composition, Enter handling, shortcuts and tests.
- Translate a software string catalog
Translates a software string file (JSON, PO, XLIFF, ARB, Android or Apple strings) keeping keys, placeholders, plurals and length limits intact. Use when localizing an app's UI text.
- Add translation of user-generated content
Adds machine translation of user content such as reviews, comments or messages, with language detection, caching, a show-original toggle, labelling, privacy and moderation rules and cost limits.
- Validate translation files in CI
Adds CI checks that fail on broken ICU or gettext syntax, placeholder and plural mismatches, missing or duplicate keys, bad markup and bad encoding in translation files, with a debt baseline.
- Write automated i18n tests
Writes automated i18n tests for rendering per locale, every plural branch, formatting in a fixed time zone, fallbacks, text direction and pseudo-locale coverage, robust to CLDR updates.
- Write ICU plural and select messages
Converts messages with counts, gender or choices into correct ICU MessageFormat for each target locale's plural categories, with test values. Use when strings depend on a number or gender.
- Write a per-locale style guide for product UI
Writes a localization style guide for one target locale covering formality, voice, gender-inclusive forms, punctuation, capitalization, formats, terms to keep and UI conventions, with examples.
- Write translator context notes
Adds translator-facing context to an existing string catalog - where each string appears, length limits, placeholders, tone, plurals, gender and do-not-translate terms - in its own format.
Not: translating prose (translation).