Byl jsem upozorněn na zajímavou možnost lokalizace za pomocí komponent LangMan a jelikož mne produkt opravdu zaujal tak na něho upozorňuji.
Autorem je Ing. Tomáš Halabala ze serveru regulace.org. Komponenty jsou pro nekomerční použití zdarma, jinak za 89 Kč pro jednu aplikaci, což je velmi příznivá cena a za to co umí je to celkem směšné. Navíc na stránkách je video ukazující použití komponent, což je ale také jedna z nejlepších ukázek jak v Delphi udělat aplikaci. Nevím jak dlouho to autor nacvičoval, ale celkem mne rychlostí a délkou prezentace dostal (a to si myslím, že jsem už něco zvládl). Podívejte se sami.
Podrobnější informace od autora: Balíček komponent LangMan slouží pro velice jednoduchou tvorbu multijazyčných aplikací v Delphi. Tyto komponenty vás doslova zprostí od všech starostí s programováním překladů, přepínání jazyků a zachovává plnou přehlednost ve zdrojovém kódu.
Svou aplikaci tvoříte v libovolném základním jazyce bez ohledu na nutnost budoucího překladu do dalších jazyků. Pouze u řetězců přiřazovaných za běhu programu je nutné se odvolávat na lexikony, jež jsou součástí této série komponent. Při návrhu formulářů je také dobré dbát na proměnnou délku řetězců. Všechno ostatní je plně automatické.
Výsledné jazykové soubory lze distribuovat jednak současně s aplikací, ale hlavně i samostatně, čímž lze jednoduše opravit nebo přidat nový jazyk v cílové aplikaci u uživatele. Další výhodou LangManu je schopnost jazyky dědit a to bez omezení hloubky. Lze dědit jazyk z jazyka a ten z jiného jazyka a tak dále, dokonce to vřele doporučuji. Má to tu výhodu, že při opomenutí přeložení nějaké komponenty může například slovenská verze vycházet z české či naopak, nebo americká z britské, rakouská z německé apod. Zároveň to dovoluje překládat některé jazyky pouze částečně, čímž lze zase ušetřit spoustu času.
LangMan sám automaticky vytvoří funkční odkazy ve zvoleném menu pro výběr jazyka. Nebo lze pro uživatelskou volbu jazyka do aplikace vložit vizuální komponentu TLangCombo případně TLangFlagsCombo. To vše je absolutně bez práce a bez složitého nastavování. Jednotlivým jazykům lze přiřadit i grafický symbol či vlajku, která se automaticky zobrazí v menu s výběrem jazyka.
LangMan podporuje znakovou sadu UNICODE a umí do libovolného jazyka automaticky překládat všechny standardní komponenty, které jsou obsaženy v Delphi do verze 2009 (včetně). Toto platí i pro zděděné vlastnosti od standardních komponent Delphi, tj. pokud vývojář použije pro svou komponentu standardní prvek Delphi, budou automaticky překládány i zděděné vlastnosti jeho komponenty. Cizí nebo vlastní komponenty, které nevychází ze standardních komponent lze překládat ručně v události OnChangeLanguage pomocí lexikonů nebo lze v jednotce LMAdditions s minimální obtížností doprogramovat automatický překlad libovolných jiných komponent.
Pokud je překlad některých vlastností nežádoucí, existuje samozřejmě i několik možností, jak překládání zakázat. Nejdříve bych ještě podotknul, že je LangMan dost inteligentní a nezahrnuje do překladu žádné zbytečnosti, nýbrž pouze ty vlastnosti komponent, jejichž překlad je v 99% žádoucí. Do překladů nejsou zahrnovány žádné řetězce, které neobsahují text. Dále nejsou překládány řetězce shodné s názvem příslušné komponenty. Překlad konkrétních vlastností lze navíc v nastavení jednoduše zakázat. Každý formulář může mít jiné nastavení.
Podle mne moc pěkné.