Forum .LRN Q&A: Translating dotLRN on my own machine, synching with main tree.

Hi all,

I'm the sole translator (so far) for the Brazilian Portuguese language. To this point I've translated 700 of the 1700 dotLRN messages.

I want to contiune translation of dotLRN in my own machine, for 2 reasons: 1) I don't want to be dependent on network access to access Collaboraid's translation server (which is terrific), 2) I need to setup a Brazilian Portuguese demo of dotLRN.

So my question is what's the best way for me to do that? How would I synch my newly translate messages to CVS?

On that note, Peter, could you please commit all the pt_BR messages on the translation server so I can continue translation from there?

Another question I have is that when I click on a caledar item it gives me an error:

no such key: pt_BR,formbuilder_time_format
    while executing
"nsv_get locale "[ad_conn locale],$key""

Is that missing translations? Where do I translate those?

TIA, Roberto.


I think that's one of the keys in the localization-data-init.tcl. See the December 16th addition on the front page of transltaion server.

At some point there came a couple of new keys to that file.

thanks for all the translations!

Concerning the error message you are getting Jarkko is correct in his comment. Unfortunately there is no web interface for editing these parameters yet.

I will commit the catalog files later this week (keep reminding me if I forget...).

Concerning syncing different catalog files for the same locale and package we have no support for that and it would have to be done manually. If somebody starts translating portugese on the translation server in parallel to your efforts you have a bit of a problem, at the very least you would probably want to coordinate closely with them.

Jarkko, thanks for the tip. I will keeep myself better informed.

Peter, I won't be translating in parallel with anyone. I am the sole pt_BR translator and I'm pretty sure that if portuguese-speaking person shows up around here willing to translate, I would know.

What I want to know is how do I translate on my machine and later give the translated message back to the main tree.



Just to add some more information, I've helped translate PostgreSQL and other projects, and my work was made easier by the availability of a non-connected translation.

On PostgreSQL's case, I just download the .po files from Peter Eisentreut's page, translate it, then send it back to him after checking them with GNU Gettext (I used kbabel for that, which really simplifies things).


Jarkko, Peter,

I added the pt_BR messages to acs-lang/tcl/localization-data-init.tcl (and sent the file to peter) but that file never seems to be parsed.

I put a couple ns_log statements there and they never get shown. I looked for params I might be missing under acs-lang and acs-kernel but couldn't find anything.

Am I missing something?


ARGH, I'm sorry. Disregard my last post. It was the result of re-using a .tcl aolserver config file and forgetting to change the server entry 😊


Quick question...

I translated a couple hundred more messages today, on my own server. I'm curious to find out where they are going.

I thought the keys were entered in the lang_message_keys table, and the translation for the key in the .xml file under the catalog directory for the package.

However, I have some messages that I just don't know where they are. They are translated, I can see them as translated under the /acs-lang/admin/ interface, but no .xml file for pt_BR under catalog. I have identified this with the dotlrn-fs package, but I'm not sure if that's happenning with others.

Also, one of the messages has been translated (where to, I don't know) but on the portlet it's showing as untranslated. Why?

Thanks for helping me understand the process.


Roberto, you can export your translations to .xml files by visiting the package manager, then a package's info page, and  clicking the "Internationalization" link there.
Ahh, I see. Thanks Bjorn.

I did that to dotlrn-fs, and it indeed created the .xml file. However, after restarting the server, it still won't show the message.

I tried deleting all the message keys for that package in the lang_message_keys table, then restarting the server so it'd grab the new keys, but the key doesn't show up back in lang_message_keys.

Do I need to select "Import from the .xml file"?


P.S.: Is this documented somewhere so I can stop asking silly questions?

directly from my memory - here is how it works. When you translate in the translation UI (or in translator mode) the new message is inserted to the database (lang_messages) and the cache is updated. The lookup procedure (lang::message::lookup or _ for short) only ever accesses the cache (you can update the whole cache manually with lang::message::cache but this shouldn't ever be necessary).

New messages aren't written automatically to the catalog files. As pointed out in this thread you currently need to do that package by package with a link called something like "export messages to file". Clearly what we need here is the ability to export all messages in the db to the catalog files. I have a page on the translation server that does that and all the page contains is:

foreach package_key [apm_enabled_packages] {
        lang::catalog::export_package_to_files $package_key

The only doc we have so far is i18n.xml in acs-core-docs and that document is not exactly complete. Converting adp:s to using the message catalog is fairly well documented inline in the APM UI though.