[PATCH 2 of 5] log: use new namespaces api to display names
Wagner Bruna
wagner.bruna+mercurial at gmail.com
Fri Jan 23 16:43:50 CST 2015
Just noted an i18n issue with this change (pushed as
http://selenic.com/hg/rev/07309e527df7 ):
On 07-01-2015 22:15, Sean Farley wrote:
> # HG changeset patch
> # User Sean Farley <sean.michael.farley at gmail.com>
> # Date 1413563197 25200
> # Fri Oct 17 09:26:37 2014 -0700
> # Node ID 541de5f46e66ee9f5941d576ab13665901d5fd95
> # Parent cb77acb042a9b5fb26f7e93f5d9b2939acbb67a7
> log: use new namespaces api to display names
>
> The only caveat here is that branches must be displayed first due to backwards
> compatibility. The order of namespaces is defined to be the 'update' order
> which, unfortunately, is not the same as log output order.
>
> It's worth mentioning that the log output is still translated the same as
> before since we are formating our strings the same way:
>
> # i18n: column positioning for "hg log"
> _("bookmark: %s\n") % bookmark
> becomes
>
> tname = _(("%s:" % ns.templatename).ljust(13) + "%s\n") % name
>
> when name == 'bookmark'. The ljust(13) keeps the strings and whitespace equal.
> Adding a new namespace is even easier now because the log output code doesn't
> need to change. A future programmer would just need to add the string to the
> corresponding .po file (which is the same as they would have had to do
> previously).
But translatable strings are extracted from the source code too, by parsing
those _() calls with hggettext (see "%.po" Makefile target). So we need
_("tag:"), _("bookmark:"), etc. somewhere in the code, or translators won't
even notice they need translating (I only noticed myself because I run stable
tip from sources, and supposedly completed pt_BR a few days ago).
There is also a formatting issue:
$ LANGUAGE=C hg log -r 3.3-rc
changeset: 23918:db8e3f7948b1
branch: stable
tag: 3.3-rc
parent: 23826:c90d195320c5
parent: 23917:3cbb5bf4035d
user: Matt Mackall <mpm at selenic.com>
date: Sat Jan 17 18:28:30 2015 -0800
summary: merge default into stable for 3.3 feature freeze
$ LANGUAGE=pt_BR hg log -r 3.3-rc
revisão: 23918:db8e3f7948b1
ramo: stable
tag: 3.3-rc
pai: 23826:c90d195320c5
pai: 23917:3cbb5bf4035d
usuário: Matt Mackall <mpm at selenic.com>
data: Sat Jan 17 18:28:30 2015 -0800
sumário: merge default into stable for 3.3 feature freeze
Those space-padded strings got an extra space because pt_BR needed 12 chars
for some reason (can't remember right now, but that could easily happen with
another language). But placing an extra space after "tag:" in its translation
("etiqueta: ") won't help here, because ljust() will keep returning a 13 char
string... Also, longer translations (or namespace names) won't get a space
between ':' and their values.
Regards,
Wagner
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the Mercurial-devel
mailing list