Již od svého vydání Flashpoint (i ArmA) podporují možnost lokalizovat obsah mise do více jazykových verzí. Někteří již možná zaregistrovali, že existuje jakýsi soubor stringtable.csv, ale to není vše. Následující článek vás provede celým procesem tvorby vícejazyčného obsahu.

DEFINICE

Jak bylo zmíněno, tak vše se víceméně točí hlavně kolem souboru
stringtable.csv, ale je na místě uvést, že více jazykových verzí se
vytváří i za pomoci využití dalších souborů a to briefing.html a
overview.html. Každý hráč má totiž ve svém configu nastavený
používaný jazyk a při spuštění mise je to on, který hra jako první
vyhledává. Defaultně tak hra hledá soubory
briefing.nazev_jazyka.html a overview.nazev_jazyka.html
(např. briefing.czech.html). Pokud je hra nenalezne, pak se teprve podívá
přímo na soubor briefing.html (respektive overview.html).

Ve všech ostatních případech však hra pracuje už jen s hláškami či
popisky ze souboru stringtable.csv.

O souboru stringtable.csv

První řadek souboru stringtable.csv udává pro které jazykové verze je
vytvořen. Pokud není hráčova verze v nabídce uvedena, pak se využije
první zadaná. Proto je z praktického hlediska vhodné dávat jako první
anglické popisky. Jednotlivé popisky se posléze oddělují čárkou a je
vhodné je uzavírat do uvozovek (z praktických důvodů). Jako první
parametr je vždy uveden název daného textu, který se pak v misi odkazujeme.
Něco jako proměnná. Příklad souboru stringtable.csv:

LANGUAGE, "English", "Czech",

STR_CELO_MissionName,"Comrades - Chapter one","Comrades - Kapitola první",
STR_CELO_MissionDescription,"Mission by Celoush 2009","Vyrobil Celoush 2009",

STR_CELO_HQRadio1,"ROGER THAT","ROZUMÍM",
STR_CELO_Target,"ENEMY BASE","NEPŘÁTELSKÁ ZÁKLADNA",

STR_CFG_PAPABEAR, "TREASURE ISLAND", "OSTROV POKLADŮ",
STR_CFG_FIREFLYBASE, "HISPANIOLA", "HISPANIOLA",
STR_CFG_GRPNAMES_ALPHA, "EAGLE", "OREL",

STR_LOAD_TEXT,"Please Wait...","Prosím vyčkejte....",
STR_CELO_HINT_1,"Press space","Stiskni mezerník",

Jak je vidět, tak první řádek udává, že definujeme texty pro
angličtinu a češtinu. Následující dva řádky specifikují řetězce,
které jsou následně použity jako název a popisek mise (ne automaticky, ale patřičným nastavením). Další dva řáky jsou ukázkou textu radiové
hlášky a textového popisku značky. Následující tři řádky ukazují, jak
je možné předefinovat volací znaky, které jsou ve hře již zadány. Je tak
možné pro potřeby mise namísto táty medvěda v OFP volat ostrov pokladů
apod. Stejně tak je možné změnit název skupiny (ALPHA, BRAVO, CHARLIE) na cokoliv dle vlastního uvážení. Poslední dva řádky budou použity v následujících ukázkách a jsou zde uvedeny pro přehlednost.

VYUŽITÍ V MISI

Při práci s řetězci definovanými v souboru stringtable.csv se
používají tři způsoby podle toho, kam potřebujeme lokalizovaný text
vložit.

DOLAR

Prvním je volání v souboru description.ext. Volání se
provádí vložením znaku dolaru před název řetězce ze souboru
stringtable.csv. Tedy například pro nastavení hlášky při
načítání mise (či intra):

OnLoadMission = $STR_LOAD_TEXT;
OnLoadMissionIntro = $STR_LOAD_TEXT;

Obdobně se definují hlášky pro radiovou komunikaci

class CfgRadio {
 sounds[] = {};
  class RadioMsgHQ1 {
   name = "";
   sound[] = {"\sound\radiohq1.ogg", db+0, 1.0};
   title = $STR_CELO_HQRadio1;
  };
};

ZAVINÁČ

Druhý způsob jak zavolat lokalizovaný obsah řetězce je za pomocí znaku
zavináče. Ten se používá v dialogových oknech v editoru. Tedy
například při nastavení názvu mise či jejího popisku a nebo pro
nastavení popisku pro značku či waypointu. Do patřičných kolonek
vyžadujících textový popisek pak stačí zadat jen:

@STR_CELO_MissionName
@STR_CELO_MissionDescription

POZOR!!! U ArmA 2 již toto není možné, protože CSV se nenačte
a tudíž by před prvním načtením mise chyběl. To lze obejít jedině tak,
že misi uděláme v rámci addonu a název mise zadefinujeme v stringtablu
addonu a misi pak v configu přes CfgMissions.

a u značky označující nepřátelskou základnu jako text:

@STR_CELO_Target

LOCALIZE

Třetí a poslední způsob je za pomocí příkazu localize. Ten se využije
ve všech ostatních případech, především tedy ve skriptech, které je
potřeba provést a správně lokalizovat. Stačí zavolat příkaz a jako
parametr uvést řetězec s názvem patřičného řetězce ze souboru
stringtable.csv, tentokrát bez jakéhokoliv dalšího znaku.
Příkladem budiž krátký skript:

hint localize "STR_CELO_HINT_1";
titleText [localize "STR_CELO_MissionName","PLAIN DOWN"]

V tomto krátkém kodu jsme zavolali nápovědu s lokalizovaným popiskem a pak vypsali název mise přes příkaz titleText na obrazovku. Často můžete
vidět využití příkazu localize ve spojitosti s příkazem format.

Myslím, že nyní vám již nic nebrání vytvářet své mise nejen pro
českou scénu, ale své mise distribuovat celému světu.