Added GPL licence
This commit is contained in:
parent
c52655a2ea
commit
b7792ebbaa
|
@ -3,6 +3,15 @@
|
|||
# $Lam: lam/po/Makefile,v 1.5 2002/04/16 12:38:24 jan Exp $
|
||||
# This file was copyied from the horde-project, www.horde.org
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
APPLICATION = lam
|
||||
MSGFMT = msgfmt --statistics -c -v -o
|
||||
|
|
191
lam/po/README
191
lam/po/README
|
@ -1,191 +0,0 @@
|
|||
$Horde: horde/po/README,v 1.11 2002/03/24 13:35:14 jan Exp $
|
||||
|
||||
Horde Translation Guide
|
||||
Copyright 2000-2002 Joris Braakman <jbraakman@yahoo.com>
|
||||
Copyright 2001-2002 Chuck Hagenbuch <chuck@horde.org>
|
||||
Copyright 2001-2002 Jan Schneider <jan@horde.org>
|
||||
|
||||
Contents
|
||||
========
|
||||
- GNU gettext, PHP and Horde
|
||||
- Starting a new translation
|
||||
- Example messages header
|
||||
- Updating a existing translation
|
||||
- Debugging
|
||||
- Solaris
|
||||
- Changing the English standard texts
|
||||
|
||||
|
||||
GNU gettext, PHP and Horde
|
||||
--------------------------
|
||||
|
||||
Horde uses GNU gettext for internationalization (i18n) and localization
|
||||
(l10n). The manual at http://www.gnu.org/manual/gettext/index.html is
|
||||
biased against C and using Emacs. This is more for Horde.
|
||||
|
||||
There is a good explanation for PHP and gettext at:
|
||||
http://www.faqts.com/knowledge-base/view.phtml/aid/2953/fid/422
|
||||
|
||||
People seem to like learning from examples better, so I have used
|
||||
dutch (nl_NL) as an example everywhere.
|
||||
|
||||
|
||||
Starting a new translation
|
||||
--------------------------
|
||||
|
||||
- run xgettext.sh (in this directory - horde/po/), this generates a
|
||||
messages.po file.
|
||||
- rename it to the language you are translating to, e.g. nl_NL.po
|
||||
- adjust the header of nl_NL.po, then remove the #, fuzzy line.
|
||||
Emacs has support for .po files, but I used vi
|
||||
- translate, the time consuming part.
|
||||
- convert the nl_NL.po to horde.mo and put the file in place:
|
||||
$ make install
|
||||
Compiling locale nl_NL:
|
||||
261 translated messages, 21 untranslated messages.
|
||||
... done
|
||||
|
||||
- modify the horde/config/lang.php to use nl_NL as the default language, if you
|
||||
wish.
|
||||
- Make sure your language exists in the horde/config/lang.php file. Also, if
|
||||
the translation uses a character set that isn't ascii, make sure the
|
||||
appropriate charset is defined in $nls['charsets']. You should also define
|
||||
an alias for the language because some browsers only send a two letter code
|
||||
in their Accept-Charset header.
|
||||
|
||||
And then it works.
|
||||
|
||||
|
||||
Example messages header
|
||||
-----------------------
|
||||
# Dutch translation for Horde.
|
||||
# Joris Braakman <jbraakman@yahoo.com>, 2000.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Horde 2.3\n"
|
||||
"POT-Creation-Date: 2000-08-14 10:30+0200\n"
|
||||
"PO-Revision-Date: 2000-08-14 17:17+02:00\n"
|
||||
"Last-Translator: Joris Braakman <jbraakman@yahoo.com>\n"
|
||||
"Language-Team: Dutch <dev@lists.horde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
|
||||
|
||||
Updating a existing translation
|
||||
-------------------------------
|
||||
As soon as you check out a new version you have to check the translations
|
||||
again, messages might have been changed after all. If you don't, you
|
||||
can get strange effects. Information is cached every where so as a no
|
||||
brain solutions I sometimes also restart the webbrowser and webserver
|
||||
to make sure everything is fresh. msgmerge will mark translations that
|
||||
have changed a bit to fuzzy.
|
||||
|
||||
If you want to update an existing translation and contribute it to the Horde
|
||||
project you should first contact the last translator to see if he is still
|
||||
working on it, doesn't have time to further maintain it or is even unreachable.
|
||||
|
||||
- run xgettext.sh again, this generates a messages.po file.
|
||||
- merge it with the old .po file:
|
||||
$ msgmerge nl_NL.po messages.po > nl_NL-new.po
|
||||
|
||||
- translate/update the strings that are new or have become fuzzy.
|
||||
- delete the '#, fuzzy' lines.
|
||||
- move the nl_NL-new.po to nl_NL.po
|
||||
- put the new translations in effect
|
||||
$ make install
|
||||
Compiling locale nl_NL:
|
||||
261 translated messages, 21 untranslated messages.
|
||||
... done
|
||||
|
||||
|
||||
Debugging
|
||||
---------
|
||||
Is this locale (nl_NL) installed at all?
|
||||
$ locale -a
|
||||
should list all locales installed on your system.
|
||||
|
||||
On Debian not all locales may be enabled by default. Edit /etc/locale.gen and
|
||||
run locale-gen if you changed the list of enabled locales.
|
||||
|
||||
Do you have any .mo files? Usually in /usr/share/locale/
|
||||
e.g. /usr/share/locale/nl/LC_MESSAGES/tar.mo
|
||||
|
||||
Does gettext even work?
|
||||
Get a string to translate,
|
||||
$ strings /bin/tar | grep Memory
|
||||
Memory exhausted
|
||||
$ (LANG=nl_NL; LANGUAGE=nl_NL; LC_MESSAGES=nl_NL; gettext tar "Memory exhausted" )
|
||||
Geheugen uitgeput
|
||||
|
||||
Does the local Horde file work?
|
||||
Assuming that you have put the translated Horde file in
|
||||
/data/www/horde/locale/nl_NL/LC_MESSAGES/horde.mo
|
||||
$ export TEXTDOMAINDIR=/data/www/horde/locale
|
||||
$ (LANG=nl_NL; LANGUAGE=nl_NL; LC_MESSAGES=nl_NL; gettext horde "Message" )
|
||||
Bericht
|
||||
|
||||
Create a file in the horde directory, langtest.php:
|
||||
<?php
|
||||
setlocale(LC_MESSAGES, 'nl_NL');
|
||||
putenv('LANG=nl_NL');
|
||||
putenv('LANGUAGE=nl_NL');
|
||||
// use the tar test.
|
||||
echo dgettext('tar', 'Memory exhausted');
|
||||
echo '<br />';
|
||||
|
||||
// Specify location of translation tables
|
||||
bindtextdomain('horde', './locale');
|
||||
|
||||
// Choose domain
|
||||
textdomain('horde');
|
||||
|
||||
// Print the already tested message
|
||||
echo _("Message");
|
||||
echo '<br />';
|
||||
|
||||
// this should print the same.
|
||||
echo dgettext('horde', 'Message');
|
||||
|
||||
?>
|
||||
|
||||
OUTPUT web browser:
|
||||
Geheugen uitgeput
|
||||
Bericht
|
||||
Bericht
|
||||
|
||||
|
||||
Solaris
|
||||
-------
|
||||
Since the .mo files are binary, they are platform specific. You
|
||||
have to rerun make in all po directories.
|
||||
|
||||
You have not installed the Supplementary Partial Locales (SUNWploc1) if
|
||||
you get:
|
||||
$ LANG=nl_NL
|
||||
couldn't set locale correctly
|
||||
|
||||
This is what it should say.
|
||||
$ pkginfo | grep ploc
|
||||
system SUNWploc Partial Locales
|
||||
system SUNWploc1 Supplementary Partial Locales
|
||||
|
||||
The stuff is installed in /usr/lib/locale
|
||||
$ ls /usr/lib/locale/nl
|
||||
LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME nl.so.1
|
||||
|
||||
We assume that the Solaris gettext implementation is installed when we compile
|
||||
the translations. Thus the make process will fail if the installed gettext is
|
||||
from GNU. If anyone knows how to determine if the installed gettext is from
|
||||
Solaris or GNU on Solaris systems, please send us a note.
|
||||
|
||||
|
||||
Changing the English standard texts
|
||||
-----------------------------------
|
||||
You can also use gettext to change some of the English texts to your own taste.
|
||||
|
||||
- Create a message.po file as described in "Starting a new translation"
|
||||
- Edit the msgstr entry of the strings you want to change. You can leave all
|
||||
other msgstr entries empty.
|
||||
- Run "make install"
|
|
@ -1,5 +1,15 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# $Horde: horde/po/extract.pl,v 1.6 2001/09/14 20:03:33 jon Exp $
|
||||
#
|
||||
# Perl script to extract strings from all the files and print
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright (C) 2001 Ignat Ikryanov <iignat@newmail.ru>
|
||||
#
|
||||
|
||||
use strict;
|
||||
my @INtext;
|
||||
|
||||
open (text, "ru_RU.po") || die "$!";
|
||||
open (text1,">ru_RU.KOI8-R.po") || die "$!";
|
||||
|
||||
@INtext=<text>;
|
||||
close(text);
|
||||
|
||||
foreach(@INtext)
|
||||
{
|
||||
tr/면坼劉帳票寤浹顥涉尊陰艶<E999B0>琶麟潗愁㉸爐脚稿妹합樸龐일近愷펀裳緊훽保<ED9BBD>/J촹愾曠百珉尙墓죗碌箝鷺螺答<EFBFBD>輓윰儒蓄蘖晤犧<EFBFBD>殮投倧睛隘劃<EFBFBD>樟初循/;
|
||||
s/CP1251/KOI8-R/;
|
||||
|
||||
# You can alternatively use the following lines to change the conversion direction.
|
||||
# tr/J촹愾曠百珉尙墓죗碌箝鷺螺答<EFA491>輓윰儒蓄蘖晤犧<E699A4>殮投倧睛隘劃<E99A98>樟初循/면坼劉帳票寤浹顥涉尊陰艶<E999B0>琶麟潗愁㉸爐脚稿妹합樸龐일近愷펀裳緊훽保<ED9BBD>/;
|
||||
|
||||
print text1;
|
||||
}
|
||||
close (text1);
|
Loading…
Reference in New Issue