KINTOテクノロジーズにおける言語ローカライゼーション(前編)
はじめに
グローバル開発グループで言語ローカライゼーションをリードしている榊原です。スペインと日本、2つの文化間で育った私は、異文化間コミュニケーションに深い関心を持ってきました。2回に渡ってお届けするテーマは「ローカライゼーション」です。これまでの私の学習と経験を通じて、その重要性をお伝えした上で、このテーマに少しでも興味を持っていただくのが本記事の目的です。
前編では、弊社における言語ローカライゼーションの考え方や取り組み方について、後編では、これまでの取り組みについて、掘り下げてご紹介します。
翻訳、ローカライゼーション、インターナショナライゼーションの違いとは?
翻訳の定義は複数ありますが、私が共感したのは、Hatim and Mason(1997)の「翻訳とは、文化や言語の境界を越えて、別のコミュニケーション行為を中継しようとするコミュニケーションの行為である。(筆者翻訳)」という言葉です。
一方、ローカライゼーション(localization/l10n)とは、メッセージ、ストーリーやアイデアをターゲットオーディエンスの言語や文化になじませることです。そのために、まずはインターナショナライゼーション(internationalization/i18n)が必要です。ソフトウェア開発におけるi18nの作業は、まずコードを準備し、将来的にどのような言語・文化にも対応できるよう、事前にすべての開発上の決定を行う必要があります。
私自身のタスクは文言面の調整することですが、「ローカライゼーション」の定義の中にはデザイン面も含んでいます。そのため、我々はUI/UXライター、デザイナー、エンジニアと密に連携し、ターゲットユーザーに最高の体験を提供できるよう務めています。
KINTOにおけるローカライゼーション
KINTOでは、多様なメンバー間でうまくコラボレーションできるよう、日々"カイゼン"に取り組んでおり、開発プロセス全体の中にローカライゼーションを組み込むことを重視しています。
我々の製品に対し、まずi18nを適用した上で、どのようにローカライゼーションが行われるか、もう少し詳細にご説明します。
以下の英語版アプリの画面をご覧ください。
まず前提として、ベース言語が実装されている必要があります。(我々の場合、ベース言語は英語)そして次に、そのデータをどのように管理するかを定義します。アプリやウェブページなどのソフトウェア翻訳では、キーバリュー形式でストアされることが多いです。この画面の文章は、iOS用の英語の「localizable.strings」ファイルでは、以下のような英文になっています。(ロゴと上部のキャッチコピーは対象外)
<string name="agreement_description">By using our app, you acknowledge our Terms and Conditions and Privacy Policy.</string>
<string name="agreement_accept_all">Accept all</string>
ローカライゼーションのために、我々は開発コードとは別に、言語ごとのファイルを作成します。2022年10月現在、我々のアプリ用に日本語・タイ語・アラビア語のファイルを用意しており、それらのファイルにはすべて同じ翻訳キー[1]が入っていますが、そのキーに対応する文言はそれぞれの言語で記載されています。例えば、アラビア語の「localizable.strings」ファイルには、次のデータが格納されています。
<string name="agreement_description">باستخدام تطبيقنا، فإنك توافق على الشروط والأحكام و سياسة الخصوصية الخاصة بنا.</string>
<string name="agreement_accept_all">قبول الكل</string>
このように、英語とアラビア語を比較すると、キーは同じであることがわかります。最初のパラメーターにキーを指定することで、各言語のローカライゼーションファイルから対応する値を取得し、ユーザーが指定した言語に合わせた文言をアプリ上に表示することができます。この例では、言語設定を英語からアラビア語に切り替えると、先ほどの画面は以下のように表示されます。
以上が、ファイルの種類やプラットフォームに関係なく、言語ローカライゼーションを進めていく仕組みです。
ローカライゼーションチームの活動について続けて読みたい方は、ぜひ次回の記事をご覧ください。お楽しみに!
参考文献と推薦図書
Hatim, B., & Mason, I. (1997), The Translator as Communicator. London, Routledge
Khokhar, Sahil (2021), Connecting the dots '96 Web Accessibility through Internationalization and Localization <Connecting the dots '96 Web Accessibility through Internationalization and Localization>
Lokalise Academy (2022), Crash course in localization <Crash course in localization>
Bodrov-Krukowski, Ilya (2020), Translation keys: naming conventions and organizing. <Translation keys: naming conventions and organizing - Lokalise Blog> ↩︎
関連記事 | Related Posts
We are hiring!
WEBエンジニア /システム開発G /東京
システム開発Gについて各国のKINTOビジネスの成長を支援すべく、そのシステムプラットフォームの全体デザイン、設計、開発、導入を担うグループとなります。新しいグローバルプロダクト・プロジェクトに関わり、ゼロイチに関わる機会が存分にあります。
【部長・部長候補】/プラットフォーム開発部/東京
プラットフォーム開発部 について共通サービス開発GWebサービスやモバイルアプリの開発において、必要となる共通機能=会員プラットフォームや決済プラットフォームの開発を手がけるグループです。KINTOの名前が付くサービスやTFS関連のサービスをひとつのアカウントで利用できるよう、様々な共通機能を構築することを目的としています。