[PATCH] Update l10n guide

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Describe the high-level overview of the localization workflow, and update
the description on po/git.pot file, which no longer is an untracked file.

Clarify the roles and responsibilities among:

 - the core developers (responsible for marking the translatable strings
   and restructuring the code to avoid message-lego);

 - the l10n coordinator (maintaining po/git.pot, interfacing with language
   teams and feeding updated translations back to the core); and

 - the language teams (updating po/*.po for their language and feeding
   their work back to the l10n coordinator).

This is largely based on an earlier message $gmane/189584 from me.

  Date: Wed, 01 Feb 2012 20:56:18 -0800
  Message-ID: <7vmx91ygst.fsf@xxxxxxxxxxxxxxxxxxxxxxxx>

Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx>
---

 * I would like to see something like this before we start getting the
   second language team.  Comments are very much appreciated.

   I am not sure if the existing instruction to update the new XX.po
   file copied from git.pot is correct, but I left it as-is.

    @@ -1,6 +1,6 @@
    -# Icelandic translations for PACKAGE package.
    -# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER
    -# This file is distributed under the same license as the PACKAGE package.
    +# Icelandic translations for Git.
    +# Copyright (C) 2010 Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx>
    +# This file is distributed under the same license as the Git package.
     # Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx>, 2010.

   The second line of the template tells us to name the copyright holder
   of the package, not of the translation, but the above example makes it
   appear as if we are assigning the copyright to the translator.

 po/README |  106 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
 po/TEAMS  |   10 ++++++
 2 files changed, 94 insertions(+), 22 deletions(-)
 create mode 100644 po/TEAMS

diff --git a/po/README b/po/README
index 10b0ad2..6480882 100644
--- a/po/README
+++ b/po/README
@@ -1,33 +1,78 @@
 Core GIT Translations
 =====================
 
-This directory holds the translations for the core of Git. This
-document describes how to add to and maintain these translations, and
-how to mark source strings for translation.
-
+This directory holds the translations for the core of Git. This document
+describes how you can contribute to the effort of enhancing the language
+coverage and maintaining the translation.
+
+The localization (l10n) coordinator, Jiang Xin <worldhello.net@xxxxxxxxx>,
+coordinates our localization effort in his repository:
+
+        https://github.com/gotgit/git-po/
+
+As a contributor for a language XX, you would fork this repository,
+prepare and/or update the translated message file po/XX.po (described
+later), and ask the l10n coordinator to pull your work.
+
+If there are multiple contributors for the same language, please first
+coordinate among yourselves and nominate the team leader for your
+language, so that the l10n coordinator only needs to interact with one
+person per language.
+
+For the list of exiting translations and language teams, see TEAMS file in
+this directory.
+
+The overall data-flow looks like this:
+
+    +-------------------+            +------------------+
+    | Git source code   | ---(1)---> | L10n coordinator |
+    | repository        | <---(4)--- | repository       |
+    +-------------------+            +------------------+
+                                          |      ^
+                                         (2)    (3)
+                                          V      |
+                                     +------------------+
+                                     | Language Team XX |
+                                     +------------------+
+
+ * Translatable strings are marked in the source file.
+ * L10n coordinator pulls from the source (1)
+ * L10n coordinator updates the message template po/git.pot
+ * Language team pulls from L10n coordinator (2)
+ * Language team updates the message file po/XX.po
+ * L10n coordinator pulls from Language team (3)
+ * L10n coordinator asks the result to be pulled (4).
+
+
+Maintaining the po/git.pot file
+-------------------------------
 
-Generating a .pot file
-----------------------
+(This is done by the l10n coordinator).
 
 The po/git.pot file contains a message catalog extracted from Git's
-sources. You need to generate it to add new translations with
-msginit(1), or update existing ones with msgmerge(1).
+sources. The l10n coordinator maintains it by adding new translations with
+msginit(1), or update existing ones with msgmerge(1).  In order to update
+the Git sources to extract the messages from, the l10n coordinator is
+expected to pull from the main git repository at strategic point in
+history (e.g. when a major release and release candidates are tagged),
+and then run "make pot" at the top-level directory.
 
-Since the file can be automatically generated it's not checked into
-git.git. To generate it do, at the top-level:
+Language contributors use this file to prepare translations for their
+language, but they are not expected to modify it.
 
-    make pot
 
+Initializing a XX.po file
+-------------------------
 
-Initializing a .po file
------------------------
+(This is done by the language teams).
 
-To add a new translation first generate git.pot (see above) and then
-in the po/ directory do:
+If your language XX does not have translated message file po/XX.po yet,
+you add a translation for the first time by running:
 
     msginit --locale=XX
 
-Where XX is your locale, e.g. "is", "de" or "pt_BR".
+in the po/ directory, where XX is the locale, e.g. "de", "is", "pt_BR",
+"zh_CN", etc.
 
 Then edit the automatically generated copyright info in your new XX.po
 to be correct, e.g. for Icelandic:
@@ -46,21 +91,36 @@ just "Git":
 
     perl -pi -e 's/(?<="Project-Id-Version: )PACKAGE VERSION/Git/' XX.po
 
+Once you are done testing the translation (see below), commit the result
+and ask the l10n coordinator to pull from you.
+
+
+Updating a XX.po file
+---------------------
 
-Updating a .po file
--------------------
+(This is done by the language teams).
 
-If there's an existing *.po file for your language but you need to
-update the translation you first need to generate git.pot (see above)
-and then in the po/ directory do:
+If you are replacing translation strings in an existing XX.po file to
+improve the translation, just edit the file.
+
+If there's an existing XX.po file for your language, but the repository
+of the l10n coordinator has newer po/git.pot file, you would need to first
+pull from the l10n coordinator (see the beginning of this document for its
+URL), and then update the existing translation by running:
 
     msgmerge --add-location --backup=off -U XX.po git.pot
 
-Where XX.po is the file you want to update.
+in the po/ directory, where XX.po is the file you want to update.
+
+Once you are done testing the translation (see below), commit the result
+and ask the l10n coordinator to pull from you.
+
 
 Testing your changes
 --------------------
 
+(This is done by the language teams, after creating or updating XX.po file).
+
 Before you submit your changes go back to the top-level and do:
 
     make
@@ -75,6 +135,8 @@ with a newline or not.
 Marking strings for translation
 -------------------------------
 
+(This is done by the core developers).
+
 Before strings can be translated they first have to be marked for
 translation.
 
diff --git a/po/TEAMS b/po/TEAMS
new file mode 100644
index 0000000..8ee6199
--- /dev/null
+++ b/po/TEAMS
@@ -0,0 +1,10 @@
+Core Git translation language teams
+(please keep the list sorted alphabetically on language field)
+
+Language:	is (Icelandic)
+Leader:		Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx>
+
+Language:	zh_CN (Simplified Chinese)
+Leader:		Jiang Xin <worldhello.net@xxxxxxxxx>
+Members:	Yichao Yu <yyc1992@xxxxxxxxx>
+		Riku <lu.riku@xxxxxxxxx>
-- 
1.7.9.2.344.g3e8c86

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]