Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Delphi - Ako najjednoduchšie lokalizovať program do viac jazykov?

Kedysi za čias TP som to raz skúsil. Robil som to štýlom:

const
  textzmazat = 1;
  textpridat = textzmazat + 1;

A takto to pokračovalo ďalej. V externom súbore som mal texty a tie som uložil do poľa. K tomuto poľu som už potom pristupoval ako k normálnym reťazcom pomocou uvedených konštánt.

Teraz uvažujem nad podobným problémom v Delphi. Napadlo ma, že už vtedy som tie číselné konštanty mohol nahradiť vymenovaným typom a práca by bola jednoduchšia o to pričítanie jednotky. Viem, že v Delphi je nejaká takáto možnosť pomocou zdrojov *.res, ale mojou podmienkou je prehľadný textový súbor s lokalizovanými textami ako v Total Commanderi alebo v PSPade. K poľu by som pristupoval ako k inicializačnému súboru *.ini (ako je to v PSPade) a na začiatku načítal celé pole textov. Samozrejme pri inicializácii formulárov sa musia nastaviť všetky texty na formulári podľa zvolenej lokalizácie.

Je aj jednoduchší spôsob lokalizácie v Delphi alebo je práve táto cesta správna?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Nemohu si pomoci, ale nejlépe měl lokalizace vyřešen AmigaOS 3.0 a vyšší - v zásadě textové soubory…
touchwood 20.05.2006 08:56
touchwood
Takže sčasti v tom vidím aj odpoveď na otázku vyššie položenú. Ak je program rozsiahly, čo zatiaľ u…
msx. 20.05.2006 13:46
msx.
Interni Delphi lokalizator dela vlastne DLL, ktere obsahuji nejen lokalizovane retezce, ale i pozice… nový
Jan Fiala 20.05.2006 13:53
Jan Fiala
Áno, ten program mám ešte teraz živý v pamäti.:)) Keď som ho upravoval minulý rok na inú aplikáciu,… poslední
msx. 20.05.2006 13:58
msx.
Strukturou jsi zrejme myslel treba XML. Pro preklad davam prednost prostemu textu - je tam jen to ne…
Jan Fiala 20.05.2006 13:50
Jan Fiala
Čiže vlastne ešte utilitka, čo upraví ostatné lokalizácie podľa angličtiny, ak som správne pochopil.… nový
msx. 20.05.2006 13:54
msx.

Nemohu si pomoci, ale nejlépe měl lokalizace vyřešen AmigaOS 3.0 a vyšší - v zásadě textové soubory s databázovým formátem s podporou napříč OS a aplikacemi. Bohužel implementace češtiny byla (kvůli konfliktům s některými řídicím znaky) docela problém.

Jinak správně -- základem je abstrakce od kódu. V závislosti na velikosti SW a tudíž i počtu lokalizovatelných stringů bych volil buď plaintext, nebo nějakou strukturu.

Takže sčasti v tom vidím aj odpoveď na otázku vyššie položenú. Ak je program rozsiahly, čo zatiaľ u mňa nehrozí, tak z konfiguračného súboru načítavať stringy postupne a keď malýá, tak na začiatku načítať všetko.

Ešte otázka: Ako to vlastne funguje v Delphi pomocou zdrojov? Tam sa dá tiež lokalizovať do viac jazykov, ale s tým, že nebudú lokalizované texty bežne prístupné a z hľadiska programového kódu sa pristupovať k lokalizovaným textom už jednoduchšie nedá. Mám pravdu?

Interni Delphi lokalizator dela vlastne DLL, ktere obsahuji nejen lokalizovane retezce, ale i pozice prvku na formulari. Tam si totiz muzes pohnout pri lokalizaci i s ovladacimi prvky, pokud by ti prekazely - male mito na text apod.
Ale operavdu to neni lokalizovatelne "zvenku"

Podivej se na priklad:
\Program Files\Borland\Delphi7\Demos\RichEdit\

Strukturou jsi zrejme myslel treba XML.
Pro preklad davam prednost prostemu textu - je tam jen to nezbytne minimum informaci, neni tam okolo zadna "omacka" jako elementy v XML.

Osobne to resim tak, ze pokud delam novou verzi, vezmu anglictinu, kterou udrzuji a pomoci ni sestavim znovu vsechny ostatni lokalizace. Takze retezce, ktere tam chybi dodam v anglictine a jeste je oznacim a retezce, ktere zmizi a anglictiny se tak odstrani ze vsech ostatnich lokalizaci automaticky. Clovek ktery updatuje lokalizaci pouze vyhleda par oznacenych retezcu, dolokalizuje a posle. Nemusi srovnavat a hledat co pribylo noveho.
Protoze je to od tech lidi prace dobrovolna, snazim se jim to co nejvic ulehcit.

Zpět do poradny Odpovědět na původní otázku Nahoru