Hello Johannes W dniu 01.09.2016 o 09:52, Johannes Schindelin pisze: > On Wed, 31 Aug 2016, Jakub Narębski wrote: >> CC-ed to Jiang Xin, L10N coordinator. >> W dniu 29.08.2016 o 10:05, Johannes Schindelin pisze: [...] >>> - /* Different translation strings for cherry-pick and revert */ >>> - if (opts->action == REPLAY_PICK) >>> - error(_("Your local changes would be overwritten by cherry-pick.")); >>> - else >>> - error(_("Your local changes would be overwritten by revert.")); >>> + error(_("Your local changes would be overwritten by %s."), >>> + action_name(opts)); >> >> If I understand it correctly, it would make "revert" or "cherry-pick" >> untranslated part of error message. You would need to use translation >> on the result with "_(action_name(opts))", you would have to mark >> todo_command_strings elements for gettext lexicon with N_(...). >> >> I am rather against this change (see also below). > > Okay. > > Unfortunately, I have to focus on the correctness of the code at the > moment (and Git for Windows does ship *without* translations for the time > being anyway, mostly to save on space, but also because users complained). Users complained about having translations, or not having easy way to switch them or switch them off? > > So I will take care of this after v2.10.0. > > For the record, how is this supposed to be handled, in particular when I > introduce a new action whose action_name(opts) will be "rebase -i"? Do I > really need to repeat myself three times? I think you should be able to mark strings to be translated, without translating them at the time of definition, static const char *todo_command_strings[] = { N_("pick"), N_("revert") }; then translate at the point of use error(_("Your local changes would be overwritten by %s."), _(action_name(opts))); I assume that action_name(opts) returns one of todo_command_strings. If not, there should be array with possible actions. Assuming that such lego l10n is preferable to multiple translations, more free-formt. -- Jakub Narębski