Skip to content

Conventions for translations

mcnanton edited this page Aug 31, 2023 · 54 revisions

The following update was made during the R Project Sprint 2023, Warwick and Online (hybrid) during 30 Aug - 1 Sept 2023:

Getting started

Welcome to the traslation adventure in R!

In a world that thrives on interconnectedness and global communication, translation plays a pivotal role in bridging linguistic divides. Translation, the art of rendering one language into another, shatters those confines, unlocking a world of possibilities for understanding and collaboration.

So if you want start, you can contribute following those steps:

  1. Sign up to the R Contributors Slack and introduce yourself in the #core-translations channel;
  2. Read the Guidelines section of this document, because the translation has some conventions that should be followed;
  3. Create an account on Weblate (currently maintained by @daroczig);
  4. List the components of your language;
  5. Choose a component that's not 100% translated (like, for example, the utils package);
  6. Click Unfinished strings to list all messages that haven't been translated and
  7. Start!

This is a short demo that you can check for use the Weblate interface.

You can access to full documentation of Weblate through this link.

Some translation states are important:

  • Untranslated: Translation is empty, it might or not be stored in the file, depending on the file format.
  • Needs editing: Translation needs editing, this is usually the result of a source string change, fuzzy matching or translator action.
  • Waiting for review: Translation is made, but not reviewed.
  • Approved: Translation has been approved in the review. It can no longer be changed by translators, but only by reviewers.

There are several key points to consider when starting translation:

  1. Every registered user on the Weblate can act as a translator.
  2. The translation that you participate, should be reviewing.
  3. A peer reviewer can add suggestion(s) to the Weblate, however, the suggestion(s) would need approval from the dedicated reviewer(s) before it is accepted as a translation.
  4. Adding the missing worlds to the Glosary.

Finally, those are the guidelines for the existing languages. If your language doesn't exist yet, please feel free to submit a pull request and create it.

Language
Arabic
Bengali
Hindi
Nepali
Spanish

Translations workflow

  • Every registered user on the Weblate can act as a translator.
  • The team leader(s) of a particular language is(are) the initial dedicated reviewer(s).
  • For adding new reviewers or peer reviewers to Weblate, please reach out to the respective team leaders via the #core-translation channel on the R Contributors Slack workspace.
  • A peer reviewer can add suggestion(s) to the Weblate, however, the suggestion(s) would need approval from the dedicated reviewer(s) before it is accepted as a translation.
  • Translation
  • Updating glossary
  • Review

Roles

We use the dedicated reviewers workflow on weblate. We currently manage 3 roles in the platform

Translators

Every registered user on weblate can act as translator

Admins / team leaders

Admins / team leaders keep the list of admins and reviewers by language up to date

Reviewers

Reviewers approve the work of translators and ensure the overall cohesion of the translation work in one language

Guidelines

General guidelines

  • Unless having very strong reasons not to, please follow your language specific glossary and guidelines
  • If you encounter ambiguous or difficult strings to translate that aren't captured in the language specific glossary and guidelines, refer to the core-translation slack channel to discuss it with other translators
  • Some languages, like spanish, have specific channels to discuss translation. Refer to your specific channel to discuss issues related to your language: if you need a slack channel set up for a language, send a direct slack message to @mcnanton
  • put policies like not work on new translations, don’t retranslate of something new, start with reviews
  • put as a suggestion and not submit, needs editing.
  • accept the default suggested translations, if it makes sense
  • language specific glossaries. Weblate has features to flag untranslatable and forbidden terms (see https://docs.weblate.org/en/latest/user/glossary.html)
  • check what they do for Python
  • argument (write in translated language) or vice versa (original term in brackets)

What (words) not to translate - okay for nouns, not for verbs?, (separate page of technical tips).

  • keyboard keys
  • function names
  • %s, %d
  • put on wiki

Updating glossaries

Languages and contributions

Language Team Leaders (Contributor/Translator/Dedicated Reviewer)
Arabic Iman Al-Hasani, Abdulrahman Alswaji
Bengali Debartha Paul
Brazilian-Portugese Caio Lente, Renata Hirota
Hindi Saranjeet Kaur Bhogal, Ayush Patel
Japanese Reiko Okamoto
Nepali Binod Jung Bogati
Spanish Geraldine Gómez, María Nanton, Macarena Quiroga

Sustainability of the translations community

  • The #core-translation channel on the R Contributors Slack workspace is main space of communication for the translations community. Join this Slack for communicating with the community and also for sharing any feedback.
  • We encourage people interested in translations to organise and conduct local/regional level events to promote and raise awareness about translations.
  • Highlight milestones (overall and by language)
  • coordinate on github
  • Design acknowledging categories for contributing members (a nice example: https://the-turing-way.netlify.app/afterword/contributors-record#contributors-record-contributors)
  • a getting started page on github

About Weblate

Space for feedback

  • github issues and/or discussions
  • knowing who to write
  • for the translation workflow write to slack

Resources

Some interesting guides, glossaries and handbooks:

Code of Conduct

  • Use the R Foundation Code of Conduct.

Future work

The following discussion is taken from the meeting notes of the EMEA-APAC region R Contributor Office Hours conducted on 13 April 2023:

Saranjeet wanted to know how to handle translating strings such as "Keyboard: PgUp, PgDown, Ctrl+Arrows, Ctrl+Home, Ctrl+End". She has currently translated to Hindi as "कीबोर्ड: पेज अप, पेज डाउन, कंट्रोल+एरोज , कंट्रोल+होम , कंट्रोल+एन्ड ,", which is in Hindi script but is spoken the same as the English words, since these are imported/foreign words.

We looked at how other languages translate this string using the "Other languages" button on Weblate: https://translate.rx.studio/translate/r-project/base-r-gui/hi/?checksum=05ce1e10588b237c&sort_by=-priority,position#translations

  • French translates all the keys apart from those that are in English on a French keyboard: "Clavier : PageHaut, PageBas, Ctrl+Flèches, Ctrl+Début, Ctrl+Fin," According to Hugo: "keys that are translated in a French keyboard: del, end, screenshot, insert. I believe that other keys usually don't include text but use symbols (arrows, shift, pgup, pgdown). Ctrl and Alt are not translated". It looks like Chinese takes a similar approach.
  • Italian does not translate the keys: "Tastiera: PgUp, PgDown, Ctrl+Arrows, Ctrl+Home, Ctrl+End,". Most languages take this approach.
  • Best to discuss among translation team for specific language if possible, to decide best approach. General guidance: don't translate unless these terms are commonly translated on the keyboard, commonly used in other technical documentation, or are simply a translation of the English word into the language script. (The latter advice because if people are choosing to see R messages in a non-English language, they may prefer to see everything in that script where possible).

Suggested each team maintains a page on this wiki https://github.com/r-devel/translations where they note agreed conventions for future contributors/translators.