翻訳
翻訳の定義
intlayer の t 関数を使用すると、複数の言語でコンテンツを宣言できます。この関数は型の安全性を確保し、翻訳が不足している場合にエラーを発生させます。これは特に TypeScript 環境で役立ちます。
TypeScript の使用
以下は、翻訳を使用してコンテンツを宣言する方法の例です。
**/*.content.ts
import { t, type Dictionary } from "intlayer";interface Content { welcomeMessage: string;}export default { key: "multi_lang", content: { welcomeMessage: t({ en: "Welcome to our application", fr: "Bienvenue dans notre application", es: "Bienvenido a nuestra aplicación", }), },} satisfies Dictionary<Content>;
ロケールの設定
適切な翻訳処理を確保するために、intlayer.config.ts で受け入れ可能なロケールを設定できます。この設定により、アプリケーションがサポートする言語を定義できます。
intlayer.config.ts
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], },};export default config;
React コンポーネントでの翻訳の使用
react-intlayer を使用すると、React コンポーネントで翻訳を使用できます。以下はその例です。
**/*.tsx
import type { FC } from "react";import { useIntlayer } from "react-intlayer";const MyComponent: FC = () => { const content = useIntlayer("multi_lang"); return ( <div> <p>{content.welcomeMessage}</p> </div> );};export default MyComponent;
このコンポーネントは、アプリケーションで設定された現在のロケールに基づいて対応する翻訳を取得します。
カスタムコンテンツオブジェクト
intlayer は翻訳用のカスタムコンテンツオブジェクトをサポートしており、より複雑な構造を定義しながら型の安全性を確保できます。以下はカスタムオブジェクトの例です。
**/*.content.ts
import { t, type Dictionary } from "intlayer";interface ICustomContent { title: string; content: string;}const customContent = { key: "custom_content", content: { profileText: t<ICustomContent>({ en: { title: "Page Title", content: "Page Content", }, fr: { title: "Titre de la Page", content: "Contenu de la Page", }, es: { title: "Título de la Página", content: "Contenido de la Página", }, }), },} satisfies Dictionary;export default customContent;
このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンク