J'ai une application multi-langage et je souhaite afficher la date en anglais si la langue sélectionnée sur le téléphone n'est pas prise en charge par les traductions de l'application.
existe-t-il une méthode pour obtenir la langue utilisée par application (anglais par défaut)
Au lieu de la langue sélectionnée dans le téléphone? strong> p> On dirait que cela ne renvoie que la langue du téléphone: P> Locale.getDefault()
getContext().getResources().getConfiguration().locale
3 Réponses :
Obtenir la langue système
String appLang = Locale.getDefault().getLanguage();
Il renvoie également la langue du système et non la langue d'application.
J'ai fabriqué une fonction d'extension à la date de format avec les paramètres régionaux par défaut de l'application ou uniquement en anglais. P> Remarque: cette fonction retournera toujours la date de formatée en anglais, peu importe votre langage de votre appareil ou quelle que soit votre langue d'application. strong> p> Avant d'afficher et après cela, utilisez cette méthode pour formater la date. p> Comment utiliser cette fonction p> < Pré> xxx pré> p> DatePickerDialog code> SET LOCAL code> à EN CODE> Comme ça. p>
Puisqu'il n'y a pas d'aide, je posterai ma solution pour ce problème.
J'ai donc décidé de créer un fichier XML pour chaque langue prise en charge avec le code local à l'intérieur: p> exemple d'utilisation: p>
Ne serait-il pas plus facile de vérifier si la langue du système n'est pas disponible dans vos traductions?
Ce serait mais comment? @Federicoklezculloca
1. Obtenir la langue du système; 2. mettre en place des langues de traduction dans la liste; 3. Vérifiez si la langue système est dans cette liste.
Oui, mais cela "2. Mettre en place la traduction Les langues de traduction dans la liste" est un peu problématique. @Federicoklezculloca
Je ne comprends pas vraiment ce que vous voulez dire avec " Langue utilisée par application (anglais par défaut) au lieu de la langue sélectionnée dans le téléphone i>"
Par exemple, l'utilisateur de l'Arabie a sélectionné une langue arabe qui n'est pas prise en charge par application. Puis application utilisant la date d'affichage de la langue anglaise en arabe à cause de Locale.getDefault ()
@ Esperanz0 j'ai fait les mêmes choses. Pouvez-vous me dire un peu plus de plus pour que je puisse vous aider? Prenez-vous la date de
DatePickerDialog CODE> ou le formatage?Android utilise la localisation par défaut si le paramètre de périphérique sélectionné de l'utilisateur n'est pas inclus dans les ressources. N'est-ce pas exactement ce que vous recherchez? Dans quelle langue votre localisation par défaut est-elle maintenant?
@HARSHADPRAJAPATI Oui quelque chose comme ça.
@Torben et la langue d'application conviennent bien. Mais la date est formatée par Locale.GetDefault () qui n'est pas par défaut la langue anglaise et la date est formatée par langue sélectionnée au téléphone.
string lang = locale.getdefault (). GetLanguage (); b>
@HARSHILKAKAADIYA Pour des raisons pour des raisons de retour, la langue de retour sélectionné sur le téléphone au lieu de l'application.
hey @ esperanz0. Je viens de poster ma réponse, vérifiez-le et laissez-moi savoir si vous voulez une explication supplémentaire ou une modification.