Windows Phone 7 localizzare l'applicazione
Per localizzare un applicazione in più lingue procedere come segue:
File: Nomeprogetto.csprojl
File: ResManager.cs
File: App.xaml
Esempio di utilizzo delle risorse nel file xaml tramite Binding usando la risorsa definita in App.xaml
mentre per usarle via codice
Cambiando la lingua del telefono impostazioni / sistema / paese e lingua l'applicazione userà il corretto file di risorse.
Per localizzare le Tile vedi Windows Phone 7 localizzare l'Application Title
- aggiungere un file di risorsa (es.: Res.resx) in una cartella AllResources
- aggiungere i file di risorsa localizzati (es.: Res.it.resx)
- impostare su tutti i file di risorsa Build Action a Embedded Resource e Custom Tool su PublicResXFileCodeGenerator
- modificare il file di progetto Nomeprogetto.csproj per aggiungere le lingue supportate
- aggiungere la classe ResManager.cs
- aggiungere la classe ResManager come risorsa al file App.xaml
- usare la risorsa nel file xaml o nel codice
File: Nomeprogetto.csprojl
XML
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
...
<SupportedCultures>it;de-DE;es-ES;</SupportedCultures>
File: ResManager.cs
C#
using System;
namespace Sgart.NomeProgetto.AllResources
{
public class ResManager
{
private Res _resources;
public ResManager()
{
_resources = new Res();
}
public Res Resources { get { return _resources; } }
}
}
File: App.xaml
XML
<Application ...>
<Application.Resources>
<local:ResManager xmlns:local="clr-namespace:Sgart.NomeProgetto.AllResources"
x:Key="ResManager"/>
</Application.Resources>
</Application>
Esempio di utilizzo delle risorse nel file xaml tramite Binding usando la risorsa definita in App.xaml
XML
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="{Binding Path=Resources.ApplicationTitle, Source={StaticResource ResManager}}" />
<TextBlock x:Name="PageTitle" Text="{Binding Path=Resources.AddPageTitle, Source={StaticResource ResManager}}" />
</StackPanel>
C#
//using Sgart.NomeProgetto;
string str1 = AllResources.Res.ApplicationTitle
string str1 = AllResources.Res.AddPageTitle
Cambiando la lingua del telefono impostazioni / sistema / paese e lingua l'applicazione userà il corretto file di risorse.
Per localizzare le Tile vedi Windows Phone 7 localizzare l'Application Title