Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFNCj-0051zT-0R for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 02:20:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFNCi-00BIK8-0l for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 02:20:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFNCh-00BIJz-32 for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 02:20:39 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wFNCf-00000002OrT-2ms6 for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 02:20:39 +0000 Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-50e63771eb0so27151421cf.3 for ; Tue, 21 Apr 2026 19:20:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776824435; cv=none; d=google.com; s=arc-20240605; b=dobSRc6kE7MIllTVTJ/eaVrW50Tl6oMSCbDLXvXS48p6cI+BD/uSzK/tRBF9d8X3E7 StPQl6Va4qa/nSniqbv+JTSfg+5RN5Up6FLlQFq8xdzFKuBWMIPIQx9VpaxhIjblltgV 0cHiJnZFKLoKbBD4UnHyzFq4wiSaCP9+Efcy3cdAeFeQ7gvt1XyFGmGWW2M1DivP4fhk rCmiNDNsTq2gLAto6Sfge3fsDy3ARB7YHiMg2gP1deccsmweGZQZTeWryteYMUjqF96p esRyEJZzjp70+CcvLfk5PbSE4wIVTkRETMZ3Sne9Zbe+fUCdxoigwZ09WvzNOxzix5ag Katg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=UWpVBA9VlOjts3etPL9cYbkZnrcFB2LpsdGnu/DTWf0=; fh=shiSyMTmlcxZxi4rkWv+FYAO34lF2nioefkq25qATKA=; b=iPl2MGBKteXFzSKpdYPA5Yq3k3AFH8uaxgGEWqDoB8w4DTS31V/r1hHgKev3MxW/yf CQIHRHOAOLSW1sk/Kwg9BUVJJGrittHD7eEFi8+XTFHlZ9HKqj0/CaGobePV8ndJOKsW JldCNbiH39u5UlB001KFl2WnUx3UkSYMq/GwGy1BCz8C/pa2CfEzMTnFLY6SnsbabLXg HkPSx/LTVKXThPsFb2SZJeLgPBJk0ksDsv+X5WJYa1GFVc0xJ8e+4Glw8OsxtkJ5/22J z6abxnuyewtt0ADEBmpI3CqQSDjJboRkYb2dEbNI+1Ewc1SP200/6147ijCuXqYURAXn 82Fg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776824435; x=1777429235; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UWpVBA9VlOjts3etPL9cYbkZnrcFB2LpsdGnu/DTWf0=; b=dwKCAqrTDfcWmx3sWldYcMKyZDKKEkHOsZSRFrIi1dCO76paHg95uKD3A2SyINSrRu ODB2FNpmvPKTW7kJ9YfUxVf6FeMxKEJA84JO883sJ5rx29lQ8XFuHvkSJFXfvnBIDWvD 4QxIc0gA19bmEkwQKpjs3qaKdIWa1pcihgIyKVf02CI0oyowfQ+VQXYtxUP44/+rLsxr IegXAg6lmNTGtqCWeIWyQc89vyobTNaLrV1jt/8ZN+WJo/99AqkYpDzSS2jiePmBG4tc +HWDLPzTLQbhbYlSzeSg4QJKCfWjZOntFpGMVl3Dmx1mAV4uI/d3HaxBJYkhkwqZgRmL tvPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776824435; x=1777429235; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UWpVBA9VlOjts3etPL9cYbkZnrcFB2LpsdGnu/DTWf0=; b=VGAszVOHtJwUqcO8C3uBmwX1fwiMBcFTnd8fHFYhvqCn0C/QggDFCC5HaTu5M6TnLr wnesZTuwSozdPc3xVXa573ssmFK/rZOZsjMN2EGgtu4u77a4hCvMTm3o+Kq2wmCHXjMm JwuKzmdk98zEgPqQTj5GxDboxUEUMwF1gAfMusq+9G/fo2Cq0EVivbuo4RneiSXRdGi/ 150+KDbMR+BEyiMYpFADroJU7n3NpAyiW8traz2DCgEOgdKcdYznHIQpBdcE8/+WG0Yv /NwKEal+iDpurhMXdsxC2ENrcvjRZ8kv2NVglZ8lIl5xi1823BN11T7w0Oh+AfUOK7BO Ns6g== X-Forwarded-Encrypted: i=1; AFNElJ8823VcILHlaw9QBkqNsaRUQmAL2ey2p70cBPnu1fty8yfVcI7YhnTb7UAr4Iun2FZFSmNdKiyRe24KHQsj@lists.postgresql.org X-Gm-Message-State: AOJu0YyPCPS5qPi+r/v26UbcbIbcAiuydr+RiVvsd8ViezIw5BbzLKXh LMLM7wnOR2bZpBwx8W03O3PnsQSS2krTVF95vBDY9IKCbCJWWAgrVW5mXIdWbENnX3SU3jadm4W AskpVPEna0E0bvdi/5i/6jJdB4IZyJ2o= X-Gm-Gg: AeBDieu6qGJegBTwCd72KSju4o4FREmDj4/CiISfPEmn+7e7m5Rb8ZrtqBhxytT+uPh IS8ZFVesMv/FPWe3VIQZ69gAYUuDbQyMhzpYnmAORW34vlmmSQckwNf8lTiRiubecO6r3qRAUG3 ZsPxScGkZ7SeETw/38Zq3Ep/wGBobh3lJUxvA1Ed4XA5cwGIwPSKYr/zBq2E9SSuLWmlRnKrcWo lhirQJQ6F3h01T5xmoLstQn3L39gYxpd153BKvLwHHVxfUDG+1JAwSdrI+J3oC/jihPHxp8YjX5 tXHy5/ibkopO1+e1xw== X-Received: by 2002:a05:622a:10e:b0:50b:29a6:8696 with SMTP id d75a77b69052e-50e3681d042mr315150781cf.7.1776824435472; Tue, 21 Apr 2026 19:20:35 -0700 (PDT) MIME-Version: 1.0 References: <883015.1776821474@sss.pgh.pa.us> In-Reply-To: <883015.1776821474@sss.pgh.pa.us> From: Peter Smith Date: Wed, 22 Apr 2026 12:20:08 +1000 X-Gm-Features: AQROBzAyhikfgSV7lP3ElFY6rIYDvrOwJDHzXPDbX9v81VRF3fpAAzr5SgvEbNY Message-ID: Subject: Re: Get rid of translation strings that only contain punctuation To: Tom Lane Cc: David Rowley , PostgreSQL Developers , Amit Kapila , Peter Eisentraut Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Apr 22, 2026 at 11:31=E2=80=AFAM Tom Lane wrote= : > > Peter Smith writes: > > On Wed, Apr 22, 2026 at 10:30=E2=80=AFAM David Rowley wrote: > >> Should we get rid of these? > > > This question overlaps with another thread of mine [1]. > > There, I was told that a punctuation double-quote (") *should* be tran= slated. > > It should be, but it *has to be translated as part of a coherent > message*. As the examples in [1] show, several languages translate > opening and closing double-quotes differently. So if you write _("\"") > there is zero hope of that being usefully translatable. > > This all goes back to the translatability guideline about not > constructing messages out of parts [2]. If you've got a single > punctuation mark as a separate string, you are violating both the > letter and the spirit of that guideline, and that has consequences > for translatability. > > regards, tom lane > > [1] https://www.postgresql.org/message-id/CAHut%2BPui7RaQ8OfJEVn2ry-ykjnG= c%2B3ujsFmcHDFw9FsXw_tRw%40mail.gmail.com > [2] https://www.postgresql.org/docs/devel/nls-programmer.html#NLS-GUIDELI= NES To my knowledge, we aren't violating that guideline because our substituted parts aren't words of a sentence; they are quoted names in a list e.g. Case#1: publication "XXX" has a problem Case#2: the following publications have a problem: "XXX", "YYY", "ZZZ" ~~~ Case#1 is easy. "publication \"%s\" has a problem" The quotes are part of the message, so they get translated as normal. Case#2 is more fiddly. "the following publications have a problem: %s" The substituted quoted-name list is constructed at runtime, but still, we require those quotes to be translated so that quoted-names in cases #1 and #2 look the same. =3D=3D=3D=3D=3D=3D Kind Regards, Peter Smith. Fujitsu Australia