From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2122) id 414E73858C54; Thu, 19 Oct 2023 16:36:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 414E73858C54 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1697733376; bh=C6zPl/cWRPLOr6HamUZQq5vhKZAcCFlepR2UEcUcwz4=; h=From:To:Subject:Date:From; b=wccYMa6/WtdCWfOofNXMsLbzklxVKWKUMlbU1KUxJcL7CQtFXxr0zeWWZ6XjNEX3X yrKmN5SqyYMVyTo091akOq+QaPa6ZtgMH/+gfo1QmNjPDfqgFi/0znzzRcxXu3gZyC 8LIRPJmJfOz0jxlCWUtiNDuu6JS38XdkddSsU5Fg= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jason Merrill To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-4757] ABOUT-GCC-NLS: add usage guidance X-Act-Checkin: gcc X-Git-Author: Jason Merrill X-Git-Refname: refs/heads/trunk X-Git-Oldrev: 1ec36bcda366732d3d801c67e9f70e2868b7d0e2 X-Git-Newrev: 00e7c49fa04a3766e4726322b427621a74b78c71 Message-Id: <20231019163616.414E73858C54@sourceware.org> Date: Thu, 19 Oct 2023 16:36:15 +0000 (GMT) List-Id: https://gcc.gnu.org/g:00e7c49fa04a3766e4726322b427621a74b78c71 commit r14-4757-g00e7c49fa04a3766e4726322b427621a74b78c71 Author: Jason Merrill Date: Thu Oct 19 11:07:18 2023 -0400 ABOUT-GCC-NLS: add usage guidance gcc/ChangeLog: * ABOUT-GCC-NLS: Add usage guidance. Diff: --- gcc/ABOUT-GCC-NLS | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gcc/ABOUT-GCC-NLS b/gcc/ABOUT-GCC-NLS index e90a67144e34..9424de42e150 100644 --- a/gcc/ABOUT-GCC-NLS +++ b/gcc/ABOUT-GCC-NLS @@ -23,6 +23,22 @@ For example, GCC source code should not contain calls like `error ("unterminated comment")' instead, as it is the `error' function's responsibility to translate the message before the user sees it. +In general, use no markup for strings that are the immediate format string +argument of a diagnostic function. Use G_("str") for strings that will be +used as the format string for a diagnostic but are e.g. assigned to a +variable first. Use N_("str") for strings that are not diagnostic format +strings, but will still be translated later. Use _("str") for strings that +will not be translated elsewhere. It's important not to use _("str") in +the initializer of a statically allocated variable; use one of the others +instead and make sure that uses of that variable translate the string, +whether directly with _(msg) or by passing it to a diagnostic or other +function that performs the translation. + +Avoid using %s to compose a diagnostic message from multiple translatable +strings; instead, write out the full diagnostic message for each variant. +Only use %s for message components that do not need translation, such as +keywords. + By convention, any function parameter in the GCC sources whose name ends in `msgid' is expected to be a message requiring translation. If the parameter name ends with `gmsgid', it is assumed to be a GCC