# tanstack-start: TanStack Start Quickstart URL: https://generaltranslation.com/ja/docs/tanstack-start.mdx --- title: TanStack Start Quickstart description: gt-tanstack-start を使って TanStack Start アプリを国際化します --- **前提条件:** React 16.8 以降を使用する TanStack Start プロジェクト **実験的:** `gt-tanstack-start` は現在も開発中のため、まだ本番環境での使用は推奨されていません。 ## インストール `gt-tanstack-start`、`gt-react`、および `gt` CLI をインストールします。 ```bash npm i gt-tanstack-start gt-react npm i -D gt ``` ```bash yarn add gt-tanstack-start gt-react yarn add --dev gt ``` ```bash bun add gt-tanstack-start gt-react bun add --dev gt ``` ```bash pnpm add gt-tanstack-start gt-react pnpm add --save-dev gt ``` `gt` CLI がソースコード内の `` コンポーネントを検出できるようにするには、`gt-react` を直接依存関係として追加する必要があります。 ## 設定 ### `gt.config.json` プロジェクトルートに `gt.config.json` を作成します。 ```json title="gt.config.json" { "defaultLocale": "en", "locales": ["es", "ja"], "files": { "gt": { "output": "src/_gt/[locale].json" } } } ``` 翻訳ファイルは、Vite の動的インポートを機能させるため、**必ず** `src/` 内に配置する必要があります。`public/` では動作しません。 ### 翻訳ローダー プロジェクトルートに `loadTranslations.ts` ファイルを作成します。 ```ts title="loadTranslations.ts" export default async function loadTranslations(locale: string) { const translations = await import(`./src/_gt/${locale}.json`); return translations.default; } ``` ### root ルートのセットアップ GT を初期化し、翻訳を利用できるようにするため、`src/routes/__root.tsx` を更新します: ```tsx title="src/routes/__root.tsx" import { HeadContent, Scripts, createRootRoute, } from '@tanstack/react-router' import { initializeGT, GTProvider, getTranslations, getLocale, LocaleSelector, } from 'gt-tanstack-start' import gtConfig from '../../gt.config.json' import loadTranslations from '../../loadTranslations' // モジュールレベルで GT を初期化する initializeGT({ ...gtConfig, loadTranslations, }) export const Route = createRootRoute({ head: () => ({ meta: [ { charSet: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, ], }), loader: async () => { return { translations: await getTranslations(), locale: getLocale(), } }, shellComponent: RootDocument, }) function RootDocument({ children }: { children: React.ReactNode }) { const { translations, locale } = Route.useLoaderData() return ( {children} ) } ``` ## 使い方 コンテンツを翻訳するには、`` で囲みます。`gt-react` から `` をインポートします。 ```tsx title="src/routes/index.tsx" import { createFileRoute } from '@tanstack/react-router' import { T } from 'gt-react' export const Route = createFileRoute('/')({ component: Home }) function Home() { return (

Welcome to our app!

This content is automatically translated.

) } ``` `` は `gt-react` からインポートしてください (`gt-tanstack-start` ではありません) 。`gt` CLI は、翻訳対象のコンテンツを見つけるために `gt-react` のインポートをスキャンします。 ## 訳文を生成 ### General Translation を使う (推奨) 翻訳を生成するには、`gt translate` コマンドを実行します。 ```bash npx gt translate ``` これにより、コンテンツが General Translation API に送信され、翻訳済みの JSON ファイルが `src/_gt/` にダウンロードされます。 API の利用には環境変数が必要です。 ```bash title=".env" GT_API_KEY="your-api-key" GT_PROJECT_ID="your-project-id" ``` 無料のAPI キーは [dash.generaltranslation.com](https://dash.generaltranslation.com/signup) で取得するか、次を実行してください。 ```bash npx gt auth ``` ### 手動翻訳 訳文を自分で管理する場合: 1. 原文の言語ファイルを生成します: ```bash npx gt generate ``` 2. 生成された JSON ファイルを手動で翻訳します 3. それらを `src/_gt/{locale}.json` に配置します ## テスト 開発サーバーを起動します。 ```bash npm run dev ``` ```bash yarn dev ``` ```bash bun run dev ``` ```bash pnpm dev ``` [localhost:3000](http://localhost:3000) にアクセスし、ロケールセレクターを使って言語を切り替えます。訳文はローカルの JSON ファイルから読み込まれるため、言語の切り替えはすぐに反映されます。 ## デプロイ build スクリプトに翻訳ステップを追加します: ```json title="package.json" { "scripts": { "build": "npx gt translate && vite build" } } ``` ## サンプルアプリ 完全に動作するサンプルは、こちらをご覧ください: [tanstack-start-basic](https://github.com/generaltranslation/gt/tree/main/examples/tanstack-start-basic) *** ## 次のステップ * API をより詳しく知るには、[概要](/docs/tanstack-start/introduction)をご覧ください * ``、``、`` などの[変数コンポーネント](/docs/react/guides/variables)について学びましょう * [`` コンポーネント](/docs/react/api/components/t)の API リファレンスを確認してください