yesodweb/hamlet — Issue #40: shakespeare-i18n tool
Author: stepcut
Created: 2012-02-06 22:37:00+00:00
State: open

Other wish-list ideas:

1. a little tool that would warn about missing translations.

2. when creating a new translation, you can not just copy the default .msg
file. The .msg file contains type annotations that do not belong in the
other translation files

3. it would be nice if the translation files supported comments so that the
original translations could be shown in the translation files for the
translators to reference instead of having to look in two different files

4. a tool that would mark when translations changed in the master file

So, I guess this could all be handled by the same tool. You do do something
like:

$ i18n generate en.msg jbo.msg

And it would create a new jbo.msg translation file that looked like:

-- HelloThere: Hello there!
HelloThere: Hello there!
-- Goodbye: Goodbye
Goodbye: Goodbye

Then a translator could change the messages. (Or leave them the same. For
example, many lines in en-gb.msg might be the same as en.msg).

$ i18n check-missing en.msg jbo.msg

would show constructors that had been added to en.msg but not jbo.msg.

$ i18n update en.msg jbo.msg

would:

a) add missing constructors to jbo.msg
b) mark any translations that had changed

For example, if en.msg changed 'Hello there' to 'Howdy partner' then the
jbo.msg might be updated to:

-- OLD: HelloThere: Hello there!
-- NEW: HelloThere: Howdy partner!
HelloThere: Hello there
-- Goodbye: Goodbye
Goodbye: Goodbye

And the translator can decide if the translation needs to be updated.

Without that information, I think it is pretty hard for translators to know
what to update.. and since the changes could have legal implications, you
don't really want them lost.. Relying on smart tools like git seems overly
optimistic. In my experience, you want to be able to send a single editable
text document with all the information the translator needs and hope they
they manage to edit and send it back with out screwing up the utf-8
encoding. (And then when you get tired of them screwing up the encoding, you
build a website for it so they can just edit it in the browser).