Per localizzare un applicazione in più lingue procedere come segue:
  • 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>
mentre per usarle via codice

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
Tags:
C#236 Esempi225 Silverlight7 Windows Phone 710 XAML2
Potrebbe interessarti anche: