Psaní vícejazyčné aplikace

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Středa Březen 19 21:00:13 CET 2008


On Tue, 18 Mar 2008, Michal Dobes wrote:

> Problém s použitím klasického i18n je, že to vypadá, že moc nepočítá
> s tím, že jedna aplikace používá současně několik jazyků.

No, můžete furt dokola přepínat locale, ale to není moc šikovný přístup,
zejména v multithreaded programu.

V C++ kupodivu někoho napadlo to udělat tak, že locale je explicitní
objekt, kterých si můžete v programu najednou držet, kolik chcete, ale je
to celkem divoké (viz <locale>).

V dostatečně čerstvé Glibc je takové více či méně experimentální rozšíření
locales, že lze pomocí uselocale() nastavovat zvlášť locale pro každý
thread. gettext by to měl být schopen používat. (viz U. Drepper: Thread-
aware Locale Model, <http://people.redhat.com/drepper/tllocale.ps.gz>)

> 	V podstatě v jednom případě na obrazovku obsluze dává data
> v ukrajinštině, jeho šéfovi na druhou v ruštině a do souborů generuje
> reporty majiteli ve francouzštině, v jiné instalaci to může být mix
> čínština/japonština/angličtina.

A nějaký hlubší důvod k tomu, aby proces, co se bezprostředně baví
s Ukrajincem, byl tentýž proces, co se baví s jeho ruským šéfem? Když bude
uživatelské rozhraní oddělené od backendů do zvláštních procesů, tak každý
může mít svoje locale a nebude co řešit (a dovolím si tvrdit, že to bude
žádoucí i z obecně architektonického hlediska).

-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21th century edition /




Další informace o konferenci Linux