[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-i18n-doc
Subject:    mixed plural form handling
From:       Frederik Schwarzer <schwarzer () kde ! org>
Date:       2023-04-22 13:16:24
Message-ID: 2220748.iZASKD2KPV () swift
[Download RAW message or body]

Hi,

today I was nudged from this:
    https://invent.kde.org/sysadmin/l10n-scripty/-/issues/6#note_665802
    "Script kiddy generates endless daily commits that add and remove brackets"

What happens there is that the PO files sometimes have parens around the plural \
                condition and sometimes they do not, resulting in commits like this \
                (back and forth):
   -  "Plural-Forms: nplurals=2; plural=n != 1;\n"
   + "Plural-Forms: nplurals=2; plural=(n != 1);\n"

Since it seems only the German translation is affected, I started looking into what \
is happening and now I wonder why this is not a more wide spread issue. What I found:
- Scripty "check_po_files" removes parens from plural
- gettext "msginit" creates PO files with parens in the plural condition when run \
like this:  msginit --locale=de_DE.UTF-8 --no-wrap --no-translator --input=file.pot \
--output-file=file.po

So what happens is that I create missing PO files with msginit and introduce the \
parens in the summit folder. After that, "summit scatter" adds the parens to the PO \
files in the branches folders (l10n-kf5, l10n-kf6 ...) and then Scripty removes the \
parens. Then I add them again with scatter, then Scripty removes them again. \
Neverending story. Scripts against script.

When I search the Web, I find collections of plural forms sometimes with the parens, \
sometimes without.

https://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html
 nplurals=2; plural=(n != 1);

https://php-gettext.github.io/Languages/
de  German   2   n != 1

... just to name two. I guess, then, there is no right or wrong here but just "what \
we do". 

I would gladly just call "msginit" differently if it had a command line switch for \
that but I cannot find one.

So, how do other teams create missing PO files? I know it works with Lokalize (not \
sure if it uses parens then or not) but I prefer to do it with a script.

Thanks for any advice.

Cheers,
Frederik


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic