Návod: Lokalizace v aplikaci LightSwitch
Můžete vytvořit aplikaci LightSwitch, která automaticky zobrazí uživatelské rozhraní v různých jazycích pomocí klienta programu Silverlight, klienta HTML nebo obou.V tomto návodu vytvoříte aplikaci a oba typy klientů a následně ji lokalizujete do němčiny (nebo do jiného jazyka, pro který může poskytnout překlad).
Chcete-li lokalizovat aplikaci, přidáte identifikátor prostředku pro každý řetězec pro zobrazení v Návrháři obrazovky.Pak pro úrovně klienta i serveru, vytvoříte soubor prostředků pro výchozí jazyk a jeden pro lokalizovaný jazyk.Aplikaci je možné lokalizovat i v případě, že má pouze jeden typ klienta.Zahrnuli jsme oba typy, takže si můžete procvičit lokalizace pro každý z nich.
[!POZNÁMKA]
Pokud lokalizujete pouze klienta programu SilverLight, musíte nejprve upgradovat.Na panelu nabídky vyberte možnosti Projekt, Aktualizovat projekt.Pokud se nezobrazí příkaz Upgradovat projekt, projekt již je upgradován.
V návodu je ukázáno, jak provádět následující úkoly:
Vytvoření aplikace
Lokalizovat vrstvu serveru
Lokalizovat obrazovku klienta programu Silverlight
Přidání výchozích jazykových prostředků
Přidání lokalizovaných prostředků
Volání zdroje z kódu
Lokalizovat klienta HTML
Požadavky
Potřebujete Microsoft LightSwitch for Visual Studio Update 2 k lokalizaci aplikace LightSwitch.
Vytvoření aplikace
Vytvořte aplikaci pomocí buď šablony Aplikace HTML LightSwitch (Visual Basic) nebo šablony Aplikace HTML LightSwitch (Visual C#) a pojmenujte ji Ukázka lokalizace.
Přidejte tabulku, pojmenujte ji Kontakt a pak přidejte následující pole:
Název
Type
Požadováno
ContactName
Řetězec
Ano
ContactPhone
Telefonní číslo
Ano
V Průzkumníku řešení otevřete místní nabídku uzlu Localization_Sample.HTML Client a pak zvolte Přidat obrazovku.
Přidejte obrazovku Procházet data s názvem BrowseContacts a potom zvolte Kontakty jako Data obrazovky.
V Průzkumníku řešení otevřete místní nabídku uzlu Klient HTML a pak zvolte Přidat obrazovku.
Přidejte obrazovku Přidat/upravit podrobnosti s názvem AddEditContact a potom zvolte Kontakt jako Data obrazovky.
Otevřete obrazovku BrowseContacts a v Návrháři obrazovky otevřete místní nabídku uzlu Rozvržení do řádků | Seznam kontaktů a vyberte možnost Přidat tlačítko.
V dialogovém okně Přidat tlačítko vyberte v seznamu showTab možnost showAddEditContact.
Do pole Kontakt zadejte (Nový kontakt) a poté klikněte na tlačítko OK.
V Průzkumníku řešení otevřete místní nabídku uzlu Ukázka lokalizace a pak zvolte Přidat klienta.
Přijměte výchozího klienta pro stolní počítače a pak klikněte na tlačítko OK.
V Průzkumníku řešení otevřete místní nabídku uzlu Klient pro stolní počítače a pak zvolte Přidat obrazovku.
Přidejte obrazovku Nová data s názvem NewContact a potom zvolte Kontakt jako Data obrazovky.
V Návrháři obrazovky vyberte uzel Přidat a zvolte možnost Přidat text.
V dialogovém okně Upravit text vyberte možnost Přidat nový kontakt.
Lokalizace vrstvy serveru
V Průzkumníku řešení, rozbalte uzel Zdroje dat a pak otevřete entitu Contacts.lsml.
V Návrháři entit vyberte pole ContactName.
V okně Vlastnosti zvolte vlastnost Zobrazit název a zadejte $(ContactName).
Zápis $() označuje, že hodnota vlastnosti Zobrazovaný název je identifikátorem prostředku.V době běhu aplikace LightSwitch načte skutečnou hodnotu ze souboru prostředků.
[!POZNÁMKA]
Identifikátory prostředků mohou obsahovat pouze písmena a čísla, nikoli mezery.
V Návrháři entit vyberte pole ContactPhone.
V okně Vlastnosti zvolte vlastnost Zobrazit název a zadejte $(ContactPhone).
V Průzkumníku řešení otevřete místní nabídku uzlu Localization Sample.Server, vyberte položku Přidat a Nová položka.
Přidejte Soubor prostředků a pojmenujte jej Service.resx.
Důležité
Musíte vždy pojmenovat soubor prostředků serveru pro libovolnou aplikaci LightSwitch Service.resx a soubor se musí nacházet v kořenovém uzlu projektu serveru.
Do souboru prostředků přidejte následující hodnoty:
Název
Value
ContactName
Název
ContactPhone
Telefon
Hodnoty v sloupci Název odpovídají identifikátorům prostředků, které jste přidali dříve, ale hodnoty nemají zápis $().Řetězce Hodnota se zobrazí na všech obrazovkách používajících entitu Kontakty.
V Průzkumníku řešení otevřete místní nabídku uzlu Localization Sample.Server, vyberte položku Přidat a Nová položka.
Přidejte Soubor prostředků a pojmenujte jej Service.de-DE.resx.
Do souboru prostředků přidejte následující hodnoty:
Název
Value
ContactName
Kontaktní jméno
ContactPhone
Telefonní číslo
Lokalizovaný řetězec Hodnota se zobrazí na všech obrazovkách používajících entitu Kontakty.Nyní můžete spustit aplikaci a ověřit, zda jsou řetězce pro tlačítko ContactName a ContactPhone zobrazeny správně.Můžete nasadit aplikaci do počítače, který je nastaven na němčinu a ověřit, že se zobrazí lokalizované řetězce.
Tip
Jako nejvhodnější postup zvažte nejprve lokalizaci řetězců pro všechny entity ve vrstvě serveru.Na libovolné obrazovce využívající entity se zobrazí tyto řetězce a řetězce na úrovni obrazovky můžete změnit podle potřeby.
Lokalizace obrazovky klienta programu Silverlight
V Průzkumníku řešení otevřete obrazovku NewContact.lsml.
V Návrháři obrazovky vyberte uzel Rozložení do řádků | Nový kontakt.
V okně Vlastnosti zvolte vlastnost Zobrazit název a zadejte $(AddContact).
V Návrháři obrazovky otevřete místní nabídku uzlu Text a vyberte možnost Upravit obsah.
V okně Vlastnosti nahraďte existující text údajem $(Text).
Pokud spustíte aplikaci v tomto okamžiku, můžete si všimnout, že se na obrazovce zobrazí skutečné identifikátory zdroje.Nedělejte si starosti – opravíte to v dalším kroku vytvořením výchozího souboru prostředků jazyka.
Přidání výchozího soubor prostředků jazyka
V Průzkumníku řešení otevřete místní nabídku uzlu Localization Sample.DesktopClient, vyberte položku Přidat a Nová položka.
Přidejte Soubor prostředků a pojmenujte jej Client.resx.
Důležité
Pro každého klienta Silverlight aplikace LightSwitch je nutné vždy pojmenovat výchozí soubor prostředků jazyka Client.resx, který se musí nacházet v kořenovém uzlu projektu klienta.
Do souboru prostředků přidejte následující hodnoty:
Název
Value
AddContact
Přidat kontakt
Text
Přidejte kontaktní informace a potom klikněte na tlačítko Uložit.
Hodnoty v sloupci Název odpovídají identifikátorům prostředků, které jste přidali dříve, ale hodnoty nemají zápis $().Hodnoty ve sloupci Hodnota jsou řetězce, které se zobrazí, když uživatel spustí aplikaci v jazyce, který je nastaven jako Výchozí jazyk v nastavení aplikace.
Přidání lokalizovaného souboru prostředků
V Průzkumníku řešení otevřete místní nabídku uzlu Localization Sample.DesktopClient, vyberte položku Přidat a Nová položka.
Přidejte Soubor prostředků a pojmenujte jej Client.de-DE.resx.
Důležité
Vždy je nutné pojmenovat lokalizované soubory prostředků Client.LocaleID.resx, kde LocaleID je Identifikátor národního prostředí systému Windows pro jazyk, který cílíte a soubory musí být v kořenovém uzlu projektu klienta.Pokud jste zvolili jiný jazyk než němčinu, zadejte ID národního prostředí pro tento jazyk místo de-DEa zadejte vlastní překlady v dalším kroku.
Do souboru prostředků přidejte následující hodnoty:
Název
Value
AddContact
Einen Newen Kontakt erstellen
Text
Fügen Sie die Kontaktinformationen hinzu und speichern Sie dann.
Tyto řetězce se zobrazí při spuštění aplikace v počítači, který je nastaven na němčinu (nebo jakýkoli vybraný jazyk).Pokud chcete lokalizovat do více jazyků, přidejte soubor prostředků pro každý další jazyk.
[!POZNÁMKA]
Pro klienta Silverlight, který je lokalizován do více jazyků, určuje zobrazený jazyk aktivní jazyková sada systému Windows.
Volání zdroje z kódu
V Průzkumníku řešení otevřete soubor Service.resx a přidejte do něj následující hodnoty:
Název
Value
ErrorMessage
Název nesmí obsahovat vykřičník.
Otevřete soubor Service.de-DE.resx a přidejte následující hodnoty:
Název
Value
ErrorMessage
Název nesmí obsahovat vykřičník.
V Průzkumníku řešení otevřete entitu Contacts.lsml.
V Návrháři entit v seznamu Zadat kód vyberte metodu Contacts_Validate.
[!POZNÁMKA]
Ujistěte se, že je vybrána samotná entita, nikoli pole entity.Jinak dojde k chybě sestavení.
V Editoru kódu přidejte výraz Imports nebo using:
Imports My.Resources
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Resources; using System.Text; using Microsoft.LightSwitch; using Microsoft.LightSwitch.Security.Server; namespace LightSwitchApplication
Do metody Contacts_Validate přidejte následující kód:
If entity.ContactName.Contains(“!”) Then results.AddEntityError(Service.ErrorMessage) End If
if (entity.ContactName.Contains("!")) { ResourceManager serviceResources = new ResourceManager( "LightSwitchApplication.Service", Assembly.GetExecutingAssembly()); results.AddEntityError(serviceResources.GetString("ErrorMessage")); }
Nyní můžete spustit aplikaci, zadat jméno nového kontaktu obsahující vykřičník, uložit a ověřit, zda je zobrazena chybová zpráva.Můžete také nasadit aplikaci do počítače, který je nastaven na němčinu a ověřit, že se zobrazí zpráva v němčině.
Lokalizace HTML klienta
V Průzkumníku řešení otevřete obrazovku BrowseContacts.lsml.
V Návrháři obrazovky vyberte uzel Zobrazit/přidat/upravit kontakt.
V okně Vlastnosti zvolte vlastnost Zobrazit název a zadejte $(add).
V Průzkumníku řešení rozbalte uzel Localization Sample.HTMLClient, otevřete místní nabídku pro uzel Obsah, vyberte položku Přidat a poté zvolte možnost Nová složka.
Pojmenujte složku Zdroje.
Otevřete místní nabídku uzlu Prostředky, vyberte položku Přidat a poté položku Nová položka.
Přidejte položku Soubor prostředků (.resjson) a pojmenujte ji client.lang-en-US.resjson.
Důležité
V libovolném HTML klientu pro aplikaci LightSwitch je vždy nutné pojmenovat výchozí soubor prostředků jazyka client.lang -LocaleID.resjson, kde LocaleID je Identifikátor národního prostředí systému Windows pro jazyk na vašem vývojovém počítači.Na rozdíl od klienta Silverlight, klient HTML nemá koncept výchozího jazyka.
V Editoru kódu nahraďte kód za následující:
{ “add” : “Add a Contact”, “errorMessage” : “Name can’t contain an exclamation mark.“ }
Otevřete místní nabídku uzlu Prostředky, vyberte položku Přidat a poté položku Nová položka.
Přidejte další položku Soubor prostředků (.resjson) a pojmenujte ji client.lang-de-DE.resjson.
V Editoru kódu nahraďte kód za následující:
{ “add” : “Hinzufügen eines Kontakts”, “errorMessage” : “Name darf keine Ausrufezeichen enthalten.“ }
V Průzkumníku řešení otevřete místní nabídku uzlu Localization Sample.HTMLClient a pak zvolte Nastavit jako klienta po spuštění.
Otevřete obrazovku AddEditContact.lsml a v Návrháři obrazovky v seznamu Zadat kód nahraďte kód v metodě beforeApplyChanges za následující:
myapp.AddEditContact.beforeApplyChanges = function (screen) { if (screen.Contact.ContactName.indexOf('!') != -1) { screen.findContentItem("ContactName").validationResults = [ new msls.ValidationResult( screen.Contact.details.properties.ContactName, WinJS.Resources.getString("/client/errorMessage").value ) ]; return false; } };
Nyní můžete spustit aplikaci a ověřit, zda jsou řetězec pro tlačítko Přidat kontakt a chybová zpráva zobrazeny správně.Můžete nasadit aplikaci do počítače s prohlížečem, který je nastaven na němčinu a ověřit, že se zobrazí lokalizované řetězce.
[!POZNÁMKA]
V případě klienta HTML, který je lokalizován do více jazyků, určuje zobrazený jazyk nastavení jazyka prohlížeče.
Další kroky
To je všechno, co je třeba udělat pro lokalizaci aplikace LightSwitch.Mohli jste si všimnout, že mnoho částí uživatelského rozhraní, například panel příkazů obrazovky a navigační nabídka, jsou lokalizovány automaticky.Můžete potlačit automatické překlady přidáním identifikátorů prostředků vlastnostem Zobrazovaný název nebo Popis příslušných elementů.Ve skutečnosti je možné lokalizovat téměř libovolnou část aplikace LightSwitch pomocí technik, které jste se právě naučili.
Viz také
Další zdroje
Projekty: Kontejner pro vaši aplikaci LightSwitch