Xamarin.Forms: como usar a localização independentemente do idioma do dispositivo
Estou desenvolvendo um aplicativo Xamarin.Forms (projeto de biblioteca de classes portátil) com o Visual Studio 2013 CE. Primeiro, estou focando a versão do iOS.
Agora estou pensando em como tornar o aplicativo multilíngue. Acabei de ler a documentação oficial do Xamarin sobre isso, mas percebi que esta solução usa apenas o idioma do sistema do dispositivo de destino.
Na biblioteca de classes portátil, tenho uma pasta Recursos com três idiomas: alemão (padrão), inglês e francês.
Resource.resx
Resource.en-US.resx
Resource.fr-FR.resx
Resource.Designer.cs
Agora, acabei de criar uma classe de configurações estáticas que se parece com isso:
public static class Settings
{
public static Dictionary<String, CultureInfo> Languages = new Dictionary<String, CultureInfo> { { "German", new CultureInfo("de-DE") }, { "English", new CultureInfo("en-US") }, { "French", new CultureInfo("fr-FR") } };
public static CultureInfo CurrentCulture = Languages["German"];
public static CultureInfo CurrentUiCulture = Languages["German"];
public static void ChangeCurrentCultureInfo(CultureInfo cultureInfo)
{
Resource.Culture = cultureInfo;
}
}
Agora, minha pergunta é se é possível alterar a cultura no aplicativo durante a execução com um clique no botão. Talvez algo como
Settings.CurrentCulture = Settings.Languages["English"];
Settings.ChangeCurrentCultureInfo(Settings.CurrentCulture);
Alguém pode me dizer como isso pode ser feito?
Saudações