As documented at http://developer.mozilla.org/en/docs/XUL_Tutorial:Property_Files , string bundles are the normal method for holding translatable text from Javascript files in XULRunner applications. The staff client currently does not use string bundles; it currently uses a mix of hardcoded strings, with reliance on some of the strings that are converted from lang.dtd into the massive hash that is lang.js.
This patch hopes to start changing that, by introducing string bundles for a few small parts of the staff client -- hopefully paving the way for conversion of more of the client to stringbundles and i18n glory. 1) We create one .properties file per chrome/content/ subdirectory that we're converting to string bundles, plus a common.properties file for common strings like error messages. In this patch, I address the chrome/content/admin/ and chrome/content/cat/ directories; therefore, I add: * Open-ILS/xul/staff_client/chrome/locale/en-US/admin.properties * Open-ILS/xul/staff_client/chrome/locale/en-US/cat.properties * Open-ILS/xul/staff_client/chrome/locale/en-US/common.properties 2) Note that the files are being added to a directory that does not currently exist in the Subversion repository. It doesn't make sense to serve the properties files remotely from the web/locale/en-US/ directory, as their real home is the chrome. So that's where I've stuck them. Accordingly, the xul/staff_client/Makefile has been modified to no longer make this directory. 3) chrome/content/cat/opac.xul has been converted to a fully i18n-ized file, by adding XML entities to web/opac/locale/en-US/lang.dtd and converting hardcoded strings in the Javascript to stringbundle calls that pull in the properties defined in cat.properties and common.properties. 4) chrome/content/admin/survey* have also been given the entity & stringbundle treatment. I have tested the opac and survey screens in the client and nothing seems to be going wrong, so I'm taking that as a good sign :) Jason -- If you have any questions wading through the set of patches I've fired in your direction, feel free to ask! Developer's Certificate of Origin 1.1 Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it; and (d) In the case of each of (a), (b), or (c), I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license indicated in the file. -- Dan Scott Laurentian University
props.patch
Description: Binary data
