Re: [PATCH] i18n: Not add stripped contents for translation
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:13
Jiang Xin [off-list ref] writes:
The last two chars of the concatenate str from the i18n marked strings
(", ") will be stripped out by strbuf_setlen.
before: "new commits, modified content, "
end: "new commits, modified content"
If the translations won't end with COMMA+SPACE, will break the integrity
of the concatenate string. As for Chinese, COMMA+SPACE may translated to
"," -- a 3-byte UTF-8 Chinese comma character.Hmph. Why would that be a bad thing in the first place? For example, for the diff.c::print_stat_summary() message, you have this translation:
1 个文件被修改,插入 3 行(+),删除 3 行(-)
where the original would be: %d file changed, %d insertions(+), %d deletions(-). and I would imagine that it entirely is plausible if a native reader would wish to read a Japanese translation like this: 1個のファイルを変更、挿入 3 行(+)、削除 3 行(-) without using ASCII comma, but using "、" instead.
quoted hunk
diff --git a/wt-status.c b/wt-status.c index 9ffc535..0042dbc 100644 --- a/wt-status.c +++ b/wt-status.c@@ -245,11 +245,11 @@ static void wt_status_print_change_data(struct wt_status *s, if (d->new_submodule_commits || d->dirty_submodule) { strbuf_addstr(&extra, " ("); if (d->new_submodule_commits) - strbuf_addf(&extra, _("new commits, ")); + strbuf_addf(&extra, "%s, ", _("new commits")); if (d->dirty_submodule & DIRTY_SUBMODULE_MODIFIED) - strbuf_addf(&extra, _("modified content, ")); + strbuf_addf(&extra, "%s, ", _("modified content")); if (d->dirty_submodule & DIRTY_SUBMODULE_UNTRACKED) - strbuf_addf(&extra, _("untracked content, ")); + strbuf_addf(&extra, "%s, ", _("untracked content")); strbuf_setlen(&extra, extra.len - 2); strbuf_addch(&extra, ')'); }