Promotic

Makro výraz $.text

Tento makro výraz představuje text načtený z textoveho souboru. Textový soubor má XML formát v UTF-8 znakovém kódování, lze do něj ukládat více textů a každý text lze zadat ve více národních jazycích. Pomocí tohoto makra tak lze lehce vytvořit aplikaci, která může být za běhu přepínána do jiných jazyků (Viz také: Jak vytvořit aplikaci v různých národních jazycích). Užitečný je makro výraz však i v případě jednojazykové aplikace, kdy jsou texty aplikace shromážděné v jednom (nebo více) souboru.
Daný makro výraz vybere ze souboru zvolený text podle identifikátoru textu a dále podle jazyka:
- Ve spuštěné aplikaci: jazyk textu se vybere podle aktuálního nastavení vlastnosti Pm.RtLang (podle konfigurátoru "Hlavní jazyk runtime").
- Pro Web klienty: jazyk Web komponenty je vybrán podle jazyka nastaveného v konfigurátoru "PmaWeb > Web > Implicitní jazyk". Pokud je Web komponenta registrována v objektu PmaWebLang, pak jazyk je vybrán podle zvolené URL adresy.


Makro výraz $.text lze použít například při nastavení v konfigurátorech PmgString > Text > Hodnota, PmaPanel > Obraz > Titul obrazu a mnoha dalších.

Syntaxe:
$.text("idFile","idText")
- idFile = typu XML souboru
- idText = identifikátor textu v tomto souboru

Zastaralý tvar zápisu makro výrazu: $text:idFile.idText

Typ XML souboru může být:
$.text("sys","idText") - Systémový soubor text_sys.xml umístěný ve složce \Promotic\PmVXXYY. Tento soubor je dodáván se systémem PROMOTIC a jsou v něm některé obecné texty. Zároveň slouží jako příklad pro vytváření lokalizovaných textů (do tohoto souboru však nedávejte své vlastní texty).


$.text("app","idText") - soubor text_app.xml umístěný ve složce aplikace (např. C:\Promotic\Apps\Aplikace1\text_app.xml).


$.text("appXX","idText") - například soubor text_appL1.xml (pokud XX=L1) umístěný ve složce aplikace. Je to jen zobecnění předchozího typu o možnost mít více takových aplikačních souborů ve složce aplikace.


Tip: XML soubor lze vytvořit a editovat pomocí konfiguračního okna, které lze otevřít z menu " > Správce lokalizovaných textů".

Tvar XML souboru "text_XXX.xml":
V XML souboru je pouze 1 tag <pmtext> a v něm požadovaný počet tagů <txtid> s atributem id. Hodnota tohoto atributu je identifikátor požadovaného textu. V tomto tagu jsou pak tagy <txt> s atributem lang určující danou jazykovou verzi. Atribut lang může mít například hodnotu: cs (česky), en (anglicky) ... Úplný seznam viz Jak vytvořit aplikaci v různých národních jazycích.
Příklad obsahu souboru (soubor nemusí mít všechny uvedené jazykové verze):
<?xml version="1.0" encoding="utf-8"?>
<pmtext>
...
<txtid id="id10">
  <txt lang="en">User text to set</txt>
  <txt lang="de">Aplikationstext zum Einstellen</txt>
  <txt lang="ru">Техт приложения к наладке</txt>
  <txt lang="pl">Tekst użytkownika do wprowadzenia</txt>
  <txt lang="cs">Aplikační text k nastavení</txt>
  <txt lang="sk">Aplikačný text k nastaveniu</txt>
</txtid>
...
</pmtext>


Příklad na získání systémového lokalizovaného textu:
$.text("sys","day1")
Text s identifikátorem day1 je uložen v souboru text_sys.xml ve složce \Promotic\PmVXXYY. Výsledkem bude pro češtinu text "Ponděli", pro angličtinu "Monday", atd.
Příklad na získání lokalizovaného textu aplikace:
$.text("app","id10")
Projektant aplikace vytvořil soubor text_app.xml ve složce aplikace. V tomto souboru je tag <txtid id='id10'> a v něm tag <txt> pro odpovídající aktuální jazykovou verzi (např. cs).
Příklad na získání systémového textu s využitím parametru Pmg objektu (nDay):
$.text("sys",$.join("day",$.par("nDay")))


Jinou možností jak získat lokalizovaný text je použít Pm.EvalMacro nebo #pragma variable.
Konfigurátory v editoru rozšířené hodnoty:
Vybrat lokalizovaný textOtevře konfigurační okno "Správce lokalizovaných textů"
Typ XML souboruUrčuje typ zdrojového souboru textů, tzn. 1. parametr makro výrazu $.text().
Identifikátor textuUrčuje identifikátor požadovaného textu, tzn. 2. parametr makro výrazu $.text().
© MICROSYS, spol. s r.o.