git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-gui: add a part about format strings in po/README

From
Michele Ballabio <barra_cuda@katamail.com>
Date
Aug 3, 2008, 11:12 UTC
Message-ID
<200808031312.14804.barra_cuda@katamail.com>
In-Reply-To
<20080803121131.589e672b@paolo-desktop>

This should help tranlators that need to reorder words and strings. Original explanation by Christian Stimming.

Also remove unneeded backslashes.
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
---
On Sunday 03 August 2008, Paolo Ciarrocchi wrote:
Show 15 quoted lines
> Shawn,
> a simple make in the git-gui-i18n repository fails with the following msg:
> paolo@paolo-desktop:~/git-gui-i18n$ make
> GITGUI_VERSION = 0.9.GITGUI-dirty
>     * new locations or Tcl/Tk interpreter
>     GEN git-gui
>     INDEX lib/
>     MSGFMT    po/bg.msg 391 translated.
>     MSGFMT    po/de.msg 383 translated, 5 fuzzy, 3 untranslated.
>     MSGFMT    po/es.msg 122 translated, 269 untranslated.
>     MSGFMT    po/fr.msg 391 translated.
>     MSGFMT    po/hu.msg 391 translated.
>     MSGFMT    po/it.msg make: *** [po/it.msg] Error 1
> 
> Before and after the following patch :-)

I think that's this commit: c6fb29db5a50df150280b641d3c2a6703589b529 (Fixed usage of positional parameters in it.po and ja.po). It didn't fix anything and was harmful instead.

Maybe this patch could be useful.
 po/README |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/po/README b/po/README
index 5e77a7d..595bbf5 100644
--- a/po/README
+++ b/po/README
@@ -101,7 +101,7 @@ matching msgid lines.  A few tips:
    "printf()"-like functions.  Make sure "%s", "%d", and "%%" in your
    translated messages match the original.
 
-   When you have to change the order of words, you can add "<number>\$"
+   When you have to change the order of words, you can add "<number>$"
    between '%' and the conversion ('s', 'd', etc.) to say "<number>-th
    parameter to the format string is used at this point".  For example,
    if the original message is like this:
@@ -111,12 +111,17 @@ matching msgid lines.  A few tips:
    and if for whatever reason your translation needs to say weight first
    and then length, you can say something like:
 
-	"WEIGHT IS %2\$d, LENGTH IS %1\$d"
+	"WEIGHT IS %2$d, LENGTH IS %1$d"
 
-   The reason you need a backslash before dollar sign is because
-   this is a double quoted string in Tcl language, and without
-   it the letter introduces a variable interpolation, which you
-   do not want here.
+   A format specification with a '*' (asterisk) refers to *two* arguments
+   instead of one, hence the succeeding argument number is two higher
+   instead of one. So, a message like this
+
+	"%s ... %*i of %*i %s (%3i%%)"
+
+   is equivalent to
+
+	"%1$s ... %2$*i of %4$*i %6$s (%7$3i%%)"
 
  - A long message can be split across multiple lines by ending the
    string with a double quote, and starting another string on the next
-- 
1.6.0.rc1
Previous: Paolo CiarrocchiNext: Michele Ballabio
Message 2 of 5 in “Update to it.po”
  1. Update to it.poPaolo Ciarrocchi, Aug 3, 2008
  2. git-gui: add a part about format strings in po/READMEMichele Ballabio, Aug 3, 2008
  3. Michele BallabioAug 3, 2008
  4. Paolo CiarrocchiAug 3, 2008
  5. Michele BallabioAug 3, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.