Page 1 of 1
Lokalizace pluginů - skloňování podle číslovky
Posted: 30 Jul 2008, 17:59
by zarevak
Dobrý den,
pohrávám si s lokalizací pro rozepsaný Salamandeří plugin a narazil jsem na drobný problém: Skloňování podle číslovky
Japonština: 0 ファイル, 1 ファイル, 2 ファイル, ...

1 tvar
Angličtina: 0 files, 1 file, 2 files, ...

2 tvary
Čeština: 0 souborů, 1 soubor, 2 soubory, 5 souborů, 21 soubor, ...

3 tvary
Podle stránky
http://dev.eiffel.com/Internationalization/plural_forms existuje minimálně 9 různých způsobů, jak se různé tvary přiřazují k číslovkám.
Bohužel Salamandeří SLG soubory s jazyky jsou knihovny obsahující pouze lokalizované
resource, které těžko ovlivní své chování. Jak toto řešit? Mohu do SLG souboru přidat kód pro skloňování, ale tak nebude zachována
jednoduchost překladu.
Posted: 30 Jul 2008, 20:04
by manison
K tomuto účelu poskytuje Salamander metodu CSalamanderGeneralAbstract::ExpandPluralString, jako parametr je formátovací řetězec a číselné hodnoty, které slouží pro expanzi řetězce.
Např. pro češtinu bude formátovací řetězec vypadat následovně:
{!}%d soubo{rů|0|r|1|ry|4|rů}
pro angličtinu
{!}%d file{s|0||1|s}
atd.
Takto vám bude stačit v SLG resourcech jeden řetězec.
Pro více informací koukněte do hlavičkového souboru spl_gen.h na komentář k metodě ExpandPluralString a/nebo do zdrojáků demo pluginu.
Posted: 30 Jul 2008, 20:58
by zarevak
Wow, děkuji! Koukám, že Altap myslel na (skoro) všechno
Jestli tomu dobře rozumím, tak to však neumí řešit skloňování podle konců čísel - tedy
21 soubor. Je pravda, že toto se v češtině už skoro nepoužívá, ale nevím, jak je tomu v ostatních jazycích...
Posted: 30 Jul 2008, 21:13
by Jan Rysavy
Pokud na to narazíme, snad vymyslíme, jak zápis rozšířit při zachování zpětné kompatibility.
Jazyky do kterých byl lokalizován Salamander 1.52 by toto mělo pokrývat.
Posted: 12 Mar 2009, 20:57
by zarevak
Jen pro doplnění:
Čeština už tvary "21 soubor" moc nepoužívá a využívá z programovacího hlediska jednoduší tvar "21 souborů".
-
Jazyková poradna ÚJČ AV ČR: FAQ - "dvě stě jeden člověk – dvě stě jedna lidí"
Posted: 14 Mar 2009, 01:45
by fenghuang
zarevak wrote:Jen pro doplnění:
Čeština už tvary "21 soubor" moc nepoužívá a využívá z programovacího hlediska jednoduší tvar "21 souborů".
Zdravím, doufám že se trochu mýlíte, protože ve Vámi uvedeném příkladě jde o rozdíl mezi jednotným a množným číslem. Ale neznám souvislosti, takže budu mlčet

. (Příklad: "Byl nalezen 21 soubor." versus "Bylo nalezeno 21 souborů".) Resp. v tom odkazu jde o něco jiného, skutečně nepřirozeného, co mělo být změněno už mnohem dřív. Celé bych to napsal miniaturním písmem, kdybych věděl jak.
Možná že mi ale něco dost podstatného uniklo.

Posted: 14 Mar 2009, 06:18
by Jan Rysavy
fenghuang wrote:Zdravím, doufám že se trochu mýlíte, protože ve Vámi uvedeném příkladě jde o rozdíl mezi jednotným a množným číslem. Ale neznám souvislosti, takže budu mlčet

. (Příklad: "Byl nalezen 21 soubor." versus "Bylo nalezeno 21 souborů".) Resp. v tom odkazu jde o něco jiného, skutečně nepřirozeného, co mělo být změněno už mnohem dřív. Celé bych to napsal miniaturním písmem, kdybych věděl jak.
Možná že mi ale něco dost podstatného uniklo.

Co kdybyste uvedl nějaké zdroje a podložil svá tvrzení?
Článek ÚJČ AV ČR tady myslím mluví dost jasně a navíc se to shoduje s běžně používanou češtinou.
Re: Lokalizace pluginů - skloňování podle číslovky
Posted: 07 Apr 2009, 09:44
by zarevak
Projekt OpenTTD právě přešel v
revizi 15965 na
nové jednoduší tvary množných čísel češtiny
Pro zájemce kdyžtak funkce
DeterminePluralForm(..) v souboru
/src/strings.cpp
Re: Lokalizace pluginů - skloňování podle číslovky
Posted: 07 Apr 2009, 10:48
by Jan Rysavy
To vypadá našroubované natvrdo do kódu. Asi pro nás nic zajímavého?
Re:
Posted: 09 Apr 2009, 07:06
by fenghuang
Jan Rysavy wrote:fenghuang wrote:Zdravím, doufám že se trochu mýlíte, protože ve Vámi uvedeném příkladě jde o rozdíl mezi jednotným a množným číslem. Ale neznám souvislosti, takže budu mlčet

. (Příklad: "Byl nalezen 21 soubor." versus "Bylo nalezeno 21 souborů".) Resp. v tom odkazu jde o něco jiného, skutečně nepřirozeného, co mělo být změněno už mnohem dřív. Celé bych to napsal miniaturním písmem, kdybych věděl jak.
Možná že mi ale něco dost podstatného uniklo.

Co kdybyste uvedl nějaké zdroje a podložil svá tvrzení?
Článek ÚJČ AV ČR tady myslím mluví dost jasně a navíc se to shoduje s běžně používanou češtinou.
Tady není co řešit, žádné další zdroje nejsou třeba. Odkaz který uvedl zarevak říká, že mimo stupidního konstatování "máme dvacet a jeden soubor" je v moderní češtině povoleno i tvrzení že "máme dvacet jedna souborů". Stanovisko ÚJČ AV ČR v tomto případě vůbec není podstatné. Desítky nebo stovky, tisíce, milióny, miliardy... to je přece úplně jedno.
Jde asi o nějaké nedorozumění. A hlavně se to vůbec netýká AS.