コンテンツにスキップ

ソフトウェアの国際化

出典: フリー教科書『ウィキブックス(Wikibooks)』

ソフトウェアの国際化(i18n: internationalization)とは?

[編集]

国際化(internationalization: i18n) とは、ソフトウェアを設計・開発する際に、異なる言語、文化、地域のユーザーに対応できるようにするプロセスや取り組みを指します。国際化を行うことで、ソフトウェアは特定の地域や言語に依存せず、簡単に多言語化や地域化(ローカライズ)が可能になります。

i18n が意味するもの

[編集]
  • 「i18n」という略称:
    • 「internationalization」という単語の最初の「i」と最後の「n」の間に18文字があることから、略して「i18n」と表記されます。
  • 国際化の目的:
    • コードやインターフェースを、異なる言語や文化に柔軟に適応させる準備をすること。
    • ソフトウェア自体に言語や地域固有の要素を埋め込まず、後から翻訳やローカライズを簡単に行える設計にする。

国際化 (i18n) の具体例

[編集]
  1. 言語の柔軟な対応:
    • メッセージやインターフェースの文字列をコード中に直接書き込まず、外部リソース(例: 翻訳ファイル)から取得する。
    • 例: "Hello, World!" を gettext("Hello, World!") のように実装。
  2. 日付や時刻のフォーマット:
    • 各国で異なる日付や時間の表示形式に対応する。
    • 例:
      • アメリカ: 01/18/2025
      • イギリス: 18/01/2025
      • 日本: 2025年1月18日
  3. 数字や通貨のフォーマット:
    • 数値や通貨記号、桁区切りの違いに対応する。
    • 例:
      • アメリカ: $1,234.56
      • フランス: 1 234,56 €
  4. テキストの方向:
    • 左から右(LTR)と右から左(RTL)の両方の言語をサポート。
    • 例: 英語(LTR)とアラビア語(RTL)での画面レイアウトの調整。
  5. 文化や慣習への対応:
    • 曜日の開始日(例: 日曜始まりか月曜始まりか)や、測定単位(メートル法とヤード・ポンド法)への対応。

国際化の主なプロセス

[編集]
  1. リソースの外部化:
    • ユーザーに表示するテキスト(UI文字列)をコードから切り離して、外部のリソースファイル(例: POファイル、JSON、XML)に格納。
  2. Unicode 対応:
    • ソフトウェアが多言語(特に非ラテン文字)を適切に表示・処理できるように、UTF-8 や UTF-16 などの文字エンコーディングを使用。
  3. ロケール(locale)の導入:
    • ユーザーの地域と言語を識別する仕組み。
    • 例: ja_JP(日本語、日本)、en_US(英語、アメリカ)。
  4. 可変テキスト対応:
    • 文法や語順の違いに対応する。
    • 例: 日本語では「こんにちは、[名前]さん」のように語順が異なるため、プレースホルダーを使用して柔軟性を確保。
  5. テスト:
    • 翻訳後のテキストが画面上で正しく表示されるかを確認(例: テキストが長すぎて切れないか)。

i18n に関連するツールとライブラリ

[編集]

国際化を支援するためのツールやライブラリが数多く存在します。

  1. GNU gettext:
    • 翻訳可能な文字列の抽出、翻訳管理、翻訳適用を支援するツール。
  2. ICU(International Components for Unicode):
    • 日付、時刻、通貨、文字列操作など、国際化機能を提供するライブラリ。
  3. フレームワーク固有のツール:
  4. ブラウザベースの国際化:
    • JavaScriptIntl API を使用して、日付、時刻、通貨のフォーマットや文字列の並べ替えを行う。

国際化のメリット

[編集]
  • 多様な市場への展開:
    • ソフトウェアを簡単に多言語対応できるため、異なる国や地域の市場に容易に展開可能。
  • ユーザー体験の向上:
    • ユーザーの母国語や文化に合ったインターフェースを提供できる。
  • メンテナンスの効率化:
    • 翻訳や地域化に関わる部分が独立しているため、ソースコードへの影響を最小限に抑えられる。

国際化とローカライズの違い

[編集]
  • 国際化(i18n):
    • ソフトウェアが多言語や多地域対応を容易にするように設計・実装するプロセス。
    • 翻訳や地域ごとのカスタマイズを行う「準備」。
  • ローカライズ(l10n: localization):
    • 実際に特定の地域や言語に合わせて翻訳や調整を行うプロセス。
国際化 ローカライズ
翻訳可能な文字列をコードから分離 翻訳された文字列を提供
多言語対応の基盤を作る 各言語・地域に合わせた調整
設計・開発段階で行う 運用または翻訳段階で行う

まとめ

[編集]

国際化(i18n)は、ソフトウェアを多言語・多地域に対応させるための土台作りであり、ローカライズ(l10n)を効率的に行うための準備プロセスです。i18n を適切に行うことで、ソフトウェアは異なる文化や地域のユーザーに適応できる柔軟性を持ち、グローバル市場への展開が容易になります。

下位階層のページ

[編集]