【第9回】テクノロジー:翻訳対象のファイル形式

※本連載は、弊社刊『アプリ翻訳実践入門』の一部をコンパクトに再編集したものです。

 

キーワード:XLIFF、PROPERTIES、PO

アプリ翻訳者は、翻訳対象テキストが格納されているファイル形式について知っておく必要があります。HTMLのようにウェブで一般的に用いられている形式から、XLIFFのように専ら翻訳で用いられる形式まであります。ここでは代表的なファイル形式をいくつか紹介します。

HTML

HTML(HyperText Markup Language)はウェブサイトやウェブ・アプリで用いられるマークアップ言語で、この言語で書かれたファイルには「.html」や「.htm」という拡張子が用いられます。

基本的には「タグ」(例:<p>、</p>)に囲まれたテキストを翻訳することになります。たとえばen.html という英語原文のHTML ファイルに以下のような1行があったとします。

<p>Click the <b>Edit</b> button.</p>

これを和訳してja.html ファイルにする場合、以下のように翻訳します。

<p>「<b> 編集</b>」ボタンをクリックします。</p>

XML

XML(eXtensible Markup Language)は拡張可能なマークアップ言語で、この言語で書かれたファイルには「.xml」という拡張子が用いられます。Android OSのアプリなどでこのファイル形式が利用されています。HTMLと同様、タグに囲まれたテキストを翻訳することになります。

XLIFF

XLIFF(XML Localization Interchange File Format)は、XMLをベースにしたファイル形式で、ローカリゼーションでの使用を想定しています。Apple のiOSアプリなどで採用されており、近年普及が進んでいます。

XMLと同様にタグに囲まれたテキストを翻訳しますが、以下のように、ファイル内で原文と訳文がセットになっている点が特徴です。

<segment>

<source>Hello.</source>

<target> こんにちは。</target>

</segment>

JSON

JSON(JavaScript Object Notation)はJavaScript のオブジェクト表記方法で、これを用いたファイルには「.json」という拡張子が使われます。JavaScriptとありますが、さまざまなプログラミング言語で用いられています。

キーと値がセットになった形式をしており、たとえばen.jsonが以下のように書かれているとします。

"message_message" : "Hello."

ここで「”message_message”」がキー、「”Hello.”」が値です。これを和訳してja.jsonというファイルを作成する場合は値のみを訳します。つまり以下のようになります。

"message_message" : " こんにちは。"

PO

PO(Portable Object)は、gettextというインターナショナリゼーションの仕組みで用いられるファイル形式です。「.po」という拡張子が使われます。C、PHP、Pythonなどさまざまなプログラミング言語でサポートされています。

POファイルは「msgid」と「msgstr」という項目のセットで構成されています。翻訳者にファイルが支給されるときは、msgstrは空の状態です。英日翻訳なら以下のような形です。

msgid "Hello."

msgstr ""

翻訳者は下段にあるmsgstrに訳文を追加します。

msgid "Hello."

msgstr " こんにちは。"

PROPERTIES

Javaプログラミング言語を使ったアプリのローカリゼーションで用いられ、「.properties」というファイル拡張子が使われます。

PROPERTIESもJSONと同様に、キーと値がセットになった形をしています。典型的には等号(=)で区切ります。たとえば以下のような英語原文が入っているMessages.propertiesがあるとします。

greeting = Hello.

「greeting」がキー、「Hello.」が値です。この値部分を翻訳することになります。和訳してMessages_ja_JP.propertiesという名前のファイルに格納したとすると、以下のようになります。

greeting = こんにちは。

その他

上記以外にもアプリのローカリゼーションで用いられるファイル形式がいくつかあります。たとえば以下です。

  • RESX(.resx):Windows アプリで用いられます。
  • YAML(.yml):ウェブ・アプリ用フレームワークRuby on Rails などで用いられます。
  • STRINGS(.strings):iOS で用いられます。

まとめ

  • 翻訳対象テキストが格納されるファイル形式には、HTML、XLIFF、PO、PROPERTIES などがあります。

本記事の元になっている書籍『アプリ翻訳実践入門』の詳細および購入についてはこちらのページをご覧ください。