From: Junio C Hamano Date: Tue, 28 Oct 2025 13:43:26 GMT Subject: Re: [PATCH 3/5] fast-export: mark strings for translation Message-ID: In-Reply-To: <20251028081232.3068147-4-christian.couder@gmail.com> Christian Couder writes: > Some error or warning messages in "builtin/fast-export.c" are marked > for translation, but many are not. > > To be more consistent and provide a better experience to people using a > translated version, let's mark all the remaining error or warning > messages for translation. Makes sense. Should we also downcase some Unknown and Unexpected? > While at it, improve how some arguments to some error functions are > indented. OK. > Signed-off-by: Christian Couder > --- > builtin/fast-export.c | 77 ++++++++++++++++++++++--------------------- > 1 file changed, 39 insertions(+), 38 deletions(-) > > diff --git a/builtin/fast-export.c b/builtin/fast-export.c > index dc2486f9a8..cb532f6325 100644 > --- a/builtin/fast-export.c > +++ b/builtin/fast-export.c > @@ -65,7 +65,7 @@ static int parse_opt_sign_mode(const struct option *opt, > return 0; > > if (parse_sign_mode(arg, val)) > - return error("Unknown %s mode: %s", opt->long_name, arg); > + return error(_("Unknown %s mode: %s"), opt->long_name, arg); > > return 0; > } > @@ -82,7 +82,7 @@ static int parse_opt_tag_of_filtered_mode(const struct option *opt, > else if (!strcmp(arg, "rewrite")) > *val = REWRITE; > else > - return error("Unknown tag-of-filtered mode: %s", arg); > + return error(_("Unknown tag-of-filtered mode: %s"), arg); > return 0; > } > > @@ -107,7 +107,7 @@ static int parse_opt_reencode_mode(const struct option *opt, > if (!strcasecmp(arg, "abort")) > *val = REENCODE_ABORT; > else > - return error("Unknown reencoding mode: %s", arg); > + return error(_("Unknown reencoding mode: %s"), arg); > } > > return 0; > @@ -318,16 +318,16 @@ static void export_blob(const struct object_id *oid) > } else { > buf = odb_read_object(the_repository->objects, oid, &type, &size); > if (!buf) > - die("could not read blob %s", oid_to_hex(oid)); > + die(_("could not read blob %s"), oid_to_hex(oid)); > if (check_object_signature(the_repository, oid, buf, size, > type) < 0) > - die("oid mismatch in blob %s", oid_to_hex(oid)); > + die(_("oid mismatch in blob %s"), oid_to_hex(oid)); > object = parse_object_buffer(the_repository, oid, type, > size, buf, &eaten); > } > > if (!object) > - die("Could not read blob %s", oid_to_hex(oid)); > + die(_("Could not read blob %s"), oid_to_hex(oid)); > > mark_next_object(object); > > @@ -336,7 +336,7 @@ static void export_blob(const struct object_id *oid) > printf("original-oid %s\n", oid_to_hex(oid)); > printf("data %"PRIuMAX"\n", (uintmax_t)size); > if (size && fwrite(buf, size, 1, stdout) != 1) > - die_errno("could not write blob '%s'", oid_to_hex(oid)); > + die_errno(_("could not write blob '%s'"), oid_to_hex(oid)); > printf("\n"); > > show_progress(); > @@ -499,10 +499,10 @@ static void show_filemodify(struct diff_queue_struct *q, > break; > > default: > - die("Unexpected comparison status '%c' for %s, %s", > - q->queue[i]->status, > - ospec->path ? ospec->path : "none", > - spec->path ? spec->path : "none"); > + die(_("Unexpected comparison status '%c' for %s, %s"), > + q->queue[i]->status, > + ospec->path ? ospec->path : _("none"), > + spec->path ? spec->path : _("none")); > } > } > } > @@ -699,14 +699,14 @@ static void handle_commit(struct commit *commit, struct rev_info *rev, > > author = strstr(commit_buffer_cursor, "\nauthor "); > if (!author) > - die("could not find author in commit %s", > + die(_("could not find author in commit %s"), > oid_to_hex(&commit->object.oid)); > author++; > commit_buffer_cursor = author_end = strchrnul(author, '\n'); > > committer = strstr(commit_buffer_cursor, "\ncommitter "); > if (!committer) > - die("could not find committer in commit %s", > + die(_("could not find committer in commit %s"), > oid_to_hex(&commit->object.oid)); > committer++; > commit_buffer_cursor = committer_end = strchrnul(committer, '\n'); > @@ -781,8 +781,8 @@ static void handle_commit(struct commit *commit, struct rev_info *rev, > case REENCODE_NO: > break; > case REENCODE_ABORT: > - die("Encountered commit-specific encoding %.*s in commit " > - "%s; use --reencode=[yes|no] to handle it", > + die(_("Encountered commit-specific encoding %.*s in commit " > + "%s; use --reencode=[yes|no] to handle it"), > (int)encoding_len, encoding, > oid_to_hex(&commit->object.oid)); > } > @@ -798,11 +798,11 @@ static void handle_commit(struct commit *commit, struct rev_info *rev, > if (signatures.nr) { > switch (signed_commit_mode) { > case SIGN_ABORT: > - die("encountered signed commit %s; use " > - "--signed-commits= to handle it", > + die(_("encountered signed commit %s; use " > + "--signed-commits= to handle it"), > oid_to_hex(&commit->object.oid)); > case SIGN_WARN_VERBATIM: > - warning("exporting %"PRIuMAX" signature(s) for commit %s", > + warning(_("exporting %"PRIuMAX" signature(s) for commit %s"), > (uintmax_t)signatures.nr, oid_to_hex(&commit->object.oid)); > /* fallthru */ > case SIGN_VERBATIM: > @@ -812,7 +812,7 @@ static void handle_commit(struct commit *commit, struct rev_info *rev, > } > break; > case SIGN_WARN_STRIP: > - warning("stripping signature(s) from commit %s", > + warning(_("stripping signature(s) from commit %s"), > oid_to_hex(&commit->object.oid)); > /* fallthru */ > case SIGN_STRIP: > @@ -890,7 +890,8 @@ static void handle_tag(const char *name, struct tag *tag) > tagged = ((struct tag *)tagged)->tagged; > } > if (tagged->type == OBJ_TREE) { > - warning("Omitting tag %s,\nsince tags of trees (or tags of tags of trees, etc.) are not supported.", > + warning(_("Omitting tag %s,\nsince tags of trees (or tags " > + "of tags of trees, etc.) are not supported."), > oid_to_hex(&tag->object.oid)); > return; > } > @@ -898,7 +899,7 @@ static void handle_tag(const char *name, struct tag *tag) > buf = odb_read_object(the_repository->objects, &tag->object.oid, > &type, &size); > if (!buf) > - die("could not read tag %s", oid_to_hex(&tag->object.oid)); > + die(_("could not read tag %s"), oid_to_hex(&tag->object.oid)); > message = memmem(buf, size, "\n\n", 2); > if (message) { > message += 2; > @@ -936,17 +937,17 @@ static void handle_tag(const char *name, struct tag *tag) > if (signature) > switch (signed_tag_mode) { > case SIGN_ABORT: > - die("encountered signed tag %s; use " > - "--signed-tags= to handle it", > + die(_("encountered signed tag %s; use " > + "--signed-tags= to handle it"), > oid_to_hex(&tag->object.oid)); > case SIGN_WARN_VERBATIM: > - warning("exporting signed tag %s", > + warning(_("exporting signed tag %s"), > oid_to_hex(&tag->object.oid)); > /* fallthru */ > case SIGN_VERBATIM: > break; > case SIGN_WARN_STRIP: > - warning("stripping signature from tag %s", > + warning(_("stripping signature from tag %s"), > oid_to_hex(&tag->object.oid)); > /* fallthru */ > case SIGN_STRIP: > @@ -961,8 +962,8 @@ static void handle_tag(const char *name, struct tag *tag) > if (!tagged_mark) { > switch (tag_of_filtered_mode) { > case TAG_FILTERING_ABORT: > - die("tag %s tags unexported object; use " > - "--tag-of-filtered-object= to handle it", > + die(_("tag %s tags unexported object; use " > + "--tag-of-filtered-object= to handle it"), > oid_to_hex(&tag->object.oid)); > case DROP: > /* Ignore this tag altogether */ > @@ -1026,7 +1027,7 @@ static struct commit *get_commit(struct rev_cmdline_entry *e, const char *full_n > tag = (struct tag *)tag->tagged; > } > if (!tag) > - die("Tag %s points nowhere?", e->name); > + die(_("Tag %s points nowhere?"), e->name); > return (struct commit *)tag; > } > default: > @@ -1064,7 +1065,7 @@ static void get_tags_and_duplicates(struct rev_cmdline_info *info) > > commit = get_commit(e, full_name); > if (!commit) { > - warning("%s: Unexpected object of type %s, skipping.", > + warning(_("%s: Unexpected object of type %s, skipping."), > e->name, > type_name(e->item->type)); > free(full_name); > @@ -1079,7 +1080,7 @@ static void get_tags_and_duplicates(struct rev_cmdline_info *info) > free(full_name); > continue; > default: /* OBJ_TAG (nested tags) is already handled */ > - warning("Tag points to object of unexpected type %s, skipping.", > + warning(_("Tag points to object of unexpected type %s, skipping."), > type_name(commit->object.type)); > free(full_name); > continue; > @@ -1175,7 +1176,7 @@ static void export_marks(char *file) > > f = fopen_for_writing(file); > if (!f) > - die_errno("Unable to open marks file %s for writing.", file); > + die_errno(_("Unable to open marks file %s for writing."), file); > > for (i = 0; i < idnums.size; i++) { > if (deco->base && deco->base->type == 1) { > @@ -1192,7 +1193,7 @@ static void export_marks(char *file) > e |= ferror(f); > e |= fclose(f); > if (e) > - error("Unable to write marks file %s.", file); > + error(_("Unable to write marks file %s."), file); > } > > static void import_marks(char *input_file, int check_exists) > @@ -1215,20 +1216,20 @@ static void import_marks(char *input_file, int check_exists) > > line_end = strchr(line, '\n'); > if (line[0] != ':' || !line_end) > - die("corrupt mark line: %s", line); > + die(_("corrupt mark line: %s"), line); > *line_end = '\0'; > > mark = strtoumax(line + 1, &mark_end, 10); > if (!mark || mark_end == line + 1 > || *mark_end != ' ' || get_oid_hex(mark_end + 1, &oid)) > - die("corrupt mark line: %s", line); > + die(_("corrupt mark line: %s"), line); > > if (last_idnum < mark) > last_idnum = mark; > > type = odb_read_object_info(the_repository->objects, &oid, NULL); > if (type < 0) > - die("object not found: %s", oid_to_hex(&oid)); > + die(_("object not found: %s"), oid_to_hex(&oid)); > > if (type != OBJ_COMMIT) > /* only commits */ > @@ -1236,12 +1237,12 @@ static void import_marks(char *input_file, int check_exists) > > commit = lookup_commit(the_repository, &oid); > if (!commit) > - die("not a commit? can't happen: %s", oid_to_hex(&oid)); > + die(_("not a commit? can't happen: %s"), oid_to_hex(&oid)); > > object = &commit->object; > > if (object->flags & SHOWN) > - error("Object %s already has a mark", oid_to_hex(&oid)); > + error(_("Object %s already has a mark"), oid_to_hex(&oid)); > > mark_object(object, mark); > > @@ -1395,7 +1396,7 @@ int cmd_fast_export(int argc, > get_tags_and_duplicates(&revs.cmdline); > > if (prepare_revision_walk(&revs)) > - die("revision walk setup failed"); > + die(_("revision walk setup failed")); > > revs.reverse = 1; > revs.diffopt.format_callback = show_filemodify;