[OPEN-ILS-DEV] opac and lang DTDs in trunk

Dan Scott denials at gmail.com
Thu Apr 3 10:39:58 EDT 2008


On a recent commit (http://svn.open-ils.org/trac/ILS/changeset/9206),
Jason added DTDs to the en-CA lang.dtd with the commit message:

"fill in the missing entities between these two lang.dtd files. Will
the POTS stuff do this for us Dan?"

The answer is: Yes.

Here's how things work / will work for the release process (which I
need to add to http://open-ils.org/dokuwiki/doku.php?id=evergreen-admin:customizations:i18n):

1. Developers add, modify, or delete strings from the en-US versions
of the DTD and properties files in trunk.

2. The build/i18n/ scripts pull all of the translatable strings from
the *.dtd / *.properties files (and others) into POT files that
contain the translatable strings in GNU gettext format. To generate
the POT files, from the build/i18n directory run:

make newpot

3. When we're getting ready to cut a release, the build/i18n scripts
update existing or generate new PO files that contain the translations
for the strings in GNU gettext format. For example, to update the PO
files for the en-CA locale, from the build/i18n directory run:

make LOCALE=en-CA updatepo

4. Translators update the PO files for their locale.

5. The build/i18n scripts generate the locale-specific versions of the
DTD and properties files (and others) in the appropriate locations in
the source tree*. If a translation has not been provided for a given
string, the English version is automatically substituted in the
generated file. Everything outside of the build/ directory becomes our
release candidate. For example, to generate the built files for the
en-CA locale, from the build/i18n directory run:

make LOCALE=en-CA newproject

6. We test the release candidate (including sanity checking for
translated locales).

7. If #6 is good, we package up the release candidate (sans build/
directory) and release it.

* Right now the project files are generated only in the
build/i18n/locale/<locale>/ directory; we need to add an install
target for the Makefile to actually populate the files in the right
locations.

** Also, I noticed that duplicate filenames (like
server/locale/en-US/circ.properties and
chrome/locale/en-US/circ.properties) cause problems with the current
approach; I either need to make the build process smarter or change
the names of those files.

*** Once we update the PO files in the build/i18n/ directory for our
supported locales, we should delete the *.dtd files from trunk for any
non-en-US locales.

**** We'll want to talk about string freezes to try to avoid too much
churn in the translations, and release schedules that will give
translators time to catch up with changes depending on the x.y.z.ç
release.

-- 
Dan Scott
Laurentian University


More information about the Open-ils-dev mailing list