freeipa/.gitignore
John Dennis e2a3907726 Replace broken i18n shell test with Python test
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
2012-03-26 20:29:26 -04:00

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