Tento tutoriál byl původně psán pro ASP.NET MVC 5 Web App, ale dá se s žádnými nebo minimálními odchylkami použít téměř pro všechny typy projektů ve Visual Studio. Zde dám návod na ony webové MVC 5 a dále na UWP/UAP, tedy univerzální aplikace pro Windows 10 – první kroky jsou všude stejné, další pak budou mít samostatné články.
Multilingual App Toolkit (MAT) je úžasný nástroj z dílny Microsoftu, se kterým můžete lokalizovat aplikace psané většinou v C#. Aktuálně je ve verzi 4.0 beta a stáhnout si jej můžete na 👻 Visual Studio Gallery Microsoft v roce 2018 zavřel.. Detailnější popis aplikace je zase na Windows Dev Center . Podporuje tyto typy aplikací a projektů:
- Windows Universal Apps
- Windows Presentation Foundation Apps
- Windows Forms Apps
- Windows (Phone) Store Apps
- Xamarin Apps pro iOS
- Xamarin Apps pro Android
- ASP.NET Web Apps vč. MVC
Jdeme na to! 1 – Prvně nastavíme výchozí / neutrální jazykovou kulturu vašeho projektu. Vyberte jej v prohlížeči řešení, stiskněte Alt+Enter, pak tlačítko „Assembly Information...“ a zde vyberete v roletce. Můžete i psát, je to rychlejší, funguje autosugesce.

2 – Musíme vytvořit soubor Resources.resx ve složce Strings/en-us vaší app. Samozřejmě si nahraďte en-us za svou neutrální kulturu, máte-li jinou. V Windows Universal se template také jmenuje Resources file ale má příponu .resw. Nicméně pracuje se s ním úplně stejně.

3 – Zapište do tohoto souboru názvy prostředků v jazyce který je váš neutrální(v mém případě en-US):

4 – Zapněte podporu MAT pro váš projekt. To znamená že jej vyberete v prohlížeči řešení, a v nabídce nástrojů vyberete Tools -> Multilingual App Toolkit -> Enable selection. V okně output se vám vypíše: [code]> Project ‚sunamo.cz‘ was enabled. The project’s source culture is ‚en-US‘ [English (United States)][/code] 5 – Vyberte opět projekt v prohlížeči řešení a Multilingual App Toolkit -> Add translations language ... . Otevře se vám následující dialog, kde vyberte jazyk který máte jako neutrální a libovolné množství dalších jazyků u kterých chcete mít lokalizaci:

6 – Vytvoří se vám složka MultilingualResources a v ní soubory *.xlf, pro každý jazyk kromě neutrálního jeden. Otevřete si jej dvojím poklikem a zobrazí se vám něco takového:

Zadejte si vlastní překlad nebo klikněte na Translate, což použije Bing Translator(zdarma). Mě to „Hello World“ přeložilo do „Ahoj světe„, což je dobrý překlad 😀 tak jsem to uložil a zavřel. Můžete používat robotiku, pak si to upravit a nastavit na final, aby už se to roboticky nepřekládalo. 7 – Nastavte si v každém souboru .resx ve složce Strings viditelnost na Public. Tím se vám vytvoří .cs soubory s definicí, které Visual Studio použije při Intellisense. Po každé změně v *.xfl je potřeba ještě buildovat projekt(ve výchozím nastavení ctrl+shift+b, já mám namapováno na f6 z dob VS 2005 které bylo moje první). Dále pokračujte dle povahy vaší aplikace:
- 👻 Lokalizujeme ASP.NET MVC 5 Web App s Multilingual App Toolkit 4 – tady bývala data, teď je tu jen prázdná parcela na internetu.
- Lokalizujeme Windows 10 Universal App s Multilingual App Toolkit 4