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

Re: Is there any interest in localizing term delimiters in git messages?

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 18, 2023, 02:47 UTC
Message-ID
<xmqqwmvkve83.fsf@gitster.g>
In-Reply-To
<CANYiYbHK90Ptq5v4EbquyRA7N9jo=xwkg=WuM=r60Wh9HMxdyA@mail.gmail.com>
Jiang Xin <worldhello.net@gmail.com> writes:
> Starting with the release of git 2.34.0 two years ago, we had a new
> l10n pipeline and the git-po-helper tool as part of our l10n workflow.
> The first version of git-po-helper introduced a validator to protect
> git command parameters and variable names in megid.

Ahh, that is the piece I was missing. I didn't know you guys are doing extra checks that could trigger false positives.

Show 12 quoted lines
> E.g. In pull
> request 541 (https://github.com/git-l10n/git-po/pull/541), a
> mismatched variable name "new_index" was reported in bg.po as below:
>
>     level=warning msg="mismatch variable names in msgstr: new_index"
>     level=warning msg=">> msgid: unable to write new_index file"
>     level=warning msg=">> msgstr: новият индекс не може да бъде записан"
>
> And po/bg.po changed as below:
>
>     msgid "unable to write new_index file"
>     msgstr "новият индекс (new_index) не може да бъде записан"

Wait. Is this supposed to be a good example of validator working well? We use this exact message three times in builtin/commit.c; is the validator insisting on the translated message to have verbatim string "new_index" in it so that the end-users will see it?

I may still be confused, but if that is what is going on, I think it is a wrong validation in this particular case. I can understand if we were creating say .git/new_index file and it helps the end users to diagnose a troubled repository by running "ls .git" to see if a file called "new_index" exists and getting in the way, but I do not think it is the case. A new file ".git/index.lock" is created via repo_hold_locked_index() and I do not think it helps the end-user to know that we may be calling it "new_index" internally among the developers' circle. If the message were about "index.lock", it might be a different story, but such an error would probably have been issued long before write_locked_index() gets called.

I'd suggest doing s/new_index/new index/ to msgid string for these anyway.

> Later, more validators were introduced into git-po-helper for checking
> git config name, place holders, etc. "git-po-helper" used a list of
> regular expressions to find git config names, placeholders, and there
> are some false positive cases need to be ignored.

OK, and "<file>" in msgid string, for example, will automatically insist on the translated msgstr string to have a string that is enclosed by a pair of such angle brackets, regardless of the target language convention? If so, I can now understand where Alexander comes from (assuming that the common convention in Bulgarian language is not to use a pair of angle brackets to highlight such a placeholder word).

I can see that you have a lot better handle on the matter than I do, so I trust you and Alexander can resolve what the best "validation" (and possibly override per language) should be in the git-po-helper tool.

Thanks for explaining.
Previous: Jiang XinNext: Junio C Hamano
Message 4 of 12 in “Is there any interest in localizing term delimiters in git messages?”
  1. Alexander ShopovOct 17, 2023
  2. Junio C HamanoOct 17, 2023
  3. Jiang XinOct 18, 2023
  4. Junio C HamanoOct 18, 2023
  5. commit: do not use cryptic "new_index" in end-user facing messagesJunio C Hamano, Oct 18, 2023
  6. Jiang XinOct 19, 2023
  7. Junio C HamanoOct 19, 2023
  8. Jeff HostetlerOct 19, 2023
  9. Junio C HamanoOct 19, 2023
  10. Torsten BögershausenOct 19, 2023
  11. Junio C HamanoOct 19, 2023
  12. Peter KreftingOct 21, 2023

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.