aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Comuni <fabrix.xm@gmail.com>2011-03-18 12:36:34 +0100
committerFabio Comuni <fabrix.xm@gmail.com>2011-03-18 12:36:34 +0100
commite307846c2d89cf450ed2e7ddf8f325f5f4581f8f (patch)
tree4113c6f0ce14bfe10fd94fc0ffd52b8d6caf65e9
parent7e4f22a0b676c153f643345b9f449b22fb2500f4 (diff)
downloadvolse-hubzilla-e307846c2d89cf450ed2e7ddf8f325f5f4581f8f.tar.gz
volse-hubzilla-e307846c2d89cf450ed2e7ddf8f325f5f4581f8f.tar.bz2
volse-hubzilla-e307846c2d89cf450ed2e7ddf8f325f5f4581f8f.zip
Updated utils/README
-rw-r--r--util/README72
1 files changed, 72 insertions, 0 deletions
diff --git a/util/README b/util/README
index 285358b28..c6bc032a5 100644
--- a/util/README
+++ b/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.
+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
+
+
+