[Zope-CMF] How to translate CMF, first summary

Robert Rottermann robert@redcor.ch
Sat, 30 Jun 2001 14:57:24 +0200


Zopistas dieser Welt, seid gegrüsst
bzw. noch internationaler
Hoi zäme
(which is Swiss German)

Paragraphs in this post:

Summary
What I learned translating CMF
What is missing
Conclusion and whish list
How to get the German translation

Summary (with a bias)
---------
I would like to give a short summary on my request for comment re
translating CMF to non English languages.
I did get quite a number of answers. Most of them talking about the merits
of the divers tools existing in the community.

There were also some statements regarding the advantage of translating
sentences versus translating screens. The main argument was that translating
sentences helps to avoid translating the same sentence more than once.
My points against this reasoning (stemming from my experience with preparing
the translation of many non Zope programs) is that not so many sentences are
repeated.
What is repeated heavily are single words like 'private' or 'download'. Or
quasy words like 'Please enter an ID'.
Here an automatic translation makes sense.
However such a translation has its difficulties. For instance in German
adverbs change slightly according to their declination (something an English
speaker hardly is used to). EG the word 'private' translates to 'privat' or
to 'privaten' or 'privatem' according to its usage. Not using the correct
declination makes for clumsy reading. Luckily it is often possible to alter
the wording of a sentence to improve the quality of the translation without
changing its meaning. Since a sentence often only exists in the perception
of the user when she looks at the rendered screen but not in the HTML-code
itself such a screen probably must be translated as a whole.

A lesson learned from the doomed translation of former Zope versions is that
it is impossible to have Zope translated. It is just a target that is moving
to quickly to be able to keep in sync.

Next to that I believe such a translation would be just plain wrong. We do
not need a translated Zope, we need translated products.
And since we can not expect that every webmaster potentially willing to use
Zope is proficient enough with English to dare to use a "Monster" she has
difficulties to understand we need good books and Howtos in many languages.

Why do we need translated products? It is what the "end user" sees. That
means we need CMF and Blark and co translated but other products just adding
to the Zope core functionality can remain untranslated to the end of the
universe (and back of course).

What I learned translating CMF to German
-------------------------------------------
We (my company) are starting to use CMF as a tool for our customers. We
therefore have to translate it (to German an French).
We have done that (only German) and have been trying to do it in a way that
helps with adaptation to further developement.

This is what we learned:

English artefacts showing up on the users screen stem from divers sources:

- DTML which is skinable.
    These we copied to new directories and did translate them as a whole.
- DTML which is not skinable (in CMFCore) we left untranslated (yet)
- Toolbox-entries and status-info
    We added a python script in one of the skin directories (content_int)
named menuTranslator.py which is in fact a dictionary doing the translation.
Utterly primitive, can be adapted at will.
- portal_types descriptions
    created a python script to translate them (translateMessage.py)
- hardcoded strings like the content of a members index_html
    have not yet done anything with it
- Error messages
    very many messages

What is missing
---------------
My experience with translating software shows that is critically important
to automate the flow of bug fixes to all languages.
I do not have an answer yet to this problem. I will try to pack all
languages into one single file and provide tools to unpack the English
original and diff it against an update. We will see how viable that is when
CMF 1.2 hits the streets.

Conclusion:
------------
Next to the DTML-translation very few adaptations have to be made to the CMF
core to take out most of the pain translating it to languages spoken by
people like you and me (provided you live in Switzerland or nearby).
I implore the CMF team to adapt the CMF source with the easy changes I
outlined above. This would allow to maintain translated versions of CMF
which not only would help many Zope aficionado but could build the base for
Howtos and other supporting material for non English speaker.


How to get the German translation
-----------------------------------
Since the German translation is yet a moving target in itself I have put it
onto one of our servers from where you can get the most actual version (if
such a thing exists at all)
server:         suse1.aemmenet.ch
user:            IloveZope
password:    Ireallydo
cvs -d :pserver:IloveZope@suse1.aemmenet.ch:/home/redman login
password: Ireallydo
cvs -d :pserver:IloveZope@suse1.aemmenet.ch:/home/redman co CMF_int

if you do not like to commit yourself yet you can substitute both user and
password with anonymous.

If somebody likes to have update access to the repository just tell me.

Robert