Translators: change in website translation workflow #1725
Replies: 4 comments 13 replies
-
This sounds really good, thanks for moving this forward! :) Possible additional advantages:
Possible disadvantage:
Note: I assume we'd still need two branches though -- one which resembles what's live on the website (current |
Beta Was this translation helpful? Give feedback.
-
If anyone wants to try out the use of po4a for the website documentation and translation I've created a branch here. The readme in the wiki folder explains a bit about how it would be used. To test it locally (Linux only I'm afraid), clone the branch and install po4a via your distro's package manager or compile the latest version from the po4a GitHub repo. Have a go at editing EN .md files and running the scripts, editing .po files and generating the target .md files... and see if it works as expected. I am VERY amateur at this scripting business and I'm sure things can be done more efficiently, so feel free to make suggestions. |
Beta Was this translation helpful? Give feedback.
-
If the worflow is simpler, safer, powerfull ... then we should go for it ! |
Beta Was this translation helpful? Give feedback.
-
Just ran your scripts locally and I'm impressed. It needs rethinking since it's a totally different process, but probably it's worth it. I haven't done much with OmegaT, after having it set up, but it seems to be a very powerful program - and certainly needs some work for newbies ;-). Could you please document somewhere that your scripts need rename and po4a (of course)? In future this process should be automated with GH-Actions (e.g. run scripts on each commit). I think we need to remove the en- prefix for all files and should move the translator-files folder into the root directory. This might avoid people editing the content in wiki/lang* manually since they don't look into these folders. |
Beta Was this translation helpful? Give feedback.
-
@jamulussoftware/translators:
As those of you who have translated website documentation know, for the last couple of releases we've been using a system whereby several branches (changes, translate, release) exist to keep track of changes and bundle them together in a single PR for translators, who then (if not starting from scratch) have to trawl through the documentation in their language to locate and edit the relevant parts. While functional, this system is not ideal as the existence of several branches that have to interact with each other in a certain way tends to lead to confusion, and the translation process itself is far from optimal as it involves spending a lot of time just locating where changes have happened.
Jamulus team member @hoffie recently brought the po4a tool to our attention to see if it might help with the translation workflow. I've been looking into it and it looks like it could be feasible to use it to make the translation and documentation maintenance process (IMHO) simpler and more user-friendly. The transition involves converting existing translations into the .po format, a fairly tedious process that is nonetheless almost complete. These .po files would be what translators would work with from now on.
PO files contain the original text separated into strings (segments), along with the translation (if it exists) for each segment. There are several editors you can use, such as poedit, Lokalize or my preferred tool, OmegaT. The process is similar to what you get with QtLinguist, for those of you who have done Jamulus app translations. So basically, instead of waiting for the PR with all the changes to the original docs and directly editing .md files, translators simply have to work on the .po files for their language. Whenever a change is made to an original document in English, a script is run that propagates those changes to all the .po files, which will then show them as untranslated strings. Once all strings have been translated, you submit the .po file(s) via a PR and once merged, another script converts them back into the translated version of the .md file, ready to be used for the website. These scripts do not have to be run by the translator; hopefully it will be possible to run them via a GH action, or in the worst case, a team member can run them.
In short, the workflow would be as follows.
For translators:
For website content maintainers:
*Could be run via a GH action
I've been setting up the scripts and directory structure to make the transition, and by next week I hope to set up a branch to test the waters, but before doing the switch we thought it'd be good to see what others might have to say. Does anyone see any drawbacks, have a negative experience of such a workflow? Do you have any suggestions or experience using po4a? I'm completely new to it and while I think I can cobble together a functional setup, any help, criticism or suggestions are more than welcome!
Beta Was this translation helpful? Give feedback.
All reactions