- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
WordPress の翻訳
このページ「WordPress の翻訳」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています。
目次
「インターナショナリゼーション(国際化/i18n)」や「ローカリゼーション(地域化/L10n)」とは、WordPress をはじめとするさまざまなソフトウェアやプロジェクトなどを、もともとのターゲットとする言語や地域以外のユーザーにも利用できるようにする試みのことです。
プログラムのローカリゼーションには2つのステップがあります。まず、プログラムの開発者が世界中のユーザーに向けて、各地の状況や言語に合わせてプログラムの内部やインターフェースをいずれ翻訳するための仕組みを整えることから始まります。WordPress ではこの作業がすでに行われているので、理論上はどんな言語でも利用出来るようにできます。
次のステップは、実際の「ローカリゼーション」です。この段階ではソフトウェアの開発者の指定したフレームワークを使ってページ上のテキストや設定を翻訳し、他の言語や文化に適合させます。WordPress はすでにたくさんの言語に翻訳されています(WordPress in Your Language を参照)。
このページでは翻訳者(複数の言語を知っている WordPress ユーザー)が WordPress をより多くの言語にローカライズするために必要なツールや手順についてご紹介します。
WordPressを翻訳する
WordPress の翻訳に足を踏み入れる前に、WordPress in Your Language ページを確認して、「ロケール」がすでに存在していないか確認しましょう。もしかしたら、誰か(あるいはどこかのチーム)がすでに翻訳に動いているけれども完了していないのかもしれません (日本語ロケールはすでに存在しており、作成に参加できます)。
もし翻訳したいロケールが公式 WordPress ローカリゼーションレポジトリに見当たらない場合、polyglots ブログに参加するのがはじめの一歩として一番良いでしょう。自己紹介をし、そのロケールをすでに翻訳し始めている人がいないか聞いてみましょう。また、ローカリゼーションチームと現在結成中のローカリゼーションチームのリストもあります。
翻訳への参加資格
- 英語および翻訳する言語が両方とも十分に読み書きできること。不十分な場合、作業が困難になるのに加え、完成したローカリゼーションファイルがネイティブスピーカーにとって分かりにくいものになってしまいます。
- PHP の知識があること。最適な方法でメッセージの翻訳を行うために WordPress のコードを読まなければいけないこともあります。
- 文法の知識があり、英語で書かれたメッセージの文脈を理解する能力があること。
「地域(ロケール)」について
ロケールとは、言語と地域の方言を組み合わせたもののことです。普通、「ポルトガル語(ポルトガル)」や「ポルトガル語(ブラジル)」というように、ロケールは国と対応しています。
翻訳するロケールは自由に選ぶことができます。例えばカナダ英語やオーストラリア英語のように、地域に独特な単語のつづり方や慣用句に合わせた翻訳なども可能です。
WordPress の基準ロケールは米国英語(en_US)です。
ローカリゼーション技術
WordPress 開発者は GNU Gettext ローカリゼーションフレームワークを採用しています。Gettext はオープンソースソフトウェアのモジュール形式の翻訳に事実上のスタンダードとして広く使われている成熟したフレームワークです。
gettextはメッセージレベルの翻訳を用います — これは、ユーザーに表示される各"メッセージ"が、パラグラフであっても単語であっても、個別に訳されるものです。WordPressではこうした"メッセージ"が生成され、翻訳され、2つのPHP関数を経て、WordPressのPHPファイルで使われます。__() はメッセージが他の関数に対する引数として渡される時に用いられます。_e() はメッセージをページヘ直に書き込む際に用いられます。これら2つの関数の詳細は以下のとおりです。
- __('message')
- この関数は 'message' を翻訳するためのローカリゼーションモジュールを検索し、翻訳結果をPHPの return ステートメントに渡します。もし 'message' の翻訳がなかった場合、単に 'message' を渡します。
- _e('message')
- この関数は 'message' を翻訳するためのローカリゼーションモジュールを検索し、翻訳結果を PHP の echo ステートメントに渡します。もし 'message' の翻訳がなかった場合、単に 'message' を出力します。
テーマやプラグインの翻訳を行なっている場合、テキストドメインを用いるべきです。プラグインでの使用方法について、詳しくはプラグインの作成を参照してください。テーマについても同様です。テーマやプラグインでのテキストドメイン使用例は以下のとおりです。
<?php $translated_text = __( 'text', 'domain' ); ?>
gettext のフレームワークは WordPress のほとんどの部分に適用されます。しかし、WordPress ディストリビューションで gettext が使えない部分がいくつかあります。それらの部分の翻訳方法については、Files For Direct Translationを参照してください。
gettextのファイル
gettext の翻訳フレームワークでは3種類のファイルが使われています。これらのファイルは翻訳プロセスの中でツールによって、以下のように使用または生成されます。
- POT (Portable Object Template) ファイル
- ローカリゼーションプロセスでの最初のステップは、プログラムを用いて WordPress のソースコードを検索し、__() または _e() 関数に渡すメッセージを拾い出すことです。この英語のメッセージリストは特別にフォーマットされたテンプレートファイル (POT ファイル)に入れられ、すべての翻訳の基礎を形作ります。一般的に WordPress 向けの POT ファイルはダウンロードできるので、自分で作成する必要はありません。テーマやプラグインの開発者が __() や _e() 関数ですべてのテキストを囲んでいる場合、テーマやプラグインごとに個別の POT ファイルを作成することもできます。
- PO (Portable Object) ファイル
- ローカリゼーションプロセスでの2番めのステップは、翻訳者が POT ファイルにあるすべてのメッセージを翻訳し、PO ファイルに英語と翻訳した言語の両方を保存することです。
- MO (Machine Object) ファイル
- ローカリゼーションプロセス最後のステップは、PO ファイルを機械が読み取れるように最適化されたバイナリファイル (MO ファイル) に変換するプログラムを実行することです。翻訳をマシンコードにコンパイルすることで、ローカライズされたプログラムは実行中に翻訳をもっとすばやく出力できるようになります。
翻訳ツール
翻訳するために便利なツールをご紹介しますので、あなたの環境に合ったお好みの方法を選んでください。
- GlotPress
- GlotPress はあなたやチームが気に入ったソフトウェアを翻訳できるようにしてくれる Web ベースのオープンソースツールです。また、メインレポジトリと同期されており、WordPress を各自の言語へ翻訳するために人気のある方法です。
- Poedit
- Windows、MacOS、UNIX/Linuxで使えるオープンソースデスクトッププログラム。容易に PO ファイルの編集を行い、MO ファイルの作成を行える GUI を持つ。
- GNU Gettext
- 公式 Gettext ツールパッケージ。POT ファイル作成、PO ファイル編集、MO ファイル作成用のコマンドラインツールを含む。コマンドシェルを得意とする人向け。
GlotPress を使った翻訳
GlotPress を用いた翻訳方法を説明したページが Getting Started ガイドにあります。日本語版はこちらです。
Poedit を使った翻訳
- Poedit をダウンロード、インストールします。
- 公式 WordPress POT ファイル をダウンロードします。
- POT ファイルを Poedit で開きます。
- まず最初に「ファイル>名前をつけて保存」を選択し、この POT ファイルを翻訳する言語の PO ファイルとして保存しなおします。この際の名前のつけかたは、WordPress ローカリゼーションレポジトリの項目を参考にしてください。
- インターフェースは6つのパネルに分かれています。上部には現在の翻訳状況、右下には英語版と翻訳版のメッセージ、左下にはコメント欄があります。上部で翻訳したいメッセージを選択し、一番右下のパネルに対応する翻訳を記入していきます。
- 翻訳が完了したら、「名前をつけて保存」を再度選択し、MOファイルを作成します。
- 「ファイル>設定>編集」メニューから、保存時にいつでもMOファイルを自動生成するようにしておくこともできます。また、コメント欄を編集可能にする場合もここで変更できます。
関連情報
- Poedit ヘルプ
- Poedit 取扱説明書 (MMRT daily life)
- Poeditの使い方メモ (hucha on blog)
- Poedit Windows 版インストール方法 (hiromasa.zone :o))
Gettext ツールを使った翻訳
Gettext を使う場合、UNIX 環境または Cygwin などの UNIX 互換環境が必要になります。
- 公式 WordPress POTファイル をダウンロードします。
- POT ファイルをお好きなテキストエディタで開きます。
- ヘッダー情報(以下参照)を更新します。
- メッセージを翻訳します。
- ファイルの拡張子を「.po」に変更して保存します。
- 以下を実行します。msgfmt -o filename.mo filename.po
関連情報
- Cygwin を使う。 - Windows 上で GNU の開発ツールなど UNIX のツールを使えるようにするソフト、Cygwin の日本語解説。
- Mac OS X インストールメモ - gettext- Mac OS X 上での Gettext のインストール手順。
POファイルのヘッダー情報
PO ファイルの先頭には、ヘッダー情報があります。これは翻訳がどのパッケージのどのバージョン向けなのか、誰が翻訳をしたのか、いつそれが作成されたのかという情報が記載されています。このヘッダーの特定部分は、すべての WordPress 翻訳で普遍的であるべきです。
# LANGUAGE (LOCALE) translation for WordPress. # Copyright (C) YEAR WordPress contributors. # This file is distributed under the same license as the WordPress package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: WordPress VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-27 17:11-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n"
太文字で書かれた部分を適切な内容に変更しましょう。
メッセージの形式
ヘッダー以降のファイル内容は以下のようになっています。
#: wp-comments-post.php:13 msgid "Sorry, comments are closed for this item." msgstr "" #: wp-comments-post.php:29 msgid "Sorry, you must be logged in to post a comment." msgstr "" #: wp-comments-post.php:35 msgid "Error: please fill the required fields (name, email)." msgstr ""
各メッセージの最初の行は WordPress コードのメッセージの場所を示します。これらのメッセージの場合、すべて wp-comments-post.php のそれぞれ13行目、29行目、35行目に入っています。使用される背景をチェックする必要があるメッセージもたまにあります。WordPress コアの一つまたは複数の行を見て、いつどこでそのメッセージが表示されるかを見極め、場合によってはブラウザーで自ら再現させる必要も出てくるでしょう。いくつかのメッセージは、複数箇所に同じテキストを表示させることもあります。この場合は、一つのファイル複数の行を指定する必要があるでしょう。
次の行、msgidはソースメッセージです。これは WordPress が__() や _e() 関数に引き渡すメッセージで、翻訳の必要があるものです。
最後の行、msgstr は空白の文字列で、翻訳結果を埋める部分です。
フランス語(フランス) ロケールの場合の実際の内容です。
#: wp-comments-post.php:13 msgid "Sorry, comments are closed for this item." msgstr "L'ajout de commentaire n'est pas ou plus possible pour cet article." #: wp-comments-post.php:29 msgid "Sorry, you must be logged in to post a comment." msgstr "Vous devez être connecté pour rédiger un commentaire." #: wp-comments-post.php:35 msgid "Error: please fill the required fields (name, email)." msgstr "Erreur : veuillez remplir les champs obligatoires vides (nom, e-mail)."
注: HTML 実体参照文字をどんなときに使うべきかについては、以下の 文字コードおよびHTML 実体参照文字を参照。
メッセージのタイプ
ラベル
ラベルは、<label>、<legend>、<a>、<select> HTML タグ内で使われる、簡潔な UI(ユーザーインターフェース)要素の説明です。短い単語・文章ながら、前後関係に基づいた正確な翻訳が難しいこともあるので気をつけましょう。ほとんどのラベルは、適切な訳を見つけ出す前にコードを検索して、それが使用される前後関係を見つける必要があります。
メッセージの多くは WordPress 管理画面 UI の一部であるため、ラベルは恐らく最も頻繁に使われる、翻訳されるべきメッセージと言えるでしょう。
例
msgid "Post" msgstr "Artikkeli"
"Post"は命令形の動詞と解釈することもできますが、ここでは名詞として使われています。例えば上記の'フィンランド語(フィンランド)翻訳のように、「記事」といった意味の単語を使って翻訳しているロケールが多いようです。
#: wp-login.php:79 wp-login.php:233 wp-register.php:166 #: wp-includes/template-functions-general.php:46 msgid "Register" msgstr "रजिस्टर"
上記は "Register" というラベルのヒンズー語翻訳です。
#: wp-admin/admin-functions.php:357 msgid "- Select -" msgstr " - Dewis -"
単語をの前後につけるダッシュ記号などは、ロケールによっては省略したり他の記号と置き換えたりすることが必要になるかもしれません。英語と対応する、一般的な表記を選びましょう。上記はウェールズ語翻訳の例で、ダッシュ記号をそのまま使用しています。
通知メッセージ
ラベルに加えてよく使われるのが通知メッセージです。これは単語ではなく完全な文章から成っており、ユーザーに情報を伝えたり、アクションを要求したりするときによく使われます。これらはラベルよりも長い文章になることが多いので、比較的翻訳しやすいといえるでしょう。しかし同時に、長めの文章の場合では丁寧な表現と簡潔な表現のばらつきが大きくなってしまうため、翻訳者は注意する必要があります。
例
#: wp-login.php:146 msgid "Your new password is in the mail." msgstr "Вашата нова парола е в електронната ви поща."
このメッセージでは比較的砕けた、英語の型通りの表現 ("the check/cheque is in the mail") が使われています。(ブルガリア語(ブルガリア)翻訳より。)
#: wp-includes/functions.php:1636 msgid "<strong>Error</strong>: Incorrect password." msgstr "<strong>FEL</strong>: Felaktigt lösenord."
エラーメッセージは短く簡潔であるため、丁寧でシンプルな表現になりがちです。(スウェーデン語(スウェーデン)翻訳より。)
#: wp-includes/functions-post.php:467 msgid "Sorry, you can only post a new comment once every 15 seconds. Slow down cowboy." msgstr "Leider kannst du nur alle 15 Sekunden einen neuen Kommentar eingeben. Immer locker bleiben."
もちろん、すべてがそうであるとは限りません。(ドイツ語(ドイツ)翻訳より。)
説明付きの文字列
もし文字列が縦線 | を含む場合、その右側が説明を表します。これを知ることで、文字列を訳し、適切な場所に配置し、追加情報を提供することが容易になります。
例
#: wp-includes/locale.php:186 msgid "" "number_format_decimal_point|$dec_point argument for http://php.net/number_format, default is ." msgstr ","
この説明には、文字列を翻訳するために参照すべき Web ページが記入されています。
地域ごとの日時設定
PHP が持つ地域設定は非常に多くの言語に対して十分な対応ができているとは言い難いため、WordPress では gettext 翻訳モジュールによって日付や時刻の翻訳とフォーマットを行ないます。
WordPress は以下のように翻訳を行っています。
月
#: wp-includes/locale.php:42 wp-includes/locale.php:57 msgid "May" msgstr "Květen
(チェコ語(チェコ共和国)翻訳より。)
月の略称
#: wp-includes/locale.php:57 msgid "May_May_abbreviation" msgstr "Mag"
普通では使わないmsgidに気をつけてください。これらのメッセージは文面通り訳されるべきではありません。これらは英語での事実を回避するためのハック手段です。5月のフルネームと略称は同じであるため、gettextが誤って一つのエントリーとして訳してしまいます。(イタリア語(イタリア)翻訳より。)
曜日
#: wp-includes/locale.php:7 #: wp-includes/locale.php:18 #: wp-includes/locale.php:31 msgid "Tuesday" msgstr "火曜日"
(日本語(日本)翻訳より。)
曜日の略称
#: wp-includes/locale.php:31 msgid "Tue" msgstr "Уто"
(セルビア語(セルビア)翻訳より。)
曜日のイニシャル
#: wp-includes/locale.php:18 msgid "T_Tuesday_initial" msgstr "ti"
曜日のイニシャルはWordPressのカレンダー機能のためにあります。そして月の略称と同じハックが用いられ、英語の Tuesday と Thursday はどちらも同じ頭文字を持つことに対応しています。すべてのロケールが一文字の略称をすべての曜日に適用しているとは限りません。ノルウェーボクマール語の例では、'tirsdag (Tuesday) と torsdag (Thursday) を区別するために、文字が追加されています。(ノルウェーボクマール語(ノルウェー)翻訳より。)
日付のフォーマット
これらは PHP date() フォーマットの文字列で、日時のフォーマットをあなたのロケールに合わせて変更してくれます。
WordPress は月や曜日の名前などの翻訳を、ローカライズされたファイルの他の場所で使用します。この特別な文字列は、日時やその表示させる順番を示した要素です。
theme.pot にある、以下の msgid を見てみましょう。
#: archive.php:40 search.php:19 single.php:22 msgid "l, F jS, Y" msgstr ""
これは、英語では以下のように表示されます。
Sunday, February 27th, 2005
しかし、ロケールによっては常にこの通りとは限りません。例えばデンマーク語では、以下のように日付を表記します。
søndag, 27. februar 2005
この表記を可能にするために、上記のmsgidを以下のように翻訳する必要があります。
#: archive.php:40 search.php:19 single.php:22 msgid "l, F jS, Y" msgstr "l, j. F Y"
別の例として、中国語および日本語では、以下のように日付を表記します。
2005年2月27日
このためには、以下のように翻訳します。
#: archive.php:40 search.php:19 single.php:22 msgid "l, F jS, Y" msgstr "Y年n月j日"
最後に、もしアルファベットをそのまま日付表記内に含める必要がある時は、以下のスペイン語の例のようにアルファベットの前にバックスラッシュ(または¥記号)をつけます。
#: archive.php:40 search.php:19 single.php:22 msgid "l, F jS, Y" msgstr "l j \d\e F \d\e Y "
これは、以下のように出力されます。
domingo 27 de febrero de 2005
WordPress-PHP を通じた翻訳
日付を翻訳するために、例えばプラグインの中では、mysql2date() や date_i18n() を用います。タイムスタンプを元にした日付がローカライズされたフォーマットとなって返されます。
代替値を含むメッセージ
さまざまなメッセージの中に見られる特殊なPHP形式の代替値は、メッセージの翻訳後に翻訳不能な動的コンテンツを挿入するためのものです。この代替値には、2つの異なるフォーマットがあります。
- %s
- 代替値を1つだけ含む場合、この代替値に動的コンテンツが挿入されます。
- %1$s, %2$s, %3$s, …
- 番号付きの代替値は、文字列の中で代替値の並び順を入れ替えて翻訳するときに利用します。
例
#: wp-login.php:116 msgid "The e-mail was sent successfully to %s's e-mail address." msgstr "El e-mail fue enviado satisfactoriamente a la dirección e-mail de %s"
上記は、メールを送信したユーザー名を文章に挿入するメッセージのスペイン語(スペイン)訳です。
#: wp-admin/upload.php:96 #, php-format msgid "File %1$s of type %2$s is not allowed." msgstr "类型为%2$s的文件%1$s不允许被上传。"
上記の中国語(中国語)では、ファイル名とファイルの種類を挿入する部分が英語とは逆になっています。
x
上手な翻訳をするためのヒント
- 一字一句直訳するのではなく、全体を見て訳をしよう
- あなたが複数の言語を扱うことができるなら、言葉によって構造、リズム、トーン、語尾などが異なることはご存知でしょう。翻訳されたメッセージは必ずしも英語と同じ構造である必要はありません。表される内容を把握し、翻訳しようとした言語での自然な言い回しを表現することが大事です。これは equal なメッセージと equivalent なメッセージを作成する違いとも言えるでしょう。再現や置き換えはしないでください。メッセージの中にはより構造的なものもありますが、その場合でも、読み手にとってよりロジカルでより良く適合するものがあると感じた場合、あなたはクリエイティブにそれを変更する資格があるのです。
- 表現の丁寧さを統一しよう
- 各メッセージは異なったレベルの丁寧さまたは口語らしさを持っています。各メッセージを翻訳する時、どのレベルの丁寧さまたは口語らしさを用いるかというのはあなた (またはあなたのチーム) 自身が見出す必要があります。しかし、WordPress のメッセージは (情報メッセージ では特に) 英語では丁寧な口語体トーンになりがちです。翻訳する言語で、同等なメッセージとなるよう、あなたの文化的な背景の中で、適切な表現を探してみてください。
- スラングや分かりにくい用語は避けよう
- ブログには一定量の専門用語が載っていることが期待されますが、雲を掴むような口語的な表現は避けるべきです。もし初心者のブロガーが WordPress をあなたの言語でインストールしようとした時、その用語の意味がわかりますか? ただし、 pingback、 trackback、 feedのような言葉はこのルールの例外となるでしょう。それらは翻訳するには難しい単語であり、多くの翻訳者が英語のままにしておくことを選んでいます。
- 他のソフトウェアの翻訳を読んで、用語の一般的な使い方を知ろう
- もし行き詰まったり指示が欲しいと思った時は、他の人気ソフトウェアツールの翻訳を読んでみましょう。そうすることで、どの用語が一般に使われているか、どの程度形式的に書かれているか等が感じ取れることでしょう。もちろん WordPress は独自のトーンと雰囲気を持っているので、他の翻訳を読む時には気をつける必要があります。しかし、ユーザーインターフェイス用語などを掘り起こし、他のソフトウェア翻訳との一貫性を保つようにすることを心がけましょう。
WordPress ローカリゼーションレポジトリ
「WordPress ローカリゼーションレポジトリ」は、WordPressの公式翻訳版を管理している Subversion レポジトリです。さまざまなチームが協力して母国語の翻訳を行っており、チーム内の管理者がレポジトリにあるファイルの更新を担っています。
参加者募集中!
誰でもローカリゼーションレポジトリへ参加することができます。WP Polyglots ブログに登録し、自己紹介を行い、どのロケールの翻訳に参加したいかを表明しましょう。その言語やロケールのチームが存在する場合、その旨教えてもらえるでしょう。その言語がなかった場合、その維持要員として志願することができます。あるいは単純にローカライズ化に寄与することで、レポジトリの維持者が追加してくれるでしょう。
手引きと必須事項
注: これらのガイドラインはシステムの変化にしたがって変更になることがあります。レポジトリの維持者はガイドラインの変更に伴ってあなたが更新したファイルの更新を喜んでお手伝いすることでしょう。
文字コード
すべてのローカリゼーションには最低限 UTF-8 バージョンを含めるべきですが、そのほかにロケールごとに良く使われている別の文字コードのバージョンを含めることもできます(例:日本語での Shift_JIS や EUC-JP など)。
現在のバージョンの PHP はバイトオーダーマーク(BOM)に対応していません。UTF-8 のファイルには BOM をつけないで保存するようにしましょう。
HTML 実体参照文字
一部の例外を除き、翻訳したすべての文字列は HTML の実体参照文字ではなく普通のテキストで書きましょう。
XHTMLマークアップとの干渉を防ぐために、山形カッコ(< と >)とアンド記号(&)を半角で使う場合、必ず実体参照で表記する必要があります。また、空白( )、斜体クォート(« と »)、巻きアポストロフィ(’)、巻き引用符(“ と ”)も実体参照を使うことが勧められています。
W3C による文字コードおよび実体参照関連の慣行については、以下のリンクを参照してください。
レポジトリ内のファイル構成
ローカリゼーションレポジトリには各ロケールごとのディレクトリがあります。これらのディレクトリは、基本的に以下のルールに従って名づけられています。
- ISO 639 言語コード (半角小文字)
- アンダースコア(_)
- ISO 3166-1 alpha-2 国コード (半角大文字)
- もし同じロケールの別スクリプト用ディレクトリの場合、さらに @ マークとISO 15924 スクリプトコードが続く。
(訳注: 日本で話されている日本語はこのルールに基づくと ja_JP ですが、実際の WordPress でのロケールコードは単に ja となっています。関連 ML 投稿、2005年4月)
各ロケールのディレクトリ内には、Subversion 標準のバージョニングディレクトリ(branches/、tags/、 trunk/)があります。
バージョンニングディレクトリ内には dist/ というサブディレクトリがあります。このディレクトリには WordPress の配布パッケージのうち、Gettext を使えないファイルを翻訳したもの(例えば readme.html など)を含めます。
もし翻訳後のファイルが UTF-8 形式のみの場合、ここに WordPress ルートディレクトリと同じ構造でファイルを置きます。
messages/
- messages/
- kubrick
このディレクトリには、各ロケール用の Gettext の MO/PO ファイルが含まれます。メッセージファイルにはロケール名をもとにした名前がつけられています。
kubrick
フォルダーには wordpress-i18n svn レポジトリ内にある国際化済みデフォルトテーマと、(上記の通りの P0/MO ファイル命名規則に基づいた)翻訳ファイルを置きます。さらに別のデフォルテーマ翻訳方法があります。
dist/
このディレクトリには Gettexted で翻訳できない WordPress ディストリビューション内のファイルが翻訳された状態ですべて含まれています。
ロケールが UTF-8 文字コードのみの場合、dist/ ディレクトリ直下にファイルが置かれ、この中身は WordPress のルートディレクトリ構造のミラーになります。各文字コードごとのサブディレクトリが必要になります。以下は、その例です。
- dist/
- license.txt
- readme.html
- wp-config-sample.php
- …
- wp-admin/
- install.php
- upgrade.php
- …
theme/
注: theme/ ディレクトリを使うより、国際化済みのデフォルトテーマを使うことが勧められています。上記の messages/ をご覧ください。
dist/ ディレクトリと同様に、 theme/ にはファイルを直接編集して翻訳したテーマファイルが置かれます。もし UTF-8 翻訳のみがある場合、ディレクトリには各翻訳されたテーマごとのサブディレクトリが配置されます。これらのサブディレクトリは元のテーマと全く同じファイル (ただし翻訳されているもの) を格納し、そして元のテーマと同じ名前がつきます。
- theme/
- default/
- 404.php
- index.php
- sidebar.php
- …
- images/
- …
- default/
dist/ ディレクトリと同じく、テーマに複数の文字コードがある場合、翻訳されたテーマを含む各文字コードごとのサブディレクトリが必要です。
ローカリゼーションファイルを利用する
インストールした WordPress をローカライズするときは、wp-content の中に languages ディレクトリを作成します。次に適切なローカライズしたファイルをサブバージョンレポジトリから上記で説明したとおりに持ってきます。
メインの .mo ファイル、管理画面用 .mo ファイル、国名 .mo ファイルを languages ディレクトリ内に配置し、wp-config.php内の WPLANG を選択した言語に設定します。例えばフランス語にする場合は以下のようにしてください。
define ('WPLANG', 'fr_FR');
関連ページ
一般ユーザ向け:
- 日本語で WordPress -- WordPress での日本語の扱い、日本語ユーザ向けパッケージ・言語ファイルの案内
- 日本語・マルチバイト特有の問題 -- 具体的な問題点と解決方法
- WordPress を他の言語で使う -- 英語以外の言語で WordPress を表示するための案内、各言語の言語ファイル・パッケージ・コミュニティの紹介
- 言語ファイルのインストール
- WordPress で多言語サイトを作成する -- サイト・コンテンツの多言語化
開発・翻訳者向け:
- WordPress 翻訳の始め方 -- 翻訳が初めての方向けの説明ページ
- WordPress の翻訳 -- ローカライズの仕組み
- WordPress 翻訳ガイドライン
- WordPress 用語集
- WordPress 開発者のための i18n(国際化) -- 翻訳できるようにするコーディング手法
- Files For Direct Translation -- 言語ファイルではローカライズできない部分の説明・対処方法
外部資料
国際化関数の記述などが古くなっているものもありますので注意してください。
- hucha on blog » poEditの使い方メモ (2005-08-09)
- hiromasa.zone :o) » WordPress プラグイン日本語化 Tips (2005-08-28) --
load_plugin_textdomain($domain)
の小技、メッセージの__
関数_e
関数 でのくくりだし Tips - hiromasa.zone :o) » poEdit Windows 版インストール方法 (2005-11-23)
- MMRT daily life » poEdit 取扱説明書
- iDeasilo » プラグインとテーマをローカライズする (2006-08-09)
- iDeasilo » poEdit で翻訳ファイルを作る (2006-08-14)