mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 07:33:27 -06:00
e2a3907726
We had been using shell scripts and sed to test our translations. But trying to edit pot and po files with sed is nearly impossible because the file format can vary significantly and the sed editing was failing and gettext tools were complaining about our test strategy. We had been using a Python script (test_i18n.py) to perform the actual test after using shell, sed, and gettext tools to create the files. There is a Python library (polib) which can read/write/edit pot/po/mo files (used internally by Transifex, our translation portal). The strategy now is to do everything in Python (in test_i18n.py). This is easier, more robust and allows us to do more things. * add python-polib to BuildRequires * Remove the logic for creating the test lang from Makefile.in and replace it with calls to test_i18n.py * add argument parsing, usage, configuration parameters, etc. to test_i18n.py to make it easier to use and configurable. * add function to generate a test po and mo file. It also writes the files and creates the test directory structure. * Took the existing validate code and refactored it into validation function. It used to just pick one string and test it, now it iterates over all strings and all plural forms. * Validate anonymous Python format substitutions in pot file * added support for plural forms. * Add pot po file validation for variable substitution * In install/po subdir you can now do: $ make test $ make validate-pot $ make validate-po * The options for running test_i18n.py are: $ ./test_i18n.py --help Usage: test_i18n.py --test-gettext test_i18n.py --create-test test_i18n.py --validate-pot [pot_file1, ...] test_i18n.py --validate-po po_file1 [po_file2, ...] Options: -h, --help show this help message and exit -s, --show-strings show the offending string when an error is detected --pedantic be aggressive when validating -v, --verbose be informative --traceback print the traceback when an exception occurs Operational Mode: You must select one these modes to run in -g, --test-gettext create the test translation file(s) and exercise them -c, --create-test create the test translation file(s) -P, --validate-pot validate pot file(s) -p, --validate-po validate po file(s) Run Time Parameters: These may be used to modify the run time defaults --test-lang=TEST_LANG test po file uses this as it's basename (default=test) --lang=LANG lang used for locale, MUST be a valid lang (default=xh_ZA) --domain=DOMAIN translation domain used during test (default=ipa) --locale=LOCALE locale used during test (default=test_locale) --pot-file=POT_FILE default pot file, used when validating pot file or generating test po and mo files (default=ipa.pot) https://fedorahosted.org/freeipa/ticket/2044
78 lines
1.3 KiB
Plaintext
78 lines
1.3 KiB
Plaintext
configure
|
|
config.h
|
|
config.h.in
|
|
Makefile
|
|
Makefile.in
|
|
.deps/
|
|
.libs/
|
|
*.la
|
|
*.lo
|
|
*.o
|
|
*.pyc
|
|
.bzr
|
|
freeipa2-dev-doc
|
|
build
|
|
dist/
|
|
RELEASE
|
|
daemons/AUTHORS
|
|
daemons/COPYING
|
|
daemons/ChangeLog
|
|
daemons/INSTALL
|
|
daemons/NEWS
|
|
daemons/README
|
|
daemons/aclocal.m4
|
|
daemons/autom4te.cache/
|
|
daemons/config.guess
|
|
daemons/config.log
|
|
daemons/config.status
|
|
daemons/config.sub
|
|
daemons/depcomp
|
|
daemons/install-sh
|
|
daemons/ipa-version.h
|
|
daemons/libtool
|
|
daemons/ltmain.sh
|
|
daemons/missing
|
|
daemons/stamp-h1
|
|
install/AUTHORS
|
|
install/COPYING
|
|
install/ChangeLog
|
|
install/INSTALL
|
|
install/NEWS
|
|
install/README
|
|
install/aclocal.m4
|
|
install/autom4te.cache/
|
|
install/config.log
|
|
install/config.status
|
|
install/install-sh
|
|
install/missing
|
|
install/stamp-h1
|
|
install/po/test.po
|
|
install/po/test_locale/xh_ZA/LC_MESSAGES/ipa.mo
|
|
install/ui/test/results
|
|
ipa-client/COPYING
|
|
ipa-client/ChangeLog
|
|
ipa-client/INSTALL
|
|
ipa-client/aclocal.m4
|
|
ipa-client/autom4te.cache/
|
|
ipa-client/config.guess
|
|
ipa-client/config.log
|
|
ipa-client/config.status
|
|
ipa-client/config.sub
|
|
ipa-client/depcomp
|
|
ipa-client/install-sh
|
|
ipa-client/ipa-client.spec
|
|
ipa-client/ipa-getkeytab
|
|
ipa-client/ipa-join
|
|
ipa-client/ipa-rmkeytab
|
|
ipa-client/libtool
|
|
ipa-client/ltmain.sh
|
|
ipa-client/missing
|
|
ipa-client/py-compile
|
|
ipa-client/stamp-h1
|
|
ipa-client/version.m4
|
|
freeipa.spec
|
|
ipapython/setup.py
|
|
ipapython/version.py
|
|
version.m4
|
|
ipapython/services.py
|