Pour tester cela, j'ai changé la langue sur mon appareil vers le français. Voici un échantillon de ce que vous trouverez dans le NativeModules.SettingsManager.settings liée à l'objet de paramètres régionaux:
Il ne fonctionne pas sur Android. D'accéder aux paramètres de cette manière n'est pas encore supporté sur Android. Voir Settings.android.js Utilisation NativeModules.I18nManager.localeIdentifier pour Android Dans ios NativeModules.SettingsManager est pas défini et NativeModules est un objet vide... 🙁 ! Savez-vous quelle peut être la raison? êtes-vous à l'aide de l'Expo par hasard??? On dirait que c'est un objet vide lors de l'essai sur l'Expo, mais tout fonctionne comme prévu sur un simulateur iOS et périphérique réel.
Très joli paquet, mais actuellement il n'est plus maintenu que l'auteur est à la recherche de quelqu'un pour prendre la relève (au moment où je poste ce). Nous croisons les doigts pour que quelqu'un va la ramasser.
Vous pouvez avoir besoin d'étendre réagir natif de vous-même pour obtenir cette info. Mais, selon votre cas d'utilisation, cette localisation composant (stefalda/ReactNativeLocalization) peut fonctionner pour vous.
import React, { NativeModules } from 'react-native'
...
function getLocale () {
if (React.Platform.OS === 'android') {
return NativeModules.RNI18n.getCurrentLocale(locale => locale.replace(/_/, '-'))
} else {
return NativeModules.RNI18n.locale.replace(/_/, '-')
}
}
Fonctionne à la fois sous Android et iOS.
NativeModules n'a pas RNI18n (au moins par défaut). Je suppose que vous avez ajouté une lib. Je suppose que vous avez installé github.com/AlexanderZaytsev/react-native-i18n Il n'y a pas une telle chose comme getCurrentLocale dans la bibliothèque.
Il n'y a pas besoin d'une bibliothèque externe. Vous pouvez trouver lorsque vous êtes à la recherche pour Réagir dans l' Les Modules Natifs
Pour tester cela, j'ai changé la langue sur mon appareil vers le français. Voici un échantillon de ce que vous trouverez dans le
NativeModules.SettingsManager.settings
liée à l'objet de paramètres régionaux:D'accéder aux paramètres de cette manière n'est pas encore supporté sur Android. Voir Settings.android.js
Utilisation
NativeModules.I18nManager.localeIdentifier
pour AndroidDans ios NativeModules.SettingsManager est pas défini et NativeModules est un objet vide... 🙁 ! Savez-vous quelle peut être la raison?
êtes-vous à l'aide de l'Expo par hasard??? On dirait que c'est un objet vide lors de l'essai sur l'Expo, mais tout fonctionne comme prévu sur un simulateur iOS et périphérique réel.
OriginalL'auteur evan_schmevan
Je suis en utilisant le i18n paquet (réaction de-native-i18n).
Et puis c'est juste:
OriginalL'auteur eyal83
Ci-dessous la fonction va retourner un 2 la lettre le code de langue. Par exemple: fr
OriginalL'auteur Firoz Ahmed
OriginalL'auteur RogerParis
Rien de ce qui précède a fonctionné pour moi, mais cette composant.
OriginalL'auteur brannigan
Vous pouvez avoir besoin d'étendre réagir natif de vous-même pour obtenir cette info. Mais, selon votre cas d'utilisation, cette localisation composant (stefalda/ReactNativeLocalization) peut fonctionner pour vous.
OriginalL'auteur Chris Geirman
J'ai trouvé cette solution pour Android et iOS (RN 0.35)
Peut-être cela va de l'aide à quelqu'un, mais iOS ne montre propriété locale. Il montre que les rtl de soutien maintenant.
OriginalL'auteur SerzN1
si vous développer au cours de l'Expo... vous pouvez utiliser:
console.log(await NativeModules.ExponentUtil.getCurrentLocaleAsync());
console.log(await NativeModules.ExponentUtil.getCurrentDeviceCountryAsync());
console.log(await NativeModules.ExponentUtil.getCurrentTimeZoneAsync());
OriginalL'auteur crazyx13th
NativeModules solution peut être changé au fil du temps par Facebook développeurs.
Pour cette raison, j'avais préparé un composant. (Il ne fonctionne que sur Android pour l'instant)
Exemple d'utilisation:
Également la promesse-qui peuvent être utilisés:
Aussi ES7 asynchrone attendent méthode peut être utilisée!
Un exemple de résultat:
OriginalL'auteur efkan
Personnellement, je préfère utiliser réagir-native-i18n.
ensuite, vous pouvez l'utiliser comme ceci à l'intérieur de la documentation..
lien: https://github.com/AlexanderZaytsev/react-native-i18n
OriginalL'auteur Hazim Ali
Je suis en utilisant réagir-native-i18n
afin d'accéder à la langue de l'appareil que j'ai utilisé:
Tout est dans la documentation.
OriginalL'auteur Luminita Balas
Vous pouvez installer
réagissent-native-i18n
et l'utilisation de cette fonction:Fonctionne à la fois sous Android et iOS.
NativeModules
n'a pasRNI18n
(au moins par défaut). Je suppose que vous avez ajouté une lib.Je suppose que vous avez installé github.com/AlexanderZaytsev/react-native-i18n
Il n'y a pas une telle chose comme
getCurrentLocale
dans la bibliothèque.OriginalL'auteur amb