Merge branch 'ja/i18n-common-messages'

Unify more messages to help l10n.

* ja/i18n-common-messages:
  i18n: fix some misformated placeholders in command synopsis
  i18n: remove from i18n strings that do not hold translatable parts
  i18n: factorize "invalid value" messages
  i18n: factorize more 'incompatible options' messages
This commit is contained in:
Junio C Hamano 2022-02-25 15:47:35 -08:00
commit d21d5ddfe6
42 changed files with 137 additions and 85 deletions

View File

@ -12,7 +12,7 @@
static char const * const archive_usage[] = {
N_("git archive [<options>] <tree-ish> [<path>...]"),
N_("git archive --list"),
"git archive --list",
N_("git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"),
N_("git archive --remote <repo> [--exec <cmd>] --list"),
NULL

View File

@ -199,7 +199,7 @@ static int am_option_parse_empty(const struct option *opt,
else if (!strcmp(arg, "keep"))
*opt_value = KEEP_EMPTY_COMMIT;
else
return error(_("Invalid value for --empty: %s"), arg);
return error(_("invalid value for '%s': '%s'"), "--empty", arg);
return 0;
}
@ -2239,7 +2239,8 @@ static int parse_opt_patchformat(const struct option *opt, const char *arg, int
* when you add new options
*/
else
return error(_("Invalid value for --patch-format: %s"), arg);
return error(_("invalid value for '%s': '%s'"),
"--patch-format", arg);
return 0;
}
@ -2282,7 +2283,8 @@ static int parse_opt_show_current_patch(const struct option *opt, const char *ar
break;
}
if (new_value >= ARRAY_SIZE(valid_modes))
return error(_("Invalid value for --show-current-patch: %s"), arg);
return error(_("invalid value for '%s': '%s'"),
"--show-current-patch", arg);
}
if (resume->mode == RESUME_SHOW_PATCH && new_value != resume->sub_mode)

View File

@ -22,15 +22,15 @@ static GIT_PATH_FUNC(git_path_bisect_run, "BISECT_RUN")
static const char * const git_bisect_helper_usage[] = {
N_("git bisect--helper --bisect-reset [<commit>]"),
N_("git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --term-new]"),
"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --term-new]",
N_("git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}=<term>]"
" [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] [<paths>...]"),
N_("git bisect--helper --bisect-next"),
"git bisect--helper --bisect-next",
N_("git bisect--helper --bisect-state (bad|new) [<rev>]"),
N_("git bisect--helper --bisect-state (good|old) [<rev>...]"),
N_("git bisect--helper --bisect-replay <filename>"),
N_("git bisect--helper --bisect-skip [(<rev>|<range>)...]"),
N_("git bisect--helper --bisect-visualize"),
"git bisect--helper --bisect-visualize",
N_("git bisect--helper --bisect-run <cmd>..."),
NULL
};

View File

@ -721,8 +721,8 @@ static int git_blame_config(const char *var, const char *value, void *cb)
}
if (!strcmp(var, "color.blame.repeatedlines")) {
if (color_parse_mem(value, strlen(value), repeated_meta_color))
warning(_("invalid color '%s' in color.blame.repeatedLines"),
value);
warning(_("invalid value for '%s': '%s'"),
"color.blame.repeatedLines", value);
return 0;
}
if (!strcmp(var, "color.blame.highlightrecent")) {
@ -739,7 +739,8 @@ static int git_blame_config(const char *var, const char *value, void *cb)
coloring_mode &= ~(OUTPUT_COLOR_LINE |
OUTPUT_SHOW_AGE_WITH_COLOR);
} else {
warning(_("invalid value for blame.coloring"));
warning(_("invalid value for '%s': '%s'"),
"blame.coloring", value);
return 0;
}
}

View File

@ -1242,8 +1242,6 @@ static int parse_and_validate_options(int argc, const char *argv[],
struct commit *current_head,
struct wt_status *s)
{
int f = 0;
argc = parse_options(argc, argv, prefix, options, usage, 0);
finalize_deferred_config(s);
@ -1251,7 +1249,7 @@ static int parse_and_validate_options(int argc, const char *argv[],
force_author = find_author_by_nickname(force_author);
if (force_author && renew_authorship)
die(_("Using both --reset-author and --author does not make sense"));
die(_("options '%s' and '%s' cannot be used together"), "--reset-author", "--author");
if (logfile || have_option_m || use_message)
use_editor = 0;
@ -1268,20 +1266,16 @@ static int parse_and_validate_options(int argc, const char *argv[],
die(_("You are in the middle of a rebase -- cannot amend."));
}
if (fixup_message && squash_message)
die(_("Options --squash and --fixup cannot be used together"));
if (use_message)
f++;
if (edit_message)
f++;
if (fixup_message)
f++;
if (logfile)
f++;
if (f > 1)
die(_("Only one of -c/-C/-F/--fixup can be used."));
if (have_option_m && (edit_message || use_message || logfile))
die((_("Option -m cannot be combined with -c/-C/-F.")));
if (f || have_option_m)
die(_("options '%s' and '%s' cannot be used together"), "--squash", "--fixup");
die_for_incompatible_opt4(!!use_message, "-C",
!!edit_message, "-c",
!!logfile, "-F",
!!fixup_message, "--fixup");
die_for_incompatible_opt4(have_option_m, "-m",
!!edit_message, "-c",
!!use_message, "-C",
!!logfile, "-F");
if (use_message || edit_message || logfile ||fixup_message || have_option_m)
template_file = NULL;
if (edit_message)
use_message = edit_message;
@ -1306,9 +1300,10 @@ static int parse_and_validate_options(int argc, const char *argv[],
if (patch_interactive)
interactive = 1;
if (also + only + all + interactive > 1)
die(_("Only one of --include/--only/--all/--interactive/--patch can be used."));
die_for_incompatible_opt4(also, "-i/--include",
only, "-o/--only",
all, "-a/--all",
interactive, "--interactive/-p/--patch");
if (fixup_message) {
/*
* We limit --fixup's suboptions to only alpha characters.

View File

@ -87,7 +87,7 @@ static int print_alternate(struct object_directory *odb, void *data)
}
static char const * const count_objects_usage[] = {
N_("git count-objects [-v] [-H | --human-readable]"),
"git count-objects [-v] [-H | --human-readable]",
NULL
};

View File

@ -732,8 +732,9 @@ int cmd_difftool(int argc, const char **argv, const char *prefix)
} else if (dir_diff)
die(_("options '%s' and '%s' cannot be used together"), "--dir-diff", "--no-index");
if (use_gui_tool + !!difftool_cmd + !!extcmd > 1)
die(_("options '%s', '%s', and '%s' cannot be used together"), "--gui", "--tool", "--extcmd");
die_for_incompatible_opt3(use_gui_tool, "--gui",
!!difftool_cmd, "--tool",
!!extcmd, "--extcmd");
if (use_gui_tool)
setenv("GIT_MERGETOOL_GUI", "true", 1);

View File

@ -26,7 +26,7 @@
#include "commit-slab.h"
static const char *fast_export_usage[] = {
N_("git fast-export [rev-list-opts]"),
N_("git fast-export [<rev-list-opts>]"),
NULL
};

View File

@ -764,8 +764,8 @@ static void prepare_format_display(struct ref *ref_map)
else if (!strcasecmp(format, "compact"))
compact_format = 1;
else
die(_("configuration fetch.output contains invalid value %s"),
format);
die(_("invalid value for '%s': '%s'"),
"fetch.output", format);
for (rm = ref_map; rm; rm = rm->next) {
if (rm->status == REF_STATUS_REJECT_SHALLOW ||

View File

@ -1167,11 +1167,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
if (!show_in_pager && !opt.status_only)
setup_pager();
if (!use_index && (untracked || cached))
die(_("--cached or --untracked cannot be used with --no-index"));
if (untracked && cached)
die(_("--untracked cannot be used with --cached"));
die_for_incompatible_opt3(!use_index, "--no-index",
untracked, "--untracked",
cached, "--cached");
if (!use_index || untracked) {
int use_exclude = (opt_exclude < 0) ? use_index : !!opt_exclude;

View File

@ -81,7 +81,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
{
static const char * const hash_object_usage[] = {
N_("git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] [--] <file>..."),
N_("git hash-object --stdin-paths"),
"git hash-object --stdin-paths",
NULL
};
const char *type = blob_type;

View File

@ -77,8 +77,8 @@ static struct option builtin_help_options[] = {
static const char * const builtin_help_usage[] = {
N_("git help [-a|--all] [--[no-]verbose]]\n"
" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"),
N_("git help [-g|--guides]"),
N_("git help [-c|--config]"),
"git help [-g|--guides]",
"git help [-c|--config]",
NULL
};

View File

@ -1993,8 +1993,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (rev.show_notes)
load_display_notes(&rev.notes_opt);
if (use_stdout + rev.diffopt.close_file + !!output_directory > 1)
die(_("options '%s', '%s', and '%s' cannot be used together"), "--stdout", "--output", "--output-directory");
die_for_incompatible_opt3(use_stdout, "--stdout",
rev.diffopt.close_file, "--output",
!!output_directory, "--output-directory");
if (use_stdout) {
setup_pager();

View File

@ -159,12 +159,14 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
if (argc < 2)
usage_with_options(merge_base_usage, options);
if (show_all)
die("--is-ancestor cannot be used with --all");
die(_("options '%s' and '%s' cannot be used together"),
"--is-ancestor", "--all");
return handle_is_ancestor(argc, argv);
}
if (cmdmode == 'r' && show_all)
die("--independent cannot be used with --all");
die(_("options '%s' and '%s' cannot be used together"),
"--independent", "--all");
if (cmdmode == 'o')
return handle_octopus(argc, argv, show_all);

View File

@ -7,7 +7,7 @@
#include "config.h"
static char const * const builtin_mktag_usage[] = {
N_("git mktag"),
"git mktag",
NULL
};
static int option_strict = 1;

View File

@ -63,7 +63,7 @@ static void write_tree(struct object_id *oid)
}
static const char *mktree_usage[] = {
N_("git mktree [-z] [--missing] [--batch]"),
"git mktree [-z] [--missing] [--batch]",
NULL
};

View File

@ -32,8 +32,8 @@ static const char * const git_notes_usage[] = {
N_("git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"),
N_("git notes [--ref <notes-ref>] show [<object>]"),
N_("git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"),
N_("git notes merge --commit [-v | -q]"),
N_("git notes merge --abort [-v | -q]"),
"git notes merge --commit [-v | -q]",
"git notes merge --abort [-v | -q]",
N_("git notes [--ref <notes-ref>] remove [<object>...]"),
N_("git notes [--ref <notes-ref>] prune [-n] [-v]"),
N_("git notes [--ref <notes-ref>] get-ref"),
@ -89,7 +89,7 @@ static const char * const git_notes_prune_usage[] = {
};
static const char * const git_notes_get_ref_usage[] = {
N_("git notes get-ref"),
"git notes get-ref",
NULL
};

View File

@ -3504,7 +3504,7 @@ static int option_parse_missing_action(const struct option *opt,
return 0;
}
die(_("invalid value for --missing"));
die(_("invalid value for '%s': '%s'"), "--missing", arg);
return 0;
}

View File

@ -3,7 +3,7 @@
#include "prune-packed.h"
static const char * const prune_packed_usage[] = {
N_("git prune-packed [-n | --dry-run] [-q | --quiet]"),
"git prune-packed [-n | --dry-run] [-q | --quiet]",
NULL
};

View File

@ -42,9 +42,9 @@ static enum rebase_type parse_config_rebase(const char *key, const char *value,
return v;
if (fatal)
die(_("Invalid value for %s: %s"), key, value);
die(_("invalid value for '%s': '%s'"), key, value);
else
error(_("Invalid value for %s: %s"), key, value);
error(_("invalid value for '%s': '%s'"), key, value);
return REBASE_INVALID;
}
@ -318,7 +318,7 @@ static const char *config_get_ff(void)
if (!strcmp(value, "only"))
return "--ff-only";
die(_("Invalid value for pull.ff: %s"), value);
die(_("invalid value for '%s': '%s'"), "pull.ff", value);
}
/**

View File

@ -486,7 +486,7 @@ static int git_push_config(const char *k, const char *v, void *cb)
if (value && !strcasecmp(value, "if-asked"))
set_push_cert_flags(flags, SEND_PACK_PUSH_CERT_IF_ASKED);
else
return error("Invalid value for '%s'", k);
return error(_("invalid value for '%s'"), k);
}
}
} else if (!strcmp(k, "push.recursesubmodules")) {

View File

@ -37,7 +37,7 @@ static char const * const builtin_rebase_usage[] = {
"[--onto <newbase> | --keep-base] [<upstream> [<branch>]]"),
N_("git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] "
"--root [<branch>]"),
N_("git rebase --continue | --abort | --skip | --edit-todo"),
"git rebase --continue | --abort | --skip | --edit-todo",
NULL
};

View File

@ -818,7 +818,7 @@ static int cmd_reflog_exists(int argc, const char **argv, const char *prefix)
*/
static const char reflog_usage[] =
N_("git reflog [ show | expire | delete | exists ]");
"git reflog [ show | expire | delete | exists ]";
int cmd_reflog(int argc, const char **argv, const char *prefix)
{

View File

@ -14,7 +14,7 @@
#include "commit-reach.h"
static const char * const builtin_remote_usage[] = {
N_("git remote [-v | --verbose]"),
"git remote [-v | --verbose]",
N_("git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>"),
N_("git remote rename <old> <new>"),
N_("git remote remove <name>"),

View File

@ -22,7 +22,7 @@ static const char * const git_replace_usage[] = {
N_("git replace [-f] <object> <replacement>"),
N_("git replace [-f] --edit <object>"),
N_("git replace [-f] --graft <commit> [<parent>...]"),
N_("git replace [-f] --convert-graft-file"),
"git replace [-f] --convert-graft-file",
N_("git replace -d <object>..."),
N_("git replace [--format=<format>] [-l [<pattern>]]"),
NULL

View File

@ -20,7 +20,7 @@
#include "packfile.h"
static const char rev_list_usage[] =
"git rev-list [OPTION] <commit-id>... [ -- paths... ]\n"
"git rev-list [<options>] <commit-id>... [-- <path>...]\n"
" limiting output:\n"
" --max-count=<n>\n"
" --max-age=<epoch>\n"

View File

@ -145,7 +145,7 @@ static int send_pack_config(const char *k, const char *v, void *cb)
if (value && !strcasecmp(value, "if-asked"))
args.push_cert = SEND_PACK_PUSH_CERT_IF_ASKED;
else
return error("Invalid value for '%s'", k);
return error(_("invalid value for '%s'"), k);
}
}
}

View File

@ -44,7 +44,7 @@ static void write_patterns_to_file(FILE *fp, struct pattern_list *pl)
}
static char const * const builtin_sparse_checkout_list_usage[] = {
N_("git sparse-checkout list"),
"git sparse-checkout list",
NULL
};
@ -419,7 +419,7 @@ static int update_modes(int *cone_mode, int *sparse_index)
}
static char const * const builtin_sparse_checkout_init_usage[] = {
N_("git sparse-checkout init [--cone] [--[no-]sparse-index]"),
"git sparse-checkout init [--cone] [--[no-]sparse-index]",
NULL
};
@ -765,7 +765,7 @@ static int sparse_checkout_set(int argc, const char **argv, const char *prefix)
}
static char const * const builtin_sparse_checkout_reapply_usage[] = {
N_("git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"),
"git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]",
NULL
};
@ -803,7 +803,7 @@ static int sparse_checkout_reapply(int argc, const char **argv)
}
static char const * const builtin_sparse_checkout_disable_usage[] = {
N_("git sparse-checkout disable"),
"git sparse-checkout disable",
NULL
};

View File

@ -15,8 +15,8 @@ static void comment_lines(struct strbuf *buf)
}
static const char * const stripspace_usage[] = {
N_("git stripspace [-s | --strip-comments]"),
N_("git stripspace [-c | --comment-lines]"),
"git stripspace [-s | --strip-comments]",
"git stripspace [-c | --comment-lines]",
NULL
};

View File

@ -2884,7 +2884,7 @@ static int module_config(int argc, const char **argv, const char *prefix)
const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper config <name> [<value>]"),
N_("git submodule--helper config --unset <name>"),
N_("git submodule--helper config --check-writeable"),
"git submodule--helper config --check-writeable",
NULL
};

View File

@ -4,7 +4,7 @@
#include "parse-options.h"
static const char * const update_server_info_usage[] = {
N_("git update-server-info [--force]"),
"git update-server-info [--force]",
NULL
};

View File

@ -78,7 +78,7 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg)
diff_merges_setup_func_t func = func_by_opt(optarg);
if (!func)
die(_("unknown value for --diff-merges: %s"), optarg);
die(_("invalid value for '%s': '%s'"), "--diff-merges", optarg);
func(revs);

View File

@ -716,7 +716,7 @@ int git_gpg_config(const char *var, const char *value, void *cb)
return config_error_nonbool(var);
fmt = get_format_by_name(value);
if (!fmt)
return error("unsupported value for %s: %s",
return error(_("invalid value for '%s': '%s'"),
var, value);
use_format = fmt;
return 0;
@ -731,8 +731,8 @@ int git_gpg_config(const char *var, const char *value, void *cb)
free(trust);
if (ret)
return error("unsupported value for %s: %s", var,
value);
return error(_("invalid value for '%s': '%s'"),
var, value);
return 0;
}

View File

@ -34,7 +34,8 @@ static void ensure_config_read(void)
} else if (!strcmp(str, "ignore")) {
/* do nothing */
} else {
die(_("invalid value '%s' for lsrefs.unborn"), str);
die(_("invalid value for '%s': '%s'"),
"lsrefs.unborn", str);
}
}
config_read = 1;

View File

@ -39,8 +39,8 @@ void get_parallel_checkout_configs(int *num_workers, int *threshold)
if (env_workers && *env_workers) {
if (strtol_i(env_workers, 10, num_workers)) {
die("invalid value for GIT_TEST_CHECKOUT_WORKERS: '%s'",
env_workers);
die(_("invalid value for '%s': '%s'"),
"GIT_TEST_CHECKOUT_WORKERS", env_workers);
}
if (*num_workers < 1)
*num_workers = online_cpus();

View File

@ -1092,3 +1092,37 @@ void NORETURN usage_msg_optf(const char * const fmt,
usage_msg_opt(msg.buf, usagestr, options);
}
void die_for_incompatible_opt4(int opt1, const char *opt1_name,
int opt2, const char *opt2_name,
int opt3, const char *opt3_name,
int opt4, const char *opt4_name)
{
int count = 0;
const char *options[4];
if (opt1)
options[count++] = opt1_name;
if (opt2)
options[count++] = opt2_name;
if (opt3)
options[count++] = opt3_name;
if (opt4)
options[count++] = opt4_name;
switch (count) {
case 4:
die(_("options '%s', '%s', '%s', and '%s' cannot be used together"),
opt1_name, opt2_name, opt3_name, opt4_name);
break;
case 3:
die(_("options '%s', '%s', and '%s' cannot be used together"),
options[0], options[1], options[2]);
break;
case 2:
die(_("options '%s' and '%s' cannot be used together"),
options[0], options[1]);
break;
default:
break;
}
}

View File

@ -240,6 +240,22 @@ void NORETURN usage_msg_optf(const char *fmt,
const char * const *usagestr,
const struct option *options, ...);
void die_for_incompatible_opt4(int opt1, const char *opt1_name,
int opt2, const char *opt2_name,
int opt3, const char *opt3_name,
int opt4, const char *opt4_name);
static inline void die_for_incompatible_opt3(int opt1, const char *opt1_name,
int opt2, const char *opt2_name,
int opt3, const char *opt3_name)
{
die_for_incompatible_opt4(opt1, opt1_name,
opt2, opt2_name,
opt3, opt3_name,
0, "");
}
/*
* Use these assertions for callbacks that expect to be called with NONEG and
* NOARG respectively, and do not otherwise handle the "unset" and "arg"

View File

@ -2802,7 +2802,7 @@ static int populate_opts_cb(const char *key, const char *value, void *data)
return error(_("invalid key: %s"), key);
if (!error_flag)
return error(_("invalid value for %s: %s"), key, value);
return error(_("invalid value for '%s': '%s'"), key, value);
return 0;
}

View File

@ -559,7 +559,8 @@ static enum extension_result handle_extension(const char *var,
return config_error_nonbool(var);
format = hash_algo_by_name(value);
if (format == GIT_HASH_UNKNOWN)
return error("invalid value for 'extensions.objectformat'");
return error(_("invalid value for '%s': '%s'"),
"extensions.objectformat", value);
data->hash_algo = format;
return EXTENSION_OK;
}

View File

@ -497,7 +497,7 @@ static int parse_config(const char *var, const char *value, void *data)
else if (parse_submodule_update_strategy(value,
&submodule->update_strategy) < 0 ||
submodule->update_strategy.type == SM_UPDATE_COMMAND)
die(_("invalid value for %s"), var);
die(_("invalid value for '%s'"), var);
} else if (!strcmp(item.buf, "shallow")) {
if (!me->overwrite && submodule->recommend_shallow != -1)
warn_multiple_config(me->treeish_name, submodule->name,

View File

@ -1169,7 +1169,7 @@ test_expect_success 'invalid when passing the --empty option alone' '
test_when_finished "git am --abort || :" &&
git checkout empty-commit^ &&
test_must_fail git am --empty empty-commit.patch 2>err &&
echo "error: Invalid value for --empty: empty-commit.patch" >expected &&
echo "error: invalid value for '\''--empty'\'': '\''empty-commit.patch'\''" >expected &&
test_cmp expected err
'

View File

@ -442,7 +442,7 @@ test_expect_success '--fixup=reword: give error with pathsec' '
'
test_expect_success '--fixup=reword: -F give error message' '
echo "fatal: Only one of -c/-C/-F/--fixup can be used." >expect &&
echo "fatal: options '\''-F'\'' and '\''--fixup'\'' cannot be used together" >expect &&
test_must_fail git commit --fixup=reword:HEAD~ -F msg 2>actual &&
test_cmp expect actual
'