Subject: [PATCH v4 0/4] Factorize i18n

From: "Jean-Noël Avila via GitGitGadget" <[email-masked]>
Date: Mon, 31 Jan 2022 22:07:45 +0000

This is a small series of i18n factorizations. Again the idea is to:

 * reduce the number of strings to translate
 * make life easier for translators by removing constant parts of the
   strings to translate
 * uniformize the UI by using a type of message for the a given type of
   condition.

Changes since V1:

 * factorize checks of more than 2 incompatible options into dedicated
   functions which list all the incompatible options present on the command
   line

Changes since V2:

 * switch to tab size 8
 * rename die_if* to die_for*
 * make 3 arg check a call to 4 arg check
 * switch another part to die_for_incompatible_opt4

Changes since V3:

 * remove spurious blank line
 * reword last commit to better reflect the changes

Jean-Noël Avila (4):
  i18n: factorize more 'incompatible options' messages
  i18n: factorize "invalid value" messages
  i18n: remove from i18n strings that do not hold translatable parts
  i18n: fix some misformated placeholders in command synopsis

 archive.c                                 |  2 +-
 builtin/am.c                              |  8 ++++--
 builtin/bisect--helper.c                  |  6 ++--
 builtin/blame.c                           |  7 +++--
 builtin/commit.c                          | 35 ++++++++++-------------
 builtin/count-objects.c                   |  2 +-
 builtin/difftool.c                        |  5 ++--
 builtin/fast-export.c                     |  2 +-
 builtin/fetch.c                           |  4 +--
 builtin/grep.c                            |  8 ++----
 builtin/hash-object.c                     |  2 +-
 builtin/help.c                            |  4 +--
 builtin/log.c                             |  5 ++--
 builtin/merge-base.c                      |  6 ++--
 builtin/mktag.c                           |  2 +-
 builtin/mktree.c                          |  2 +-
 builtin/notes.c                           |  6 ++--
 builtin/pack-objects.c                    |  2 +-
 builtin/prune-packed.c                    |  2 +-
 builtin/pull.c                            |  6 ++--
 builtin/push.c                            |  2 +-
 builtin/rebase.c                          |  2 +-
 builtin/reflog.c                          |  6 ++--
 builtin/remote.c                          |  2 +-
 builtin/replace.c                         |  2 +-
 builtin/rev-list.c                        |  2 +-
 builtin/send-pack.c                       |  2 +-
 builtin/sparse-checkout.c                 |  8 +++---
 builtin/stripspace.c                      |  4 +--
 builtin/submodule--helper.c               |  2 +-
 builtin/update-server-info.c              |  2 +-
 diff-merges.c                             |  2 +-
 gpg-interface.c                           |  6 ++--
 ls-refs.c                                 |  3 +-
 parallel-checkout.c                       |  4 +--
 parse-options.c                           | 34 ++++++++++++++++++++++
 parse-options.h                           | 16 +++++++++++
 sequencer.c                               |  2 +-
 setup.c                                   |  3 +-
 submodule-config.c                        |  2 +-
 t/t4150-am.sh                             |  2 +-
 t/t7500-commit-template-squash-signoff.sh |  2 +-
 42 files changed, 139 insertions(+), 87 deletions(-)

base-commit: 5d01301f2b865aa8dba1654d3f447ce9d21db0b5
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1123%2Fjnavila%2Ffactorize_i18n-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1123/jnavila/factorize_i18n-v4
Pull-Request: https://github.com/gitgitgadget/git/pull/1123

Range-diff vs v3:

 1:  aac3f9821c7 ! 1:  2eac2ef502b i18n: factorize more 'incompatible options' messages
     @@ parse-options.h: NORETURN void usage_msg_opt(const char *msg,
       /*
        * Use these assertions for callbacks that expect to be called with NONEG and
        * NOARG respectively, and do not otherwise handle the "unset" and "arg"
     -@@ parse-options.h: int parse_opt_tracking_mode(const struct option *, const char *, int);
     - #define OPT_PATHSPEC_FILE_NUL(v)  OPT_BOOL(0, "pathspec-file-nul", v, N_("with --pathspec-from-file, pathspec elements are separated with NUL character"))
     - #define OPT_AUTOSTASH(v) OPT_BOOL(0, "autostash", v, N_("automatically stash/stash pop before and after"))
     - 
     -+
     - #endif
      
       ## t/t7500-commit-template-squash-signoff.sh ##
      @@ t/t7500-commit-template-squash-signoff.sh: test_expect_success '--fixup=reword: give error with pathsec' '
 2:  078336ae418 = 2:  2d359118d8f i18n: factorize "invalid value" messages
 3:  d5ddd903df7 = 3:  cdaa576aac1 i18n: remove from i18n strings that do not hold translatable parts
 4:  b8e80e178ee ! 4:  f37b03128b2 i18n: transfer variables into placeholders in command synopsis
     @@ Metadata
      Author: Jean-Noël Avila <[email-masked]>
      
       ## Commit message ##
     -    i18n: transfer variables into placeholders in command synopsis
     +    i18n: fix some misformated placeholders in command synopsis
     +
     +     * add '<>' around arguments where missing
     +     * convert plurals into '...' forms
      
          This applies the style guide for documentation.
      
          Signed-off-by: Jean-Noël Avila <[email-masked]>
     +    Reviewed-by: Phillip Wood <[email-masked]>
      
       ## builtin/fast-export.c ##
      @@

-- 
gitgitgadget