Cuando inicia la aplicación, hay muchas formas de obtener el idioma actual del dispositivo:
CultureInfo.CurrentCultureCultureInfo.CurrentUICultureCultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICultureThread.CurrentThread.CurrentCultureThread.CurrentThread.CurrentCulturePero si cambio el idioma del dispositivo mientras se ejecuta la aplicación, ninguno de esos valores se actualizará.
¿Existe una forma universal de obtener el idioma actual del dispositivo o necesito escribir código para cada plataforma de forma independiente?
CultureInfo.GetCultureInfo(Locale.Default.ToString().Replace('_', '-'))CultureInfo.GetCultureInfo(NSLocale.CurrentLocale.LocaleIdentifier.Replace('_', '-'));CultureInfo.GetCultureInfo(GlobalizationPreferences.Languages[0].ToString())Cada plataforma debe proporcionar una notificación cada vez que el usuario cambie la ubicación o el idioma del dispositivo. Por ejemplo, iOS envía una NSCurrentLocaleDidChangeNotification que incluye una propiedad de idioma.
Deberá registrarse y observar las notificaciones de la plataforma mediante el procedimiento de notificaciones locales de Xamarin.Forms , que indica (negrita y cursiva añadidas):
Cada plataforma maneja la creación, visualización y consumo de notificaciones locales de manera diferente. Este artículo explica cómo crear una abstracción multiplataforma para enviar, programar y recibir notificaciones locales con Xamarin.Forms.
Hay una serie de tutoriales sobre cómo hacer esto. Busque en los formularios de xamarin el tutorial de consumo de notificaciones locales para encontrar algunos. Nótese el término local . No quieres notificaciones automáticas, eso es otra cosa.
Para realizar esta tarea de manera más sencilla, es posible que pueda usar un complemento , como edsnider/localnotificationsplugin en GitHub . Puede encontrar más si reemplaza los términos consumir tutorial con complemento en su búsqueda.
Aclaración :
Por favor, inténtalo
Java.Util.Locale currentLanguage = this.Resources.Configuration.Locales.Get (0);Estoy usando esta llamada en Xamarin Android y funciona bien para mí. "esto" está en la clase Android.App.Activity.