Lingowright Documentation

Welcome to the Lingowright docs. Here's everything you need to translate your product strings across 19 locales while preserving variables, plural rules, and character constraints.

String keys and values

Lingowright reads any format where translation units have a distinct key and a string value:

  • .json — flat or nested key-value objects (i18next, react-intl)
  • .po / .pot — gettext format with msgid and msgstr
  • .xliff — XLIFF 1.2 and 2.0
  • .strings — iOS/macOS Localizable.strings
  • .arb — Application Resource Bundle (Flutter)

Upload your source file and Lingowright detects the format automatically. No configuration required.

Supported locales

Lingowright supports 19 locales across European, CJK, RTL, and Slavic language families:

  • Western European: de, fr, es, it, pt-BR, nl, sv, da, nb, fi
  • CJK: ja, ko, zh-CN
  • RTL: ar, he
  • Slavic: ru, pl, cs
  • Other: tr

Variable syntax

Lingowright auto-detects variable interpolation syntax and preserves all placeholder tokens verbatim in translated output. Supported syntaxes:

  • Mustache / Handlebars: {{variable_name}}
  • ICU MessageFormat: {count, plural, one{# item} other{# items}}
  • printf / sprintf: %s, %d, %1$s
  • Ruby i18n: %{name}
  • HTML tags: <strong>, <em> preserved when safe

Plural rules

Lingowright applies CLDR plural categories per locale. A string with an English 2-form plural structure (one/other) will be expanded to the correct number of forms for each target locale:

  • English, German, French: 2 forms (one/other)
  • Russian, Polish, Czech: 3 forms (one/few/other)
  • Arabic: 6 forms (zero/one/two/few/many/other)

Ready to start?

Follow the quickstart guide to upload your first file and see translated output in under 5 minutes.

Read the quickstart