DEV Community 日本語
フォロー
Djangoアプリを7言語にローカライズ — RTL、JSゲーム、そして正直な部分
著者は、リーチを拡大するために、大規模なDjangoアプリケーションを単独開発者として7つの言語にローカライズしました。この決定は、無料の学習コンテンツをグローバルな視聴者に利用可能にし、サイトの検索エンジンインデックス作成可能性を高めたいという願望によって推進されました。重要なアーキテクチャ上の決定は、UIの「クローム」(ボタン、ラベル)を長文コンテンツから分離することでした。UI要素はDjangoのgettextシステムを利用し、コンテンツレッスンは言語ごとのMarkdownファイルとして保存され、英語がフォールバックとして使用されました。コアドメイン用語は、一貫性と専門基準との整合性を維持するために、意図的に英語のままにされました。重大な技術的課題には、右から左(RTL)レイアウトの処理が含まれ、シームレスなミラーリングのためにCSS論理プロパティの実装が必要でした。もう一つの問題は、Djangoの言語タグ(例:zh-hans)とコンテンツディレクトリの命名規則(例:zh)との間の不一致でした。JavaScript翻訳の統合には、動的なUI文字列のためにDjangoのdjangojsカタログが使用されました。堅牢なコンテンツローダーは、部分的に翻訳された言語が404エラーを生成する代わりに、英語のコンテンツに優雅にデフォルト設定されることを保証するために不可欠でした。自動化されたパリティテストは、翻訳されたファイルが英語の対応物と同じ構造的整合性を維持することを保証するために実装されました。最後に、システムはIP国またはユーザー設定に基づいて訪問者の言語設定を決定し、明示的なスイッチがデフォルトをオーバーライドします。著者は、英語以外の翻訳はレビュー中のAI支援ドラフトであることを公に認めました。この規律あるアプローチにより、単一の開発者による複数の言語でのローカライズが成功しました。