Improve translatability
Many tools exist that may help make translating strings in Mifos more approachable.
- 1 Goals
- 2 Pootle Launch
- 2.1 TODOs
- 3 Background Research
- 3.1 Findings
- 3.2 Off-the-shelf software
- 3.2.1 Pootle
- 3.2.2 JasperBabylon
- 3.2.3 Transifex
- 3.2.4 Rosetta (hosted by launchpad)
- 3.2.5 Open Language Tools
- 3.2.6 Okapi Framework
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/frcreate 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.propertiesas 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
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)
web-based
Pros
TBD
Cons
Open Language Tools
client-side
Pros
Nice GUI interface for translating
cross-platform
FLOSS
Cons
cannot export to Java .properties files
Okapi Framework
client-side
Pros
TBD
Cons
TBD