From f0aca2f4e300a01504a925cfb8559ef554b459a4 Mon Sep 17 00:00:00 2001 From: Woraphot Chokratanasombat Date: Tue, 2 Apr 2019 16:47:47 +0700 Subject: [PATCH] change(i18n): Migrate to react-native-localize `react-native-languages` was renamed to `react-native-localize` (https://github.com/react-native-community/react-native-localize/pull/29) --- boilerplate/app/i18n/i18n.ts | 7 +++++-- boilerplate/package.json.ejs | 2 +- boilerplate/test/mock-react-native-languages.ts | 5 ----- boilerplate/test/mock-react-native-localize.ts | 8 ++++++++ boilerplate/test/setup.ts | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) delete mode 100644 boilerplate/test/mock-react-native-languages.ts create mode 100644 boilerplate/test/mock-react-native-localize.ts diff --git a/boilerplate/app/i18n/i18n.ts b/boilerplate/app/i18n/i18n.ts index 5668e7b6..a9fac42d 100644 --- a/boilerplate/app/i18n/i18n.ts +++ b/boilerplate/app/i18n/i18n.ts @@ -1,9 +1,12 @@ -import RNLanguages from "react-native-languages" +import * as RNLocalize from "react-native-localize" import i18n from "i18n-js" const en = require("./en") const ja = require("./ja") -i18n.locale = RNLanguages.language i18n.fallbacks = true i18n.translations = { en, ja } + +const fallback = { languageTag: "en", isRTL: false } +const { languageTag } = RNLocalize.findBestAvailableLanguage(Object.keys(i18n.translations)) || fallback +i18n.locale = languageTag diff --git a/boilerplate/package.json.ejs b/boilerplate/package.json.ejs index 68b78a8e..502eb429 100644 --- a/boilerplate/package.json.ejs +++ b/boilerplate/package.json.ejs @@ -32,7 +32,7 @@ "mobx-react": "5.2.8", "mobx-state-tree": "2.0.5", "ramda": "0.25.0", - "react-native-languages": "^3.0.0", + "react-native-localize": "^1.0.0", "i18n-js": "^3.0.11", "react-native-keychain": "3.0.0", "react-native-splash-screen": "3.1.1", diff --git a/boilerplate/test/mock-react-native-languages.ts b/boilerplate/test/mock-react-native-languages.ts deleted file mode 100644 index 649a2353..00000000 --- a/boilerplate/test/mock-react-native-languages.ts +++ /dev/null @@ -1,5 +0,0 @@ -jest.mock("react-native-languages", () => { - return { - languages: () => `en`, - } -}) diff --git a/boilerplate/test/mock-react-native-localize.ts b/boilerplate/test/mock-react-native-localize.ts new file mode 100644 index 00000000..b4952809 --- /dev/null +++ b/boilerplate/test/mock-react-native-localize.ts @@ -0,0 +1,8 @@ +jest.mock("react-native-localize", () => { + return { + findBestAvailableLanguage: ([language = "en"]) => ({ + languageTag: language, + isRTL: false, + }), + } +}) diff --git a/boilerplate/test/setup.ts b/boilerplate/test/setup.ts index 0bb28419..ec36d1d9 100644 --- a/boilerplate/test/setup.ts +++ b/boilerplate/test/setup.ts @@ -5,7 +5,7 @@ import "react-native" import "./mock-i18n" import "./mock-reactotron" import "./mock-textinput" -import "./mock-react-native-languages" +import "./mock-react-native-localize" declare global { var __TEST__