Hi John, > This method is better for several reasons: 1. It avoids the danger of > cut and paste errors. 2. Naive translators can't translate the urls > (it's amazing how many do things like that!) 3. Should the urls ever > change, only this file has to be updated rather than every single > translation. > > * lib/version-etc.c: Take URLS out of translatable strings.
Good suggestion. I've added it to the GNU gettext manual: https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=22456ebdad40b188bf03b02ec5c58796f16838d5 > + printf (_("%s home page: <%s/%s/>\n"), PACKAGE_NAME, > + "https://www.gnu.org/software", PACKAGE); Taking your argument further: The shape of the URL can change, it's not necessarily of the form "%s/%s/". So move that logic out of the translatable string as well. And formatting newlines also can be moved out of the translatable string. I'm thus committing this: 2019-05-11 John Darrington <j...@darrington.wattle.id.au> Bruno Haible <br...@clisp.org> version-etc: Ease translation. * lib/version-etc.c (version_etc_arn, emit_bug_reporting_address): Move URLs and formatting newlines out of translatable string. diff --git a/lib/version-etc.c b/lib/version-etc.c index 9ca9a56..f6b26ef 100644 --- a/lib/version-etc.c +++ b/lib/version-etc.c @@ -82,14 +82,17 @@ version_etc_arn (FILE *stream, locale. Otherwise, do not translate "(C)"; leave it as-is. */ fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); - fputs (_("\ -\n\ -License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n\ + fputs ("\n", stream); + + /* TRANSLATORS: The %s placeholder is the web address of the GPL license. */ + fprintf (stream, _("\ +License GPLv3+: GNU GPL version 3 or later <%s>.\n\ This is free software: you are free to change and redistribute it.\n\ There is NO WARRANTY, to the extent permitted by law.\n\ -\n\ "), - stream); + "https://gnu.org/licenses/gpl.html"); + + fputs ("\n", stream); switch (n_authors) { @@ -238,11 +241,12 @@ version_etc (FILE *stream, void emit_bug_reporting_address (void) { + fputs ("\n", stdout); /* TRANSLATORS: The placeholder indicates the bug-reporting address for this package. Please add _another line_ saying "Report translation bugs to <...>\n" with the address for translation bugs (typically your translation team's web or email address). */ - printf (_("\nReport bugs to: %s\n"), PACKAGE_BUGREPORT); + printf (_("Report bugs to: %s\n"), PACKAGE_BUGREPORT); #ifdef PACKAGE_PACKAGER_BUG_REPORTS printf (_("Report %s bugs to: %s\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_BUG_REPORTS); @@ -250,9 +254,9 @@ emit_bug_reporting_address (void) #ifdef PACKAGE_URL printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); #else - printf (_("%s home page: <https://www.gnu.org/software/%s/>\n"), - PACKAGE_NAME, PACKAGE); + printf (_("%s home page: <%s>\n"), + PACKAGE_NAME, "https://www.gnu.org/software/" PACKAGE "/"); #endif - fputs (_("General help using GNU software: <https://www.gnu.org/gethelp/>\n"), - stdout); + printf (_("General help using GNU software: <%s>\n"), + "https://www.gnu.org/gethelp/"); }