Better Translateホーム
GitHub
はじめる
  • はじめに
  • ミッション
  • インストール
  • CLI
  • スキル
  • RTL
  • 変更履歴
アダプター
  • コア
  • React
  • Expo
  • Astro
  • MD & MDX
  • Next.js
  • TanStack Router

Expo

ExpoはWeb Reactと同じReactアダプターを使用します。

@better-translate/react-nativeパッケージは別途存在しません。

1. パッケージのインストール

npm install @better-translate/core @better-translate/react

2. 翻訳ツールの作成

lib/i18n.tsを作成します:

ts
1import { configureTranslations } from "@better-translate/core";23const en = {4  home: {5    title: "Hello from Expo",6  },7} as const;89const es = {10  home: {11    title: "Hola desde Expo",12  },13} as const;1415export const translator = await configureTranslations({16  availableLocales: ["en", "es"] as const,17  defaultLocale: "en",18  fallbackLocale: "en",19  messages: { en, es },20});

3. アプリのラッピング

App.tsxを作成または更新します:

tsx
1import { BetterTranslateProvider } from "@better-translate/react";23import { HomeScreen } from "./components/home-screen";4import { translator } from "./lib/i18n";56export default function App() {7  return (8    <BetterTranslateProvider translator={translator}>9      <HomeScreen />10    </BetterTranslateProvider>11  );12}

4. 画面での翻訳の使用

components/home-screen.tsxを作成します:

tsx
1import { Button, Text, View } from "react-native";23import { useTranslations } from "@better-translate/react";45import { translator } from "../lib/i18n";67export function HomeScreen() {8  const { locale, setLocale, t } = useTranslations<typeof translator>();910  return (11    <View style={{ gap: 12, padding: 24 }}>12      <Text>{t("home.title")}</Text>13      <Button14        title={locale === "en" ? "Spanish" : "English"}15        onPress={() => setLocale(locale === "en" ? "es" : "en")}16      />17    </View>18  );19}

メンタルモデル

  • @better-translate/coreは翻訳データを管理します
  • @better-translate/reactはExpoにプロバイダーとフックを提供します

これがほとんどのExpoアプリの完全なセットアップです。

ロケールファイルの自動生成

すべての翻訳を手書きする代わりに、CLIを使用して文字列を抽出し、ロケールファイルを生成できます:CLIガイド

例

  • expo-example