Szótárazott szövegek kiíratása
lpApplication::getText('szoveg_konstans_neve_angol_szavak');
A szótár két helyen van eltárolva. Az egyik a közös adatbázis (commonDb). Ennek paramétereit a
SOURCE/cfg/defines.inc -ben lehet állítani
define('COMMONDB_HOST','localhost');
define('COMMONDB_DB','common_db');
define('COMMONDB_USER','username');
define('COMMONDB_PASS','password');
Ebben az adatbázisban az lp_dict táblában vannak tárolva. Itt vannak a rendszer szótárazott üzenetei, minden modulhoz. Itt több ezer bejegyzés van, amelyet bármelyik honlap használhat.
Ezt felülírja illetve kiegészíti az alkalmazás saját adatbázisában az lp_dict tábla.
Minden nyelvnek kell egy oszlop 'text_' előtaggal. pl. magyar: 'text_hu', angol: 'text_en', német 'text_de' ISO két betűs nyelvi kódokat használunk.
A fő konfigurációban
cfg/lpConf.inc
meg kell határozni a megengedett nyelveket. Például angol, magyar:
// check array for allowed languages
public static $arrLangAllowed = array('en','hu',);
Ezen kívül a modul paraméterek->main -ben is meg kell adni a használt nyelveket:
"lang_default":"hu","lang":"hu","languages":["hu","en"]
Éles rendszer esetén a szövegek a session-ben lesznek tárolva és nem frissülnek csak az admin-ban mentéskor, ezért teszteléskor a sessiont űríteni kell.
A szótárazott szövegek keresése szöveg konstansok alapján történik. Vannak esetek amikor
Induláskor a rendszer az összes olyan szótárbejegyzést betölti amelyik modulneve megegyezik a megengedett, konfigurált komponensek neveievel (mysql lp_dict.type = komponens php osztály neve), illetve minden modulhoz hozzáadható egy paraméter amelyik megmondja, hogy melyik szótárat akarja használni. Akkor az is betöltődik. Olyan szótár is megadható, amelyik neve egyik modul nevével sem egyezik meg de akár több modul is betöltheti de akkor azt külön fel kell sorolni a modul paramétereinél a "lang_modules" tömbben.
Példa modul paraméter részletre:
"lang_modules": ["nested_set"]
Ha az lp_dict.type "all" akkor minden esetben betöltődik illetve ha "main" akkor a honlapon, ha "admin" akkor az adminban.
Szótárazott listák
A szótár egyedi szövegek kiíratására szolgál.
Bizonyos esetekben nem szöveg konstansokra van szükség, hanem azonosítókra mert SQL táblához kell csatolni a szótárazott szöveget illetve html "select" vagy jQuery ui "combobox"-hoz van szükség listákra.
Ezek a listák a honlap adatbázisában vannak tárolva a DB_PRE_list táblában
A tábla felépítése:
| id | int | azonosító |
| ext_id | int | 1-től induló szám ami coumn_name-enként van csoportosítva.Lehet használni SQL Join-hoz is. |
| ext_key | int | Nem használt. Importálásnál volt használatban. |
| column_name | varchar | Ez a lista neve. |
| text_hu | varchar | Magyar nyelvű szöveg |
| text_en | varchar | Angol nyelvű szöveg |
| text_{ISO 2 betűs nyelv} | varchar | Bármilyen más nyelvű szöveg. Több nyelv használata esetén ilyen oszlopokat kell létrehozni |
| ordering | int | Sorba rendezés, Egy szám tetszőlegesen megadható. Ha ki van töltve akkor a html "select" ez szerint lesz rendezve, nem névsor szerint. |
Program kódban elhelyezett listák
Lehetnek olyan listák, amelyek biztosan nem változnak. Például a hónapok nevei, azonban nyelv bővítésnél szükség lehet ezek bővítésére is.
Korábban a SOURCE/helper/lpTableHelper::getStaticList() volt használatos.Ez elavult helyette a
SOURCE/classlib/static_list/staticList::getList('fajlnev-listanev') függvényt kell használni.
A lista lehet szótárazott vagy szótárazatlan. Ez utóbbi a preferált mód mert ha a honlap több nyelvre kerül lefordításra akkor ezt is fordíttatni kell ami már nehezebb, illetve mindenképpen plusz feladat. Így a szövegek a szótárban kerülnek elhelyezésre ezért csak a szótárat kell bővíteni illetve a cikkeket a honlapon.
Létezni kell egy fájlnak itt:
SOURCE/classlib/static_list/list/fajlnev.inc
Ebben a fájlban egy tömbnek, ami így néz ki pl:
$arrRet=array(
'fajlnev-listanev'=>array(
'1' =>array('option_text'=>'monday'),
'2' =>array('option_text'=>'tuesday'),
'3' =>array('option_text'=>'wednsday'),
'4' =>array('option_text'=>'thursday'),
'5' =>array('option_text'=>'friday'),
'6' =>array('option_text'=>'saturday'),
'7' =>array('option_text'=>'sunday'),
),
Egyedi (distinct) lista egy táblából
lpTableHelper::getDistinctList()