Updated utils/README
This commit is contained in:
parent
7e4f22a0b6
commit
e307846c2d
72
util/README
72
util/README
|
@ -44,5 +44,77 @@ then relocate the files to the view directory. The files in the top-level view
|
||||||
directory are template files which do not require translation.
|
directory are template files which do not require translation.
|
||||||
|
|
||||||
|
|
||||||
|
Placeholders
|
||||||
|
|
||||||
|
Do not translate placeholders in strings! Things like %s, %d, %1$s and $somename
|
||||||
|
are used to add dynamic content to the string.
|
||||||
|
|
||||||
|
%s rappresent a dynamic string, like in "Welcome to %s"
|
||||||
|
%d rappresent a dynamic number, like in "%d new messages"
|
||||||
|
$somename is a variable like in php
|
||||||
|
In %1$s %2$s, the numbers are the position index of multiple dynamic content.
|
||||||
|
You could swap position in string of indexed placeholders.
|
||||||
|
e.g.
|
||||||
|
"%1$s's %2$s" => "John's photo", "John's item"
|
||||||
|
"%2$s di %1$s" => "foto di John", "elemento di John"
|
||||||
|
|
||||||
|
|
||||||
|
Plural
|
||||||
|
|
||||||
|
The tt() function supports plural form. Script extract.php write this in
|
||||||
|
strings.php as an array, one string for every plural form language supports:
|
||||||
|
|
||||||
|
$a->string["%d message sent"] = Array(
|
||||||
|
0 => "%d message sent",
|
||||||
|
1 => "%d messages sent",
|
||||||
|
);
|
||||||
|
|
||||||
|
The function string_plural_select($n) defined in strings.php, return the string
|
||||||
|
index to use, related to the numbers of item (value of $n).
|
||||||
|
|
||||||
|
This is modelled after ngettext function of GNU gettext.
|
||||||
|
More info at http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
|
||||||
|
|
||||||
|
|
||||||
|
Xgettext and .po workflow
|
||||||
|
|
||||||
|
1. Run utils/run_xgettext.sh script (on *unix sistems, with GNU xgettext installed)
|
||||||
|
This script runs xgettext on source tree, extracting strings from t() and tt()
|
||||||
|
functions, and creates a utils/messages.po file.
|
||||||
|
2. copy utils/messages.po to views/<langauage>/messages.po
|
||||||
|
3. open views/<langauage>/messages.po with a text editor and fill in infos in
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
|
||||||
|
(eg:
|
||||||
|
"Last-Translator: Guybrush Threepwood <gb@host.com>"
|
||||||
|
"Language-Team: Pirate Friendika <pirate-friendika-ml@host.com>\n"
|
||||||
|
"Language: pi\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
For the line
|
||||||
|
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||||
|
read GNU gettext manual at
|
||||||
|
http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
|
||||||
|
|
||||||
|
4. You could then translate the strings in text editor, but I suggest to use one
|
||||||
|
of the many .po editors out there, like QtLinguist
|
||||||
|
|
||||||
|
5. run
|
||||||
|
$ php utils/po2php.php views/<language>/messages.po
|
||||||
|
to create the strings.php file
|
||||||
|
|
||||||
|
When strings are added or modified in source, you could run
|
||||||
|
$ utils/run_xgettext.sh views/<language>/messages.po
|
||||||
|
to extraxt strings from source files and join them with the existing .po file:
|
||||||
|
new strings are added, the existing are not overwritten.
|
||||||
|
|
||||||
|
If you already translated Friendika using strings.php, you could import your old
|
||||||
|
translation to messages.po. Run:
|
||||||
|
$ php utils/php2po.php views/<language>/strings.php
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue