Skip to content

Commit 75414db

Browse files
authored
chore: use metro transformer in react native example (#2000)
1 parent 25b3bc6 commit 75414db

File tree

12 files changed

+2420
-1872
lines changed

12 files changed

+2420
-1872
lines changed

examples/react-native/App.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import "@formatjs/intl-locale/polyfill";
1+
import "@formatjs/intl-locale/polyfill-force";
22

3-
import "@formatjs/intl-pluralrules/polyfill";
3+
import "@formatjs/intl-pluralrules/polyfill-force";
44
import "@formatjs/intl-pluralrules/locale-data/en"; // locale-data for en
55
import "@formatjs/intl-pluralrules/locale-data/cs"; // locale-data for cs
66

@@ -9,7 +9,8 @@ import { Text } from "react-native";
99
import { i18n } from "@lingui/core";
1010
import { I18nProvider, TransRenderProps } from "@lingui/react";
1111

12-
import { messages } from "./src/locales/en/messages.js";
12+
import { messages } from "./src/locales/en/messages.po";
13+
1314
import { Body } from "./src/MainScreen";
1415

1516
i18n.loadAndActivate({ locale: "en", messages });

examples/react-native/metro.config.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
11
// Learn more https://docs.expo.io/guides/customizing-metro
22
const { getDefaultConfig } = require("expo/metro-config");
33

4-
module.exports = getDefaultConfig(__dirname);
4+
const config = getDefaultConfig(__dirname);
5+
const { transformer, resolver } = config;
6+
7+
config.transformer = {
8+
...transformer,
9+
babelTransformerPath: require.resolve("@lingui/metro-transformer/expo"),
10+
};
11+
config.resolver = {
12+
...resolver,
13+
sourceExts: [...resolver.sourceExts, "po", "pot"],
14+
};
15+
16+
module.exports = config;

examples/react-native/package.json

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,36 @@
99
"web": "expo start --web",
1010
"extract": "lingui extract",
1111
"compile": "lingui compile",
12-
"no-dev": "npx expo start --no-dev --minify",
12+
"no-dev": "npx expo start -c --no-dev --minify",
1313
"inspectBundle": "npx react-native-bundle-visualizer",
1414
"fix-deps": "npx expo install --check"
1515
},
1616
"dependencies": {
17-
"@formatjs/intl-locale": "^3.1.1",
18-
"@formatjs/intl-pluralrules": "^5.1.10",
19-
"@lingui/core": "^4.1.2",
20-
"@lingui/react": "^4.1.2",
21-
"expo": "49.0.0-beta.5",
22-
"expo-status-bar": "~1.6.0",
23-
"expo-updates": "~0.18.7",
17+
"@formatjs/intl-locale": "^4.0.2",
18+
"@formatjs/intl-pluralrules": "^5.2.16",
19+
"@lingui/core": "^4.12.0",
20+
"@lingui/react": "^4.12.0",
21+
"expo": "~51.0.37",
22+
"expo-status-bar": "~1.12.1",
23+
"expo-updates": "~0.25.27",
2424
"react": "18.2.0",
25-
"react-native": "0.72.0",
26-
"react-native-web": "~0.19.6"
25+
"react-native": "0.74.5",
26+
"react-native-web": "~0.19.10"
2727
},
2828
"devDependencies": {
29-
"@babel/core": "^7.21.0",
30-
"@lingui/cli": "^4.1.2",
31-
"@lingui/macro": "^4.1.2",
29+
"@babel/core": "^7.24.0",
30+
"@lingui/cli": "^4.12.0",
31+
"@lingui/macro": "^4.12.0",
32+
"@lingui/metro-transformer": "^4.12.0",
3233
"@react-native-community/eslint-config": "^3.2.0",
33-
"@types/react": "~18.0.14",
34+
"@types/react": "~18.2.79",
3435
"@typescript-eslint/eslint-plugin": "^5.59.11",
3536
"babel-plugin-macros": "^3.1.0",
3637
"eslint": "^8.42.0",
3738
"eslint-config-prettier": "^8.8.0",
3839
"eslint-plugin-ft-flow": "^2.0.3",
3940
"prettier": "^2.8.8",
40-
"typescript": "^4.9.4"
41+
"typescript": "~5.3.3"
4142
},
4243
"private": true
4344
}

examples/react-native/src/MainScreen.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ export const Body = React.memo(() => {
3131
const newActiveLanguage = activeLanguage === "en" ? "cs" : "en";
3232
const catalog =
3333
newActiveLanguage === "en"
34-
? require("./locales/en/messages.js")
35-
: require("./locales/cs/messages.js");
34+
? require("./locales/en/messages.po")
35+
: require("./locales/cs/messages.po");
3636
i18n.load(newActiveLanguage, catalog.messages);
3737
i18n.activate(newActiveLanguage);
3838
};

examples/react-native/src/locales/cs/messages.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

examples/react-native/src/locales/cs/messages.po

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ msgstr ""
1818
"X-Crowdin-File: messages.po\n"
1919
"X-Crowdin-File-ID: 25\n"
2020

21-
#: src/MainScreen.tsx:102
21+
#: src/MainScreen.tsx:91
2222
msgid "{messageIndex, selectordinal, one {#st message} two {#nd message} few {#rd message} other {#th message}}"
2323
msgstr "{messageIndex, selectordinal, other {#. zpráva}}"
2424

25-
#: src/MainScreen.tsx:89
25+
#: src/MainScreen.tsx:78
2626
msgid "{messagesCount, plural, =0 {You have no unread messages} one {There's # message in your inbox} few {There're # messages in your inbox} other {There're # messages in your inbox}}"
2727
msgstr "{messagesCount, plural, =0 {Nemáte žádné nepřečtené zprávy} one {Ve vaší schránce je # zpráva} few {Ve vaší schránce jsou # zprávy} many {Ve vaší schránce je # zpráv} other {Ve vaší schránce je # zpráv}}"
2828

29-
#: src/MainScreen.tsx:87
29+
#: src/MainScreen.tsx:76
3030
msgid "Add a message to your inbox"
3131
msgstr "Přidat zprávu do doručené pošty"
3232

@@ -38,23 +38,22 @@ msgstr "Zrušit"
3838
msgid "Do you want to set all your messages as read?"
3939
msgstr "Chcete označit všechny vaše zprávy jako přečtené?"
4040

41-
#: src/MainScreen.tsx:86
41+
#: src/MainScreen.tsx:75
4242
msgid "Mark messages as read"
4343
msgstr "Označit zprávy jako přečtené"
4444

45-
#: src/MainScreen.tsx:83
45+
#: src/MainScreen.tsx:73
4646
msgid "Message Inbox"
4747
msgstr "Doručená pošta"
4848

49-
#: src/MainScreen.tsx:101
49+
#: src/MainScreen.tsx:90
5050
msgid "order:"
5151
msgstr "pořadí:"
5252

53-
#: src/MainScreen.tsx:43
53+
#: src/MainScreen.tsx:44
5454
msgid "Toggle language to {0}"
5555
msgstr "Přepnout jazyk na {0}"
5656

5757
#: src/MainScreen.tsx:17
5858
msgid "Yes"
5959
msgstr "Ano"
60-

examples/react-native/src/locales/en/messages.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

examples/react-native/src/locales/en/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ msgstr ""
1313
"Language-Team: \n"
1414
"Plural-Forms: \n"
1515

16-
#: src/MainScreen.tsx:102
16+
#: src/MainScreen.tsx:91
1717
msgid "{messageIndex, selectordinal, one {#st message} two {#nd message} few {#rd message} other {#th message}}"
1818
msgstr "{messageIndex, selectordinal, one {#st message} two {#nd message} few {#rd message} other {#th message}}"
1919

20-
#: src/MainScreen.tsx:89
20+
#: src/MainScreen.tsx:78
2121
msgid "{messagesCount, plural, =0 {You have no unread messages} one {There's # message in your inbox} few {There're # messages in your inbox} other {There're # messages in your inbox}}"
2222
msgstr "{messagesCount, plural, =0 {You have no unread messages} one {There's # message in your inbox} few {There're # messages in your inbox} other {There're # messages in your inbox}}"
2323

24-
#: src/MainScreen.tsx:87
24+
#: src/MainScreen.tsx:76
2525
msgid "Add a message to your inbox"
2626
msgstr "Add a message to your inbox"
2727

@@ -33,19 +33,19 @@ msgstr "Cancel"
3333
msgid "Do you want to set all your messages as read?"
3434
msgstr "Do you want to set all your messages as read?"
3535

36-
#: src/MainScreen.tsx:86
36+
#: src/MainScreen.tsx:75
3737
msgid "Mark messages as read"
3838
msgstr "Mark messages as read"
3939

40-
#: src/MainScreen.tsx:83
40+
#: src/MainScreen.tsx:73
4141
msgid "Message Inbox"
4242
msgstr "Message Inbox"
4343

44-
#: src/MainScreen.tsx:101
44+
#: src/MainScreen.tsx:90
4545
msgid "order:"
4646
msgstr "order:"
4747

48-
#: src/MainScreen.tsx:43
48+
#: src/MainScreen.tsx:44
4949
msgid "Toggle language to {0}"
5050
msgstr "Toggle language to {0}"
5151

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module "*.po" {
2+
import type { Messages } from "@lingui/core";
3+
export const messages: Messages;
4+
}

0 commit comments

Comments
 (0)