pondělí 21. ledna 2008

Jak zajistit více-jazyčná / více-pojmová metadata

Mezi standardní požadavky na analytický systém patří podpora více-jazyčných metadat, případně zajištění různých pojmů entit pro různé skupiny uživatelů.

Příklad: Entita „telefonního číslo“ se pro technicky zaměřeného uživatele tváří jako MSISDN, pro česky mluvícího business uživatele jako Mobilní číslo a pro anglicky mluvícího uživatele jako Mobile number. To, jak tento požadavek zajistit v Oracle Business Intelligence najdete níže.


Postup

1. Spusťte Oracle BI Administration Toolu, v „Prezentační vrstvě“ vyberte „Cílovou oblast“ pro kterou chcete zajistit vícejazyčnost a zapněte pro ni „Externalize Display Names“ (pro názvy), případně „Externalize Descriptions“ (pro popisy).



2. Z menu Tools > Utilities spusťte utilitu „Externalize Strings“.



3. Vyberte „Cílovou oblast“ pro kterou jste v prvním kroku zapnuli „Externalize ...“ a výsledek uložte do souboru.



První sloupec obsahuje typ metadata objektu (např. Presentation Table nebo Presentation Column). Druhý sloupec obsahuje System Session Variable, která je přiřazená každému objektu při jeho založení (použije se k propojení na metadata) a třetí obsahuje text (název nebo popis), který se zobrazuje uživatelům při práci s front-end nástroji a který se bude překládat.

V případě, že budete překládat i popis, pak druhý sloupec bude obsahovat dva řádky (CN_* - název položky a CD_* - popis položky), které budou mít společný první sloupec.


4. Výsledné hodnoty (stačí druhý a třetí sloupec) uložené v *.csv souboru naimportujte do datového zdroje ke kterému umí přistupovat BI Server, např. databáze, XML nebo ODBC zdroj jako je Excel (nejjednodušší).

Do tabulky přidejte ještě jeden sloupec, který bude určovat význam. V případě, že budete chtít zajišťovat vícejazyčnost dle nastavení jazyka v internetovém prohlížeči nebo Oracle BI, pak hodnota sloupce se musí rovnat kódům podporovaných jazyků, např:

Code Language
en English
cs Czech
fr French
de German
es Spanish
ja Japanese
pt-br Brazilian Portuguese
it Italian
sv Swedish
da Danish
nl Dutch
zh Chinese Simplified
zh-tw Chinese Traditional
iw Hebrew
ko Korean
fi Finnish
pt Portuguese



5. Původní řádky v tabulce zduplikujte tolikrát kolik potřebujete překladů / významů. Texty prvního sloupce neměňte, pouze přeložte druhý sloupec a do třetího doplňte význam - v případě, že jde o překlad tak doplňte kód jazyka, v případě, že jde o něco jiného pak nějaký váš identifikátor.



6. Datový zdroj připojte do Fyzické vrstvy metadata repository a otestujte, že server vidí na data



7. Založte dva „Session“ Inicializační bloky – „GetLocale“ a „TranslateMetadata“ (menu Manage > Variables > Session > Inicialization Bloks)

Inicializační blok „GetLocale“ bude plnit session proměnnou „LOCALE“ na základě proměnné WEBLANGUAGE (ta se plní kódem jazyka při přihlášení k BI z internetového prohlížeče).

V mém případě nastavuji hodnotu proměnné LOCALE na základě podmínky: v případě, že se přihlásí uživatel „czmgr“ pak LOCALE bude mít hodnotu „business“ jinak se hodnota vezme z proměnné WEBLANGUAGE. Hodnoty do proměnné LOCALE přiřazuji selectem oproti Oracle DB a tabulce DUAL.



Inicializační blok „TranslateMetadata“ načítá zobrazované texty položek z Excelu na základě hodnot v proměnné LOCALE (předtím než se spustí tento inicializační blok, musí být spuštěn blok „GetLocale“). Protože select z Excelu vrací více řádek, musí být cílová proměnná typu Row-wise.



Test

I. Uživatel=Admin / jazyk=čeština

V případě, že se přihlásím jako uživatel Administrator v češtině


uvidím názvy česky



II. Uživatel=Admin / jazyk=angličtina

V případě, že se přihlásím jako uživatel Administrator v angličtině


uvidím názvy anglicky



II. Uživatel=Admin / jazyk=cokoli

V případě, že se přihlásím jako uživatel Administrator v jakémkoli jazyku


uvidím názvy tak jak jsou uvedeny v metadata repository



IV. Uživatel=Czmgr / jazyk=cokoli

V případě, že se přihlásím jako uživatel Czmgr v jakémkoli jazyku


uvidím „business“ názvy




Erik Eckhardt (eec).

Žádné komentáře: