Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=1102&lang=405, vytištěno: 28.02.2021 20:09:12

Hlavní stránkaProduktyProgramový systém Control WebČlánky

Vícejazyčné aplikace v systému Control Web
 Vícejazyčné aplikace bylo možné programově v systému Control Web realizovat vždy. Control Web 8 však přináší komfortní a jednoduchou práci s vícejazyčnými aplikacemi.

Vývojové prostředí systému Control Web 8 obsahuje Jazykový editor, který poskytuje komplexní podporu pro tvorbu vícejazyčných aplikací. Nejenom, že dokáže shromáždit veškeré texty použité v aplikaci na jedno místo, kde lze texty i upravovat, ale umožňuje přidávat (i odstraňovat) další jazykové mutace aplikace. Texty lze mezi jednotlivými definovanými jazyky kopírovat, je možné je exportovat do externího textového souboru vhodného pro překlad a samozřejmě umožňuje přeložené texty zpět importovat do aplikace. Důležité je, že i po dobu překladu textů lze aplikaci bez jakýchkoliv omezení editovat. Jazykový editor dokonce umožňuje i export jen nově přidaných textů pro překlad. Control Web 8 podporuje i vícejazyčné výrazy - to je užitečné, pokud potřebujete jiný přepočet hodnot pro jednotlivé jazykové mutace, vyjádření rozměru v metrických nebo imperiálních jednotkách apod.

Veškeré texty zobrazované runtime verzí a i uživatelsky definované texty u parametrů přístrojů a datových sekcí, texty ve výrazech a texty použité ve skriptech v aplikaci jsou totiž v systému Control Web spravovány k tomu určeném správci. Tento správce zajišťuje, že jsou vždy, podle nastavené jazykové verze, vráceny odpovídající texty pro právě nastavený jazyk. Používaný jazyk aplikace lze nastavit za běhu aplikace pomocí speciálního přístroje language_selector nebo programově pomocí nativních OLC procedur, ale i ve vývojovém prostředí v Grafickém editoru. Za běhu aplikace lze jazykovou mutaci aplikace nastavit nejen globálně pro celou aplikaci, ale je možné nastavit jazykovou mutaci i pro konkrétní přístroj. Samozřejmě není problém, aby po přihlášení operátora do aplikace mu byl nastaven jeho jazyk.

Jazykový editor

Jazykový editor má tři části - editor jazykových verzí, editor textů aplikace a editor zabudovaných textů, které zobrazuje Control Web za běhu aplikace.

Definice jazyků aplikace

Po kliknutí na nástroj Jazykové verze aplikace v paletě nástrojů Jazyky je zobrazen seznam nadefinovaných jazyků používaných v aplikaci. Jazyky je zde možné přidávat i mazat a lze zde definovat výchozí jazyk aplikace, příp. i jazyk zakázat.

Definice jazyků v aplikaci

Definice jazyků v aplikaci

Jazyk aplikace přidáme tak, že klikneme na nástroj Přídat jazyk a vyplníme položky zobrazeného dialogového okna. Pokud jako identifikátor jazyka použijete dvouznakový ISO kód, pak je, pokud již není vyplněno pole Název jazyka, doplněn název státu a Ikona jazyka. Samozřejmě lze název i ikonu zvolit podle potřeb. Název a ikona budou pak nabízeny v přístroji pro volbu jazyka language_selector. Pro programové přepínání a identifikaci nastaveného jazyka aplikace je však rozhodující definovaný identifikátor jazyka.

Dialogové okno pro přidání jazyka

Dialogové okno pro přidání jazyka

Uživatelsky definované texty

Kliknutím na nástroj Texty aplikace je zobrazen editor, který zobrazuje a umožňuje editovat texty definované v aplikaci. Pro lepší orientaci použití textu v aplikaci, jsou v prvních pěti sloupcích zobrazeny doprovodné informace o pozici textu v textovém editoru, vlastníkovi, přístroji, parametru a jeho popisu, u kterého je text definován. V dalších sloupcích jsou pak zobrazovány texty pro jednotlivé jazyky. Po kliknutí na buňku s textem se zobrazí editační políčko, v kterém lze text upravovat. Každý text je navíc uvozen ikonou, která symbolizuje, zda se jedná o prostý text nebo o text, který je definován v rámci výrazu.

Jazykový editor také umožňuje zkopírovat texty z jednoho jazyka do jiného jazyka. Při kopírování můžete zvolit, zda chcete zkopírovat všechny texty ze zdrojového jazyka nebo jen nově přidané texty, které nejsou v cílovém jazyce dosud definovány a zároveň je můžete i zrovna exportovat do textového souboru pro překlad.

Export a import textů pro překlad

Aby bylo možné texty aplikace nechat přeložit do příslušného jazyka, umožňuje Jazykový editor export textů zvoleného jazyka do textového souboru. Během exportu jsou texty v aplikaci nahrazeny unikátními identifikátory, což umožňuje bez omezení pokračovat ve vývoji aplikace - avšak místo exportovaných textů, jsou po přepnutí do tohoto jazyka zobrazovány právě tyto unikátní identifikátory.

Export jazyka

Export jazyka

Textový soubor s exportovanými texty aplikace je organizován tak, že na každém řádku má jeden text identifikovaný na levé straně rovnítka unikátním identifikátorem a na pravé straně rovnítka je odpovídající text z aplikace. Překladatel tedy přeloží jen texty na pravé strané rovnítka.

Textový soubor s exportovanými texty

Textový soubor s exportovanými texty

Jakmile jsou texty aplikace přeloženy, pak pomocí nástroje Import jazyka je obsah souboru načten a unikátní identifikátory v aplikaci jsou nahrazeny přeloženými texty. Nově přidané texty do aplikace zůstanou beze změny a texty (resp. identifikátory), které byly z aplikace po dobu překladu odstraněny, budou při importu ignorovány.

Zabudované texty zobrazované systémem za běhu aplikace

Jazyk textů zobrazovaných systémem Control Web za běhu aplikace závisí na jazykové mutaci instalace produktu. Nicméně všechny tyto texty jsou také uloženy v textovém souboru cwrunmsg.*.ini (znak * je nahrazen kódem jazyka podle jazykové verze instalace — pro češtinu tedy cwrunmsg.cz.ini, pro angličtinu cwrunmsg.en.ini apod.). Editor zabudovaných textů zobrazuje a umožňuje editaci textů z těchto souborů. V prvním sloupci je zobrazen původní text v jazyku instalace produktu a v dalších sloupcích texty ze souborů odpovídajích nadefinovaným jazykům. Po kliknutí na buňku s textem, je zobrazen editor pro úpravu textu a nastavení horké pozice. Pokud tedy bude přeložen soubor s texty zobrazovanými systémem za běhu aplikace do příslušného jazyka a soubor s texty správně pojmenován, nahradí Control Web zabudované texty texty ze souboru a za běhu aplikace bude pak zazobrazovat texty ve zvoleném jazyku.

Texty systému Control Web zobrazované za běhu aplikace

Texty systému Control Web zobrazované za běhu aplikace

Editace jazykových textů v Inspektoru přístroje

U vícejazyčných aplikací je také Inspektor přístrojů rozšířen o záložku Jazykové verze, které je umístěn editor, který umožňuje editovat texty použité v rámci přístroje.

Záložka Jazykové verze v Inspektoru přístrojů

Záložka Jazykové verze v Inspektoru přístrojů

Datová sekce language_expression a výrazy ve skriptu

Jazykové výrazy lze zapisovat v datové sekce language_expression, kde datové elementy jsou definovány pomocí výrazů pro jednotlivé jazykové mutace aplikace. Hodnota datového elementu je tak získávána vyhodnocení odpovídajícího výrazu pro právě nastavený jazyk aplikace. Totéž platí i pro jazykové výrazy zapsané ve skriptovacím jazyku. Samozřejmě, že všechny texty použité ve výrazech jsou soustředěny i do Jazykového editoru.

Definice jazykového výrazu v sekci language_expression:

language_expression lexp;
  strSpeed = {all:BoatSpeed:value_string + ' km/h'; EN:str( BoatSpeed / 1.852, 10 ) + ' kt'};
end_language_expression;

Definice jazykového výrazu ve skriptu:

procedure GetBoatSpeed( V : real ) : string;
begin
  return {CZ:‘Rychlost lodi: ‘; PL: 'Prędkość statku: '; EN:‘Boat speed: ‘; RU: 'Скорость корабля: '} + {all: str(V, 10) + ' km/h'; EN: str(V / 1.852, 10) + ' kt' } ;
end_procedure;

Alarmy

Sledované události u datových elementů definovaných v datových sekcí alarm nebo alarm_and_archive zapisují do databázových tabulek i textový popis nastalých událostí. Je tedy potřeba zajistit, aby byly v právě nastavené jazykové mutaci zobrazovány tyto texty v nastaveném jazyce. Systém Control Web je i na toto připraven. V případě vícejazyčných aplikací si vytvoří v databázi pomocnou tabulku, do které zapisuje v okamžiku vzniku události čas a popis nastalé události ve všech definovaných jazycích, tudíž pak tedy není problém vždy zobrazit odpovídající textový popis události ve správném jazyku.