D
danielmcbrearty
Hi perl people
I have a site which is multilingual in nature (www.engoi.com). It is
written in perl. I did not have too much experience in l10n and
accompanying issues when I wrote it, so I made a home cooked system,
which until now is working tolerably well.
Since then, of course, I've discovered some of the riches available in
CPAN, and read some writings on the subjects by people like Audrey Tang
and Sean Burke, which has given me much food for thought.
I must say that the issues they have touched on haven't given me too
much problems so far (for instance, pluralities) - at least not as far
as my users or translators have told me. This might be because my site
is relatively simple, and I tried to keep the texts simple, and fixed
as much as possible.
The issue that DOES trouble me more is one that is not mentioned in any
writing or module doc I have come across: change management. As I am on
the verge of a major site redesign, I am looking at how to make this
happen seamlessly. Please bear with me.
Let's say I define a text string as part of a new feature: "Please
click the button", which is duly translated by my willing volunteers,
and works it's way into the production database at some point (ALL
translatable text is in the database used by the site).
Let's say that at some future date, due to feedback from my users, I
want to change it to "Please click the button (please do not click
twice)".
Now, what I want to happen is that the existing translations in each
language continue to be used until the translator gets around to
updating. Furthermore, I want the translators to be automatically
notified (by a weekly report or such) that the old translation needs is
out of date.
I can easily achieve this by some restructuring of the database to
include timestamps. I have a clear mental picture of how to do it.
Let's also consider that the original text was misspelt. I now want to
correct it without triggering an "out of date" condition for the text.
I can do all of this by making actions called "update" and "correct"
available to teh site author (me). I think it would be a really neat
system.
Please bear in mind that we are talking about a system where
translation happens entirely online (this is currently the case, the
timestamping is a future add-on). Translators can immediately see a
test version of the site containing their words as they work. This has
the benefit of letting them see their work in context early in the
process.
Much as I admire the intellect and writings of the experts in the
field, and would like to make use of the great modules they offer, as
most of what is there seems to be based on po/mo files (a system
originally designed for offline use, and requiring recompilation steps
before translated content is actually available for use), this just
doesn't fit.
Maybe it's possible to get around this by using ties to a database, but
it seems likely to add complexity to a system which right now has the
virtue of simplicity.
So, I have to weigh up the benefits of using existing specialist
modules : the main one seems to be software support for difficult cases
like the famed "5 files in 14 folders were found" in Russian. It's
great to have that, but it hasn't actually been a major problem. The
best approcah I've found has been to use alternative wordings - maybe
"Folders searched : 14 Files found : 5". Not as elegant or grammatical,
but clear, readable and it does the job - with simplicity.
The other nice feature mentioned is inheritance of languages - my
mexican spanish translation could inherit from castillian spanish. This
is great and really useful - but I also suspect I can find simple ways
of doing it (it's essentially making the "gettranslation' method know
how to get defaults in a sensible order).
I feel that I might be missing major parts of the argument, but having
spent quite some time reading, I don't see what. I also don't see
existing solutions addressing my practical concerns in any clear way.
Apologies for the long post, but if anyone can shine a light in the
dark, I'd be very grateful.
thanks
Daniel
I have a site which is multilingual in nature (www.engoi.com). It is
written in perl. I did not have too much experience in l10n and
accompanying issues when I wrote it, so I made a home cooked system,
which until now is working tolerably well.
Since then, of course, I've discovered some of the riches available in
CPAN, and read some writings on the subjects by people like Audrey Tang
and Sean Burke, which has given me much food for thought.
I must say that the issues they have touched on haven't given me too
much problems so far (for instance, pluralities) - at least not as far
as my users or translators have told me. This might be because my site
is relatively simple, and I tried to keep the texts simple, and fixed
as much as possible.
The issue that DOES trouble me more is one that is not mentioned in any
writing or module doc I have come across: change management. As I am on
the verge of a major site redesign, I am looking at how to make this
happen seamlessly. Please bear with me.
Let's say I define a text string as part of a new feature: "Please
click the button", which is duly translated by my willing volunteers,
and works it's way into the production database at some point (ALL
translatable text is in the database used by the site).
Let's say that at some future date, due to feedback from my users, I
want to change it to "Please click the button (please do not click
twice)".
Now, what I want to happen is that the existing translations in each
language continue to be used until the translator gets around to
updating. Furthermore, I want the translators to be automatically
notified (by a weekly report or such) that the old translation needs is
out of date.
I can easily achieve this by some restructuring of the database to
include timestamps. I have a clear mental picture of how to do it.
Let's also consider that the original text was misspelt. I now want to
correct it without triggering an "out of date" condition for the text.
I can do all of this by making actions called "update" and "correct"
available to teh site author (me). I think it would be a really neat
system.
Please bear in mind that we are talking about a system where
translation happens entirely online (this is currently the case, the
timestamping is a future add-on). Translators can immediately see a
test version of the site containing their words as they work. This has
the benefit of letting them see their work in context early in the
process.
Much as I admire the intellect and writings of the experts in the
field, and would like to make use of the great modules they offer, as
most of what is there seems to be based on po/mo files (a system
originally designed for offline use, and requiring recompilation steps
before translated content is actually available for use), this just
doesn't fit.
Maybe it's possible to get around this by using ties to a database, but
it seems likely to add complexity to a system which right now has the
virtue of simplicity.
So, I have to weigh up the benefits of using existing specialist
modules : the main one seems to be software support for difficult cases
like the famed "5 files in 14 folders were found" in Russian. It's
great to have that, but it hasn't actually been a major problem. The
best approcah I've found has been to use alternative wordings - maybe
"Folders searched : 14 Files found : 5". Not as elegant or grammatical,
but clear, readable and it does the job - with simplicity.
The other nice feature mentioned is inheritance of languages - my
mexican spanish translation could inherit from castillian spanish. This
is great and really useful - but I also suspect I can find simple ways
of doing it (it's essentially making the "gettranslation' method know
how to get defaults in a sensible order).
I feel that I might be missing major parts of the argument, but having
spent quite some time reading, I don't see what. I also don't see
existing solutions addressing my practical concerns in any clear way.
Apologies for the long post, but if anyone can shine a light in the
dark, I'd be very grateful.
thanks
Daniel