Project

General

Profile

Feature #11763

Feature #15085: Document our translation platform infrastructure

Adjust contributors documentation for translators

Added by u about 3 years ago. Updated 5 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
Internationalization
Target version:
Start date:
06/11/2018
Due date:
% Done:

100%

Feature Branch:
Type of work:
Contributors documentation
Blueprint:
Starter:
Affected tool:
Translation Platform

Description

You'll need to test how everything works and while doing that, document all your steps in our translation documentation. You might want to create a new mdwn file for that.

This includes:


Related issues

Related to Tails - Bug #13286: Review current documentation of the translation platform Resolved 06/30/2017
Blocks Tails - Bug #16899: Public call for translations Confirmed

History

#1 Updated by mercedes508 about 3 years ago

  • Category set to Internationalization
  • Status changed from New to Confirmed

#2 Updated by intrigeri about 3 years ago

  • Category changed from Internationalization to Infrastructure

(i18n is not l10n)

#3 Updated by intrigeri about 3 years ago

  • Assignee set to emmapeel

(Setting the same assignee as the parent ticket. Please set a more adequate one if I guessed wrong :)

#4 Updated by u about 2 years ago

  • Related to Bug #13286: Review current documentation of the translation platform added

#5 Updated by u over 1 year ago

  • Category changed from Infrastructure to Internationalization
  • Assignee changed from emmapeel to spriver
  • Target version set to Tails_3.8
  • Start date deleted (09/03/2016)

#6 Updated by u over 1 year ago

  • Subject changed from Document how to use the future translation platform for translators to Adjust contributors documentation for translators
  • Parent task changed from #10034 to #15085

#8 Updated by u over 1 year ago

  • Description updated (diff)

#9 Updated by emmapeel over 1 year ago

For 'languages translated with Git', you can add this trick to review new changes in weblate:

Reviewing translation platform output
--------------------------------------

For languages like fr, fa, de, or it, that are part of tails master repo, you can get the files to review and submit to tails-l10n:


git remote add translations https://translate.tails.boum.org/git/tails/index/
git checkout tails/master
find . -name '*.fa.po' -exec git checkout translations/master --  {} \;
git reset *


And you will have all the changes to farsi (*.fa.po) to review. The same goes for the other languages.

#10 Updated by u over 1 year ago

  • Assignee changed from spriver to drebs

spriver is afk it seems. Reassigning to drebs who would be willing to work on this. @spriver: if you want to take back this ticket, please talk to me :)

@drebs: emmapeel will do the review, once you're done, you can reassign this to her and mark as "Ready for QA".

#11 Updated by u over 1 year ago

Some notes on this:

- I think we want to create a dedicated page in wiki/src/contribute/how/translate/with_translation_platform.mdwn
- we need info on how to connect, how to get an account
- how to make a suggestion, how to accept or review a translation
- how to ask for a new language to be added (I think we should not add too many languages, because we will carry all PO files around with us, and this will become heavy if people start to translate one single page to a rare language. There should be a real interest in having a new language)
- where can they see their translations (staging wiki)
- how to vote, how to delete a suggestion
- explain to people when their language will be activated on the main site (point to this part of the doc on wiki/src/contribute/how/translate)
- how to get in contact when they experience technical problems
- suggest they work in a team
- suggest they create a glossary
- how to use weblate itself and it's translation memory
- link their questions to tails-l10n
- eventually link to the blueprint for people who want to know more about our setup (although this blueprint needs some love and is currently lagging behind)
- other things?

#12 Updated by intrigeri about 1 year ago

  • Target version changed from Tails_3.8 to Tails_3.9

#13 Updated by emmapeel about 1 year ago

I suggest to enlist the help of the Italian translator's team, as they are planning to start using weblate now so they could test the docs with a fresh mind.

#14 Updated by intrigeri about 1 year ago

  • Target version changed from Tails_3.9 to Tails_3.10.1

#15 Updated by intrigeri 11 months ago

  • Target version changed from Tails_3.10.1 to Tails_3.11

#16 Updated by CyrilBrulebois 9 months ago

  • Target version changed from Tails_3.11 to Tails_3.12

#17 Updated by anonym 8 months ago

  • Target version changed from Tails_3.12 to Tails_3.13

#18 Updated by u 7 months ago

  • Status changed from Confirmed to In Progress

#19 Updated by u 7 months ago

  • Assignee changed from drebs to u
  • QA Check set to Ready for QA

#20 Updated by u 6 months ago

  • Assignee changed from u to drebs
  • QA Check deleted (Ready for QA)

@drebs: thanks for your work! I did an initial review & provided feedback and a branch by email to you today. I'll let you implement the missing bits whenever you see fits. hefee and intrigeri will have a sprint at the end of June, so you can work on it whenever you want. But as there is not much left to be done, I'm also happy if we can close this chapter sooner :)

#21 Updated by CyrilBrulebois 6 months ago

  • Target version changed from Tails_3.13 to Tails_3.14

#22 Updated by CyrilBrulebois 4 months ago

  • Target version changed from Tails_3.14 to Tails_3.15

#23 Updated by intrigeri 2 months ago

  • Description updated (diff)

#24 Updated by hefee 2 months ago

  • Affected tool set to Translation Platform

#25 Updated by drebs 2 months ago

Some notes to add to the doc from a meeting held in 2019-07-05:

  • Available languages:
    • Languages that show up in main website are called "in production".
    • More languages than the ones in production may be available in Weblate.
    • All languages available in Weblate can be seen in the staging website.
  • Suggestions and reviews:
    • Suggestions are strings that were translated but have not been accepted/reviewed yet.
    • Suggestions are only visible through Weblate interface.
    • All accepted/reviewed strings are shown in the staging website.
  • Becoming a reviewer:
    • Like in Transifex, one has to request becoming a reviewer.
    • This request needs to be done through the l10n list (not through Weblate interface).
    • Then an admin verifies that some amount of work was done by the requesting translator,
      before they accept their request.
  • Adding a new language:
    • The activation of a new language in Weblate has to be requested through the l10n list.
    • The new language is not activated in production from beginning.
    • The rule for a new language to be activated in production is the same as for Git workflow: translation of 25% of core pages.
    • The activation of a new language in production also has to be requested through the l10n list.

#26 Updated by intrigeri 2 months ago

  • Suggestions and reviews:
    • Suggestions are strings that were translated but have not been accepted/reviewed yet.
    • Suggestions are only visible through Weblate interface.
    • All accepted/reviewed strings are shown in the staging website.

I'm confused about this part, for two reasons:

  • our code that generates the staging website has explicit steps to gather suggestions, which suggests (no pun intended) that suggestions are shown on the staging website;
  • one reason why we need a staging website, IMO, is to help reviewers see what proposed strings look like, before they review/validate/accept them and they make it to our live production website. If, on the opposite, the staging website only shows accepted/reviewed strings, then that's perhaps useful for non-production languages (for another round of review after accepting a string, maybe?) but not for production languages (chances are that our production website will have the update before the staging one).

If I misunderstood something, I'd love to stand corrected :)

#27 Updated by u 2 months ago

intrigeri wrote:

  • Suggestions and reviews:
    • Suggestions are strings that were translated but have not been accepted/reviewed yet.
    • Suggestions are only visible through Weblate interface.
    • All accepted/reviewed strings are shown in the staging website.

@drebs: as said by intrigeri, this is not correct. We have a script which fetches suggestions from Weblate and generates the staging website using translations and suggestions so that translators can see them :)

#28 Updated by CyrilBrulebois 2 months ago

  • Target version changed from Tails_3.15 to Tails_3.16

#29 Updated by drebs 2 months ago

u wrote:

intrigeri wrote:

  • Suggestions and reviews:
    • Suggestions are strings that were translated but have not been accepted/reviewed yet.
    • Suggestions are only visible through Weblate interface.
    • All accepted/reviewed strings are shown in the staging website.

@drebs: as said by intrigeri, this is not correct. We have a script which fetches suggestions from Weblate and generates the staging website using translations and suggestions so that translators can see them :)

OK, I wasn't aware, thanks for bringing attention to this.

If there is more than one suggestion to a string, how does the script select which of them will show up in the staging website?

#30 Updated by intrigeri 2 months ago

(I'm not familiar with the corresponding code but I'll try to answer this so that hefee can breath a bit :)

If there is more than one suggestion to a string, how does the script select which of them will show up in the staging website?

Good question! You're amazingly good at spotting corner cases — I'm impressed!

The code is in https://git.tails.boum.org/puppet-tails/tree/files/weblate/scripts/save-suggestions.py:

for unit in translation.unit_set.all():
if unit.suggestions:
s = list(unit.suggestions)[-1]
logger.debug("found suggestion for %s", unit)
 # weblate/trans/models/translations.py: update_units
src = unit.get_source_plurals()[0]
add = False

pounit, add = translation.store.find_unit(unit.context, src)

 # Bail out if we have not found anything
if pounit is None or pounit.is_obsolete():
logger.warning('message %s disappeared!', unit)
continue

pounit.set_target(s.target)     # update po file with first suggestion

The comment says "first suggestion" but the code does s = list(unit.suggestions)[-1]. I've tried to follow this in the Weblate code base and gave up, but the call to list() suggests that unit.suggestions is a dict, a set, or another unordered object, that we turn into a list (which is probably not deterministic wrt. ordering) and pick the last item.

So my guess would be that the answer to your question is: randomly.

#31 Updated by drebs 2 months ago

If i found it right and suggestions are ordered by date desc, then maybe the use of list() is only a quick way to access the last item of an arbitrary iterable, and then the comment is right and the script is picking the first (oldest) suggestion.

We are discussing this elsewhere, but I want to leave a note here that we should take into account the number of votes (highest) and the timestamp (newest?) when choosing which suggestion to render in the staging wiki.

#32 Updated by u 2 months ago

drebs wrote:

If i found it right and suggestions are ordered by date desc, then maybe the use of list() is only a quick way to access the last item of an arbitrary iterable, and then the comment is right and the script is picking the first (oldest) suggestion.

We are discussing this elsewhere, but I want to leave a note here that we should take into account the number of votes (highest) and the timestamp (newest?) when choosing which suggestion to render in the staging wiki.

@drebs: I like the suggestion of choosing the one with the highest number of votes and the newest. I propose we ask @hefee to improve this whenever they think it's possible.

#33 Updated by u 2 months ago

Sent doc review by email. Soon ready for merging! Yay :)

#34 Updated by intrigeri about 2 months ago

u wrote:

@drebs: I like the suggestion of choosing the one with the highest number of votes and the newest. I propose we ask @hefee to improve this whenever they think it's possible.

Recorded on #16932 :)

#35 Updated by CyrilBrulebois 14 days ago

  • Target version changed from Tails_3.16 to Tails_3.17

#36 Updated by intrigeri 6 days ago

  • Target version changed from Tails_3.17 to Tails_4.0

#37 Updated by u 5 days ago

@drebs: I think the platform is now quite stable and it would be a good moment to reverify the documentation and finalize it. Let me know if you still have the review email or if you want me to send it again :)

#38 Updated by u 5 days ago

  • Blocks Bug #16899: Public call for translations added

Also available in: Atom PDF