このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
新しい Intlayer v7 - 新機能は何ですか?
Intlayer v7 へようこそ!このメジャーリリースでは、パフォーマンス、型安全性、開発者体験において大幅な改善を導入しました。以下にハイライト、移行ノート、実用的な例を示します。
ハイライト
- より高速なビルドのためのキャッシュ戦略
- ロケール固有の型を用いたTypeScript型生成の改善
- バンドル最適化:enumではなく文字列としてのロケール
- 新しいルーティングモード:
prefix-no-default、prefix-all、no-prefix、search-params - GDPR準拠のロケール保存、デフォルトはlocalStorage
- 柔軟なストレージ設定:クッキー、localStorage、sessionStorage、または複数の組み合わせ
- Visual Editorパッケージサイズが30%縮小
- ミドルウェア設定オプションの強化
- コンテンツ管理向上のためのfillコマンドの動作更新
- コンテンツ宣言ファイルの完全更新による安定性向上
- 翻訳精度のためのインテリジェントなリトライ管理
- より高速な翻訳処理のための並列化
- AIコンテキスト制限内で大きなファイルを扱うスマートチャンク処理
パフォーマンス:より高速なビルドのためのキャッシュ
esbuildで毎回コンテンツ宣言を再構築する代わりに、v7ではビルドプロセスを高速化するキャッシュ戦略を実装しています。
コードをクリップボードにコピー
新しいキャッシュシステムは以下を実現します:
- コンパイル済みのコンテンツ宣言を保存し、冗長な処理を回避
- 変更を検出し、変更されたファイルのみを再構築
- 大規模プロジェクトのビルド時間を大幅に短縮
TypeScript:ロケール別の型生成
TypeScriptの型はロケールごとに生成されるようになり、より強力な型付けが可能となり、全ロケールにまたがるユニオン型を排除します。
v6の挙動:
コードをクリップボードにコピー
v7の挙動:
コードをクリップボードにコピー
利点:
- IDEでのより正確なオートコンプリート
- ロケール間の型汚染がなく、より良い型安全性
- 型の複雑さを減らすことでパフォーマンスが向上
バンドル最適化: 文字列としてのロケール
Locales型はもはや列挙型(enum)ではなくなり、完全にツリーシェイク可能となったため、使用されていない何千ものロケールレコードでバンドルが膨らむことがありません。
v6:
コードをクリップボードにコピー
v7:
コードをクリップボードにコピー
Localesはもはやenumではないため、型としてロケールを取得するには、型をLocalesからLocaleに変更する必要があります。
詳細については、実装の詳細をご覧ください。
より柔軟な新しいルーティングモード
v7では、以前のprefixDefaultおよびnoPrefixオプションに代わる統一されたrouting.mode設定が導入され、URL構造に対するより細かな制御が可能になりました。
利用可能なルーティングモード
prefix-no-default(デフォルト):デフォルトロケールにはプレフィックスがなく、その他のロケールにはプレフィックスが付く/dashboard(en)または/fr/dashboard(fr)
prefix-all:すべてのロケールにプレフィックスが付く/en/dashboard(en)または/fr/dashboard(fr)
no-prefix: URLにロケールのプレフィックスがない(ロケールはストレージやヘッダーで管理)- すべてのロケールで
/dashboard
- すべてのロケールで
search-params: クエリパラメータとしてロケールを渡す/dashboard?locale=enまたは/dashboard?locale=fr
基本設定
コードをクリップボードにコピー
GDPR準拠:localStorage / クッキーのストレージ
v7では、ユーザーのプライバシーを優先し、クッキーの代わりに localStorage をデフォルトのストレージ機構として使用します。この変更により、ロケール設定に関するクッキー同意の必要がなくなり、GDPR準拠が容易になります。
ストレージ設定オプション
新しい routing.storage フィールドは、以前の middleware.cookieName および middleware.serverSetCookie オプションに加えて利用可能であり、柔軟なストレージ構成を提供します。
コードをクリップボードにコピー
GDPR準拠の設定例
機能性とGDPR準拠のバランスを取る必要がある本番アプリケーション向け:
コードをクリップボードにコピー
クッキーストレージの有効化 / 無効化
React / Next.js を使用した例:
グローバルに定義可能:
コードをクリップボードにコピー
各フックでローカルに上書き可能:
コードをクリップボードにコピー
注意: クッキーはデフォルトで有効になっています。 注意: ご利用のケースに応じて、GDPRのクッキー要件を確認してください。
ビジュアルエディター: 30% 小さくなったパッケージ
ビジュアルエディターパッケージは、以下の理由により前バージョンより30%小さく最適化されました:
- コードエディターのパフォーマンス向上
- Intlayerコアパッケージの不要な依存関係の削除
- より良いツリーシェイキングとモジュールバンドリング
これにより、ダウンロード時間の短縮とアプリケーションの実行時パフォーマンスの向上が実現します。
fillコマンド: より良いコンテンツ管理のための動作更新
v7では、fillコマンドの動作が改善され、より予測可能で柔軟なコンテンツ管理が可能になりました:
新しい fill の動作
fill: true- すべてのロケールに対して内容を埋めた状態で現在のファイルを書き換えますfill: "path/to/file"- 現在のファイルを変更せずに指定したファイルを埋めますfill: false- 自動埋めを完全に無効にします
複雑なコンテンツ構造への対応強化
fill コマンドは、以下を含む複雑なコンテンツ宣言構造をサポートするようになりました:
- 合成オブジェクト:他のオブジェクトを参照するコンテンツ宣言
- 分割代入されたコンテンツ:分割代入パターンを使用したコンテンツ
- ネストされた参照:複雑な階層で互いに呼び合うオブジェクト
- 動的コンテンツ構造:条件付きまたは計算されたプロパティを持つコンテンツ
利点
- 意図の明確化:何が変更されるかがより明確になりました
- より良い分離: コンテンツファイルを翻訳済みファイルから分けて管理できます
- 改善されたワークフロー: 開発者は翻訳の保存場所をより細かく制御できます
- 複雑な構造のサポート: 複数の相互接続されたオブジェクトを持つ高度なコンテンツ構造を扱えます
使用例
コードをクリップボードにコピー
安定性と翻訳管理の強化
v7では、コンテンツ翻訳をより信頼性が高く効率的にするためのいくつかの改善が導入されました。
コンテンツ宣言ファイルの完全更新
システムは部分的な更新ではなく、.content.{ts,js,cjs,mjs} ファイル全体を更新するようになり、以下を保証します:
- データの完全性: ファイル全体の書き換えにより、部分的な更新によってコンテンツが破損するのを防ぎます
- 一貫性: すべてのロケールが原子単位で更新され、同期が維持されます
- 信頼性: 不完全または不正なコンテンツファイルのリスクを低減します
インテリジェントなリトライ管理
新しいリトライ機構により、不正な形式のコンテンツのプッシュを防ぎ、1つのリクエストが失敗しても全体のfillプロセスが壊れるのを回避します。
高速処理のための並列化
翻訳操作はキューで実行され、並列処理されるため、処理速度が大幅に向上します。
大規模ファイルのためのスマートチャンク分割
高度なチャンク分割戦略により、AIのコンテキストウィンドウを超えないように大規模なコンテンツファイルを処理します:
ワークフローの例
コードをクリップボードにコピー
システムは自動的に以下を行います:
- コンテンツのサイズと構造を解析
- 適切にコンテンツをチャンク分割
- チャンクを並列処理
- 必要に応じて検証とリトライ
- 完全なファイルを再構築
v6からの移行ノート
削除された設定
middleware.cookieName:routing.storageに置き換えmiddleware.serverSetCookie:routing.storageに置き換えmiddleware.prefixDefault:routing.modeに置き換えmiddleware.noPrefix:routing.modeに置き換え
移行マッピング
設定マッピング
テーブルをモーダルで開き、すべてのデータを明確に表示
| v6 設定 | v7 設定 |
|---|---|
autoFill: xxx | fill: xxx |
prefixDefault: false | mode: 'prefix-no-default' |
prefixDefault: true | mode: 'prefix-all' |
noPrefix: true | mode: 'no-prefix' |
cookieName: 'my-locale' | storage: { type: 'cookie', name: 'my-locale' } |
serverSetCookie: 'never' | storage: false または storage 配列から cookie を削除 |
マイグレーション例
以前 (v6):
コードをクリップボードにコピー
以降 (v7):
コードをクリップボードにコピー
辞書コンテンツのマッピング
テーブルをモーダルで開き、すべてのデータを明確に表示
| v6 辞書コンテンツ | v7 辞書コンテンツ |
|---|---|
autoFill: xxx | fill: xxx |
マイグレーション例
以前 (v6):
コードをクリップボードにコピー
After (v7):
コードをクリップボードにコピー
v5 から v6 へのマイグレーションノート
詳細については、v5 から v6 へのマイグレーションノートを参照してください。