Omawiane makro wyrażenie przedstawia
tekst wczytany z pliku tekstowego. Plik tekstowy jest zapisany w formacie XML w kodowaniu znaków
UTF-8, można do niego zapisywać większą ilość tekstów i każdy z tekstów można wprowadzić w
większej ilości języków narodowych. Przy pomocy tego makra można w prosty sposób wytworzyć aplikację, która może być przełączana do innych języków (Patrz również:
Jak wytworzyć aplikację w różnych językach narodowych). Makro wyrażenie można jednak z powodzeniem stosować również w przypadku aplikacji jednojęzykowej, gdzie teksty całej aplikacji znajdują się w jednym pliku (lub więcej plikach).
Odpowiednie makro wyrażenie wybierze z pliku wybrany tekst według identyfikatora tekstu i następnie według języka:
-
W uruchomionej aplikacji: język tekstu jest wybrany według bieżącego ustawienia właściwości
Pm.RtLang (według konfiguratora "
Główny język runtime").
-
Dla Web klienta: język Web komponentu jest określany według języka ustawionego w konfiguratorze "
PmaWeb > Web > Język domyślny".
Jeżeli Web komponent jest zarejestrowany w obiekcie
PmaWebLang, wtedy język jest wybierany według wybranego adresu URL.
Makro wyrażenie
$.text można zastosować na przykład przy ustawieniu w konfiguratorach
PmgString > Tekst > Wartość,
PmaPanel > Panel > Tytuł panela a wielu innych.
Składnia:
$.text("idFile","idText")
- idFile = określenie typu pliku XML
- idText = identyfikator tekstu w owym pliku
Przestarzała składnia zapisu makro wyrażenia:
$text:idFile.idText
Typ pliku XML może być:
$.text("sys","idText") -
Plik systemowy
text_sys.xml ulokowany w folderze
\Promotic\PmVXXYY. Plik ten jest dostarczany razem z systemem PROMOTIC i zawiera niektóre ogólne teksty. Równocześnie służy jako przykład do wytwarzania lokalizowanych tekstów (lecz nie wprowadzaj do omawianego pliku własnych tekstów).
$.text("appXX","idText") - na przykład plik text_appL1.xml (jeżeli XX=L1) ulokowany w folderze aplikacji. Chodzi tutaj tylko o uogólnienie poprzedniego typu o możliwość posiadać większą ilość plików aplikacji w folderze aplikacji.
Wskazówka: Plik XML można wytworzyć oraz edytować przy pomocy okna konfiguracyjnego, które można otworzyć w menu "
> Menedżer lokalizowanych tekstów".
Wygląd pliku XML "text_XXX.xml":
X pliku XML znajduje się tylko 1 tag
<pmtext> a w nim wymagana ilość tagów
<txtid> z atrybutem
id. Wartość takiego atrybutu jest identyfikator odpowiedniego tekstu. W takim tagu znajdują się jeszcze tagi
<txt> z atrybutem
lang, który określa odpowienią wersję językową. Atrybut
lang może mieć na przykład wartość:
pl (polski),
en (angielski) … Pełna lista patrz
Jak wytworzyć aplikację w różnych językach narodowych.
Przykład zawartości pliku (plik nie musi zawierać wszystkich przedstawionych poniżej wersji językowych):
<?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>
Przykład uzyskania lokalizacyjnego tekstu systemowego:
$.text("sys","day1")
Tekst o identyfikatorze
day1 jest zapisany w pliku
text_sys.xml w folderze
\Promotic\PmVXXYY. Wynikiem będzie tekst dla języka polskiego "Poniedziałek, dla języka angielskiego "Monday", itd.
Przykład uzyskania lokalizacyjnego tekstu aplikacji:
$.text("app","id10")
Projektant aplikacji wytworzył plik text_app.xml w folderze aplikacji. W tym pliku jest wyszukany tag <txtid id='id10'> a w nim tag <txt> dla odpowiedniej bieżącej wersji językowej (np. pl).
Przykład pozyskania tekstu systemowego z wykorzystaniem parametru Pmg objektu (nDay):
$.text("sys",$.join("day",$.par("nDay")))
Inną możliwością, jak uzyskać lokalizowany tekst, jest zastosowanie
Pm.EvalMacro lub
#pragma variable.
Konfiguratory w edytorze wartości rozszerzonej:
Wybierz lokalizowany tekst | Otworzy okno konfiguracyjne "Menedżer lokalizowanych tekstów" |
Typ pliku XML | Określa typ źródłowego pliku tekstów, tzn. 1. parametr makro wyrażenia $.text(). |
Identyfikator tekstu | Określa identyfikator wymaganego tekstu, tzn. 2. parametr makro wyrażenia $.text(). |
---|