タイトル
段落1
段落2
段落3
サブタイトル
i18n · once
タイトル
L10n · per locale
タイトル
Foundations
サブタイトル
段落1
段落2
段落3
段落1
段落2
段落3
en-US や zh-Hans-CN といった BCP 47 タグは、言語、文字体系、および地域を指定します。これらはあらゆる国際化(i18n)システムの基盤であり、どの翻訳、フォーマット、ルールが適用されるかを決定します。
Unicodeは、あらゆる文字体系のすべての文字に固有のコードポイントを割り当てています。UTF-8はウェブ上で主流のエンコーディングであり、言語に関係なくテキストが正しく表示されることを保証します。
翻訳キーは、ロケール固有の文字列に対応付けられた一意の識別子です。これにより、ソースコードと翻訳対象のコンテンツが分離され、開発と翻訳を並行して進めることが可能になります。
言語によって複数形のルールは異なります。英語には2つの形がありますが、アラビア語には6つあります。ICU MessageFormatは、単一の構文で複数形、性別、および選択式を処理します。
アラビア語、ヘブライ語、およびその他の文字体系は右から左へ読みます。RTL(右から左)対応には、レイアウトの反転、アイコンの向き変更、および「left」や「right」の代わりにCSSの論理プロパティを使用することが必要です。
日付、数値、通貨の表示形式はロケールによって異なります。Intl API や date-fns などのライブラリはロケールに応じた書式設定機能を提供しているため、1,000.50 はドイツ語では 1.000,50 と表示されます。
バッジ
サブタイトル
.json
React · Vue · Angular
Webアプリ(React、Vue、Angular)で最も広く利用されています。人間が読みやすい形式で、ネスト構造をサポートしているため、キー構造を整理して管理できます。組み込みの複数形変換機能は備えていないため、ICU MessageFormatなどのライブラリがその役割を果たしています。
.xlf
TMS interchange
ツール間の翻訳データ交換のためのXMLベースの業界標準。すべてのプロフェッショナル向けTMSプラットフォームでサポートされています。記述は詳細ですが機能豊富で、注釈、ステータス追跡、メタデータへの対応が組み込まれています。
.po / .pot
Python · PHP · Ruby
Python、PHP、Rubyのエコシステムで広く採用されている定番のオープンソース形式です。専用の複数形表記構文による組み込みの複数形対応機能を備えています。翻訳者や翻訳ツールから広く支持されています。
.arb
Flutter · Dart
Application Resource Bundleは、FlutterおよびDartの標準フォーマットです。JSONをベースとし、ICUメッセージ構文をサポートしているため、複数形や選択項目をネイティブに扱えます。Flutterのgen-l10nツールで使用されています。
.strings
iOS · macOS
iOSおよびmacOS開発向けのAppleプラットフォーム固有のフォーマットです。.stringsは単純なキーと値のペアを扱い、.stringsdictは複数形化ルールにXML形式のplist構造を使用します。
.resx
.NET · C#
C#およびVB.NETアプリケーションで使用される.NETリソースファイル形式。XMLベースであり、Visual Studioとの強力な統合機能を備えています。文字列、画像、その他のアセットに対する型付きリソースをサポートしています。
バッジ
サブタイトル
サブタイトル
バッジ
サブタイトル
CLIツール、SDKサポート、Gitベースのワークフロー、CI/CDフックを評価してください。優れたTMSプラットフォームは開発パイプラインに直接統合され、コード変更に合わせて翻訳が自動的に同期されます。
翻訳メモリは、以前に承認された翻訳を保存し、類似または同一の文字列に対して提案します。これにより、翻訳コストを削減し、納期を短縮し、製品全体の一貫性を維持できます。
レビュワーのワークフロー、インラインコメント、共有用語集、承認チェーンをお探しください。これらの機能により、翻訳者・レビュワー・開発者がボトルネックやコミュニケーション不足なく協力して作業できます。
現代のTMSプラットフォームは、機械翻訳の提案、自動品質チェック、一括操作、スマートルーティングを提供しています。AIを活用したワークフローにより、翻訳品質を維持しながら手作業の負担を軽減できます。
Quality
サブタイトル
語順が異なる言語では、文の断片をつなぎ合わせて文を作成すると不自然になります。代わりに、プレースホルダーを使用したICU MessageFormatをご利用ください。
ユーザー向けのテキストをソースコードに直接埋め込むと、コードを変更せずに翻訳することができなくなります。最初からすべての文字列を外部化してください。
単数形と複数形を区別する単純なif/else構文は、英語でのみ機能します。多くの言語には複数の複数形が存在するため、適切なICUの複数形ルールが必要です。
リリース後に国際化(i18n)機能を後付けすると、多額のコストがかかるリファクタリングが必要になります。最初から国際化を念頭に置いて設計すれば、時間を節約でき、アーキテクチャの負債を防ぐことができます。
サブタイトル
By framework
サブタイトル
バッジ
サブタイトル