[gcc(refs/vendors/ibm/heads/perf)] i18n: Fix translation of --help [PR93759]
Jiu Fu Guo
guojiufu@gcc.gnu.org
Thu Mar 19 05:47:28 GMT 2020
https://gcc.gnu.org/g:8d1780b56d0cb1d50115d4e925e81cd8b9cb2923
commit 8d1780b56d0cb1d50115d4e925e81cd8b9cb2923
Author: Jakub Jelinek <jakub@redhat.com>
Date: Fri Feb 21 22:01:03 2020 +0100
i18n: Fix translation of --help [PR93759]
The first two hunks make sure we actually translate what has been marked
for translation, i.e. the cl_options[...].help strings, rather than those
strings ammended in various ways, like:
_("%s Same as %s."), help, ...
or
"%s %s", help, _(use_diagnosed_msg)
The exgettext changes attempt to make sure that the cl_options[...].help
strings are marked as no-c-format, because otherwise if they happen
to contain a % character, such as the 90% substring, they will be marked
as c-format, which they aren't.
2020-02-21 Jakub Jelinek <jakub@redhat.com>
PR translation/93759
* opts.c (print_filtered_help): Translate help before appending
messages to it rather than after that.
* exgettext: For *.opt help texts, use __opt_help_text("...")
rather than _("...") in the $emsg file and pass options that
say that this implies no-c-format.
Diff:
---
gcc/ChangeLog | 6 ++++++
gcc/opts.c | 8 ++++----
gcc/po/ChangeLog | 7 +++++++
gcc/po/exgettext | 5 +++--
4 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 17c6587ff37..20e0b12927b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR translation/93759
+ * opts.c (print_filtered_help): Translate help before appending
+ messages to it rather than after that.
+
2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/PR92989
diff --git a/gcc/opts.c b/gcc/opts.c
index 7affeb41a96..ac160ed8404 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -1309,10 +1309,13 @@ print_filtered_help (unsigned int include_flags,
help = undocumented_msg;
}
+ /* Get the translation. */
+ help = _(help);
+
if (option->alias_target < N_OPTS
&& cl_options [option->alias_target].help)
{
- if (help == undocumented_msg)
+ if (option->help == NULL)
{
/* For undocumented options that are aliases for other options
that are documented, point the reader to the other option in
@@ -1347,9 +1350,6 @@ print_filtered_help (unsigned int include_flags,
help = new_help;
}
- /* Get the translation. */
- help = _(help);
-
/* Find the gap between the name of the
option and its descriptive text. */
tab = strchr (help, '\t');
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 9e763ea91b2..4fda0a4475b 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,10 @@
+2020-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR translation/93759
+ * exgettext: For *.opt help texts, use __opt_help_text("...")
+ rather than _("...") in the $emsg file and pass options that
+ say that this implies no-c-format.
+
2020-02-20 Joseph Myers <joseph@codesourcery.com>
* de.po: Update.
diff --git a/gcc/po/exgettext b/gcc/po/exgettext
index 7a86ed9a7f7..d648bdb36ee 100644
--- a/gcc/po/exgettext
+++ b/gcc/po/exgettext
@@ -227,6 +227,7 @@ END {
}
}
print emsg > posr
+ print "--keyword=__opt_help_text\n--flag=__opt_help_text:1:no-c-format" >> kopt
}'
) || exit
@@ -240,7 +241,7 @@ echo "scanning option files..." >&2
while (getline < file) {
if (/^[ \t]*(;|$)/ || !/^[^ \t]/) {
if (field > 2)
- printf("_(\"%s\")\n", line)
+ printf("__opt_help_text(\"%s\")\n", line)
field = 0
} else {
if ((field == 1) && /MissingArgError/) {
@@ -287,7 +288,7 @@ echo "scanning option files..." >&2
lineno++;
}
if (field > 2)
- printf("_(\"%s\")\n", line)
+ printf("__opt_help_text(\"%s\")\n", line)
}') >> $emsg
# Run the xgettext commands, with temporary added as a file to scan.
More information about the Gcc-cvs
mailing list