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.
Lokalizace pluginů - skloňování podle číslovky
-
- Plugin Developer
- Posts: 216
- Joined: 09 Dec 2005, 23:23
- Location: Ceske Budejovice, Czech Republic
- Contact:
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.
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.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
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í"
Č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í"
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.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ů".
Možná že mi ale něco dost podstatného uniklo.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Co kdybyste uvedl nějaké zdroje a podložil svá tvrzení?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.
Č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
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
Pro zájemce kdyžtak funkce DeterminePluralForm(..) v souboru /src/strings.cpp
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Re: Lokalizace pluginů - skloňování podle číslovky
To vypadá našroubované natvrdo do kódu. Asi pro nás nic zajímavého?
Re:
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.Jan Rysavy wrote:Co kdybyste uvedl nějaké zdroje a podložil svá tvrzení?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.
Článek ÚJČ AV ČR tady myslím mluví dost jasně a navíc se to shoduje s běžně používanou češtinou.
Jde asi o nějaké nedorozumění. A hlavně se to vůbec netýká AS.