Difference between revisions of "Improve Localization Process"
From GnuCash
m (→Web Based Translation Tools: typo) |
(→Implementation Thoughts: (new)) |
||
Line 27: | Line 27: | ||
[[Category:Translation]] | [[Category:Translation]] | ||
[[Category:Development]] | [[Category:Development]] | ||
+ | |||
+ | ==Implementation Thoughts== | ||
+ | We had some discussion. | ||
+ | |||
+ | ===Weblate=== | ||
+ | From https://lists.gnucash.org/logs/2020/10/15.html#T15:09:05 - 19:38:30; https://lists.gnucash.org/logs/2020/10/16.html#T07:59:20 - 12:02:34 | ||
+ | |||
+ | In theory you can run your own weblate instance or have a hosted project at weblate.org, which is is free for FOSS. [[User:Fell]] thinks the hosted form could attract new translators and has less administrative overhead. | ||
+ | |||
+ | ;Server Relation: Ideally code as primary git server should push changes to weblate.org. Weblate.org again should create PRs on github, which we then merge after review. | ||
+ | |||
+ | ;Determinating string changes: Before committing changes to C, scm, … source files generate a gnucash.pot. Or we change the policy and add it to the repo. | ||
+ | :# After the commit create a tmp.pot. | ||
+ | :# Create a diff between both pot files and grep it for ^msgid. | ||
+ | :# If found, | ||
+ | :## move tmp.pot to gnucash.pot | ||
+ | :## merge it into the po files | ||
+ | :## commit po files locally | ||
+ | :## push po files plus pot file to weblate | ||
+ | :## Cleanup (remove gnucash.pot). | ||
+ | |||
+ | ;Easier is the glossary: | ||
+ | :If gnc-glossary.txt changes, | ||
+ | :#run txt-to-pot.sh | ||
+ | :#msgmerge it in all po files | ||
+ | :#commit and push | ||
+ | |||
+ | ;Problem: [[Gitolite]] hooks can not commit. | ||
+ | :So an alternative could be to implement it in the normal make check: | ||
+ | ::If a ^msgid diff is found, fail with the instruction to commit the changed po[t] files. |
Revision as of 19:36, 17 October 2020
Purpose of this page is to collect ideas to improve the Localization process of the several GnuCash components.
Contents
Motivation
It is often heard by translators, it is so hard to get a recent pot file for the one or other Gnucash component. This is the right place to sketch and evaluate ideas to improve the process.
Web Based Translation Tools
Several services for translation coordination exist:
- FOSS
-
- GlotPress
- a site using the wordpress plugin, PHP based
- Pootle
- for localization of applications' GUIs using, uses Translate Toolkit
- translatewiki.net
- uses mediawiki Extension:Translate
- Weblate
- (suggested by Pedro (pt_PT)), uses Translate Toolkit
- Zanata
- site CLI, REST-API, java/js based
- Proprietary
-
- Crowdin
- integrations, for FOSS free
- POEditor
- free for FOSS
- Transifex
- GSM, SaaS, for FOSS free
- and several more
- Checklist
- VCS integration? GitHub vs. GitLab should not be an issue
- Are they free? (Both meanings)
Toolkits
Implementation Thoughts
We had some discussion.
Weblate
From https://lists.gnucash.org/logs/2020/10/15.html#T15:09:05 - 19:38:30; https://lists.gnucash.org/logs/2020/10/16.html#T07:59:20 - 12:02:34
In theory you can run your own weblate instance or have a hosted project at weblate.org, which is is free for FOSS. User:Fell thinks the hosted form could attract new translators and has less administrative overhead.
- Server Relation
- Ideally code as primary git server should push changes to weblate.org. Weblate.org again should create PRs on github, which we then merge after review.
- Determinating string changes
- Before committing changes to C, scm, … source files generate a gnucash.pot. Or we change the policy and add it to the repo.
- After the commit create a tmp.pot.
- Create a diff between both pot files and grep it for ^msgid.
- If found,
- move tmp.pot to gnucash.pot
- merge it into the po files
- commit po files locally
- push po files plus pot file to weblate
- Cleanup (remove gnucash.pot).
- Easier is the glossary
- If gnc-glossary.txt changes,
- run txt-to-pot.sh
- msgmerge it in all po files
- commit and push
- Problem
- Gitolite hooks can not commit.
- So an alternative could be to implement it in the normal make check:
- If a ^msgid diff is found, fail with the instruction to commit the changed po[t] files.