From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_ZEN_BLOCKED_OPENDNS autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 6E00422BC1 for ; Wed, 1 Oct 2025 19:21:38 +0200 (CEST) Received: (qmail 24197 invoked by uid 550); 1 Oct 2025 17:21:35 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com x-ms-reactions: disallow Received: (qmail 24168 invoked from network); 1 Oct 2025 17:21:34 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1759339285; x=1759944085; i=nullplan@gmx.net; bh=sX7/Mo1VEHJpbPwehqmKybaizp4n7DBMhV83esX4Xfk=; h=X-UI-Sender-Class:Date:From:To:Subject:Message-ID:References: MIME-Version:Content-Type:In-Reply-To:Content-Transfer-Encoding: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=pE4xCY85AvI4D8KPIW1oP2h2PWxLyiI/AZiUlFpQ/mpKrK3WvVLBWXFn6TJ6BFMC SUQaXRyjAXTSp3zRdck4k0T8rqQGEO+dXbgxqAh5LQvpyyRVkG/Bi+5TewF3AWOSl gQYZY4C4C1OA/MU/OLmtwT2YLfwZRbDpGAKUR2WYlXdVZ6sp9lzBjBW9ndoA1J6lY iXzb4+90VDYkuuJlIX3tIzpueZx3JRUrvraP8dV4EsqLgkHVXpg86tX0PpYAnHVuS 194Vj3qYJXLIqDYQq6CIgpUBd6ghHFYlCjsX8zGAAFbEOuxBeNOcTGs4UTF7sdFfL 5aNXWCHjpQ09u7t3FQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Date: Wed, 1 Oct 2025 19:21:24 +0200 From: Markus Wichmann To: musl@lists.openwall.com Message-ID: References: <20250917011406.GA11978@brightrain.aerifal.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Provags-ID: V03:K1:WyWIkUyar/p8akZbYffLw/jbuLVbpuY11tNB5wx+DjMdluYrwpD XXJaHqTZDjfaRdS7mcWPypgj6Xl1AIlMtsuoWNU4GJsxAfD0jr7OGpOCCs1EKds1lQ3Ovkh LLM09V4fgRDfqSJUG/K6Ntgtw3UVjUgrRHPkjDZTkeXFnzzHK95OaRaQRrLQRM1Sv6qUd2l k7XRUKHcqz5nAy/GNimzw== UI-OutboundReport: notjunk:1;M01:P0:8nqcfHMouuQ=;Xqd7RJUGYgGyr6mKKGutjWVPS7f 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 DlP0S3d6yoqeAVxEVNOg6tg== Content-Transfer-Encoding: quoted-printable Subject: Re: [musl] Selecting locale source format Am Wed, Oct 01, 2025 at 03:55:59PM +0200 schrieb Pablo Correa Gomez: > We got now a few replies from translators, and the most remarkable > thing that was brought up is how to deal with natural text whose > translations might change depending on context. Both plural forms and > declinations were brought up. >=20 > Discussing a bit with Rich, it seems that such thing will not be an > issue for strings related to the libc API, which is what is the biggest > concern of the work we are doing now. However, there are > implementation-dependent strings in libc, like dynamic linker messages, > which could potentially be added in the future. Still, since we are > setting the file format, it would be important to make sure that > whatever we come up now is flexible enough to not block future > development. Any thoughts? The msgfmt source format specified by POSIX allows multiple plurals and an arbitrary C expression to select the correct one. So that is one way to go. The alternative is to stay agnostic to numbers and just always use all forms in parentheses, e.g. "Loaded %d file(s)". While I appreciate that the necessity for an expression parser might increase complexity by a lot, what little I do remember of Russian suggest that not many simpler alternatives exist. In Russian, just for example, there are three numbered forms, namely the nominative singular, the nominative plural, and the genitive plural. The nominative singular is used whenever the number in question ends in 1 but not 11, the nominative plural is used for 2-4 but not 12-14, and the genitive plural is used in all other cases. That logic is specific to one language (although I suspect a lot might be shared with other Slavic languages), so it must be specified in the source format if the feature is desired at all. Ciao, Markus