Language Administration

From GnuCash
Revision as of 20:35, 10 February 2021 by Fell (talk | contribs) (Moving a Language Between Translation Projects)
Jump to: navigation, search

This page lists often used commands, sorted by components. Collected from several places in Translation.

Intro

As we get translations from several resources, we run basic checks before committing! Fix them or report them to the LAST TRANSLATOR, if possible.

In theory each time a user visible message changes, a new pot file should be created and merged into all po files. Sometimes new po files are requested.

Notes on command components
LANG=C
serves to get the messages in english to forward them to the translator.
$LOCALE
replace it by the desired locale.

Components

Glossary

The glossary defines the terminology used in all components.

Check
# 1 file:
msgfmt -c --statistics po/glossary/$LOCALE.po
# OR all files:
for i in po/glossary/*.po; do echo -n "$i:"; LANG=C msgfmt -c --statistics $i ; done
Update
# 1. make pot:
po/glossary/txt-to-pot.sh po/glossary/gnc-glossary.txt > po/glossary/gnc-glossary.pot
# 2. update glossaries:
for i in po/glossary/*.po; do echo -n "$i:"; LANG=C msgmerge --previous -U $i po/glossary/gnc-glossary.pot ; done
New language
cd po/glossary/
# 1. make pot:
./txt-to-pot.sh gnc-glossary.txt > gnc-glossary.pot
# 2. add a new glossary:
msginit --no-translator -l $LOCALE
# DON'T FORGET: add it to CMakeLists.txt
cd ../..

Program

Assumption
Usage of ninja. If you are using make replace ninja by make.
Check
# 1 file:
LANG=C msgfmt -c --check-accelerators="_" --statistics po/$LOCALE.po
# OR all files:
for i in po/*.po; do echo -n "$i:"; LANG=C msgfmt -c --check-accelerators="_" --statistics $i ; done
Errors caused by --check-accelerators="_"
should be reported to the translator only,
Other errors
should be fixed. At least set the fuzzy flag to inform the translator.
Update
# 1. make pot:
ninja pot
# 2. update po files:
for i in po/*.po; do echo -n "$i:"; LANG=C msgmerge --previous -U $i $BUILDDIR/po/gnucash.pot ; done
New language
# 1. make pot: (tut's das?)
$BUILDDIR/ninja pot
# 2. add a new glossary:
cd po/
msginit --no-translator -i $BUILDDIR/po/gnucash.pot -l $LOCALE
# DON'T FORGET: add it to CMakeLists.txt
cd ..

Website

Moving a Language Between Translation Projects

From TP to weblate
  1. Ask the Last Translator, cc the language coordinator
If there is no response after a week
  1. Ask Benno to mark the language as external. The result can be seen in Translation Project: The gnucash textual domain;
  2. in po/CMakeLists.txt move it from TP_LINGUAS to GC_LINGUAS
  3. verify, the po content is recent, else msgmerge a fresh pot.
  4. in weblate:GnuCash/Program/Einstellungen remove it from the filter.