Forum OpenACS Development: Rules for internationalization

Collapse
Posted by Malte Sussdorff on
Dear developers,

to further help the internationalization process of OpenACS and .LRN please adhere to the following, hopefully simple rules:

1) Internationalize your own package on your own.

2) If you are unable to comply with rule #1, follow the rest of the rules *more closely*

3) Do not put punctation marks inside your text. Use "<b>Subject</b>:" instead of "<b>Subject:</b>".

4) Keep in mind that other languages behave differently. Therefore if you use parametrized variables like "@room@", add a multiple version to the parameters as well like "@rooms@". Do not assume that all languages can get the multiple by adding an "s" to your variable like this "@room@s".

5) Refrain from using words that should be translated in .tcl files (more work in translation).

6) Don't even think about putting user visible information in .xql files like "select 'My name is' | user_name from users" (not sure if this even works .... 😊 ).

Thanks for listening. If there are more rules to follow, please don't refrain from posting them here, so we can add them to our documentation on how to internationlize a package and on "good OpenACS development".

Collapse
Posted by Malte Sussdorff on
I stumbled across some places, where a formerly internationlized version was overwritten with a non internationalized one.

PLEASE DON'T DO THIS !!!

Can you imagine how confusing it is for universities if they are used to a German or Spanish term and suddenly they only have the English one after an upgrade? And I'm not only talking about the user but also about the system administrator that upgraded using the repository or cvs update, but is not a developer.

Collapse
Posted by Malte Sussdorff on
Once you have i18ned a package or made changes to the language catalogue, here are the steps you need to do to get this into CVS, without breaking other sites that update.
  1. Upgrade the version number of the package in the .info file (e.g. dotlrn.info)
  2. Upgrade the version number of acs-lang or other packages that your i18n package depends on, if you added strings there (e.g. I added formbuilder-date-format).
  3. Add acs-lang (or other package) with the latest version in the requires section of the .info file (e.g. now dotlrn-2.1b2 requires acs-lang-5.1.2d1).
  4. Import all messages from the catalog files for the above packages.
  5. Do the upgrade on your local site.
  6. Export all messages to catalog files for the packages.
  7. cvs commit.