Lokalizace doplňků pro Office

Office 2013 i 2016 je dostupný ve spoustě jazykových verzí. Budete-li distribuovat svou aplikaci na různé trhy po světě, je pravděpodobné, že Němci budou mít Word v němčině a Češi zase v češtině. Stojí za to zapřemýšlet nad lokalizací a přeložit alespoň metadata do hlavních jazyků.

Poznámka stranou: Abych otestoval, že lokalizace funguje, musel jsem přepnout Office do češtiny. Vedlejším efektem bylo zjištění, že česky Microsoft označuje aplikace pro office jako „doplňky„, takže od nynějška jim tak budu poctivě říkat.

Lokalizace doplňku Office má dvě úrovně: informace o tom, jak bude add-in v aplikacích Office vypadat, a jeho samotný obsah.

Metadata

Asi nepřekvapí, že lokalizace metadat se odehrává v souboru manifestu (XML). V něm stanovujete, jak se vaše aplikace bude zobrazovat uživatelům, když si ji nainstalují. Kromě různých názvů pro jednotlivé jazyky můžete změnit i popisek (Description) a dokonce ikonu.

DisplayName v angličtině a v češtině

Na začátku manifestu říkáte v elementu DefaultLocale, který jazyk považujete za výchozí.

en-US

Každá lokalizovatelná hodnota v manifestu má atribut DefaultValue. Ten říká, co se zobrazí v DefaultLocale.

Když ale přidáte element Override, můžete například říct, že pro češtinu chcete ukázat název jiný.


  

V anglickém Wordu se tak zobrazí „My add-in“, v německém taky a ve všech ostatních kromě českého rovněž. Ten český ale hrdě ponese: „Můj doplňek“.

Pokud byste chtěli zobrazit jinou ikonu, budete postupovat úplně stejně. Prostě do elementu IconUrl přidáte Override:


    

A změnit můžete tímto způsobem i SourceLocation, takže uživatel může v jiném jazyce dostat úplně jiné HTML.

Seznam identifikátorů najdete v dokumentaci zde: https://technet.microsoft.com/en-us/library/cc179219(Office.15).aspx

Tělo doplňku

Lokalizace doplňku samotného spočívá ve zobrazení textů v patřičném jazyce. Rozhodnete-li se použít JavaScript, Office vám ochotně sdělí, který jazyk je ten patřičný:

var lang = Office.context.displayLanguage;

displayLanguage označuje kód jazkové sady, kterou právě aplikace Office používá (tedy např. cs-CZ pro češtinu). Alternativně se můžete zeptat na jazyk, v kterém je dokument napsaný:

var lang = Office.context.contentLanguage;

Potom už stačí jenom správně načíst texty daného jazyka a zaměnit je v HTML. Dokumentace to například dělá takto:

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason)
    {
       
        $(document).ready(function () {
            app.initialize();

            // Get the language setting for editing document content.
            // To test this, uncomment the following line and then comment out the
            // line that uses Office.context.displayLanguage.
            // var myLanguage = Office.context.contentLanguage;

            // Get the language setting for UI display in the host application.
            var myLanguage = Office.context.displayLanguage;            
            var UIText;

            // Get the resource strings that match the language.
            // Use the UIStrings object from the UIStrings.js file
            // to get the JSON object with the correct localized strings.
            UIText = UIStrings.getLocaleStrings(myLanguage);            

            // Set localized text for UI elements.
            $("#greeting").text(UIText.Greeting);
            $("#about").text(UIText.Instruction);
        });
    };    
})();

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *