Skip to content

Language files

Do4U translates language files for websites and apps: gettext (.po and .pot), i18n JSON including i18next plural keys, and XLIFF 1.2 and 2.0. Keys, comments, order and formatting stay as they are – only the texts change. Placeholders such as %s, %1$d, {name} or {{name}}, HTML tags and ICU plurals are protected, and the code checks every entry after the translation. Plural forms follow the target language, for example three forms for Polish. Entries that fail a check keep their source text and are marked, with the reason.

Try it now Pricing

Who it is for

For website operators, developers, agencies and authors of plugins and themes who ship translations: WordPress and PHP projects with .po files, web apps with i18n JSON, and localisation workflows that exchange XLIFF.

Typical uses

  • Translate a .pot template into a new language, including the right Plural-Forms header
  • Fill in the missing and fuzzy entries of an existing .po file and keep the translated ones
  • Translate an i18n JSON file for a web app, with the plural keys rebuilt for the target language
  • Add targets to an XLIFF file without touching tags, ids or notes

Example

Input

Target language: Polish msgid "Hello %s, you have %d new messages" msgstr "" msgid "One file" msgid_plural "%d files" msgstr[0] "" msgstr[1] ""

Result

msgstr "Cześć %s, masz %d nowych wiadomości" msgstr[0] "Jeden plik" msgstr[1] "%d pliki" msgstr[2] "%d plików" Plural-Forms: nplurals=3 – three forms for Polish. Placeholders checked: 3. Entries marked for review: 0.

A fixed example, shortened. Real results are AI-generated: please check them.

Price and limits

Price
usually 5–8 credits
Available with
Free, With package
Input limit
Up to 24,000 characters per file

Privacy

Processed on our own servers in the EU (Poland). Inputs and results are deleted after 7 days (Free) or 30 days (packages), or right after you see the result if you choose not to store them. Images are deleted right after processing.

In the API

Tool name: translate_file. Create a job with POST /api/v1/jobs and fetch the result with GET /api/v1/jobs/{id}. You find your API key in your account.

curl -X POST https://do4u.eu/api/v1/jobs \
  -H "Authorization: Bearer d4u_…" -H "Content-Type: application/json" \
  -d '{"tool": "translate_file", "text": "…"}'

Full API documentation →

Questions and answers

Which file formats work?

Gettext .po and .pot files, i18n JSON (flat or nested, with i18next plural keys such as _one and _other) and XLIFF 1.2 and 2.0. Do4U recognises the format from the content, and the file extension has to match. Large files have to be split: the page shows the limit in characters, and one task translates a limited number of entries.

What happens to placeholders and plural forms?

Placeholders such as %s, %1$d, {name} and {{name}} and HTML tags are replaced by markers before the translation and put back afterwards. The code checks that each one is there exactly once and that unnumbered placeholders keep their order. Plural forms are created for the target language, for example three for Polish or six for Arabic.

What if a translation fails a check?

The entry keeps its source text and is marked: in .po files with the fuzzy flag, in XLIFF with a state, and always in the report with the reason. You see the list next to the download.

Is my text stored?

Only as long as needed: 7 days on Free, 30 days with a package – or not at all if you choose not to store it. Processing happens on our own servers in the EU (Poland).

Can I use the result right away?

Results are AI-generated. Please read them before you publish or send them.

Related tools

  • Translate HTML

    Translates HTML and keeps tags, links, attributes and placeholders exactly as they are.

  • Translate

    Into EU languages, with notes on unclear passages.

  • Proofreading

    Fixes spelling, grammar and punctuation in the language of your text and marks every change.

All tools →