Revision 7940
trunk/install/launcher/izpack-launcher-1.3/src/extraerClaves.bat | ||
---|---|---|
1 |
@echo off |
|
2 |
color F0 |
|
3 |
PROMPT=$g |
|
4 |
|
|
5 |
echo Extraemos las calves de los ficheros cpp... |
|
6 |
gettext\bin\xgettext -C -n -k_ -o launcher.pot launcher.cpp statusdialog.cpp |
|
7 |
|
|
8 |
echo Fusionando con Idioma da... |
|
9 |
IF NOT EXIST da\launcher.po copy launcher.pot da\launcher.po |
|
10 |
gettext\bin\msgmerge.exe da\launcher.po launcher.pot -o da\launcher.po |
|
11 |
|
|
12 |
echo Fusionando con Idioma de... |
|
13 |
IF NOT EXIST de\launcher.po copy launcher.pot de\launcher.po |
|
14 |
gettext\bin\msgmerge.exe de\launcher.po launcher.pot -o de\launcher.po |
|
15 |
|
|
16 |
echo Fusionando con Idioma es... |
|
17 |
IF NOT EXIST es\launcher.po copy launcher.pot es\launcher.po |
|
18 |
gettext\bin\msgmerge.exe es\launcher.po launcher.pot -o es\launcher.po |
|
19 |
|
|
20 |
echo Fusionando con Idioma fr... |
|
21 |
IF NOT EXIST fr\launcher.po copy launcher.pot fr\launcher.po |
|
22 |
gettext\bin\msgmerge.exe fr\launcher.po launcher.pot -o fr\launcher.po |
|
23 |
|
|
24 |
echo Fusionando con Idioma it... |
|
25 |
IF NOT EXIST it\launcher.po copy launcher.pot it\launcher.po |
|
26 |
gettext\bin\msgmerge.exe it\launcher.po launcher.pot -o it\launcher.po |
|
27 |
|
|
28 |
echo Fusionando con Idioma nl... |
|
29 |
IF NOT EXIST nl\launcher.po copy launcher.pot nl\launcher.po |
|
30 |
gettext\bin\msgmerge.exe nl\launcher.po launcher.pot -o nl\launcher.po |
|
31 |
|
|
32 |
echo Fusionando con Idioma pt-BR... |
|
33 |
IF NOT EXIST pt-BR\launcher.po copy launcher.pot pt-BR\launcher.po |
|
34 |
gettext\bin\msgmerge.exe pt-BR\launcher.po launcher.pot -o pt-BR\launcher.po |
|
35 |
|
|
36 |
echo Termiando. |
|
0 | 37 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/libasprintf/autosprintf.html | ||
---|---|---|
1 |
<HTML> |
|
2 |
<HEAD> |
|
3 |
<!-- This HTML file has been created by texi2html 1.52a |
|
4 |
from autosprintf.texi on 12 June 2003 --> |
|
5 |
|
|
6 |
<TITLE>GNU autosprintf</TITLE> |
|
7 |
</HEAD> |
|
8 |
<BODY> |
|
9 |
<H1>GNU autosprintf, version 1.0</H1> |
|
10 |
<H2>Formatted Output to Strings in C++</H2> |
|
11 |
<ADDRESS>Bruno Haible</ADDRESS> |
|
12 |
<P> |
|
13 |
<P><HR><P> |
|
14 |
<H1>Table of Contents</H1> |
|
15 |
<UL> |
|
16 |
<LI><A NAME="TOC1" HREF="autosprintf.html#SEC1">1 Introduction</A> |
|
17 |
<LI><A NAME="TOC2" HREF="autosprintf.html#SEC2">2 The <CODE>autosprintf</CODE> class</A> |
|
18 |
<LI><A NAME="TOC3" HREF="autosprintf.html#SEC3">3 Using <CODE>autosprintf</CODE> in own programs</A> |
|
19 |
</UL> |
|
20 |
<P><HR><P> |
|
21 |
|
|
22 |
|
|
23 |
<H1><A NAME="SEC1" HREF="autosprintf.html#TOC1">1 Introduction</A></H1> |
|
24 |
|
|
25 |
<P> |
|
26 |
This package makes the C formatted output routines (<CODE>fprintf</CODE> et al.) |
|
27 |
usable in C++ programs, for use with the <CODE><string></CODE> strings and the |
|
28 |
<CODE><iostream></CODE> streams. |
|
29 |
|
|
30 |
</P> |
|
31 |
<P> |
|
32 |
It allows to write code like |
|
33 |
|
|
34 |
</P> |
|
35 |
|
|
36 |
<PRE> |
|
37 |
cerr << autosprintf ("syntax error in %s:%d: %s", filename, line, errstring); |
|
38 |
</PRE> |
|
39 |
|
|
40 |
<P> |
|
41 |
instead of |
|
42 |
|
|
43 |
</P> |
|
44 |
|
|
45 |
<PRE> |
|
46 |
cerr << "syntax error in " << filename << ":" << line << ": " << errstring; |
|
47 |
</PRE> |
|
48 |
|
|
49 |
<P> |
|
50 |
The benefits of the autosprintf syntax are: |
|
51 |
|
|
52 |
</P> |
|
53 |
|
|
54 |
<UL> |
|
55 |
<LI> |
|
56 |
|
|
57 |
It reuses the standard POSIX printf facility. Easy migration from C to C++. |
|
58 |
|
|
59 |
<LI> |
|
60 |
|
|
61 |
English sentences are kept together. |
|
62 |
|
|
63 |
<LI> |
|
64 |
|
|
65 |
It makes internationalization possible. Internationalization requires format |
|
66 |
strings, because in some cases the translator needs to change the order of a |
|
67 |
sentence, and more generally it is easier for the translator to work with a |
|
68 |
single string for a sentence than with multiple string pieces. |
|
69 |
|
|
70 |
<LI> |
|
71 |
|
|
72 |
It reduces the risk of programming errors due to forgotten state in the |
|
73 |
output stream (e.g. <CODE>cout << hex;</CODE> not followed by <CODE>cout << dec;</CODE>). |
|
74 |
</UL> |
|
75 |
|
|
76 |
|
|
77 |
|
|
78 |
<H1><A NAME="SEC2" HREF="autosprintf.html#TOC2">2 The <CODE>autosprintf</CODE> class</A></H1> |
|
79 |
|
|
80 |
<P> |
|
81 |
An instance of class <CODE>autosprintf</CODE> just contains a string with the |
|
82 |
formatted output result. Such an instance is usually allocated as an |
|
83 |
automatic storage variable, i.e. on the stack, not with <CODE>new</CODE> on the |
|
84 |
heap. |
|
85 |
|
|
86 |
</P> |
|
87 |
<P> |
|
88 |
The constructor <CODE>autosprintf (const char *format, ...)</CODE> takes a format |
|
89 |
string and additional arguments, like the C function <CODE>printf</CODE>. |
|
90 |
|
|
91 |
</P> |
|
92 |
<P> |
|
93 |
Conversions to <CODE>char *</CODE> and <CODE>std::string</CODE> are defined that return |
|
94 |
the encapsulated string. |
|
95 |
|
|
96 |
</P> |
|
97 |
<P> |
|
98 |
The destructor <CODE>~autosprintf ()</CODE> destroys the encapsulated string. |
|
99 |
|
|
100 |
</P> |
|
101 |
<P> |
|
102 |
An <CODE>operator <<</CODE> is provided that outputs the encapsulated string to the |
|
103 |
given <CODE>ostream</CODE>. |
|
104 |
|
|
105 |
</P> |
|
106 |
|
|
107 |
|
|
108 |
<H1><A NAME="SEC3" HREF="autosprintf.html#TOC3">3 Using <CODE>autosprintf</CODE> in own programs</A></H1> |
|
109 |
|
|
110 |
<P> |
|
111 |
To use the <CODE>autosprintf</CODE> class in your programs, you need to add |
|
112 |
|
|
113 |
</P> |
|
114 |
|
|
115 |
<PRE> |
|
116 |
#include "autosprintf.h" |
|
117 |
using gnu::autosprintf; |
|
118 |
</PRE> |
|
119 |
|
|
120 |
<P> |
|
121 |
to your source code. |
|
122 |
The include file defines the class <CODE>autosprintf</CODE>, in a namespace called |
|
123 |
<CODE>gnu</CODE>. The <SAMP>`using´</SAMP> statement makes it possible to use the class |
|
124 |
without the (otherwise natural) <CODE>gnu::</CODE> prefix. |
|
125 |
|
|
126 |
</P> |
|
127 |
<P> |
|
128 |
When linking your program, you need to link with <CODE>libasprintf</CODE>, because |
|
129 |
that's where the class is defined. In projects using GNU <CODE>autoconf</CODE>, |
|
130 |
this means adding <SAMP>`AC_LIB_LINKFLAGS([asprintf])´</SAMP> to <CODE>configure.in</CODE> |
|
131 |
or <CODE>configure.ac</CODE>, and using the @LIBASPRINTF@ Makefile variable that |
|
132 |
it provides. |
|
133 |
|
|
134 |
</P> |
|
135 |
<P><HR><P> |
|
136 |
This document was generated on 12 June 2003 using the |
|
137 |
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> |
|
138 |
translator version 1.52a.</P> |
|
139 |
</BODY> |
|
140 |
</HTML> |
|
0 | 141 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/gettext/gettext_9.html | ||
---|---|---|
1 |
<HTML> |
|
2 |
<HEAD> |
|
3 |
<!-- This HTML file has been created by texi2html 1.52a |
|
4 |
from gettext.texi on 9 December 2003 --> |
|
5 |
|
|
6 |
<TITLE>GNU gettext utilities - 9 The User's View</TITLE> |
|
7 |
</HEAD> |
|
8 |
<BODY> |
|
9 |
Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_8.html">previous</A>, <A HREF="gettext_10.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. |
|
10 |
<P><HR><P> |
|
11 |
|
|
12 |
|
|
13 |
<H1><A NAME="SEC153" HREF="gettext_toc.html#TOC153">9 The User's View</A></H1> |
|
14 |
|
|
15 |
<P> |
|
16 |
When GNU <CODE>gettext</CODE> will truly have reached its goal, average users |
|
17 |
should feel some kind of astonished pleasure, seeing the effect of |
|
18 |
that strange kind of magic that just makes their own native language |
|
19 |
appear everywhere on their screens. As for naive users, they would |
|
20 |
ideally have no special pleasure about it, merely taking their own |
|
21 |
language for <EM>granted</EM>, and becoming rather unhappy otherwise. |
|
22 |
|
|
23 |
</P> |
|
24 |
<P> |
|
25 |
So, let's try to describe here how we would like the magic to operate, |
|
26 |
as we want the users' view to be the simplest, among all ways one |
|
27 |
could look at GNU <CODE>gettext</CODE>. All other software engineers: |
|
28 |
programmers, translators, maintainers, should work together in such a |
|
29 |
way that the magic becomes possible. This is a long and progressive |
|
30 |
undertaking, and information is available about the progress of the |
|
31 |
Translation Project. |
|
32 |
|
|
33 |
</P> |
|
34 |
<P> |
|
35 |
When a package is distributed, there are two kinds of users: |
|
36 |
<EM>installers</EM> who fetch the distribution, unpack it, configure |
|
37 |
it, compile it and install it for themselves or others to use; and |
|
38 |
<EM>end users</EM> that call programs of the package, once these have |
|
39 |
been installed at their site. GNU <CODE>gettext</CODE> is offering magic |
|
40 |
for both installers and end users. |
|
41 |
|
|
42 |
</P> |
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
<H2><A NAME="SEC154" HREF="gettext_toc.html#TOC154">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A></H2> |
|
47 |
<P> |
|
48 |
<A NAME="IDX947"></A> |
|
49 |
<A NAME="IDX948"></A> |
|
50 |
<A NAME="IDX949"></A> |
|
51 |
|
|
52 |
</P> |
|
53 |
<P> |
|
54 |
Languages are not equally supported in all packages using GNU |
|
55 |
<CODE>gettext</CODE>. To know if some package uses GNU <CODE>gettext</CODE>, one |
|
56 |
may check the distribution for the <TT>`ABOUT-NLS´</TT> information file, for |
|
57 |
some <TT>`<VAR>ll</VAR>.po´</TT> files, often kept together into some <TT>`po/´</TT> |
|
58 |
directory, or for an <TT>`intl/´</TT> directory. Internationalized packages |
|
59 |
have usually many <TT>`<VAR>ll</VAR>.po´</TT> files, where <VAR>ll</VAR> represents |
|
60 |
the language. section <A HREF="gettext_9.html#SEC156">9.3 Magic for End Users</A> for a complete description of the format |
|
61 |
for <VAR>ll</VAR>. |
|
62 |
|
|
63 |
</P> |
|
64 |
<P> |
|
65 |
More generally, a matrix is available for showing the current state |
|
66 |
of the Translation Project, listing which packages are prepared for |
|
67 |
multi-lingual messages, and which languages are supported by each. |
|
68 |
Because this information changes often, this matrix is not kept within |
|
69 |
this GNU <CODE>gettext</CODE> manual. This information is often found in |
|
70 |
file <TT>`ABOUT-NLS´</TT> from various distributions, but is also as old as |
|
71 |
the distribution itself. A recent copy of this <TT>`ABOUT-NLS´</TT> file, |
|
72 |
containing up-to-date information, should generally be found on the |
|
73 |
Translation Project sites, and also on most GNU archive sites. |
|
74 |
|
|
75 |
</P> |
|
76 |
|
|
77 |
|
|
78 |
<H2><A NAME="SEC155" HREF="gettext_toc.html#TOC155">9.2 Magic for Installers</A></H2> |
|
79 |
<P> |
|
80 |
<A NAME="IDX950"></A> |
|
81 |
<A NAME="IDX951"></A> |
|
82 |
|
|
83 |
</P> |
|
84 |
<P> |
|
85 |
By default, packages fully using GNU <CODE>gettext</CODE>, internally, |
|
86 |
are installed in such a way that they to allow translation of |
|
87 |
messages. At <EM>configuration</EM> time, those packages should |
|
88 |
automatically detect whether the underlying host system already provides |
|
89 |
the GNU <CODE>gettext</CODE> functions. If not, |
|
90 |
the GNU <CODE>gettext</CODE> library should be automatically prepared |
|
91 |
and used. Installers may use special options at configuration |
|
92 |
time for changing this behavior. The command <SAMP>`./configure |
|
93 |
--with-included-gettext´</SAMP> bypasses system <CODE>gettext</CODE> to |
|
94 |
use the included GNU <CODE>gettext</CODE> instead, |
|
95 |
while <SAMP>`./configure --disable-nls´</SAMP> |
|
96 |
produces programs totally unable to translate messages. |
|
97 |
|
|
98 |
</P> |
|
99 |
<P> |
|
100 |
<A NAME="IDX952"></A> |
|
101 |
Internationalized packages have usually many <TT>`<VAR>ll</VAR>.po´</TT> |
|
102 |
files. Unless |
|
103 |
translations are disabled, all those available are installed together |
|
104 |
with the package. However, the environment variable <CODE>LINGUAS</CODE> |
|
105 |
may be set, prior to configuration, to limit the installed set. |
|
106 |
<CODE>LINGUAS</CODE> should then contain a space separated list of two-letter |
|
107 |
codes, stating which languages are allowed. |
|
108 |
|
|
109 |
</P> |
|
110 |
|
|
111 |
|
|
112 |
<H2><A NAME="SEC156" HREF="gettext_toc.html#TOC156">9.3 Magic for End Users</A></H2> |
|
113 |
<P> |
|
114 |
<A NAME="IDX953"></A> |
|
115 |
<A NAME="IDX954"></A> |
|
116 |
<A NAME="IDX955"></A> |
|
117 |
|
|
118 |
</P> |
|
119 |
<P> |
|
120 |
<A NAME="IDX956"></A> |
|
121 |
We consider here those packages using GNU <CODE>gettext</CODE> internally, |
|
122 |
and for which the installers did not disable translation at |
|
123 |
<EM>configure</EM> time. Then, users only have to set the <CODE>LANG</CODE> |
|
124 |
environment variable to the appropriate <SAMP>`<VAR>ll</VAR>_<VAR>CC</VAR>´</SAMP> |
|
125 |
combination prior to using the programs in the package. See section <A HREF="gettext_9.html#SEC154">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A>. |
|
126 |
For example, let's presume a German site. At the shell prompt, users |
|
127 |
merely have to execute <SAMP>`setenv LANG de_DE´</SAMP> (in <CODE>csh</CODE>) or |
|
128 |
<SAMP>`export LANG; LANG=de_DE´</SAMP> (in <CODE>sh</CODE>). They could even do |
|
129 |
this from their <TT>`.login´</TT> or <TT>`.profile´</TT> file. |
|
130 |
|
|
131 |
</P> |
|
132 |
<P><HR><P> |
|
133 |
Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_8.html">previous</A>, <A HREF="gettext_10.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. |
|
134 |
</BODY> |
|
135 |
</HTML> |
|
0 | 136 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/gettext/textdomain.3.html | ||
---|---|---|
1 |
<html> |
|
2 |
<head> |
|
3 |
<meta name="generator" content="groff -Thtml, see www.gnu.org"> |
|
4 |
<meta name="Content-Style" content="text/css"> |
|
5 |
<title>TEXTDOMAIN</title> |
|
6 |
</head> |
|
7 |
<body> |
|
8 |
|
|
9 |
<h1 align=center>TEXTDOMAIN</h1> |
|
10 |
<a href="#NAME">NAME</a><br> |
|
11 |
<a href="#SYNOPSIS">SYNOPSIS</a><br> |
|
12 |
<a href="#DESCRIPTION">DESCRIPTION</a><br> |
|
13 |
<a href="#RETURN VALUE">RETURN VALUE</a><br> |
|
14 |
<a href="#ERRORS">ERRORS</a><br> |
|
15 |
<a href="#BUGS">BUGS</a><br> |
|
16 |
<a href="#SEE ALSO">SEE ALSO</a><br> |
|
17 |
|
|
18 |
<hr> |
|
19 |
<!-- Creator : groff version 1.17 --> |
|
20 |
<a name="NAME"></a> |
|
21 |
<h2>NAME</h2> |
|
22 |
<table width="100%" border=0 rules="none" frame="void" |
|
23 |
cols="2" cellspacing="0" cellpadding="0"> |
|
24 |
<tr valign="top" align="left"> |
|
25 |
<td width="10%"></td><td width="90%"> |
|
26 |
textdomain - set domain for future gettext() calls</td></table> |
|
27 |
<a name="SYNOPSIS"></a> |
|
28 |
<h2>SYNOPSIS</h2> |
|
29 |
|
|
30 |
<table width="100%" border=0 rules="none" frame="void" |
|
31 |
cols="2" cellspacing="0" cellpadding="0"> |
|
32 |
<tr valign="top" align="left"> |
|
33 |
<td width="10%"></td><td width="90%"> |
|
34 |
<pre><b>#include <libintl.h> |
|
35 |
|
|
36 |
char * textdomain (const char *</b> <i>domainname</i><b>); |
|
37 |
</b></pre></td></table> |
|
38 |
<a name="DESCRIPTION"></a> |
|
39 |
<h2>DESCRIPTION</h2> |
|
40 |
|
|
41 |
<table width="100%" border=0 rules="none" frame="void" |
|
42 |
cols="2" cellspacing="0" cellpadding="0"> |
|
43 |
<tr valign="top" align="left"> |
|
44 |
<td width="10%"></td><td width="90%"> |
|
45 |
The <b>textdomain</b> function sets or retrieves the current |
|
46 |
message domain.</td></table> |
|
47 |
|
|
48 |
<table width="100%" border=0 rules="none" frame="void" |
|
49 |
cols="2" cellspacing="0" cellpadding="0"> |
|
50 |
<tr valign="top" align="left"> |
|
51 |
<td width="10%"></td><td width="90%"> |
|
52 |
A message domain is a set of translatable <i>msgid</i> |
|
53 |
messages. Usually, every software package has its own |
|
54 |
message domain. The domain name is used to determine the |
|
55 |
message catalog where a translation is looked up; it must be |
|
56 |
a non-empty string.</td></table> |
|
57 |
|
|
58 |
<table width="100%" border=0 rules="none" frame="void" |
|
59 |
cols="2" cellspacing="0" cellpadding="0"> |
|
60 |
<tr valign="top" align="left"> |
|
61 |
<td width="10%"></td><td width="90%"> |
|
62 |
The current message domain is used by the <b>gettext</b>, |
|
63 |
<b>ngettext</b> functions, and by the <b>dgettext</b>, |
|
64 |
<b>dcgettext</b>, <b>dngettext</b> and <b>dcngettext</b> |
|
65 |
functions when called with a NULL domainname |
|
66 |
argument.</td></table> |
|
67 |
|
|
68 |
<table width="100%" border=0 rules="none" frame="void" |
|
69 |
cols="2" cellspacing="0" cellpadding="0"> |
|
70 |
<tr valign="top" align="left"> |
|
71 |
<td width="10%"></td><td width="90%"> |
|
72 |
If <i>domainname</i> is not NULL, the current message domain |
|
73 |
is set to <i>domainname</i>. The string the function stores |
|
74 |
internally is a copy of the <i>domainname</i> |
|
75 |
argument.</td></table> |
|
76 |
|
|
77 |
<table width="100%" border=0 rules="none" frame="void" |
|
78 |
cols="2" cellspacing="0" cellpadding="0"> |
|
79 |
<tr valign="top" align="left"> |
|
80 |
<td width="10%"></td><td width="90%"> |
|
81 |
If <i>domainname</i> is NULL, the function returns the |
|
82 |
current message domain.</td></table> |
|
83 |
<a name="RETURN VALUE"></a> |
|
84 |
<h2>RETURN VALUE</h2> |
|
85 |
|
|
86 |
<table width="100%" border=0 rules="none" frame="void" |
|
87 |
cols="2" cellspacing="0" cellpadding="0"> |
|
88 |
<tr valign="top" align="left"> |
|
89 |
<td width="10%"></td><td width="90%"> |
|
90 |
If successful, the <b>textdomain</b> function returns the |
|
91 |
current message domain, after possibly changing it. The |
|
92 |
resulting string is valid until the next <b>textdomain</b> |
|
93 |
call and must not be modified or freed. If a memory |
|
94 |
allocation failure occurs, it sets <b>errno</b> to |
|
95 |
<b>ENOMEM</b> and returns NULL.</td></table> |
|
96 |
<a name="ERRORS"></a> |
|
97 |
<h2>ERRORS</h2> |
|
98 |
|
|
99 |
<table width="100%" border=0 rules="none" frame="void" |
|
100 |
cols="2" cellspacing="0" cellpadding="0"> |
|
101 |
<tr valign="top" align="left"> |
|
102 |
<td width="10%"></td><td width="90%"> |
|
103 |
The following error can occur, among others:</td></table> |
|
104 |
|
|
105 |
<table width="100%" border=0 rules="none" frame="void" |
|
106 |
cols="2" cellspacing="0" cellpadding="0"> |
|
107 |
<tr valign="top" align="left"> |
|
108 |
<td width="10%"></td><td width="90%"> |
|
109 |
<b>ENOMEM</b></td></table> |
|
110 |
|
|
111 |
<table width="100%" border=0 rules="none" frame="void" |
|
112 |
cols="2" cellspacing="0" cellpadding="0"> |
|
113 |
<tr valign="top" align="left"> |
|
114 |
<td width="21%"></td><td width="79%"> |
|
115 |
Not enough memory available.</td></table> |
|
116 |
<a name="BUGS"></a> |
|
117 |
<h2>BUGS</h2> |
|
118 |
|
|
119 |
<table width="100%" border=0 rules="none" frame="void" |
|
120 |
cols="2" cellspacing="0" cellpadding="0"> |
|
121 |
<tr valign="top" align="left"> |
|
122 |
<td width="10%"></td><td width="90%"> |
|
123 |
The return type ought to be <b>const char *</b>, but is |
|
124 |
<b>char *</b> to avoid warnings in C code predating ANSI |
|
125 |
C.</td></table> |
|
126 |
<a name="SEE ALSO"></a> |
|
127 |
<h2>SEE ALSO</h2> |
|
128 |
|
|
129 |
<table width="100%" border=0 rules="none" frame="void" |
|
130 |
cols="2" cellspacing="0" cellpadding="0"> |
|
131 |
<tr valign="top" align="left"> |
|
132 |
<td width="10%"></td><td width="90%"> |
|
133 |
<b>gettext</b>(3), <b>ngettext</b>(3), |
|
134 |
<b>bindtextdomain</b>(3), |
|
135 |
<b>bind_textdomain_codeset</b>(3)</td></table> |
|
136 |
<hr> |
|
137 |
</body> |
|
138 |
</html> |
|
0 | 139 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/gettext/bind_textdomain_codeset.3.html | ||
---|---|---|
1 |
<html> |
|
2 |
<head> |
|
3 |
<meta name="generator" content="groff -Thtml, see www.gnu.org"> |
|
4 |
<meta name="Content-Style" content="text/css"> |
|
5 |
<title>BIND_TEXTDOMAIN_CODESET</title> |
|
6 |
</head> |
|
7 |
<body> |
|
8 |
|
|
9 |
<h1 align=center>BIND_TEXTDOMAIN_CODESET</h1> |
|
10 |
<a href="#NAME">NAME</a><br> |
|
11 |
<a href="#SYNOPSIS">SYNOPSIS</a><br> |
|
12 |
<a href="#DESCRIPTION">DESCRIPTION</a><br> |
|
13 |
<a href="#RETURN VALUE">RETURN VALUE</a><br> |
|
14 |
<a href="#ERRORS">ERRORS</a><br> |
|
15 |
<a href="#BUGS">BUGS</a><br> |
|
16 |
<a href="#SEE ALSO">SEE ALSO</a><br> |
|
17 |
|
|
18 |
<hr> |
|
19 |
<!-- Creator : groff version 1.17 --> |
|
20 |
<a name="NAME"></a> |
|
21 |
<h2>NAME</h2> |
|
22 |
<table width="100%" border=0 rules="none" frame="void" |
|
23 |
cols="2" cellspacing="0" cellpadding="0"> |
|
24 |
<tr valign="top" align="left"> |
|
25 |
<td width="10%"></td><td width="90%"> |
|
26 |
bind_textdomain_codeset - set encoding of message translations</td></table> |
|
27 |
<a name="SYNOPSIS"></a> |
|
28 |
<h2>SYNOPSIS</h2> |
|
29 |
|
|
30 |
<table width="100%" border=0 rules="none" frame="void" |
|
31 |
cols="2" cellspacing="0" cellpadding="0"> |
|
32 |
<tr valign="top" align="left"> |
|
33 |
<td width="10%"></td><td width="90%"> |
|
34 |
<pre><b>#include <libintl.h> |
|
35 |
|
|
36 |
char * bind_textdomain_codeset (const char *</b> <i>domainname</i><b>, |
|
37 |
const char *</b> <i>codeset</i><b>); |
|
38 |
</b></pre></td></table> |
|
39 |
<a name="DESCRIPTION"></a> |
|
40 |
<h2>DESCRIPTION</h2> |
|
41 |
|
|
42 |
<table width="100%" border=0 rules="none" frame="void" |
|
43 |
cols="2" cellspacing="0" cellpadding="0"> |
|
44 |
<tr valign="top" align="left"> |
|
45 |
<td width="10%"></td><td width="90%"> |
|
46 |
The <b>bind_textdomain_codeset</b> function sets the output |
|
47 |
codeset for message catalogs for domain |
|
48 |
<i>domainname</i>.</td></table> |
|
49 |
|
|
50 |
<table width="100%" border=0 rules="none" frame="void" |
|
51 |
cols="2" cellspacing="0" cellpadding="0"> |
|
52 |
<tr valign="top" align="left"> |
|
53 |
<td width="10%"></td><td width="90%"> |
|
54 |
A message domain is a set of translatable <i>msgid</i> |
|
55 |
messages. Usually, every software package has its own |
|
56 |
message domain.</td></table> |
|
57 |
|
|
58 |
<table width="100%" border=0 rules="none" frame="void" |
|
59 |
cols="2" cellspacing="0" cellpadding="0"> |
|
60 |
<tr valign="top" align="left"> |
|
61 |
<td width="10%"></td><td width="90%"> |
|
62 |
By default, the <b>gettext</b> family of functions returns |
|
63 |
translated messages in the locale's character encoding, |
|
64 |
which can be retrieved as <b>nl_langinfo(CODESET)</b>. The |
|
65 |
need for calling <b>bind_textdomain_codeset</b> arises for |
|
66 |
programs which store strings in a locale independent way |
|
67 |
(e.g. UTF-8) and want to avoid an extra character set |
|
68 |
conversion on the returned translated messages.</td></table> |
|
69 |
|
|
70 |
<table width="100%" border=0 rules="none" frame="void" |
|
71 |
cols="2" cellspacing="0" cellpadding="0"> |
|
72 |
<tr valign="top" align="left"> |
|
73 |
<td width="10%"></td><td width="90%"> |
|
74 |
<i>domainname</i> must be a non-empty string.</td></table> |
|
75 |
|
|
76 |
<table width="100%" border=0 rules="none" frame="void" |
|
77 |
cols="2" cellspacing="0" cellpadding="0"> |
|
78 |
<tr valign="top" align="left"> |
|
79 |
<td width="10%"></td><td width="90%"> |
|
80 |
If <i>codeset</i> is not NULL, it must be a valid encoding |
|
81 |
name which can be used for the <b>iconv_open</b> function. |
|
82 |
The <b>bind_textdomain_codeset</b> function sets the output |
|
83 |
codeset for message catalogs belonging to domain |
|
84 |
<i>domainname</i> to <i>codeset</i>. The function makes |
|
85 |
copies of the argument strings as needed.</td></table> |
|
86 |
|
|
87 |
<table width="100%" border=0 rules="none" frame="void" |
|
88 |
cols="2" cellspacing="0" cellpadding="0"> |
|
89 |
<tr valign="top" align="left"> |
|
90 |
<td width="10%"></td><td width="90%"> |
|
91 |
If <i>codeset</i> is NULL, the function returns the |
|
92 |
previously set codeset for domain <i>domainname</i>. The |
|
93 |
default is NULL, denoting the locale's character |
|
94 |
encoding.</td></table> |
|
95 |
<a name="RETURN VALUE"></a> |
|
96 |
<h2>RETURN VALUE</h2> |
|
97 |
|
|
98 |
<table width="100%" border=0 rules="none" frame="void" |
|
99 |
cols="2" cellspacing="0" cellpadding="0"> |
|
100 |
<tr valign="top" align="left"> |
|
101 |
<td width="10%"></td><td width="90%"> |
|
102 |
If successful, the <b>bind_textdomain_codeset</b> function |
|
103 |
returns the current codeset for domain <i>domainname</i>, |
|
104 |
after possibly changing it. The resulting string is valid |
|
105 |
until the next <b>bind_textdomain_codeset</b> call for the |
|
106 |
same <i>domainname</i> and must not be modified or freed. If |
|
107 |
a memory allocation failure occurs, it sets <b>errno</b> to |
|
108 |
<b>ENOMEM</b> and returns NULL. If no codeset has been set |
|
109 |
for domain <i>domainname</i>, it returns NULL.</td></table> |
|
110 |
<a name="ERRORS"></a> |
|
111 |
<h2>ERRORS</h2> |
|
112 |
|
|
113 |
<table width="100%" border=0 rules="none" frame="void" |
|
114 |
cols="2" cellspacing="0" cellpadding="0"> |
|
115 |
<tr valign="top" align="left"> |
|
116 |
<td width="10%"></td><td width="90%"> |
|
117 |
The following error can occur, among others:</td></table> |
|
118 |
|
|
119 |
<table width="100%" border=0 rules="none" frame="void" |
|
120 |
cols="2" cellspacing="0" cellpadding="0"> |
|
121 |
<tr valign="top" align="left"> |
|
122 |
<td width="10%"></td><td width="90%"> |
|
123 |
<b>ENOMEM</b></td></table> |
|
124 |
|
|
125 |
<table width="100%" border=0 rules="none" frame="void" |
|
126 |
cols="2" cellspacing="0" cellpadding="0"> |
|
127 |
<tr valign="top" align="left"> |
|
128 |
<td width="21%"></td><td width="79%"> |
|
129 |
Not enough memory available.</td></table> |
|
130 |
<a name="BUGS"></a> |
|
131 |
<h2>BUGS</h2> |
|
132 |
|
|
133 |
<table width="100%" border=0 rules="none" frame="void" |
|
134 |
cols="2" cellspacing="0" cellpadding="0"> |
|
135 |
<tr valign="top" align="left"> |
|
136 |
<td width="10%"></td><td width="90%"> |
|
137 |
The return type ought to be <b>const char *</b>, but is |
|
138 |
<b>char *</b> to avoid warnings in C code predating ANSI |
|
139 |
C.</td></table> |
|
140 |
<a name="SEE ALSO"></a> |
|
141 |
<h2>SEE ALSO</h2> |
|
142 |
|
|
143 |
<table width="100%" border=0 rules="none" frame="void" |
|
144 |
cols="2" cellspacing="0" cellpadding="0"> |
|
145 |
<tr valign="top" align="left"> |
|
146 |
<td width="10%"></td><td width="90%"> |
|
147 |
<b>gettext</b>(3), <b>dgettext</b>(3), <b>dcgettext</b>(3), |
|
148 |
<b>ngettext</b>(3), <b>dngettext</b>(3), |
|
149 |
<b>dcngettext</b>(3), <b>textdomain</b>(3), |
|
150 |
<b>nl_langinfo</b>(3), <b>iconv_open</b>(3)</td></table> |
|
151 |
<hr> |
|
152 |
</body> |
|
153 |
</html> |
|
0 | 154 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/gettext/gettext.1.html | ||
---|---|---|
1 |
<html> |
|
2 |
<head> |
|
3 |
<meta name="generator" content="groff -Thtml, see www.gnu.org"> |
|
4 |
<meta name="Content-Style" content="text/css"> |
|
5 |
<title>GETTEXT</title> |
|
6 |
</head> |
|
7 |
<body> |
|
8 |
|
|
9 |
<h1 align=center>GETTEXT</h1> |
|
10 |
<a href="#NAME">NAME</a><br> |
|
11 |
<a href="#SYNOPSIS">SYNOPSIS</a><br> |
|
12 |
<a href="#DESCRIPTION">DESCRIPTION</a><br> |
|
13 |
<a href="#AUTHOR">AUTHOR</a><br> |
|
14 |
<a href="#REPORTING BUGS">REPORTING BUGS</a><br> |
|
15 |
<a href="#COPYRIGHT">COPYRIGHT</a><br> |
|
16 |
<a href="#SEE ALSO">SEE ALSO</a><br> |
|
17 |
|
|
18 |
<hr> |
|
19 |
<!-- Creator : groff version 1.17.2 --> |
|
20 |
<a name="NAME"></a> |
|
21 |
<h2>NAME</h2> |
|
22 |
<table width="100%" border=0 rules="none" frame="void" |
|
23 |
cols="2" cellspacing="0" cellpadding="0"> |
|
24 |
<tr valign="top" align="left"> |
|
25 |
<td width="10%"></td><td width="90%"> |
|
26 |
gettext - translate message</td></table> |
|
27 |
<a name="SYNOPSIS"></a> |
|
28 |
<h2>SYNOPSIS</h2> |
|
29 |
|
|
30 |
<table width="100%" border=0 rules="none" frame="void" |
|
31 |
cols="2" cellspacing="0" cellpadding="0"> |
|
32 |
<tr valign="top" align="left"> |
|
33 |
<td width="10%"></td><td width="90%"> |
|
34 |
<b>gettext</b> [<i>OPTION</i>] [[<i>TEXTDOMAIN</i>] |
|
35 |
<i>MSGID</i>]<b><br> |
|
36 |
gettext</b> [<i>OPTION</i>] <i>-s</i> |
|
37 |
[<i>MSGID</i>]...</td></table> |
|
38 |
<a name="DESCRIPTION"></a> |
|
39 |
<h2>DESCRIPTION</h2> |
|
40 |
|
|
41 |
<table width="100%" border=0 rules="none" frame="void" |
|
42 |
cols="2" cellspacing="0" cellpadding="0"> |
|
43 |
<tr valign="top" align="left"> |
|
44 |
<td width="10%"></td><td width="90%"> |
|
45 |
The <b>gettext</b> program translates a natural language |
|
46 |
message into the user's language, by looking up the |
|
47 |
translation in a message catalog.</td></table> |
|
48 |
|
|
49 |
<table width="100%" border=0 rules="none" frame="void" |
|
50 |
cols="2" cellspacing="0" cellpadding="0"> |
|
51 |
<tr valign="top" align="left"> |
|
52 |
<td width="10%"></td><td width="90%"> |
|
53 |
Display native language translation of a textual |
|
54 |
message.</td></table> |
|
55 |
|
|
56 |
<table width="100%" border=0 rules="none" frame="void" |
|
57 |
cols="2" cellspacing="0" cellpadding="0"> |
|
58 |
<tr valign="top" align="left"> |
|
59 |
<td width="10%"></td><td width="90%"> |
|
60 |
<b>-d</b>, <b>--domain</b>=<i>TEXTDOMAIN</i></td></table> |
|
61 |
|
|
62 |
<table width="100%" border=0 rules="none" frame="void" |
|
63 |
cols="2" cellspacing="0" cellpadding="0"> |
|
64 |
<tr valign="top" align="left"> |
|
65 |
<td width="21%"></td><td width="79%"> |
|
66 |
retrieve translated messages from TEXTDOMAIN</td></table> |
|
67 |
|
|
68 |
<table width="100%" border=0 rules="none" frame="void" |
|
69 |
cols="2" cellspacing="0" cellpadding="0"> |
|
70 |
<tr valign="top" align="left"> |
|
71 |
<td width="10%"></td><td width="90%"> |
|
72 |
<b>-e</b></td></table> |
|
73 |
|
|
74 |
<table width="100%" border=0 rules="none" frame="void" |
|
75 |
cols="2" cellspacing="0" cellpadding="0"> |
|
76 |
<tr valign="top" align="left"> |
|
77 |
<td width="21%"></td><td width="79%"> |
|
78 |
enable expansion of some escape sequences</td></table> |
|
79 |
|
|
80 |
<table width="100%" border=0 rules="none" frame="void" |
|
81 |
cols="2" cellspacing="0" cellpadding="0"> |
|
82 |
<tr valign="top" align="left"> |
|
83 |
<td width="10%"></td><td width="90%"> |
|
84 |
<b>-E</b></td></table> |
|
85 |
|
|
86 |
<table width="100%" border=0 rules="none" frame="void" |
|
87 |
cols="2" cellspacing="0" cellpadding="0"> |
|
88 |
<tr valign="top" align="left"> |
|
89 |
<td width="21%"></td><td width="79%"> |
|
90 |
(ignored for compatibility)</td></table> |
|
91 |
|
|
92 |
<table width="100%" border=0 rules="none" frame="void" |
|
93 |
cols="2" cellspacing="0" cellpadding="0"> |
|
94 |
<tr valign="top" align="left"> |
|
95 |
<td width="10%"></td><td width="90%"> |
|
96 |
<b>-h</b>, <b>--help</b></td></table> |
|
97 |
|
|
98 |
<table width="100%" border=0 rules="none" frame="void" |
|
99 |
cols="2" cellspacing="0" cellpadding="0"> |
|
100 |
<tr valign="top" align="left"> |
|
101 |
<td width="21%"></td><td width="79%"> |
|
102 |
display this help and exit</td></table> |
|
103 |
|
|
104 |
<table width="100%" border=0 rules="none" frame="void" |
|
105 |
cols="2" cellspacing="0" cellpadding="0"> |
|
106 |
<tr valign="top" align="left"> |
|
107 |
<td width="10%"></td><td width="90%"> |
|
108 |
<b>-n</b></td></table> |
|
109 |
|
|
110 |
<table width="100%" border=0 rules="none" frame="void" |
|
111 |
cols="2" cellspacing="0" cellpadding="0"> |
|
112 |
<tr valign="top" align="left"> |
|
113 |
<td width="21%"></td><td width="79%"> |
|
114 |
suppress trailing newline</td></table> |
|
115 |
|
|
116 |
<table width="100%" border=0 rules="none" frame="void" |
|
117 |
cols="2" cellspacing="0" cellpadding="0"> |
|
118 |
<tr valign="top" align="left"> |
|
119 |
<td width="10%"></td><td width="90%"> |
|
120 |
<b>-V</b>, <b>--version</b></td></table> |
|
121 |
|
|
122 |
<table width="100%" border=0 rules="none" frame="void" |
|
123 |
cols="2" cellspacing="0" cellpadding="0"> |
|
124 |
<tr valign="top" align="left"> |
|
125 |
<td width="21%"></td><td width="79%"> |
|
126 |
display version information and exit</td></table> |
|
127 |
|
|
128 |
<table width="100%" border=0 rules="none" frame="void" |
|
129 |
cols="2" cellspacing="0" cellpadding="0"> |
|
130 |
<tr valign="top" align="left"> |
|
131 |
<td width="10%"></td><td width="90%"> |
|
132 |
[TEXTDOMAIN] MSGID</td></table> |
|
133 |
|
|
134 |
<table width="100%" border=0 rules="none" frame="void" |
|
135 |
cols="2" cellspacing="0" cellpadding="0"> |
|
136 |
<tr valign="top" align="left"> |
|
137 |
<td width="21%"></td><td width="79%"> |
|
138 |
retrieve translated message corresponding to MSGID from |
|
139 |
TEXTDOMAIN</td></table> |
|
140 |
|
|
141 |
<table width="100%" border=0 rules="none" frame="void" |
|
142 |
cols="2" cellspacing="0" cellpadding="0"> |
|
143 |
<tr valign="top" align="left"> |
|
144 |
<td width="10%"></td><td width="90%"> |
|
145 |
If the TEXTDOMAIN parameter is not given, the domain is |
|
146 |
determined from the environment variable TEXTDOMAIN. If the |
|
147 |
message catalog is not found in the regular directory, |
|
148 |
another location can be specified with the environment |
|
149 |
variable TEXTDOMAINDIR. When used with the <b>-s</b> option |
|
150 |
the program behaves like the `echo' command. But it does not |
|
151 |
simply copy its arguments to stdout. Instead those messages |
|
152 |
found in the selected catalog are translated. Standard |
|
153 |
search directory: @localedir@</td></table> |
|
154 |
<a name="AUTHOR"></a> |
|
155 |
<h2>AUTHOR</h2> |
|
156 |
|
|
157 |
<table width="100%" border=0 rules="none" frame="void" |
|
158 |
cols="2" cellspacing="0" cellpadding="0"> |
|
159 |
<tr valign="top" align="left"> |
|
160 |
<td width="10%"></td><td width="90%"> |
|
161 |
Written by Ulrich Drepper.</td></table> |
|
162 |
<a name="REPORTING BUGS"></a> |
|
163 |
<h2>REPORTING BUGS</h2> |
|
164 |
|
|
165 |
<table width="100%" border=0 rules="none" frame="void" |
|
166 |
cols="2" cellspacing="0" cellpadding="0"> |
|
167 |
<tr valign="top" align="left"> |
|
168 |
<td width="10%"></td><td width="90%"> |
|
169 |
Report bugs to <bug-gnu-gettext@gnu.org>.</td></table> |
|
170 |
<a name="COPYRIGHT"></a> |
|
171 |
<h2>COPYRIGHT</h2> |
|
172 |
|
|
173 |
<table width="100%" border=0 rules="none" frame="void" |
|
174 |
cols="2" cellspacing="0" cellpadding="0"> |
|
175 |
<tr valign="top" align="left"> |
|
176 |
<td width="10%"></td><td width="90%"> |
|
177 |
Copyright 1995-1997, 2000-2003 Free Software Foundation, |
|
178 |
Inc.<br> |
|
179 |
This is free software; see the source for copying |
|
180 |
conditions. There is NO warranty; not even for |
|
181 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
182 |
PURPOSE.</td></table> |
|
183 |
<a name="SEE ALSO"></a> |
|
184 |
<h2>SEE ALSO</h2> |
|
185 |
|
|
186 |
<table width="100%" border=0 rules="none" frame="void" |
|
187 |
cols="2" cellspacing="0" cellpadding="0"> |
|
188 |
<tr valign="top" align="left"> |
|
189 |
<td width="10%"></td><td width="90%"> |
|
190 |
The full documentation for <b>gettext</b> is maintained as a |
|
191 |
Texinfo manual. If the <b>info</b> and <b>gettext</b> |
|
192 |
programs are properly installed at your site, the |
|
193 |
command</td></table> |
|
194 |
|
|
195 |
<table width="100%" border=0 rules="none" frame="void" |
|
196 |
cols="2" cellspacing="0" cellpadding="0"> |
|
197 |
<tr valign="top" align="left"> |
|
198 |
<td width="21%"></td><td width="79%"> |
|
199 |
<b>info gettext</b></td></table> |
|
200 |
|
|
201 |
<table width="100%" border=0 rules="none" frame="void" |
|
202 |
cols="2" cellspacing="0" cellpadding="0"> |
|
203 |
<tr valign="top" align="left"> |
|
204 |
<td width="10%"></td><td width="90%"> |
|
205 |
should give you access to the complete manual.</td></table> |
|
206 |
<hr> |
|
207 |
</body> |
|
208 |
</html> |
|
0 | 209 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/gettext/gettext.3.html | ||
---|---|---|
1 |
<html> |
|
2 |
<head> |
|
3 |
<meta name="generator" content="groff -Thtml, see www.gnu.org"> |
|
4 |
<meta name="Content-Style" content="text/css"> |
|
5 |
<title>GETTEXT</title> |
|
6 |
</head> |
|
7 |
<body> |
|
8 |
|
|
9 |
<h1 align=center>GETTEXT</h1> |
|
10 |
<a href="#NAME">NAME</a><br> |
|
11 |
<a href="#SYNOPSIS">SYNOPSIS</a><br> |
|
12 |
<a href="#DESCRIPTION">DESCRIPTION</a><br> |
|
13 |
<a href="#RETURN VALUE">RETURN VALUE</a><br> |
|
14 |
<a href="#ERRORS">ERRORS</a><br> |
|
15 |
<a href="#BUGS">BUGS</a><br> |
|
16 |
<a href="#SEE ALSO">SEE ALSO</a><br> |
|
17 |
|
|
18 |
<hr> |
|
19 |
<!-- Creator : groff version 1.17 --> |
|
20 |
<a name="NAME"></a> |
|
21 |
<h2>NAME</h2> |
|
22 |
<table width="100%" border=0 rules="none" frame="void" |
|
23 |
cols="2" cellspacing="0" cellpadding="0"> |
|
24 |
<tr valign="top" align="left"> |
|
25 |
<td width="10%"></td><td width="90%"> |
|
26 |
gettext, dgettext, dcgettext - translate message</td></table> |
|
27 |
<a name="SYNOPSIS"></a> |
|
28 |
<h2>SYNOPSIS</h2> |
|
29 |
|
|
30 |
<table width="100%" border=0 rules="none" frame="void" |
|
31 |
cols="2" cellspacing="0" cellpadding="0"> |
|
32 |
<tr valign="top" align="left"> |
|
33 |
<td width="10%"></td><td width="90%"> |
|
34 |
<pre><b>#include <libintl.h> |
|
35 |
|
|
36 |
char * gettext (const char *</b> <i>msgid</i><b>); |
|
37 |
char * dgettext (const char *</b> <i>domainname</i><b>, const char *</b> <i>msgid</i><b>); |
|
38 |
char * dcgettext (const char *</b> <i>domainname</i><b>, const char *</b> <i>msgid</i><b>, |
|
39 |
int</b> <i>category</i><b>); |
|
40 |
</b></pre></td></table> |
|
41 |
<a name="DESCRIPTION"></a> |
|
42 |
<h2>DESCRIPTION</h2> |
|
43 |
|
|
44 |
<table width="100%" border=0 rules="none" frame="void" |
|
45 |
cols="2" cellspacing="0" cellpadding="0"> |
|
46 |
<tr valign="top" align="left"> |
|
47 |
<td width="10%"></td><td width="90%"> |
|
48 |
The <b>gettext</b>, <b>dgettext</b> and <b>dcgettext</b> |
|
49 |
functions attempt to translate a text string into the user's |
|
50 |
native language, by looking up the translation in a message |
|
51 |
catalog.</td></table> |
|
52 |
|
|
53 |
<table width="100%" border=0 rules="none" frame="void" |
|
54 |
cols="2" cellspacing="0" cellpadding="0"> |
|
55 |
<tr valign="top" align="left"> |
|
56 |
<td width="10%"></td><td width="90%"> |
|
57 |
The <i>msgid</i> argument identifies the message to be |
|
58 |
translated. By convention, it is the English version of the |
|
59 |
message, with non-ASCII characters replaced by ASCII |
|
60 |
approximations. This choice allows the translators to work |
|
61 |
with message catalogs, called PO files, that contain both |
|
62 |
the English and the translated versions of each message, and |
|
63 |
can be installed using the <b>msgfmt</b> |
|
64 |
utility.</td></table> |
|
65 |
|
|
66 |
<table width="100%" border=0 rules="none" frame="void" |
|
67 |
cols="2" cellspacing="0" cellpadding="0"> |
|
68 |
<tr valign="top" align="left"> |
|
69 |
<td width="10%"></td><td width="90%"> |
|
70 |
A message domain is a set of translatable <i>msgid</i> |
|
71 |
messages. Usually, every software package has its own |
|
72 |
message domain. The domain name is used to determine the |
|
73 |
message catalog where the translation is looked up; it must |
|
74 |
be a non-empty string. For the <b>gettext</b> function, it |
|
75 |
is specified through a preceding <b>textdomain</b> call. For |
|
76 |
the <b>dgettext</b> and <b>dcgettext</b> functions, it is |
|
77 |
passed as the <i>domainname</i> argument; if this argument |
|
78 |
is NULL, the domain name specified through a preceding |
|
79 |
<b>textdomain</b> call is used instead.</td></table> |
|
80 |
|
|
81 |
<table width="100%" border=0 rules="none" frame="void" |
|
82 |
cols="2" cellspacing="0" cellpadding="0"> |
|
83 |
<tr valign="top" align="left"> |
|
84 |
<td width="10%"></td><td width="90%"> |
|
85 |
Translation lookup operates in the context of the current |
|
86 |
locale. For the <b>gettext</b> and <b>dgettext</b> |
|
87 |
functions, the <b>LC_MESSAGES</b> locale facet is used. It |
|
88 |
is determined by a preceding call to the <b>setlocale</b> |
|
89 |
function. <b>setlocale(LC_ALL,"")</b> initializes |
|
90 |
the <b>LC_MESSAGES</b> locale based on the first nonempty |
|
91 |
value of the three environment variables <b>LC_ALL</b>, |
|
92 |
<b>LC_MESSAGES</b>, <b>LANG</b>; see <b>setlocale</b>(3). |
|
93 |
For the <b>dcgettext</b> function, the locale facet is |
|
94 |
determined by the <i>category</i> argument, which should be |
|
95 |
one of the <b>LC_xxx</b> constants defined in the |
|
96 |
<locale.h> header, excluding <b>LC_ALL</b>. In both |
|
97 |
cases, the functions also use the <b>LC_CTYPE</b> locale |
|
98 |
facet in order to convert the translated message from the |
|
99 |
translator's codeset to the current locale's codeset, unless |
|
100 |
overridden by a prior call to the |
|
101 |
<b>bind_textdomain_codeset</b> function.</td></table> |
|
102 |
|
|
103 |
<table width="100%" border=0 rules="none" frame="void" |
|
104 |
cols="2" cellspacing="0" cellpadding="0"> |
|
105 |
<tr valign="top" align="left"> |
|
106 |
<td width="10%"></td><td width="90%"> |
|
107 |
The message catalog used by the functions is at the pathname |
|
108 |
<i>dirname</i>/<i>locale</i>/<i>category</i>/<i>domainname</i>.mo. |
|
109 |
Here <i>dirname</i> is the directory specified through |
|
110 |
<b>bindtextdomain</b>. Its default is system and |
|
111 |
configuration dependent; typically it is |
|
112 |
<i>prefix</i>/share/locale, where <i>prefix</i> is the |
|
113 |
installation prefix of the package. <i>locale</i> is the |
|
114 |
name of the current locale facet; the GNU implementation |
|
115 |
also tries generalizations, such as the language name |
|
116 |
without the territory name. <i>category</i> is |
|
117 |
<b>LC_MESSAGES</b> for the <b>gettext</b> and |
|
118 |
<b>dgettext</b> functions, or the argument passed to the |
|
119 |
<b>dcgettext</b> function.</td></table> |
|
120 |
|
|
121 |
<table width="100%" border=0 rules="none" frame="void" |
|
122 |
cols="2" cellspacing="0" cellpadding="0"> |
|
123 |
<tr valign="top" align="left"> |
|
124 |
<td width="10%"></td><td width="90%"> |
|
125 |
If the <b>LANGUAGE</b> environment variable is set to a |
|
126 |
nonempty value, and the locale is not the "C" |
|
127 |
locale, the value of <b>LANGUAGE</b> is assumed to contain a |
|
128 |
colon separated list of locale names. The functions will |
|
129 |
attempt to look up a translation of <i>msgid</i> in each of |
|
130 |
the locales in turn. This is a GNU extension.</td></table> |
|
131 |
|
|
132 |
<table width="100%" border=0 rules="none" frame="void" |
|
133 |
cols="2" cellspacing="0" cellpadding="0"> |
|
134 |
<tr valign="top" align="left"> |
|
135 |
<td width="10%"></td><td width="90%"> |
|
136 |
In the "C" locale, or if none of the used catalogs |
|
137 |
contain a translation for <i>msgid</i>, the <b>gettext</b>, |
|
138 |
<b>dgettext</b> and <b>dcgettext</b> functions return |
|
139 |
<i>msgid</i>.</td></table> |
|
140 |
<a name="RETURN VALUE"></a> |
|
141 |
<h2>RETURN VALUE</h2> |
|
142 |
|
|
143 |
<table width="100%" border=0 rules="none" frame="void" |
|
144 |
cols="2" cellspacing="0" cellpadding="0"> |
|
145 |
<tr valign="top" align="left"> |
|
146 |
<td width="10%"></td><td width="90%"> |
|
147 |
If a translation was found in one of the specified catalogs, |
|
148 |
it is converted to the locale's codeset and returned. The |
|
149 |
resulting string is statically allocated and must not be |
|
150 |
modified or freed. Otherwise <i>msgid</i> is |
|
151 |
returned.</td></table> |
|
152 |
<a name="ERRORS"></a> |
|
153 |
<h2>ERRORS</h2> |
|
154 |
|
|
155 |
<table width="100%" border=0 rules="none" frame="void" |
|
156 |
cols="2" cellspacing="0" cellpadding="0"> |
|
157 |
<tr valign="top" align="left"> |
|
158 |
<td width="10%"></td><td width="90%"> |
|
159 |
<b>errno</b> is not modified.</td></table> |
|
160 |
<a name="BUGS"></a> |
|
161 |
<h2>BUGS</h2> |
|
162 |
|
|
163 |
<table width="100%" border=0 rules="none" frame="void" |
|
164 |
cols="2" cellspacing="0" cellpadding="0"> |
|
165 |
<tr valign="top" align="left"> |
|
166 |
<td width="10%"></td><td width="90%"> |
|
167 |
The return type ought to be <b>const char *</b>, but is |
|
168 |
<b>char *</b> to avoid warnings in C code predating ANSI |
|
169 |
C.</td></table> |
|
170 |
|
|
171 |
<table width="100%" border=0 rules="none" frame="void" |
|
172 |
cols="2" cellspacing="0" cellpadding="0"> |
|
173 |
<tr valign="top" align="left"> |
|
174 |
<td width="10%"></td><td width="90%"> |
|
175 |
When an empty string is used for <i>msgid</i>, the functions |
|
176 |
may return a nonempty string.</td></table> |
|
177 |
<a name="SEE ALSO"></a> |
|
178 |
<h2>SEE ALSO</h2> |
|
179 |
|
|
180 |
<table width="100%" border=0 rules="none" frame="void" |
|
181 |
cols="2" cellspacing="0" cellpadding="0"> |
|
182 |
<tr valign="top" align="left"> |
|
183 |
<td width="10%"></td><td width="90%"> |
|
184 |
<b>ngettext</b>(3), <b>dngettext</b>(3), |
|
185 |
<b>dcngettext</b>(3), <b>setlocale</b>(3), |
|
186 |
<b>textdomain</b>(3), <b>bindtextdomain</b>(3), |
|
187 |
<b>bind_textdomain_codeset</b>(3), |
|
188 |
<b>msgfmt</b>(1)</td></table> |
|
189 |
<hr> |
|
190 |
</body> |
|
191 |
</html> |
|
0 | 192 |
trunk/install/launcher/izpack-launcher-1.3/src/gettext/share/doc/gettext/gettext_11.html | ||
---|---|---|
1 |
<HTML> |
|
2 |
<HEAD> |
|
3 |
<!-- This HTML file has been created by texi2html 1.52a |
|
4 |
from gettext.texi on 9 December 2003 --> |
|
5 |
|
|
6 |
<TITLE>GNU gettext utilities - 11 The Translator's View</TITLE> |
|
7 |
</HEAD> |
|
8 |
<BODY> |
|
9 |
Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_10.html">previous</A>, <A HREF="gettext_12.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. |
|
10 |
<P><HR><P> |
|
11 |
|
|
12 |
|
|
13 |
<H1><A NAME="SEC177" HREF="gettext_toc.html#TOC177">11 The Translator's View</A></H1> |
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
<H2><A NAME="SEC178" HREF="gettext_toc.html#TOC178">11.1 Introduction 0</A></H2> |
|
18 |
|
|
19 |
<P> |
|
20 |
Free software is going international! The Translation Project is a way |
|
21 |
to get maintainers, translators and users all together, so free software |
|
22 |
will gradually become able to speak many native languages. |
|
23 |
|
|
24 |
</P> |
|
25 |
<P> |
|
26 |
The GNU <CODE>gettext</CODE> tool set contains <EM>everything</EM> maintainers |
|
27 |
need for internationalizing their packages for messages. It also |
|
28 |
contains quite useful tools for helping translators at localizing |
|
29 |
messages to their native language, once a package has already been |
|
30 |
internationalized. |
|
31 |
|
|
32 |
</P> |
|
33 |
<P> |
|
34 |
To achieve the Translation Project, we need many interested |
|
35 |
people who like their own language and write it well, and who are also |
|
36 |
able to synergize with other translators speaking the same language. |
|
37 |
If you'd like to volunteer to <EM>work</EM> at translating messages, |
|
38 |
please send mail to your translating team. |
|
39 |
|
|
40 |
</P> |
|
41 |
<P> |
|
42 |
Each team has its own mailing list, courtesy of Linux |
|
43 |
International. You may reach your translating team at the address |
|
44 |
<TT>`<VAR>ll</VAR>@li.org´</TT>, replacing <VAR>ll</VAR> by the two-letter ISO 639 |
|
45 |
code for your language. Language codes are <EM>not</EM> the same as |
|
46 |
country codes given in ISO 3166. The following translating teams |
|
47 |
exist: |
|
48 |
|
|
49 |
</P> |
|
50 |
|
|
51 |
<BLOCKQUOTE> |
|
52 |
<P> |
|
53 |
Chinese <CODE>zh</CODE>, Czech <CODE>cs</CODE>, Danish <CODE>da</CODE>, Dutch <CODE>nl</CODE>, |
|
54 |
Esperanto <CODE>eo</CODE>, Finnish <CODE>fi</CODE>, French <CODE>fr</CODE>, Irish |
|
55 |
<CODE>ga</CODE>, German <CODE>de</CODE>, Greek <CODE>el</CODE>, Italian <CODE>it</CODE>, |
|
56 |
Japanese <CODE>ja</CODE>, Indonesian <CODE>in</CODE>, Norwegian <CODE>no</CODE>, Polish |
|
57 |
<CODE>pl</CODE>, Portuguese <CODE>pt</CODE>, Russian <CODE>ru</CODE>, Spanish <CODE>es</CODE>, |
|
58 |
Swedish <CODE>sv</CODE> and Turkish <CODE>tr</CODE>. |
|
59 |
</BLOCKQUOTE> |
|
60 |
|
|
61 |
<P> |
|
62 |
For example, you may reach the Chinese translating team by writing to |
|
63 |
<TT>`zh@li.org´</TT>. When you become a member of the translating team |
|
64 |
for your own language, you may subscribe to its list. For example, |
|
65 |
Swedish people can send a message to <TT>`sv-request@li.org´</TT>, |
|
66 |
having this message body: |
|
67 |
|
|
68 |
</P> |
|
69 |
|
|
70 |
<PRE> |
|
71 |
subscribe |
|
72 |
</PRE> |
|
73 |
|
|
74 |
<P> |
|
75 |
Keep in mind that team members should be interested in <EM>working</EM> |
|
76 |
at translations, or at solving translational difficulties, rather than |
|
77 |
merely lurking around. If your team does not exist yet and you want to |
|
78 |
start one, please write to <TT>`translation@iro.umontreal.ca´</TT>; |
|
79 |
you will then reach the coordinator for all translator teams. |
|
80 |
|
|
81 |
</P> |
|
82 |
<P> |
|
83 |
A handful of GNU packages have already been adapted and provided |
|
84 |
with message translations for several languages. Translation |
|
85 |
teams have begun to organize, using these packages as a starting |
|
86 |
point. But there are many more packages and many languages for |
|
87 |
which we have no volunteer translators. If you would like to |
|
88 |
volunteer to work at translating messages, please send mail to |
|
89 |
<TT>`translation@iro.umontreal.ca´</TT> indicating what language(s) |
|
90 |
you can work on. |
|
91 |
|
|
92 |
</P> |
|
93 |
|
|
94 |
|
|
95 |
<H2><A NAME="SEC179" HREF="gettext_toc.html#TOC179">11.2 Introduction 1</A></H2> |
|
96 |
|
|
97 |
<P> |
|
98 |
This is now official, GNU is going international! Here is the |
|
99 |
announcement submitted for the January 1995 GNU Bulletin: |
|
100 |
|
|
101 |
</P> |
|
102 |
|
|
103 |
<BLOCKQUOTE> |
|
104 |
<P> |
|
105 |
A handful of GNU packages have already been adapted and provided |
|
106 |
with message translations for several languages. Translation |
|
107 |
teams have begun to organize, using these packages as a starting |
|
108 |
point. But there are many more packages and many languages |
|
109 |
for which we have no volunteer translators. If you'd like to |
|
110 |
volunteer to work at translating messages, please send mail to |
|
111 |
<SAMP>`translation@iro.umontreal.ca´</SAMP> indicating what language(s) |
|
112 |
you can work on. |
|
113 |
</BLOCKQUOTE> |
|
114 |
|
|
115 |
<P> |
|
116 |
This document should answer many questions for those who are curious about |
|
117 |
the process or would like to contribute. Please at least skim over it, |
|
118 |
hoping to cut down a little of the high volume of e-mail generated by this |
|
119 |
collective effort towards internationalization of free software. |
|
120 |
|
|
121 |
</P> |
|
122 |
<P> |
|
123 |
Most free programming which is widely shared is done in English, and |
|
124 |
currently, English is used as the main communicating language between |
|
125 |
national communities collaborating to free software. This very document |
|
126 |
is written in English. This will not change in the foreseeable future. |
|
127 |
|
|
128 |
</P> |
|
129 |
<P> |
|
130 |
However, there is a strong appetite from national communities for |
|
131 |
having more software able to write using national language and habits, |
|
132 |
and there is an on-going effort to modify free software in such a way |
|
133 |
that it becomes able to do so. The experiments driven so far raised |
|
134 |
an enthusiastic response from pretesters, so we believe that |
|
135 |
internationalization of free software is dedicated to succeed. |
|
136 |
|
|
137 |
</P> |
|
138 |
<P> |
|
139 |
For suggestion clarifications, additions or corrections to this |
|
140 |
document, please e-mail to <TT>`translation@iro.umontreal.ca´</TT>. |
|
141 |
|
|
142 |
</P> |
|
143 |
|
|
144 |
|
|
145 |
<H2><A NAME="SEC180" HREF="gettext_toc.html#TOC180">11.3 Discussions</A></H2> |
|
146 |
|
|
147 |
<P> |
|
148 |
Facing this internationalization effort, a few users expressed their |
|
149 |
concerns. Some of these doubts are presented and discussed, here. |
|
150 |
|
|
151 |
</P> |
|
152 |
|
|
153 |
<UL> |
|
154 |
<LI>Smaller groups |
|
155 |
|
|
156 |
Some languages are not spoken by a very large number of people, so people |
|
157 |
speaking them sometimes consider that there may not be all that much |
|
158 |
demand such versions of free software packages. Moreover, many people |
|
159 |
being <EM>into computers</EM>, in some countries, generally seem to prefer |
|
160 |
English versions of their software. |
|
161 |
|
|
162 |
On the other end, people might enjoy their own language a lot, and be |
|
163 |
very motivated at providing to themselves the pleasure of having their |
|
164 |
beloved free software speaking their mother tongue. They do themselves |
|
165 |
a personal favor, and do not pay that much attention to the number of |
|
166 |
people benefiting of their work. |
|
167 |
|
|
168 |
<LI>Misinterpretation |
|
169 |
|
|
170 |
Other users are shy to push forward their own language, seeing in this |
|
171 |
some kind of misplaced propaganda. Someone thought there must be some |
|
172 |
users of the language over the networks pestering other people with it. |
|
173 |
|
|
174 |
But any spoken language is worth localization, because there are |
|
175 |
people behind the language for whom the language is important and |
|
176 |
dear to their hearts. |
|
177 |
|
|
178 |
<LI>Odd translations |
|
179 |
|
|
180 |
The biggest problem is to find the right translations so that |
|
181 |
everybody can understand the messages. Translations are usually a |
|
182 |
little odd. Some people get used to English, to the extent they may |
|
183 |
find translations into their own language "rather pushy, obnoxious |
|
184 |
and sometimes even hilarious." As a French speaking man, I have |
|
185 |
the experience of those instruction manuals for goods, so poorly |
|
186 |
translated in French in Korea or Taiwan... |
|
187 |
|
|
188 |
The fact is that we sometimes have to create a kind of national |
|
189 |
computer culture, and this is not easy without the collaboration of |
|
190 |
many people liking their mother tongue. This is why translations are |
|
191 |
better achieved by people knowing and loving their own language, and |
|
192 |
ready to work together at improving the results they obtain. |
|
193 |
|
|
194 |
<LI>Dependencies over the GPL or LGPL |
|
195 |
|
|
196 |
Some people wonder if using GNU <CODE>gettext</CODE> necessarily brings their |
|
197 |
package under the protective wing of the GNU General Public License or |
|
198 |
the GNU Library General Public License, when they do not want to make |
|
199 |
their program free, or want other kinds of freedom. The simplest |
|
200 |
answer is "normally not". |
|
201 |
|
|
202 |
The <CODE>gettext-runtime</CODE> part of GNU <CODE>gettext</CODE>, i.e. the |
|
203 |
contents of <CODE>libintl</CODE>, is covered by the GNU Library General Public |
|
204 |
License. The <CODE>gettext-tools</CODE> part of GNU <CODE>gettext</CODE>, i.e. the |
|
205 |
rest of the GNU <CODE>gettext</CODE> package, is covered by the GNU General |
|
206 |
Public License. |
|
207 |
|
|
208 |
The mere marking of localizable strings in a package, or conditional |
|
209 |
inclusion of a few lines for initialization, is not really including |
|
210 |
GPL'ed or LGPL'ed code. However, since the localization routines in |
|
211 |
<CODE>libintl</CODE> are under the LGPL, the LGPL needs to be considered. |
|
212 |
It gives the right to distribute the complete unmodified source of |
|
213 |
<CODE>libintl</CODE> even with non-free programs. It also gives the right |
|
214 |
to use <CODE>libintl</CODE> as a shared library, even for non-free programs. |
|
215 |
But it gives the right to use <CODE>libintl</CODE> as a static library or |
|
216 |
to incorporate <CODE>libintl</CODE> into another library only to free |
|
217 |
software. |
|
218 |
|
|
219 |
</UL> |
|
220 |
|
|
221 |
|
|
222 |
|
|
223 |
<H2><A NAME="SEC181" HREF="gettext_toc.html#TOC181">11.4 Organization</A></H2> |
|
224 |
|
|
225 |
<P> |
|
226 |
On a larger scale, the true solution would be to organize some kind of |
|
227 |
fairly precise set up in which volunteers could participate. I gave |
|
228 |
some thought to this idea lately, and realize there will be some |
|
229 |
touchy points. I thought of writing to Richard Stallman to launch |
|
230 |
such a project, but feel it might be good to shake out the ideas |
|
231 |
between ourselves first. Most probably that Linux International has |
|
232 |
some experience in the field already, or would like to orchestrate |
|
233 |
the volunteer work, maybe. Food for thought, in any case! |
|
234 |
|
|
235 |
</P> |
|
236 |
<P> |
|
237 |
I guess we have to setup something early, somehow, that will help |
|
238 |
many possible contributors of the same language to interlock and avoid |
|
239 |
work duplication, and further be put in contact for solving together |
|
240 |
problems particular to their tongue (in most languages, there are many |
|
241 |
difficulties peculiar to translating technical English). My Swedish |
|
242 |
contributor acknowledged these difficulties, and I'm well aware of |
|
243 |
them for French. |
|
244 |
|
|
245 |
</P> |
|
246 |
<P> |
|
247 |
This is surely not a technical issue, but we should manage so the |
|
248 |
effort of locale contributors be maximally useful, despite the national |
|
249 |
team layer interface between contributors and maintainers. |
|
250 |
|
|
251 |
</P> |
|
252 |
<P> |
|
253 |
The Translation Project needs some setup for coordinating language |
|
254 |
coordinators. Localizing evolving programs will surely |
|
255 |
become a permanent and continuous activity in the free software community, |
|
256 |
once well started. |
|
257 |
The setup should be minimally completed and tested before GNU |
|
258 |
<CODE>gettext</CODE> becomes an official reality. The e-mail address |
|
259 |
<TT>`translation@iro.umontreal.ca´</TT> has been setup for receiving |
|
260 |
offers from volunteers and general e-mail on these topics. This address |
|
261 |
reaches the Translation Project coordinator. |
|
262 |
|
|
263 |
</P> |
|
264 |
|
|
265 |
|
|
266 |
|
|
267 |
<H3><A NAME="SEC182" HREF="gettext_toc.html#TOC182">11.4.1 Central Coordination</A></H3> |
|
268 |
|
|
269 |
<P> |
|
270 |
I also think GNU will need sooner than it thinks, that someone setup |
|
271 |
a way to organize and coordinate these groups. Some kind of group |
|
272 |
of groups. My opinion is that it would be good that GNU delegates |
|
273 |
this task to a small group of collaborating volunteers, shortly. |
|
274 |
Perhaps in <TT>`gnu.announce´</TT> a list of this national committee's |
|
275 |
can be published. |
|
276 |
|
|
277 |
</P> |
|
278 |
<P> |
|
279 |
My role as coordinator would simply be to refer to Ulrich any German |
|
280 |
speaking volunteer interested to localization of free software packages, and |
|
281 |
maybe helping national groups to initially organize, while maintaining |
|
282 |
national registries for until national groups are ready to take over. |
|
283 |
In fact, the coordinator should ease volunteers to get in contact with |
|
284 |
one another for creating national teams, which should then select |
|
285 |
one coordinator per language, or country (regionalized language). |
|
286 |
If well done, the coordination should be useful without being an |
|
287 |
overwhelming task, the time to put delegations in place. |
|
288 |
|
|
289 |
</P> |
|
290 |
|
|
291 |
|
|
292 |
<H3><A NAME="SEC183" HREF="gettext_toc.html#TOC183">11.4.2 National Teams</A></H3> |
|
293 |
|
|
294 |
<P> |
|
295 |
I suggest we look for volunteer coordinators/editors for individual |
|
296 |
languages. These people will scan contributions of translation files |
|
297 |
for various programs, for their own languages, and will ensure high |
|
298 |
and uniform standards of diction. |
|
299 |
|
|
300 |
</P> |
|
301 |
<P> |
|
302 |
From my current experience with other people in these days, those who |
|
303 |
provide localizations are very enthusiastic about the process, and are |
|
304 |
more interested in the localization process than in the program they |
|
305 |
localize, and want to do many programs, not just one. This seems |
|
306 |
to confirm that having a coordinator/editor for each language is a |
|
307 |
good idea. |
|
308 |
|
|
309 |
</P> |
|
310 |
<P> |
|
311 |
We need to choose someone who is good at writing clear and concise |
|
312 |
prose in the language in question. That is hard--we can't check |
|
313 |
it ourselves. So we need to ask a few people to judge each others' |
|
314 |
writing and select the one who is best. |
|
315 |
|
|
316 |
</P> |
|
317 |
<P> |
|
318 |
I announce my prerelease to a few dozen people, and you would not |
|
319 |
believe all the discussions it generated already. I shudder to think |
|
320 |
what will happen when this will be launched, for true, officially, |
|
321 |
world wide. Who am I to arbitrate between two Czekolsovak users |
|
322 |
contradicting each other, for example? |
|
323 |
|
|
324 |
</P> |
|
325 |
<P> |
|
326 |
I assume that your German is not much better than my French so that |
|
327 |
I would not be able to judge about these formulations. What I would |
|
328 |
suggest is that for each language there is a group for people who |
|
329 |
maintain the PO files and judge about changes. I suspect there will |
|
330 |
be cultural differences between how such groups of people will behave. |
|
331 |
Some will have relaxed ways, reach consensus easily, and have anyone |
|
332 |
of the group relate to the maintainers, while others will fight to |
|
333 |
death, organize heavy administrations up to national standards, and |
|
334 |
use strict channels. |
|
335 |
|
|
336 |
</P> |
|
337 |
<P> |
|
338 |
The German team is putting out a good example. Right now, they are |
|
339 |
maybe half a dozen people revising translations of each other and |
|
340 |
discussing the linguistic issues. I do not even have all the names. |
|
341 |
Ulrich Drepper is taking care of coordinating the German team. |
|
342 |
He subscribed to all my pretest lists, so I do not even have to warn |
|
343 |
him specifically of incoming releases. |
|
344 |
|
|
345 |
</P> |
|
346 |
<P> |
|
347 |
I'm sure, that is a good idea to get teams for each language working |
|
348 |
on translations. That will make the translations better and more |
|
349 |
consistent. |
|
350 |
|
|
351 |
</P> |
|
352 |
|
|
353 |
|
|
354 |
|
|
355 |
<H4><A NAME="SEC184" HREF="gettext_toc.html#TOC184">11.4.2.1 Sub-Cultures</A></H4> |
|
356 |
|
|
357 |
<P> |
|
358 |
Taking French for example, there are a few sub-cultures around computers |
|
359 |
which developed diverging vocabularies. Picking volunteers here and |
|
360 |
there without addressing this problem in an organized way, soon in the |
|
361 |
project, might produce a distasteful mix of internationalized programs, |
|
362 |
and possibly trigger endless quarrels among those who really care. |
|
363 |
|
|
364 |
</P> |
|
365 |
<P> |
|
366 |
Keeping some kind of unity in the way French localization of |
|
367 |
internationalized programs is achieved is a difficult (and delicate) job. |
|
368 |
Knowing the latin character of French people (:-), if we take this |
|
369 |
the wrong way, we could end up nowhere, or spoil a lot of energies. |
|
370 |
Maybe we should begin to address this problem seriously <EM>before</EM> |
|
371 |
GNU <CODE>gettext</CODE> become officially published. And I suspect that this |
|
372 |
means soon! |
|
373 |
|
|
374 |
</P> |
Also available in: Unified diff