ManuceTranslate a fileTranslate a PO (gettext) File into Russian

Translate a PO (gettext) File into Russian

Upload your .po catalogue or .pot template and Manuce returns it in Russian in the same format, with as many <code>msgstr[n]</code> lines as Russian needs and the <code>Plural-Forms</code> header in place. Printf placeholders are checked, and a report lists which strings were translated and which were left as they were.

Upload my file See pricing

What it costs

For a PO file (gettext) with about 2,500 words of values, into Russian:

Essentiel
€19

To understand, internal use.

Professional
€57

Ready to send, by the technical specialist.

Premium
€110

Cross-checked. For documents that commit you.

Price for one language, original layout included. VAT not applicable — article 293 B of the French General Tax Code (CGI). The exact quote, based on your file's word count, is shown before you pay.

What Russian changes in a gettext catalogue

Russian uses the Cyrillic alphabet, reads left to right and usually runs longer than English: Save becomes Сохранить, Settings becomes Настройки. A button sized for four Latin letters may clip the label.

  • Plurals: the noun's ending depends on how the number ends. You write 1 файл, 2 файла, 5 файлов, but 21 файл and 11 файлов. A single "%d file(s)" string cannot work.
  • Case and gender: a %s dropped into a sentence stays in the nominative. Phrasing such as Удалено: %s ("Deleted: %s") avoids agreeing a past participle with a noun nobody knows in advance.
  • Typography: Russian uses « ёлочки » quotation marks and the em dash, with no space before a colon or question mark.

Display matters too: a UI font without Cyrillic glyphs shows empty boxes instead of text. The PO file cannot fix that; the font your application uses must cover Cyrillic.

Russian plurals: msgid_plural, msgstr[n] and Plural-Forms

For an entry with msgid_plural, each plural form gets its own msgstr[n] line. With the usual gettext convention for Russian, that gives:

  • msgstr[0] "%d файл" for 1, 21, 101…
  • msgstr[1] "%d файла" for 2 to 4, 22 to 24…
  • msgstr[2] "%d файлов" for 0, 5 to 20, 25…

CLDR describes four categories for Russian (one, few, many, other); the fourth covers decimals (1.5 файла). Depending on the tooling, the header therefore declares three or four forms. Manuce matches the number of msgstr[n] entries to the target language and, if you send a .pot, returns a .po with the Language and Plural-Forms headers set.

Check that the header matches what your toolchain expects, then compile with msgfmt --check, which flags an inconsistent number of forms or a missing placeholder.

Register and interface conventions in Russian

Russian software normally addresses the user formally (вы), lower case on screens, with the capitalised Вы mostly kept for letters. Buttons often use the infinitive: Сохранить, Отменить, Удалить. Use the free sample to confirm the register suits your product.

Short strings are the most ambiguous. Open may be a verb (Открыть) or a state (Открыт or Открыто, depending on gender). A msgctxt "button" or msgctxt "status" removes the doubt; Manuce keeps the context and uses it to guide the translation.

Date formats and numbers are not translated in the file. Russian writes dates as 31.12.2024 and numbers as 1 234,5 (space for thousands, comma for decimals), so your code should format them with the ru locale rather than hard-coding an English pattern.

What Manuce returns, and what it does not do

You get the same file back, ready to drop into the project: indentation, entry order, quotes, comments, line endings, encoding and BOM are preserved. Only the values change.

  • msgctxt, msgid_plural and #., #:, #, comments stay in place.
  • Placeholders such as %s, %d and %1$s are checked; every translated value is compared with the source (placeholders, tags). If a mismatch persists, the source value is kept and the report says so.
  • Keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked non-translatable are left untouched.
  • A report lists translated strings and those left as they were, with the reason.

Manuce does not convert encodings: a file declared as ISO-8859-1 cannot hold Cyrillic. Nor does it rewrite your source strings: a sentence built from concatenated fragments stays fragmented, even though Russian often needs the whole sentence to make words agree. It does not take glossaries. Pricing is based on the words in the values, with a ×1.25 coefficient for Russian.

Preparing the file and checking the result

  1. Make sure the header reads Content-Type: text/plain; charset=UTF-8 and that the file is genuinely saved as UTF-8.
  2. Add a msgctxt to one- or two-word strings that appear in several places.
  3. Explain placeholders in a comment, such as #. %s = folder name, so the translation can handle agreement.
  4. Use %1$s and %2$s when a sentence holds two placeholders: Russian word order may swap them.

When the file comes back, read the report, run msgfmt --check, then test the interface with 1, 2, 5, 11, 21 and 101 items to see every plural form. Check long labels in buttons and menus, and any brand names that should stay as they are: look at them in the free sample first, then in the delivered translation.

In practice

  1. Check the .po or .pot is saved as UTF-8 and the header declares it.
  2. Upload the file: the quote appears at once, based on the words in the values.
  3. Read the free Russian sample (register, terms to keep) before paying.
  4. Download the Russian .po and the report, then run msgfmt --check.
  5. Test the interface with 1, 2, 5, 11 and 21 items and a Cyrillic-capable font.

Frequently asked questions

How many plural forms does Russian need in a PO file?

The usual gettext convention uses three (1 файл, 2 файла, 5 файлов); CLDR describes four, the last one for decimals. Manuce matches the number of msgstr[n] entries to the target language. Check that the Plural-Forms header suits your tooling, then compile with msgfmt --check.

I only have a .pot template. Is that enough?

Yes. The .pot comes back as a Russian .po with the Language and Plural-Forms headers set. Comments and contexts from the template are kept.

My file is encoded in ISO-8859-1. What happens?

Manuce preserves the file's encoding, and Latin-1 has no Cyrillic characters. Convert the file to UTF-8 and update the charset declaration in the header before uploading it.

What if a %s or %d goes missing in the translation?

Each translated value is compared with the source, placeholders and tags included. If the mismatch persists, the source value is kept so the application does not break, and the report flags the string.

Can I enforce my terminology or keep a product name in English?

Manuce does not accept glossaries or translation memories. For a term that must stay as it is, check the free sample before paying, then the delivered translation. Keys, URLs and identifiers are never translated.

The specialist in charge

This subject goes to Dédale, the technical specialist. See how it works.

Try it on your own file, free

A sample of your file translated at the level you choose, before any payment. You judge, then you decide.

Upload my file