4
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
5
<link rel="STYLESHEET" type="text/css" href="pgadmin3.css">
6
<title>Translation steps</title>
12
<H3>Translation guidelines</H3>
13
<p>Traditionally, it is hard to translate
14
strings dealing with database technologies. We will first try to
15
outline the difficulties of translation, before proposing writing and
16
translating guidelines. If you are translating pgAdmin3, skip
17
directly to Translating guidelines at the bottom of the page.
19
<H3>Translation problems</H3>
20
<p>Structured Query Language (SQL) is
21
based on the English language. SQL queries cannot be translated into
22
another language. For example, "SELECT * FROM table_foo WHERE
23
clause;" will not be translated.
25
<p>Sometimes, the border between the SQL
26
language and the English language is not obvious, because SQL was
27
designed to be close as possible to natural language. For example,
28
there are three possible translations for "Create View"
29
into French, depending on the context: "Crer vue"
30
or "Create View" or "Crer Vue".
32
<p>The difficulty for the user is to keep
33
in mind the correspondence between English and translated words. In
34
our example "View" is translated into "Vue",
35
which is an easy correspondence (called "translation pair"
36
afterwards). But with dozens of translation pairs like
37
"Trigger/D�clencheur", "Row/Ligne",
38
"Column/Colonne", you need to keep in mind many variations
39
and turn yourself into a translator, which was not the aim of the
42
<p>In some languages, translation of SQL
43
keywords and database objects do not exist yet, because the community
44
of users is not large enough to define a language consensus. In such
45
cases, translators try to innovate, creating translated words which
46
enrich vocabulary but do not clarify the software interface. The
47
problem is that other translators may not be aware of the new
48
vocabulary, trying to impose their own translation choices.
50
<p>As a result, translations lack
51
consistency, users have difficulties to find the corresponding SQL
52
keywords to write their queries and finally ... turn to the English
53
version of the software.
55
<p>Also, we should keep in mind that
56
English has very few grammar rules compared to other European
57
languages, which have complex cases (feminine/neutral/masculine) and
58
derivation (nominative, accusative, dative, etc...). Non-European
59
languages sometimes do not have verbs, adjectives and others
60
aggregate nouns. This causes many translation problems when
61
programmers try to build sentences like "Create a new %s"
62
to handle cases like "Create a new View", "Create a
63
new Table", etc... Let's study this example in more detail:
67
a new %s" is translated into French by "Crer
68
nouveau/nouvelle %s" to handle feminine/masculine cases, which
69
is not very obvious. In German, "%s" will not be replaced
70
safely by a noun, because it must be derivated in accusative case.
71
In several European languages, the replacement of "%s" by
75
aggregative languages will not express the two words "new %s"
76
separately but will join them, either writing "%snew" or
77
"new%s" in a single noun, with derivation and cases.
78
Hungarian is an example where "%s" constructions will
81
<li><p>Also, in non-European languages,
82
adjectives like "new" or verbs like "create" may
83
not exist and be expressed by a suffix or a prefix. In such cases,
84
translating "Create a new %s" is simply impossible.
87
<p>When you start translating pgAdmin3,
88
PhpPgAdmin3 or PostgreSQL into your mother tongue, you will soon
89
notice this kind of problem. The only solution is to define writing
90
and translation guidelines and to stick to them.
92
<H3>Writing guidelines</H3>
93
<p>We propose a very simple solution
94
based on the idea that a developer/writer should always try to make a
95
clear difference between SQL keywords and natural language. If
96
possible, SQL keywords and database objects should be written in
97
capital letters. For example, "Create a new view" should be
98
written "Create a new VIEW".
100
<p>Avoid the use of "%s" unless
101
the replaced sting is invariable, like it is the case for a product
102
name,a username, a password, etc... As such, "Successfully
103
connected to host: %s" and "User %s was disconnected"
106
<p>Never write a string like "Create
107
a new %s" for the reasons explained previously. You should write
108
"Create a new VIEW", "Create a new TABLE",
109
"Create a new INDEX", etc...
111
<H3>Translating guidelines</H3>
112
<p>Never translate SQL keywords written
113
in upper-case letters for the reasons explained before. In some cases
114
you might even break pgAdmin3 if you do!
116
<p>Stick as much as possible to words
117
which are close to the original SQL syntax. For example, in French,
118
you may use "vue" for "view", because both words
119
start with the letter "v". Do not choose distant words,
120
like "d�clencheur" for "trigger", because
121
entry-level users may not be able to make a good use of the SQL
122
syntax ... and ultimately switch to the English version. Sometimes
123
it's better to simply leave these keywords untranslated, instead of
124
creating a fancy word nobody will recognize.
126
<p>Please take special care about
127
including all %s and %d variable placeholders correctly. If you make
128
a typo error, the application might crash. On rare occasions, it
129
might be necessary to reorder placeholders. In the following
130
(fictive) example, both parameter positions are exchanged: "Server
131
%s user %s is logged in." could be translated by "L'utilisateur
132
%2$s est connect au serveur %1$s.". At the moment,
133
pgAdmin3 does not require any reorder placehorders, but it might
134
change in the future. Just be aware of it!
136
<p>Keyboard shortcuts are denoted by a
137
leading "&". For example "&Add", which is
138
translated into French by "&Ajouter", can be triggered
139
from keyboard using Alt + A. Be careful when changing letters, to
140
avoid keyboard entry conflicts within one menu. If you deviate from
141
the original shortcut keys, pgAdmin3 users might have problems
142
remembering shortcuts in both English and translated pgAdmin3
143
versions. Therefore, be careful creating new shortcuts if you cannot
144
choose the same letter.</p>
145
<p>Menu strings also contain hard coded
146
shortcuts (Ctrl-X) or function keys (F5). These can be identified by
147
a preceding \t (tab). If appropriate, the modifier key name may be
148
translated (Ctrl-), but the key combination must remain the same in
149
any case, because the behaviour is coded in pgAdmin3 source.</p>
150
<p>Most forms are not designed with
151
resizing capabilities, because this is quite hard work. The only
152
resizing forms are the function, view and rule property windows.
153
Therefore, you may need to shrink the translated text to the English
154
size. In general, we tried to leave enough space for translation
155
texts, but if you believe there are certain places we should spend
156
more space please let us know.</p>