Feature #11763

Adjust contributors documentation for translators

Added by Anonymous 2016-09-03 04:33:29 . Updated 2019-09-30 13:17:22 .

Status:
Resolved
Priority:
Normal
Assignee:
drebs
Category:
Internationalization
Target version:
Start date:
2018-06-11
Due date:
% Done:

100%

Feature Branch:
Type of work:
Contributors documentation
Blueprint:

Starter:
Affected tool:
Translation Platform
Deliverable for:
309

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:


Subtasks


Related issues

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

History

#1 Updated by mercedes508 2016-09-04 05:52:02

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

#2 Updated by intrigeri 2016-09-10 05:08:08

  • Category changed from Internationalization to Infrastructure

(i18n is not l10n)

#3 Updated by intrigeri 2016-09-10 05:09:00

  • 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 Anonymous 2017-06-30 11:34:07

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

#5 Updated by Anonymous 2017-12-19 16:20:25

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

#6 Updated by Anonymous 2017-12-19 17:09:25

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

#8 Updated by Anonymous 2017-12-19 17:12:12

  • Description updated

#9 Updated by emmapeel 2018-02-09 13:57:56

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 Anonymous 2018-03-02 10:25:20

  • 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 Anonymous 2018-06-12 14:35:24

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 2018-06-26 16:27:49

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

#13 Updated by emmapeel 2018-06-27 09:13:15

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 2018-09-05 16:26:50

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

#15 Updated by intrigeri 2018-10-24 17:03:35

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

#16 Updated by CyrilBrulebois 2018-12-16 14:11:06

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

#17 Updated by anonym 2019-01-30 11:59:13

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

#18 Updated by Anonymous 2019-02-07 14:43:27

  • Status changed from Confirmed to In Progress

#19 Updated by Anonymous 2019-03-01 18:11:59

  • Assignee deleted (drebs)
  • QA Check set to Ready for QA

#20 Updated by Anonymous 2019-03-20 12:40:49

  • Assignee set 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 2019-03-20 14:35:09

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

#22 Updated by CyrilBrulebois 2019-05-23 21:23:20

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

#23 Updated by intrigeri 2019-07-05 14:32:49

  • Description updated

#24 Updated by hefee 2019-07-05 15:08:36

  • Affected tool set to Translation Platform

#25 Updated by drebs 2019-07-06 12:48:02

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 2019-07-06 14:24:27

> * 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 Anonymous 2019-07-08 09:53:05

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 2019-07-10 10:33:56

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

#29 Updated by drebs 2019-07-15 13:57:47

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 2019-07-15 14:36:38

(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 2019-07-15 18:08:15

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 Anonymous 2019-07-19 11:21:41

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 Anonymous 2019-07-19 17:13:50

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

#34 Updated by intrigeri 2019-08-01 12:47:31

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 Feature #16932 :)

#35 Updated by CyrilBrulebois 2019-09-05 00:05:27

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

#36 Updated by intrigeri 2019-09-12 14:25:08

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

#37 Updated by Anonymous 2019-09-13 09:24:08

@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 Anonymous 2019-09-13 09:43:15

  • blocks Bug #16899: Public call for translations added

#39 Updated by Anonymous 2019-09-26 13:10:54

In the doc I see “how to get in contact when they experience technical problems
” → this should now go to translate-tails@boum.org which is the admin list for the platform.

pub   rsa4096/0x8D9F6B0A628D9B11 2019-07-25 [SC]
      Key fingerprint = F63E 5590 7746 5C5A 1768  32CC 8D9F 6B0A 628D 9B11
uid                   [ unknown] tails-translations@boum.org <tails-translations@boum.org>

#40 Updated by Anonymous 2019-09-26 13:14:32

u wrote:
> In the doc I see “how to get in contact when they experience technical problems
> ” → this should now go to translate-tails@boum.org which is the admin list for the platform.
>
> […]

I published the key on keys.openpgp.org.

#41 Updated by Anonymous 2019-09-27 18:50:53

  • Status changed from In Progress to Resolved

We followed up over email, and I merged the documentation. Thank you! :)

#42 Updated by intrigeri 2019-09-30 13:17:22

> We followed up over email, and I merged the documentation. Thank you! :)

Congrats!!!