UniversalApp - Globalization
- Nel progetto Shared creare la cartella Strings
- Nella cartella Strings creare tante sottocartelle col nome della language (ad esempio en-US, it-IT, etc)
- In ogni sottocartella creare un file chiamato Resources.resw
- Nei file .resw creare le stringhe col formato seguente: .
- Text: quando devono essere usate nello xaml, nelle proprietà di tipo Text
- Content: quando devono essere usate nello xaml, nelle proprietà di tipo Content
- : quando devono essere usati nel codice C#
- Nei file .xaml referenziare le stringhe con la property x:Uid="" all'interno dei tag. Nel caso di TextBox la label dovrà avere l'estensione Text, etc
- Nei file .CS utilizzare il metodo getLabel presente nella Cutility, pari al seguente pezzo di codice:
public static string getLabel(string myLabel)
{
string myRes = myLabel;
ResourceContext ctx = new ResourceContext();
ctx.Languages = new string[] { CultureInfo.CurrentCulture.Name };
ResourceMap rmap = ResourceManager.Current.MainResourceMap.GetSubtree("Resources");
myRes = rmap.GetValue(myLabel, ctx).ValueAsString;
return myRes;
}
- Per leggere la lingua corrente:
- string mylang = CultureInfo.CurrentCulture.Name;