Improve translatability
Many tools exist that may help make translating strings in Mifos more approachable.
Goals
- reports on which strings have not yet been translated into which locales
- allows for a community review process of strings that have been translated
- exports properties files whenever we need them
Pootle Launch
We've decided to move forward with Pootle as the online translation tool.
TODOs
- (DONE) added the "mifospootle" user on java.net as a Developer to the Mifos project (so commits of .po files can be performed by that user via Pootle). There is a UI for maintaining project roles at java.net.
- (DONE) create locale-specific working copies for Pootle. For example (as root on birch):
sudo -u pootle svn co \ https://mifos.dev.java.net/svn/mifos/trunk/mifos/src/org/mifos/config/localizedResources/fr \ /var/lib/pootle/gazelle/fr
- create working copy for overriding default translations via Pootle. For example (as root on birch):
sudo -u pootle svn co \ https://mifos.dev.java.net/svn/mifos/trunk/mifos/src/org/mifos/config/localizedResources/en_US \ /var/lib/pootle/gazelle/en_US
- (DONE for French) convert *_LOCALE.properties to LOCALE/BUNDLENAME_LOCALE.po
- remove *_LOCALE.properties (see issue 2302) ...may need to move locale-specific bundles used only in testing to test/ dir
- (DONE) resolve issue 2144 once the online translation tool is "hard-launched", e.g.: in use by community members
- secure online translation tool Web UI with SSL
- (DONE) integrate generation of locale-specific Java .properties using create_props.sh into build
- migrate conversion scripts to Java
- (DONE) autogenerate pseudolocale translations - *_is_IS.properties
- (DONE) proper DNS record for birch
- (DONE) test roundtrip of strings from SVN -> Pootle -> SVN
- (DONE) soft-launch within team, get feedback
- (DONE) a community showcase (Dimdim meeting or whatever)
- (DONE) contributor agreement (see ContributorAgreement)
- (DONE) documentation
- OnlineTranslationHOWTO
- PMOnlineTranslationHOWTO
- AdminOnlineTranslationHOWTO
- (DONE) commit locale_sync.sh, create_props.sh, and update_defaults.sh to trunk
Background Research
Notes done during research prior to selecting Pootle for the online translation tool follows.
Findings
- CAT tools for .po files are abundant and mature, CAT tools for Java .properties files are not
- Translate Toolkit's prop2po only works on UTF8-encoded .properties files, but .properties files must be latin1 encoded. Early experiments of manually reencoding
RolesAndPermission_fr.properties
as UTF-8 using Vim (:set fileencoding=utf8
) successfully produces a file that prop2po can read. - prop2po actually produces .pot files, not .po files. These are what Pootle needs to get started with new languages.
- The GNU gettext utilities "msgcat" program seems to discard any non-ascii characters (like é). This was found when trying
msgcat -P RolesAndPermission_fr.properties
Off-the-shelf software
Enumerate and evaluate computer-assisted translation tools here.
Pootle
- http://translate.sourceforge.net
- web-based
Pros
- TBD
Cons
- no direct support for Java .properties files (must use prop2po and po2prop from Translate Toolkit)
JasperBabylon
- http://jasperforge.org/index.php?option=com_wrapper&Itemid=283
- web-based
Pros
- works with Java .properties files
Cons
- TBD
Transifex
Pros
- TBD
Cons
- only works with gettext .po files
Rosetta (hosted by launchpad)
- https://translations.launchpad.net/
- web-based
Pros
- TBD
Cons
Open Language Tools
- https://open-language-tools.dev.java.net/
- client-side
Pros
- Nice GUI interface for translating
- cross-platform
- FLOSS
Cons
- cannot export to Java .properties files
Okapi Framework
- http://okapi.sourceforge.net
- client-side
Pros
- TBD
Cons
- TBD