You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kdiff3/po
Timothy Pearson e9bf6fab2d
Rename a number of libraries and executables to avoid conflicts with KDE4
12 years ago
..
Makefile.am Added abandoned KDE3 version of kdiff3 15 years ago
README Additional renaming of kde to tde 13 years ago
ar.po Added abandoned KDE3 version of kdiff3 15 years ago
az.po Added abandoned KDE3 version of kdiff3 15 years ago
bg.po Added abandoned KDE3 version of kdiff3 15 years ago
br.po Added abandoned KDE3 version of kdiff3 15 years ago
ca.po Added abandoned KDE3 version of kdiff3 15 years ago
createqm Additional renaming of kde to tde 13 years ago
cs.po Added abandoned KDE3 version of kdiff3 15 years ago
cvsgetpo Additional renaming of kde to tde 13 years ago
cy.po Added abandoned KDE3 version of kdiff3 15 years ago
da.po Added abandoned KDE3 version of kdiff3 15 years ago
de.po Additional renaming of kde to tde 13 years ago
el.po Added abandoned KDE3 version of kdiff3 15 years ago
en_GB.po Added abandoned KDE3 version of kdiff3 15 years ago
es.po Added abandoned KDE3 version of kdiff3 15 years ago
et.po Added abandoned KDE3 version of kdiff3 15 years ago
fr.po Added abandoned KDE3 version of kdiff3 15 years ago
ga.po Added abandoned KDE3 version of kdiff3 15 years ago
gl.po Added abandoned KDE3 version of kdiff3 15 years ago
hi.po Added abandoned KDE3 version of kdiff3 15 years ago
hu.po Added abandoned KDE3 version of kdiff3 15 years ago
is.po Added abandoned KDE3 version of kdiff3 15 years ago
it.po Additional renaming of kde to tde 13 years ago
ja.po Added abandoned KDE3 version of kdiff3 15 years ago
ka.po Added abandoned KDE3 version of kdiff3 15 years ago
kdiff3.pot Added abandoned KDE3 version of kdiff3 15 years ago
lt.po Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago
nb.po Added abandoned KDE3 version of kdiff3 15 years ago
nl.po Additional renaming of kde to tde 13 years ago
pl.po Additional renaming of kde to tde 13 years ago
pt.po Additional renaming of kde to tde 13 years ago
pt_BR.po Additional renaming of kde to tde 13 years ago
ro.po Added abandoned KDE3 version of kdiff3 15 years ago
ru.po Added abandoned KDE3 version of kdiff3 15 years ago
rw.po Added abandoned KDE3 version of kdiff3 15 years ago
sk.po Added abandoned KDE3 version of kdiff3 15 years ago
sr.po Added abandoned KDE3 version of kdiff3 15 years ago
sr@Latn.po Added abandoned KDE3 version of kdiff3 15 years ago
sv.po Added abandoned KDE3 version of kdiff3 15 years ago
ta.po Added abandoned KDE3 version of kdiff3 15 years ago
tg.po Added abandoned KDE3 version of kdiff3 15 years ago
tr.po Added abandoned KDE3 version of kdiff3 15 years ago
uk.po Added abandoned KDE3 version of kdiff3 15 years ago
zh_CN.po Added abandoned KDE3 version of kdiff3 15 years ago

README

README for KDiff3-Internationalisation (i18n)
=============================================
Author: Joachim Eibl 2004

This text is for you, if you might want to help translating KDiff3 or just want 
to learn how this i18n-thing works.

grep "Language-Team" *.po

az     Azerbaijani <translation-team-az@lists.sourceforge.net>     
ca     LANGUAGE <LL@li.org>     
da     Danish <dansk@klid.dk>     
de     Deutsch <tde-i18n-de@kde.org>     
en_GB  British English <kde-en-gb@kde.me.uk>     
es     espaniol <kde-es@kybs.de>     
et     Estonian <kde-et@linux.ee>     
fr     French <kde-francophone@kde.org>     
hu     Hungarian <kde-lista@sophia.jpte.hu>     
it     Italian <tde-i18n-it@kde.org>     
nl     Nederlands <tde-i18n-nl@kde.org>     
pl     Polish     
pt_BR  Brazilian Portuguese <tde-i18n-pt_BR@mail.kde.org>     
pt     Portuguese <tde-i18n-pt@kde.org>     
ro     Romanian <ro-kde@egroups.com>     
ru     Russian <ru@li.org>     
sr     Serbian
sv     Svenska <sv@li.org>     
ta      <tamilpc@ambalam.com>     
tr     Türkçe <tr@li.org>     
zh_CN  zh_CN <i18n-translation@lists.linux.net.cn>     


Thanks to all translators!


The program was written with English as main language. But to allow automatic
translation of messages, every translatable text in the program was written as 
i18n("translatable").

i18n() is a translator-function. If a translation table exists, at runtime the 
function looks for the given string in that table and returns the translation.

The translation-table is created in 3 steps:
1. First a template-translation table kdiff3.pot should be created: Usually via
   xgettext --keyword=i18n --keyword=I18N_NOOP -C -o ../po/kdiff3.pot *.cpp *.h 
   
   It contains all translatable strings of the program, but no translations.
   (xgettext is usually part of package gettext-devel)
   
2. Translators create a translation for a specific language. Because we don't want 
   to modify the template now, we'll create a copy for each language.
   e.g.: cp kdiff3.pot de.po
   Using KBabel we can comfortably edit the translated strings.
   e.g.: kbabel de.po
   
3. The last step is to create a fast lookup-table (*.gmo) from the po-file via 
   msgfmt, but this happens automatically during the build process.
   (If a new po-file was added: make -f Makefile.cvs; configure; make)

Before starting to translate make sure nobody else is already doing it. It would 
be a pity, if your precious time is wasted. Look at http://i18n.kde.org/, send a 
message to the translation team coordinator for your language, and tell them that  
you want to translate KDiff3. He'll inform you if you should proceed. Also read
the other docs on that site.

============
   
The following is for my own memory and for those who really want to learn dirty tricks and details:
   
The KDE-i18n team stores their results in SVN. But I would like to have an independent 
copy of all translations in the po-directory of the source package. Actually it's just
copying and renaming, but simplified with these commands:


First fetch all available translations from the SVN-repository (access via websvn and wget)
   wget http://websvn.kde.org/*checkout*/trunk/l10n/subdirs
   for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n/$i/messages/extragear-utils/kdiff3.po -O $i.po; done
   
   
This was the explanation for translations within KDE. 
But KDiff3 can also be compiled and run without KDE:

Since Qt was used for KDiff3, the first part is quite the same: Only the fast lookup-table 
(*.qm-files) must be created with $QTDIR/bin/msg2qm (instead of msgfmt). ($QTDIR/tools/msg2qm)

Still one detail isn't right: Some strings are not translated, because under KDE their 
translation is within KDE-libs or within Qt. But the translations are available:

For Qt-strings in $QTDIR/translations (already as .qm-files)

For KDE-libs in the SVN-repository, where we can reuse the previous trick to get 
all tdelibs*.po-files:

   for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n/$i/messages/tdelibs/tdelibs.po -O tdelibs_$i.po; done
   
Finally the program must only read the correct translation tables:

   QTranslator kdiff3Translator( 0 );
   kdiff3Translator.load( QString("kdiff3_")+QTextCodec::locale(), translationDir );
   app.installTranslator( &kdiff3Translator );
   
   QTranslator qtTranslator( 0 );
   qtTranslator.load( QString("qt_")+QTextCodec::locale(), translationDir );
   app.installTranslator( &qtTranslator );
   
   QTranslator tdelibsTranslator( 0 );
   tdelibsTranslator.load( QString("tdelibs_")+QTextCodec::locale(), translationDir );
   app.installTranslator( &tdelibsTranslator );

This should do the job, if the translation-tables can be found. 
The difficult part is: Where to search for the files, because this depends on 
where the program was installed. (I didn't solve this puzzle yet.)

Because it's too much effort to copy all tdelibs*.po-files along: Here is a little info
about how to extract only the needed strings and to create the qm-files.

1. Only src/kreplacements/kreplacements.cpp contains strings, that were not covered by 
   the normal translations. Hence a special pot-file is needed.
   xgettext --keyword=i18n --keyword=I18N_NOOP -C ../src/kreplacements/kreplacements.cpp -o kreplacements.pot
   (xgettext is usually part of package gettext-devel)
   
2. Take only needed strings and translations from tdelibs*.po:
   msgmerge --no-fuzzy-matching tdelibs_de.po kreplacements.pot >kreplacements_de.po

3. Concatenate the normal de.po and kreplacements_de.po:
   msgcat --use-first de.po kreplacements_de.po >kdiff3_de.po

4. Finally create the fast lookup table:
   $QTDIR/bin/msg2qm kdiff3_de.po kdiff3_de.qm

5. The intermediate files can then be deleted.

The script createqm does steps 2-5 for languages where a kdiff3.po-translation exists.