• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「WordPress の翻訳」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(翻訳ツール)
(最新版に更新、一分和訳追加)
1行目: 1行目:
{{Old}}
 
 
{{NeedTrans|一部}}
 
{{NeedTrans|一部}}
  
 
__TOC__
 
__TOC__
「インターナショナリゼーション(国際化)」や「ローカライゼーション(現地化)」とは、WordPressを始めとするさまざまなソフトウェア、プロジェクトなどを、もともとのターゲットとする言語や地域以外のユーザーにも利用できるようにする試みのことです。
+
「インターナショナリゼーション(国際化/i18n)」や「ローカライゼーション(地域化/L10n)」とは、WordPress をはじめとするさまざまなソフトウェアやプロジェクトなどを、もともとのターゲットとする言語や地域以外のユーザーにも利用できるようにする試みのことです。
  
プログラムのローカリゼーションには2つの側面があります。ひとつは、開発者側の面です。ここでの作業は、世界中のユーザーのために、各地の状況や言語に合わせてプログラムの内部やインターフェースをいずれ翻訳するための仕組みを整えておくことから始まります。最終的には、開発者の指定したフレームワークを使ってメッセージなどが翻訳されることにより、「ローカリゼーション」が完了します。
+
プログラムのローカリゼーションには2つのステップがあります。まず、プログラムの開発者が世界中のユーザーに向けて、各地の状況や言語に合わせてプログラムの内部やインターフェースをいずれ翻訳するための仕組みを整えることから始まります。WordPress ではこの作業がすでに行われているので、理論上はどんな言語でも利用出来るようにできます。
  
WordPress は世界中で使用されていますが、このような人気を得ることができたのも翻訳に手を貸してくださったユーザーのみなさんのおかげです。このページでは、WordPressをローカライズするために必要なツールや手順についてご紹介します。
+
次のステップは、実際の「ローカリゼーション」です。この段階ではソフトウェアの開発者の指定したフレームワークを使ってページ上のテキストや設定を翻訳し、他の言語や文化に適合させます。WordPress はすでにたくさんの言語に翻訳されています([[:en:WordPress in Your Language|WordPress in Your Language]] を参照<!-- 日本語訳では他の言語へのリンクは削除されているので英語版にリンク -->)。
 +
 
 +
このページでは翻訳者(複数の言語を知っている WordPress ユーザー)が WordPress をより多くの言語にローカライズするために必要なツールや手順についてご紹介します。
  
 
<div id="Translating_WordPress">
 
<div id="Translating_WordPress">
13行目: 14行目:
 
</div>
 
</div>
  
WordPressの翻訳に足を踏み入れる前に、[[:en:WordPress in Your Language|WordPress in Your Language]](英語)/([[WordPress in Your Language|和訳]])ページを確認して、「[[#「地域(ロケール)」について|ロケール]] 」がすでに存在していないか確認しましょう([[:en:WordPress in Your Language#Japanese(日本語)(ja)|日本語はすでに存在します]])。
+
WordPress の翻訳に足を踏み入れる前に、[[:en:WordPress in Your Language|WordPress in Your Language]] ページを確認して、「[[#「地域(ロケール)」について|ロケール]]」がすでに存在していないか確認しましょう([[:en:WordPress in Your Language#Japanese(日本語)(ja)|日本語はすでに存在]]しており、[[WordPress_への協力#WordPress の日本語化|作成に参加]]できます)。
  
もし翻訳したいロケールが公式[http://svn.automattic.com/wordpress-i18n/ WordPressローカリゼーションレポジトリ]に見当たらない場合、[[Mailing_Lists#Polyglots|wp-polyglots メーリングリスト]]/[[:en:Mailing_Lists#Polyglots|en]]に参加するのが一番良い初めの一歩でしょう。自己紹介をし、そのロケールをすでに翻訳し始めている人がいないか聞いてみましょう。
+
もし翻訳したいロケールが公式 [http://svn.automattic.com/wordpress-i18n/ WordPress ローカリゼーションレポジトリ]に見当たらない場合、[[Mailing_Lists#Polyglots|wp-polyglots メーリングリスト]]に参加するのが一番良い初めの一歩でしょう。自己紹介をし、そのロケールをすでに翻訳し始めている人がいないか聞いてみましょう。また、[[:en:L10n:Localization_Teams|ローカリゼーションチーム]]と[[:en:L10n:Teams Currently Forming|現在結成中のローカリゼーションチーム]]のリストもあります。
  
 
<div id="Qualifications">
 
<div id="Qualifications">
 
=== 翻訳への参加資格 ===
 
=== 翻訳への参加資格 ===
 
</div>
 
</div>
 +
<!-- ★不要?★ -->
 +
<!-- Assuming that a WordPress translation into your language does not already exist or has someone working on it, you may want to volunteer to create a public translation of WordPress into your language. If so, here are the qualifications you will need:-->
  
* 英語および翻訳する言語が十分に読み書きできること。それが不十分な場合、作業が困難になるのに加え、完成したローカリゼーションファイルはネイティブスピーカーにとって分かりにくいものになってしまいます。
+
* 英語および翻訳する言語が両方とも十分に読み書きできること。不十分な場合、作業が困難になるのに加え、完成したローカリゼーションファイルがネイティブスピーカーにとって分かりにくいものになってしまいます。
* PHPの知識があること。最適な方法でメッセージの翻訳を行うために、WordPressのコードを読まなければいけないこともあります。
+
* PHP の知識があること。最適な方法でメッセージの翻訳を行うために WordPress のコードを読まなければいけないこともあります。
* 文法の知識があり、英語で書かれたメッセージの前後関係を理解する能力があること。
+
* 文法の知識があり、英語で書かれたメッセージの文脈を理解する能力があること。
  
 
<div id="About_Locales">
 
<div id="About_Locales">
33行目: 36行目:
 
翻訳するロケールは自由に選ぶことができます。例えばカナダ英語やオーストラリア英語のように、地域に独特な単語のつづり方や慣用句似合わせた翻訳なども可能です。
 
翻訳するロケールは自由に選ぶことができます。例えばカナダ英語やオーストラリア英語のように、地域に独特な単語のつづり方や慣用句似合わせた翻訳なども可能です。
  
WordPressの基準ロケールは米国英語です。
+
WordPress の基準ロケールは米国英語(en_US)です。
  
 
<div id="Localization_Technology">
 
<div id="Localization_Technology">
39行目: 42行目:
 
</div>
 
</div>
  
Wordpressは[http://www.gnu.org/software/gettext/gettext.html GNU Gettext]ローカリゼーションフレームワークを使っています。Gettextは成熟しており、ソフトウェアのモジュール形式の翻訳に広く使われているフレームワークです。
+
WordPress 開発者は [http://www.gnu.org/software/gettext/gettext.html GNU Gettext] ローカリゼーションフレームワークを採用しています。Gettext はオープンソースソフトウェアのモジュール形式の翻訳に事実上のスタンダードとして広く使われている成熟したフレームワークです。
 
+
 
<!-- ◆◆未翻訳◆◆
 
<!-- ◆◆未翻訳◆◆
Gettext uses ''message-level'' translation &mdash; that is, every "message" displayed to users is translated individually, whether it be a paragraph or a single word. Throughout WordPress, all messages are passed through two functions:
+
gettext uses ''message-level'' translation &mdash; that is, every "message" displayed to users is translated individually, whether it be a paragraph or a single word. In WordPress, such "messages" are generated, translated, and used by the WordPress PHP files via two PHP functions. <tt>__()</tt> is used when the message is passed as an argument to another function; <tt>_e()</tt> is used to write the message directly to the page. More detail on these two functions:
  
 
; <tt>__($message)</tt> : Searches the localization module for the translation of <tt>$message</tt>, and passes the translation to the PHP <tt>return</tt> statement. If no translation is found for <tt>$message</tt>, it just returns <tt>$message</tt>.
 
; <tt>__($message)</tt> : Searches the localization module for the translation of <tt>$message</tt>, and passes the translation to the PHP <tt>return</tt> statement. If no translation is found for <tt>$message</tt>, it just returns <tt>$message</tt>.
 
; <tt>_e($message)</tt> : Searches the localization module for the translation of <tt>$message</tt>, and passes the translation to the PHP <tt>echo</tt> statement. If no translation is found for <tt>$message</tt>, it just echoes <tt>$message</tt>.
 
; <tt>_e($message)</tt> : Searches the localization module for the translation of <tt>$message</tt>, and passes the translation to the PHP <tt>echo</tt> statement. If no translation is found for <tt>$message</tt>, it just echoes <tt>$message</tt>.
  
<tt>__()</tt> is used when the message is passed as an argument to another function; <tt>_e()</tt> is used to write the message directly to the page.  
+
Note that if you are internationalizing a Theme or Plugin, you should use a "Text Domain". See [[Writing a Plugin]] for more information on how to do this for a plugin; themes are similar.
 +
 
 +
The gettext framework takes care of most of WordPress. However, there are a few places in the WordPress distribution where gettext cannot be used -- see [[Files For Direct Translation]] for more information on how to translate these spots.
  
 
=== Gettext ファイル ===
 
=== Gettext ファイル ===
  
There are three types of files used in the Gettext translation framework. Depending on the tool you use to translate, you will need to be familiar with some or all of these files.
+
There are three types of files used in the gettext translation framework. These files are used and/or generated by translation tools during the translation process, as follows:
  
; POT (Portable Object Template) files : The first step in the localization process. A program is used to search through the WordPress source code and pick out every string passed to a <tt>__()</tt> or <tt>_e()</tt> function. This list is put together in a specially-formatted template file that will form the basis of all translations.
+
; POT (Portable Object Template) files : The first step in the localization process is that a program is used to search through the WordPress source code and pick out every message passed into a <tt>__()</tt> or <tt>_e()</tt> function. This list of English-language messages is put into a specially-formatted template file (POT file) that forms the basis of all translations. Generally, you can download a POT file for WordPress, so you shouldn't have to generate your own. Separate POT files can also be made for themes and plugins, if the theme/plugin developer has enclosed all text in <tt>__()</tt> or <tt>_e()</tt> functions.
  
; PO (Portable Object) files : The second step in the localization process. Using the POT file as a template, the list of messages are translated and saved as a PO file.
+
; PO (Portable Object) files : The second step in the localization process is that the translator translates all the messages from the POT file into the target language, and saves both English and translated messages in a PO file.
  
; MO (Machine Object) files : The final step in the localization process. The PO file is run through a program that turns it into an optimized machine-readable binary file, which is the MO file. Compiling the translations to machine code makes the localized program much faster in retrieving the translations while it is running.
+
; MO (Machine Object) files : The final step in the localization process is that the PO file is run through a program that turns it into an optimized machine-readable binary file (MO file). Compiling the translations to machine code makes the localized program much faster in retrieving the translations while it is running.
 
-->
 
-->
  
66行目: 70行目:
 
翻訳するために便利なツールをご紹介しますので、あなたの環境に合ったお好みの方法を選んでください。
 
翻訳するために便利なツールをご紹介しますので、あなたの環境に合ったお好みの方法を選んでください。
  
<!-- ; [https://launchpad.ubuntu.com/rosetta/ The Rosetta Project] :The Ubuntu Linux project has a web site that allows you to translate messages without even looking at a PO or POT file, and export directly to a MO.
+
; [https://translations.launchpad.net/ Launchpad] :この Ubuntu Linux プロジェクトにはサイトがあり、PO/POT ファイルなどを眼にすることなくメッセージを翻訳し、直接 MO ファイルをエクスポートできます。
  
: ''Note: many translators have found Rosetta to be a good starting point, but once it comes time to proofread the entire list of translations, many have opted to switch hand-editing the PO file or using a program like poEdit or KBabel, since the Rosetta UI lacks a search feature and other things that become essential when proofreading and editing.'' -->
+
<!--: ''Note: many translators have found Rosetta to be a good starting point, but once it comes time to proofread the entire list of translations, many have opted to switch hand-editing the PO file or using a program like poEdit or KBabel, since the Rosetta UI lacks a search feature and other things that become essential when proofreading and editing.''
 +
-->
 +
; [http://pootle.locamotion.org/projects/wordpress/ Pootle] :オープンソースの Web ベース翻訳システム。Locamotion.org サーバーでは現在 WordPress の翻訳ができるようになっている。
  
;[http://www.poedit.net/ poEdit]: WindowsおよびUNIX/Linux向けオープンソースのプログラム。簡単にMOファイルの作成を行えるGUIを持つ。
+
;[http://www.poedit.net/ Poedit]: クロスプラットフォームのオープンソースデスクトッププログラム。簡単に MO ファイルの作成を行える GUI を持つ。
  
;[http://i18n.kde.org/tools/kbabel/ KBabel]: Linux向けのPO編集用オープンソースプログラム。
+
;[http://i18n.kde.org/tools/kbabel/ KBabel]: Linux 向けの PO 編集用オープンソースプログラム。
  
;[http://www.gnu.org/software/gettext/ GNU Gettext]: 公式Gettextツールパッケージ。POTファイル作成、POファイルへ編集、MOファイル作成用のコマンドラインツールを含む。
+
;[http://www.gnu.org/software/gettext/ GNU Gettext]: 公式 Gettext ツールパッケージ。POT ファイル作成、PO ファイル編集、MO ファイル作成用のコマンドラインツールを含む。
  
<!-- 現在行われていないようです
+
<div id="Translating_With_Launchpad">
=== Rosetta を使った翻訳 ===
+
=== Launchpad を使った翻訳 ===
 +
</div>
  
# [http://www.ubuntulinux.org/join_form Create an account] on the Ubuntu Linux web site
+
[[:en:Translating_WordPress_with_Launchpad|Launchpad を使った翻訳手順]]については英語版 Codex の説明をご覧ください。日本語版パッケージ作成チームでは、現在利用していません。<!-- 日本語チームでは使っていないので英語版にリンクのみ -->
# [https://launchpad.ubuntu.com/+login Log in] to Rosetta
+
# Click [https://launchpad.ubuntu.com/rosetta/prefs My Preferences]
+
# Add your language and locale to '''My Languages''' and click Save
+
# Go to the [https://launchpad.ubuntu.com/rosetta/products/wordpress/wordpress-1.5 WordPress translation repository]
+
# Click your language and locale
+
# Start translating!
+
  
When you are finished with your translation, you can export it as a PO or MO file if you like, by visiting the '''PO File Details''' page for your language and clicking on '''Export as PO file''' or '''Export as MO file'''.
+
<div id="#Translating_With_Pootle_.28at_Locamotion.org.29">
 +
=== Translating With Pootle (at Locamotion.org) ===
 +
</div>
  
:''Note: Many translators mistake the meaning of the &#8629; and &#8226; characters used in Rosetta. These are meant delineate the location of newlines and easy-to-miss spaces in the source message, respectively, and are are '''NOT''' to be entered literally in the translation. Just be sure that any place there's a &#8629; in the source message, you insert a corresponding newline into the translation. Likewise with &#8226; and a normal space.''
+
[[:en:Translating_WordPress#Translating_With_Pootle_.28at_Locamotion.org.29|Pootle を使った翻訳手順]]については英語版 Codex の説明をご覧ください。日本語版パッケージ作成チームでは、現在利用していません。<!-- 日本語チームでは使っていないので英語版にリンクのみ -->
-->
+
 
<div id="Translating_With_poEdit">
+
<div id="Translating_With_Poedit">
=== poEdit を使った翻訳 ===
+
=== Poedit を使った翻訳 ===
 
</div>
 
</div>
  
# [http://www.poedit.net/ poEdit]をダウンロード、インストールします。
+
# [http://www.poedit.net/ Poedit]をダウンロード、インストールします。
 
# [http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot 公式 WordPress POTファイル] をダウンロードします。
 
# [http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot 公式 WordPress POTファイル] をダウンロードします。
# POTファイルをpoEditで開きます。
+
# POTファイルをPoeditで開きます。
 
# まず最初に「ファイル>名前をつけて保存」を選択し、このPOTファイルを翻訳する言語のPOファイルとして保存しなおします。この際の名前のつけかたは、[[#WordPressローカライゼーションレポジトリ|WordPressローカライゼーションレポジトリ]]の項目を参考にしてください。
 
# まず最初に「ファイル>名前をつけて保存」を選択し、このPOTファイルを翻訳する言語のPOファイルとして保存しなおします。この際の名前のつけかたは、[[#WordPressローカライゼーションレポジトリ|WordPressローカライゼーションレポジトリ]]の項目を参考にしてください。
 
# インターフェースは6つのパネルに分かれています。上部には現在の翻訳状況、右下には英語版と翻訳版のメッセージ、左下にはコメント欄があります。上部で翻訳したいメッセージを選択し、一番右下のパネルに対応する翻訳を記入していきます。
 
# インターフェースは6つのパネルに分かれています。上部には現在の翻訳状況、右下には英語版と翻訳版のメッセージ、左下にはコメント欄があります。上部で翻訳したいメッセージを選択し、一番右下のパネルに対応する翻訳を記入していきます。
104行目: 107行目:
  
 
'''関連情報'''
 
'''関連情報'''
*[http://homepage3.nifty.com/peterpan/Docs/poedit-help.html poEdit ヘルプ]
+
*[http://homepage3.nifty.com/peterpan/Docs/poedit-help.html Poedit ヘルプ]
*[http://wp.mmrt-jp.net/plugin-japanization-project/poedit/ poEdit 取扱説明書] (MMRT daily life)
+
*[http://wp.mmrt-jp.net/plugin-japanization-project/poedit/ Poedit 取扱説明書] (MMRT daily life)
*[http://hucha.pindang.com/archives/10 poEditの使い方メモ] (hucha on blog)
+
*[http://hucha.pindang.com/archives/10 Poeditの使い方メモ] (hucha on blog)
*[http://hiromasa.zone.ne.jp/blog/archives/452/ poEdit Windows 版インストール方法] (hiromasa.zone :o))
+
*[http://hiromasa.zone.ne.jp/blog/archives/452/ Poedit Windows 版インストール方法] (hiromasa.zone :o))
  
 
<div id="Translating_With_KBabel">
 
<div id="Translating_With_KBabel">
138行目: 141行目:
 
==== POファイルのヘッダー情報 ====
 
==== POファイルのヘッダー情報 ====
 
</div>
 
</div>
 
+
<!-- At the beginning of the PO file is something called the ''header''. This gives information about what package and version the translation is for, who the translator was, and when it was created. Certain portions of this header should be universal for all WordPress translations: -->
<!-- At the beginning of the PO file is something called the ''header''. This gives information about what package and version the translation is for, who the translator was, and when it was created. Certain portions of this header should be universal for all WordPress translations:
+
-->
+
  
 
  # '''LANGUAGE (LOCALE) translation for WordPress.'''
 
  # '''LANGUAGE (LOCALE) translation for WordPress.'''
160行目: 161行目:
 
  "Content-Transfer-Encoding: 8bit\n"
 
  "Content-Transfer-Encoding: 8bit\n"
  
大文字で書かれた部分を適切な内容に変更しましょう。
+
太文字で書かれた部分を適切な内容に変更しましょう。
  
 
<div id="Message_Format">
 
<div id="Message_Format">
166行目: 167行目:
 
</div>
 
</div>
  
これ以降のファイル内容は以下のようになっています。
+
ヘッダー以降のファイル内容は以下のようになっています。
  
 
  #: wp-comments-post.php:13
 
  #: wp-comments-post.php:13
180行目: 181行目:
 
  msgstr ""
 
  msgstr ""
  
<!-- The first line of each message contains the location of the message in the WordPress code. In the case of these messages, they're all located in wp-comments-post.php, on lines 13, 29, and 35, respectively. Occasionally you will come across a message for which you will need to check its context; look at the appropriate line or lines in the WordPress core, and you should be able to figure out when and where the message is displayed, and even reproduce it yourself using your web browser.
+
<!-- The first line of each message contains the location of the message in the WordPress code. In the case of these messages, they're all located in wp-comments-post.php, on lines 13, 29, and 35, respectively. Occasionally you will come across a message for which you will need to check its context; look at the appropriate line or lines in the WordPress core, and you should be able to figure out when and where the message is displayed, and even reproduce it yourself using your web browser. Some messages will also appear with the same text in multiple locations; in that case, there may be more than one line giving a file and line location.
  
 
The next line, <tt>msgid</tt>, is the ''source'' message. This is the string that WordPress passes to its <tt>__()</tt> or <tt>_e()</tt> functions, and the message you will need to translate.
 
The next line, <tt>msgid</tt>, is the ''source'' message. This is the string that WordPress passes to its <tt>__()</tt> or <tt>_e()</tt> functions, and the message you will need to translate.
186行目: 187行目:
 
The final line, <tt>msgstr</tt>, is a blank string where you will fill in your translation.
 
The final line, <tt>msgstr</tt>, is a blank string where you will fill in your translation.
 
  -->
 
  -->
 
 
'''[http://svn.automattic.com/wordpress-i18n/fr_FR/trunk/messages/fr_FR.po フランス語(フランス)]''' ロケールの場合の実際の内容です。
 
'''[http://svn.automattic.com/wordpress-i18n/fr_FR/trunk/messages/fr_FR.po フランス語(フランス)]''' ロケールの場合の実際の内容です。
  
201行目: 201行目:
 
  msgstr "'''Erreur : veuillez remplir les champs obligatoires vides (nom, e-mail).'''"
 
  msgstr "'''Erreur : veuillez remplir les champs obligatoires vides (nom, e-mail).'''"
  
<!-- :''Note: see '''[[#Character_encodings|Character encodings]]''' and '''[[#HTML_character_entities|HTML character entities]]''' below for notes on when to use HTML character entities in translation.'' -->
+
'''注:''' HTML 実体参照文字をどんなときに使うべきかについては、以下の '''[[#Character_Encodings|文字コード]]'''および'''[[#HTML_Character_Entities|HTML 実体参照文字]]'''を参照。
  
 
<div id="Types_of_messages">
 
<div id="Types_of_messages">
264行目: 264行目:
 
''Of course, not all of them.
 
''Of course, not all of them.
 
''('''[http://svn.automattic.com/wordpress-i18n/de_DE/trunk/messages/de_DE.po ドイツ語(ドイツ)]'''翻訳より。)''
 
''('''[http://svn.automattic.com/wordpress-i18n/de_DE/trunk/messages/de_DE.po ドイツ語(ドイツ)]'''翻訳より。)''
 +
 +
<div id="Strings_with_Description">
 +
=== 説明付きの文字列 ===
 +
</div>
 +
 +
If a string contains a vertical bar |, the part on the right of | is a description. Its purpose is to help you translate the string, placing it in certain context or providing additional information.
 +
 +
==== 例 ====
 +
 +
#: wp-includes/locale.php:186
 +
msgid ""
 +
"number_format_decimal_point|$dec_point argument for http://php.net/number_format, default is ."
 +
msgstr ","
 +
 +
この説明には、文字列を翻訳するために参照すべき Web ページが記入されています。
  
 
<div id="Date_and_Time_Locale_Settings">
 
<div id="Date_and_Time_Locale_Settings">
269行目: 284行目:
 
</div>
 
</div>
  
Rather than using PHP's built-in locale switching features, which on is not configured for very many languages on most hosts, WordPress uses the same Gettext translation module to accomplish date and time translations and formatting.
+
Rather than using PHP's built-in locale switching features, which is not configured for very many languages on most hosts, WordPress uses the gettext translation module to accomplish date and time translations and formatting.
  
WordPress translates the following:
+
WordPress は以下のように翻訳を行っています。
  
 
<div id="Month_names">
 
<div id="Month_names">
304行目: 319行目:
 
  msgstr "&#28779;&#26332;&#26085;"
 
  msgstr "&#28779;&#26332;&#26085;"
  
''('''[http://svn.automattic.com/wordpress-i18n/ja_JP/trunk/messages/ja_JP.po 日本語(日本)]'''翻訳より。)''
+
''('''[http://svn.automattic.com/wordpress-i18n/ja/trunk/messages/ja.po 日本語(日本)]'''翻訳より。)''
  
 
<div id="Weekday_Abbreviations">
 
<div id="Weekday_Abbreviations">
314行目: 329行目:
 
  msgstr "&#1059;&#1090;&#1086;"
 
  msgstr "&#1059;&#1090;&#1086;"
  
''('''[http://svn.automattic.com/wordpress-i18n/sr_CS/trunk/messages/sr_CS.po セルビア語(セルビア・モンテネグロ)(キリル語)]'''翻訳より。)''
+
''('''[http://svn.automattic.com/wordpress-i18n/sr_RS/trunk/messages/sr_RS.po セルビア語(セルビア)]'''翻訳より。)''
  
 
<div id="Weekday_Initials">
 
<div id="Weekday_Initials">
328行目: 343行目:
  
 
<div id="Date_Formatting_Strings">
 
<div id="Date_Formatting_Strings">
==== 文字列のフォーマット ====
+
==== 日付のフォーマット ====
 
</div>
 
</div>
  
390行目: 405行目:
 
; <tt>%1$s</tt>, <tt>%2$s</tt>, <tt>%3$s</tt>, &hellip; : Numbered placeholders, which allow translations to rearrange the order of the placeholders in the string while maintaining the information each is replaced with.
 
; <tt>%1$s</tt>, <tt>%2$s</tt>, <tt>%3$s</tt>, &hellip; : Numbered placeholders, which allow translations to rearrange the order of the placeholders in the string while maintaining the information each is replaced with.
  
''''''
+
==== ====
 
+
 
  #: wp-login.php:116
 
  #: wp-login.php:116
 
  msgid "The e-mail was sent successfully to %s's e-mail address."
 
  msgid "The e-mail was sent successfully to %s's e-mail address."
418行目: 432行目:
  
 
<div id="WordPress_Localization_Repository">
 
<div id="WordPress_Localization_Repository">
== WordPressローカライゼーションレポジトリ ==
+
== WordPress ローカライゼーションレポジトリ ==
 
</div>
 
</div>
  
「'''ローカライゼーションレポジトリ'''」は、WordPressの公式翻訳版を管理している[[http://subversion.tigris.org/ Subversion]]レポジトリです。さまざまなチームが協力して母国語の翻訳を行っており、チーム内の管理者がレポジトリにあるファイルの更新を担っています。
+
「'''[http://svn.automattic.com/wordpress-i18n/ WordPress ローカライゼーションレポジトリ]'''」は、WordPressの公式翻訳版を管理している [[Using_Subversion|Subversion]] レポジトリです。さまざまなチームが協力して母国語の翻訳を行っており、チーム内の管理者がレポジトリにあるファイルの更新を担っています。
  
 
<div id="Participating">
 
<div id="Participating">
427行目: 441行目:
 
</div>
 
</div>
  
誰でもローカライゼーションレポジトリへ参加することができます。[[Mailing_Lists#Polyglots|wp-polyglotsメーリングリスト]]/[[:en:Mailing_Lists#Polyglots|en]]にサインアップし、自己紹介メールを送ってどのロケールの翻訳に参加したいかを表明しましょう。
+
誰でもローカライゼーションレポジトリへ参加することができます。[[Mailing_Lists#Polyglots|wp-polyglots メーリングリスト]]に登録し、自己紹介メールを送ってどのロケールの翻訳に参加したいかを表明しましょう。
  
 
<div id="Guidelines_and_requirements">
 
<div id="Guidelines_and_requirements">
444行目: 458行目:
  
 
<div id="HTML_Character_Entities">
 
<div id="HTML_Character_Entities">
==== HTML実体参照文字 ====
+
==== HTML 実体参照文字 ====
 
</div>
 
</div>
  
一部の例外を除き、翻訳したすべての文字列はHTMLの実体参照文字ではなく普通のテキストで書きましょう。
+
一部の例外を除き、翻訳したすべての文字列は HTML の実体参照文字ではなく普通のテキストで書きましょう。
  
XHTMLマークアップとの干渉を防ぐために、山形カッコ(<tt>&amp;lt;</tt>とtt>&amp;gt;</tt>)とアンド記号(<tt>&amp;amp;</tt>)を半角で使う場合、必ず実体参照で表記する必要があります。また、空白(<tt>&amp;nbsp;</tt>)、斜体クォート(<tt>&amp;laquo;</tt>と<tt>&amp;raquo;</tt>)、巻きアポストロフィ(<tt>&amp;#8217;</tt>)、巻き引用符(<tt>&amp;#8220;</tt>と<tt>&amp;#8221;</tt>)も実体参照を使うことが勧められています。
+
XHTMLマークアップとの干渉を防ぐために、山形カッコ(<tt>&amp;lt;</tt> と <tt>&amp;gt;</tt>)とアンド記号(<tt>&amp;amp;</tt>)を半角で使う場合、必ず実体参照で表記する必要があります。また、空白(<tt>&amp;nbsp;</tt>)、斜体クォート(<tt>&amp;laquo;</tt> と <tt>&amp;raquo;</tt>)、巻きアポストロフィ(<tt>&amp;#8217;</tt>)、巻き引用符(<tt>&amp;#8220;</tt> と <tt>&amp;#8221;</tt>)も実体参照を使うことが勧められています。
  
W3Cによる文字コードおよび実体参照関連の慣行については、以下のリンクを参照してください。
+
W3C による文字コードおよび実体参照関連の慣行については、以下のリンクを参照してください。
 +
 
 +
* [http://www.w3.org/TR/2004/WD-i18n-html-tech-char-20040509/#IDAPNGO Representing characters using escapes]
 +
* [http://www.w3.org/International/tutorials/tutorial-char-enc/#Slide0440 Only use escapes in exceptional circumstances]
  
* http://www.w3.org/TR/2004/WD-i18n-html-tech-char-20040509/#IDAPNGO
 
* http://www.w3.org/International/tutorials/tutorial-char-enc/#exceptional
 
  
 
<div id="Repository_File_Structure">
 
<div id="Repository_File_Structure">
460行目: 475行目:
 
</div>
 
</div>
  
ローカライゼーションレポジトリには各ロケールごとのディレクトリがあります。これらのディレクトリは、以下のルールに従って名づけられています。
+
ローカライゼーションレポジトリには各ロケールごとのディレクトリがあります。これらのディレクトリは、基本的に以下のルールに従って名づけられています。
  
 
* [http://en.wikipedia.org/wiki/ISO_639 ISO 639 言語コード] (半角小文字)
 
* [http://en.wikipedia.org/wiki/ISO_639 ISO 639 言語コード] (半角小文字)
467行目: 482行目:
 
* もし同じロケールの別スクリプト用ディレクトリの場合、さらに @ マークと[http://www.unicode.org/iso15924/iso15924-codes.html ISO 15924 スクリプトコード]が続く。
 
* もし同じロケールの別スクリプト用ディレクトリの場合、さらに @ マークと[http://www.unicode.org/iso15924/iso15924-codes.html ISO 15924 スクリプトコード]が続く。
  
各ロケールのディレクトリないには、Subversion標準のバージョニングディレクトリ(branches/、tags/、 trunk/)があります。
+
(訳注: 日本で話されている日本語はこのルールに基づくと ja_JP ですが、実際の WordPress でのロケールコードは単に '''ja''' となっています。[http://lists.automattic.com/pipermail/wp-polyglots/2005-April/000533.html 関連 ML 投稿、2005年4月])
  
バージョニングディレクトリないには'''dist/'''というサブディレクトリがあります。このディレクトリにはWordPressの配布パッケージのうち、Gettextを使えないファイルを翻訳したもの(例えばreadme.htmlなど)を含めます。
+
各ロケールのディレクトリ内には、Subversion標準のバージョニングディレクトリ(branches/、tags/、 trunk/)があります。
  
もし翻訳後のファイルがUTF-8形式のみの場合、ここにWordPressルートディレクトリと同じ構造でファイルを置きます。
+
バージョンニングディレクトリ内には'''dist/'''というサブディレクトリがあります。このディレクトリにはWordPressの配布パッケージのうち、Gettextを使えないファイルを翻訳したもの(例えばreadme.htmlなど)を含めます。
 +
 
 +
もし翻訳後のファイルが UTF-8 形式のみの場合、ここに WordPress ルートディレクトリと同じ構造でファイルを置きます。
 +
 
 +
===== messages/ =====
  
 
<ul>
 
<ul>
<li>dist/
+
<li>messages/</li>
<ul>
+
    <ul>
<li>license.html</li>
+
        <li>kubrick</li>
<li>readme.html</li>
+
    </ul>
<li>wp-config-sample.php</li>
+
<li>&hellip;</li>
+
<li>wp-admin/
+
<ul>
+
<li>install.php</li>
+
<li>upgrade.php</li>
+
<li>&hellip;</li>
+
</ul>
+
</li>
+
</ul>
+
</li>
+
 
</ul>
 
</ul>
  
ロケールがUTF-8文字コード以外のファイルを含む場合、dist/ ディレクトリには各文字コードごとのサブディレクトリが必要になります。以下は、その例です。
+
このディレクトリには、各ロケール用の Gettext の MO/PO ファイルが含まれます。メッセージファイルにはロケール名をもとにした名前がつけられています。
 +
 
 +
<code>kubrick</code> フォルダーには wordpress-i18n svn レポジトリ内にある[http://svn.automattic.com/wordpress-i18n/theme/ 国際化済みデフォルトテーマ]と、(上記の通りの P0/MO ファイル命名規則に基づいた)翻訳ファイルを置きます。さらに別のデフォルテーマ翻訳方法があります。
 +
 
 +
===== dist/ =====
 +
 
 +
このディレクトリには [[Files_For_Direct_Translation|Gettexted で翻訳できない WordPress ディストリビューション内のファイル]] /[[:en:Files_For_Direct_Translation|en]] が翻訳された状態ですべて含まれています。
 +
 
 +
ロケールが UTF-8 文字コードのみの場合、dist/ ディレクトリ直下にファイルが置かれ、この中身は WordPress のルートディレクトリ構造のミラーになります。各文字コードごとのサブディレクトリが必要になります。以下は、その例です。
  
 
<ul>
 
<ul>
 
<li>dist/
 
<li>dist/
<ul>
 
<li>UTF-8/
 
 
<ul>
 
<ul>
 
<li>license.html</li>
 
<li>license.html</li>
509行目: 523行目:
 
</ul>
 
</ul>
 
</li>
 
</li>
</ul>
 
</li>
 
<li>ISO-8859-1/
 
<ul>
 
<li>&hellip;</li>
 
</ul>
 
</li>
 
<li>&hellip;</li>
 
 
</ul>
 
</ul>
 
</li>
 
</li>
 
</ul>
 
</ul>
  
'''messages/'''
+
===== theme/ =====
  
このディレクトリには、各ロケール用のGettextのMO/POファイルが含まれます。メッセージファイルは以下のように名前がつけられています。
+
'''注:''' <tt>theme/</tt> ディレクトリを使うより、国際化済みのデフォルトテーマを使うことが勧められています。上記の <tt>messages/</tt> を覧ください。
  
* [http://en.wikipedia.org/wiki/ISO_639 ISO 639 言語コード] (半角小文字)
+
Similarly to the dist/ dir, theme/ contains hard-translated theme files. If only a UTF-8 translation is present, the directory can be populated with subdirectories for each theme translated. These subdirectories contain all of the same files as the original theme (except that they're translated), and are named the same as the original theme:
* アンダースコア(_)
+
* [http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2 国コード] (半角大文字)
+
* ピリオド(.
+
* [http://www.iana.org/assignments/character-sets IANA 文字セット名] (UTF-8以外の場合のみ)
+
* ピリオド(.)(文字セット名を指定した場合のみ)
+
* ファイル拡張子 (半角小文字)
+
 
+
'''Examples:'''
+
cs_CZ.po        # UTF-8の文字コード
+
ja_JP.EUC-JP.mo # EUC-JPの文字コード
+
 
+
'''theme/'''
+
 
+
dist/ ディレクトリのように、theme/ ディレクトリには翻訳したテーマファイルを含めます。もし翻訳後のファイルがUTF-8形式のみの場合、このディレクトリ内に直接各テーマのフォルダをサブディレクトリとして入れます。
+
  
 
<ul>
 
<ul>
561行目: 553行目:
 
</ul>
 
</ul>
  
複数の文字コードがある場合、翻訳されたテーマを含む各文字コードごとのサブディレクトリが必要です。
+
dist/ ディレクトリと同じく、テーマに複数の文字コードがある場合、翻訳されたテーマを含む各文字コードごとのサブディレクトリが必要です。
 +
 
 +
<div id="#Using_Localizations">
 +
== ローカリゼーションファイルを利用する ==
 +
</div>
 +
 
 +
In order to localize your installation of wordpress, create a directory named ''languages'' inside of ''wp-includes'', if it does not already exist.  Then grab the appropriate localization files from the [http://svn.automattic.com/wordpress-i18n/ Subversion Repository] as described above.  The main .mo file and the continent .mo file for the language should go inside the ''languages'' directory.  Set WPLANG inside of ''wp-config.php'' to your chosen language.  For example, if you wanted to use french, you would have:
 +
 
 +
<pre>define ('WPLANG', 'fr_FR');</pre>
  
 
<!-- Rosettaの説明は省きます
 
<!-- Rosettaの説明は省きます
568行目: 568行目:
 
; Rosetta won't export my translation as an MO file. It just says, "A system error occurred." :There is a syntax error in your translation that is preventing it from compiling to an MO. Download the PO instead and try compiling it manually with <tt>msgfmt</tt>. This will tell you which lines the errors are on so you can correct them by hand. If you don't have the GNU Gettext package installed, you can try opening the PO file in poEdit or KBabel to see if they will help you correct the errors, or you can email the [[Mailing_Lists#Polyglots|wp-polyglots mailing list]] and ask for someone to debug it for you.
 
; Rosetta won't export my translation as an MO file. It just says, "A system error occurred." :There is a syntax error in your translation that is preventing it from compiling to an MO. Download the PO instead and try compiling it manually with <tt>msgfmt</tt>. This will tell you which lines the errors are on so you can correct them by hand. If you don't have the GNU Gettext package installed, you can try opening the PO file in poEdit or KBabel to see if they will help you correct the errors, or you can email the [[Mailing_Lists#Polyglots|wp-polyglots mailing list]] and ask for someone to debug it for you.
 
-->
 
-->
 
 
== 関連ページ ==
 
== 関連ページ ==
 
{{ローカライズ関連リンク}}
 
{{ローカライズ関連リンク}}
  
 +
<!-- ==Resources==
 +
* [http://boren.nu/archives/2004/11/01/localizing-plugins-and-themes/ Ryan Boren's Localizing Plugins and Themes]
 +
* [http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/ Translating WordPress into another language (themes and plugins too)]
 +
-->
 
== 外部資料 ==
 
== 外部資料 ==
 +
国際化関数の記述などが古くなっているものもありますので注意してください。
  
 
* [http://hucha.pindang.com/archives/10 hucha on blog &raquo; poEditの使い方メモ] (2005-08-09)
 
* [http://hucha.pindang.com/archives/10 hucha on blog &raquo; poEditの使い方メモ] (2005-08-09)
581行目: 585行目:
 
* [http://ideasilo.wordpress.com/2006/08/14/edit-language-files-with-poedit/ iDeasilo &raquo; poEdit で翻訳ファイルを作る] (2006-08-14)
 
* [http://ideasilo.wordpress.com/2006/08/14/edit-language-files-with-poedit/ iDeasilo &raquo; poEdit で翻訳ファイルを作る] (2006-08-14)
  
{{原文|Translating WordPress|32824}}
+
{{原文|Translating WordPress|84888}}
  
 
{{DEFAULTSORT:ほんやく}}
 
{{DEFAULTSORT:ほんやく}}

2010年3月29日 (月) 13:40時点における版

このページ「WordPress の翻訳」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています

「インターナショナリゼーション(国際化/i18n)」や「ローカライゼーション(地域化/L10n)」とは、WordPress をはじめとするさまざまなソフトウェアやプロジェクトなどを、もともとのターゲットとする言語や地域以外のユーザーにも利用できるようにする試みのことです。

プログラムのローカリゼーションには2つのステップがあります。まず、プログラムの開発者が世界中のユーザーに向けて、各地の状況や言語に合わせてプログラムの内部やインターフェースをいずれ翻訳するための仕組みを整えることから始まります。WordPress ではこの作業がすでに行われているので、理論上はどんな言語でも利用出来るようにできます。

次のステップは、実際の「ローカリゼーション」です。この段階ではソフトウェアの開発者の指定したフレームワークを使ってページ上のテキストや設定を翻訳し、他の言語や文化に適合させます。WordPress はすでにたくさんの言語に翻訳されています(WordPress in Your Language を参照)。

このページでは翻訳者(複数の言語を知っている WordPress ユーザー)が WordPress をより多くの言語にローカライズするために必要なツールや手順についてご紹介します。

WordPressを翻訳する

WordPress の翻訳に足を踏み入れる前に、WordPress in Your Language ページを確認して、「ロケール」がすでに存在していないか確認しましょう(日本語はすでに存在しており、作成に参加できます)。

もし翻訳したいロケールが公式 WordPress ローカリゼーションレポジトリに見当たらない場合、wp-polyglots メーリングリストに参加するのが一番良い初めの一歩でしょう。自己紹介をし、そのロケールをすでに翻訳し始めている人がいないか聞いてみましょう。また、ローカリゼーションチーム現在結成中のローカリゼーションチームのリストもあります。

翻訳への参加資格

  • 英語および翻訳する言語が両方とも十分に読み書きできること。不十分な場合、作業が困難になるのに加え、完成したローカリゼーションファイルがネイティブスピーカーにとって分かりにくいものになってしまいます。
  • PHP の知識があること。最適な方法でメッセージの翻訳を行うために WordPress のコードを読まなければいけないこともあります。
  • 文法の知識があり、英語で書かれたメッセージの文脈を理解する能力があること。

「地域(ロケール)」について

ロケールとは、言語と地域の方言を組み合わせたもののことです。普通、「ポルトガル語(ポルトガル)」や「ポルトガル語(ブラジル)」というように、ロケールは国と対応しています。

翻訳するロケールは自由に選ぶことができます。例えばカナダ英語やオーストラリア英語のように、地域に独特な単語のつづり方や慣用句似合わせた翻訳なども可能です。

WordPress の基準ロケールは米国英語(en_US)です。

ローカライゼーション技術

WordPress 開発者は GNU Gettext ローカリゼーションフレームワークを採用しています。Gettext はオープンソースソフトウェアのモジュール形式の翻訳に事実上のスタンダードとして広く使われている成熟したフレームワークです。

翻訳ツール

翻訳するために便利なツールをご紹介しますので、あなたの環境に合ったお好みの方法を選んでください。

Launchpad 
この Ubuntu Linux プロジェクトにはサイトがあり、PO/POT ファイルなどを眼にすることなくメッセージを翻訳し、直接 MO ファイルをエクスポートできます。
Pootle 
オープンソースの Web ベース翻訳システム。Locamotion.org サーバーでは現在 WordPress の翻訳ができるようになっている。
Poedit
クロスプラットフォームのオープンソースデスクトッププログラム。簡単に MO ファイルの作成を行える GUI を持つ。
KBabel
Linux 向けの PO 編集用オープンソースプログラム。
GNU Gettext
公式 Gettext ツールパッケージ。POT ファイル作成、PO ファイル編集、MO ファイル作成用のコマンドラインツールを含む。

Launchpad を使った翻訳

Launchpad を使った翻訳手順については英語版 Codex の説明をご覧ください。日本語版パッケージ作成チームでは、現在利用していません。

Translating With Pootle (at Locamotion.org)

Pootle を使った翻訳手順については英語版 Codex の説明をご覧ください。日本語版パッケージ作成チームでは、現在利用していません。

Poedit を使った翻訳

  1. Poeditをダウンロード、インストールします。
  2. 公式 WordPress POTファイル をダウンロードします。
  3. POTファイルをPoeditで開きます。
  4. まず最初に「ファイル>名前をつけて保存」を選択し、このPOTファイルを翻訳する言語のPOファイルとして保存しなおします。この際の名前のつけかたは、WordPressローカライゼーションレポジトリの項目を参考にしてください。
  5. インターフェースは6つのパネルに分かれています。上部には現在の翻訳状況、右下には英語版と翻訳版のメッセージ、左下にはコメント欄があります。上部で翻訳したいメッセージを選択し、一番右下のパネルに対応する翻訳を記入していきます。
  6. 翻訳が完了したら、「名前をつけて保存」を再度選択し、MOファイルを作成します。
  7. 「ファイル>設定>編集」メニューから、保存時にいつでもMOファイルを自動生成するようにしておくこともできます。また、コメント欄を編集可能にする場合もここで変更できます。

関連情報

KBabel を使った翻訳

KBabelとは、Unix系OSデスクトップ環境構築用ソフトウェアであるKEDに含まれているツールです。

  1. 公式 WordPress POTファイル をダウンロードします。
  2. POTファイルをKBabelで開きます。

詳しい使い方については、KBabel Wiki(日本語)が参考になります。

Gettext ツールを使った翻訳

Gettextを使う場合、UNIX環境またはCygwinなどのUNIX互換環境が必要になります。

  1. 公式 WordPress POTファイル をダウンロードします。
  2. POTファイルをお好きなテキストエディタで開きます。
  3. ヘッダー情報(以下参照)を更新します。
  4. メッセージを翻訳します。
  5. ファイルの拡張子を「.po」に変更して保存します。
  6. 以下を実行します。msgfmt -o filename.mo filename.po

関連情報

POファイルのヘッダー情報

# 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 ""

フランス語(フランス) ロケールの場合の実際の内容です。

#: 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(ユーザーインターフェース)要素の説明です。短い単語・文章ながら、前後関係に基づいた正確な翻訳が難しいこともあるので気をつけましょう。

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 "Вашата нова парола е в електронната ви поща."

This particular message contains a modified English formulaic expression ("the check/cheque is in the mail"), which contributes to its informality. ブルガリア語(ブルガリア)翻訳より。)

#: wp-includes/functions.php:1636
msgid "<strong>Error</strong>: Incorrect password."
msgstr "<strong>FEL</strong>: Felaktigt lösenord."

Error messages tend to be more formal, simply because they're short and concise. スウェーデン語(スウェーデン)翻訳より。)

#: 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."

Of course, not all of them. ドイツ語(ドイツ)翻訳より。)

説明付きの文字列

If a string contains a vertical bar |, the part on the right of | is a description. Its purpose is to help you translate the string, placing it in certain context or providing additional information.

#: wp-includes/locale.php:186
msgid ""
"number_format_decimal_point|$dec_point argument for http://php.net/number_format, default is ."
msgstr ","

この説明には、文字列を翻訳するために参照すべき Web ページが記入されています。

地域ごとの日時設定

Rather than using PHP's built-in locale switching features, which is not configured for very many languages on most hosts, WordPress uses the gettext translation module to accomplish date and time translations and formatting.

WordPress は以下のように翻訳を行っています。

#: wp-includes/locale.php:42 wp-includes/locale.php:57
msgid "May"
msgstr "Kvト孚en"

チェコ語(チェコ共和国)翻訳より。)

月の略称

#: wp-includes/locale.php:57
msgid "May_May_abbreviation"
msgstr "Mag"

Note the unusual msgid. These messages should NOT be translated literally: they are a hack to get around the fact that in English, the full name and abbreviation for May are the same, which Gettext would erroneously combine into one entry. イタリア語(イタリア)翻訳より。)

曜日

#: 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"

The weekday initials are for WordPress's calendar feature, and use the same hack as the month abbreviations to get around the fact that in English Tuesday and Thursday share the same first letter. Not all locales use single-letter abbreviations for all days: in this example, Norwegian Bokmål uses an extra letter to distinguish tirsdag (Tuesday) and torsdag (Thursday). ノルウェーボクマール語(ノルウェー)翻訳より。)

日付のフォーマット

These are PHP date() formatting strings, and they allow you to change the formatting of the date and time for your locale.

WordPress uses the translations elsewhere in the localization file for month names, weekday names, etc. This special string is for the selection of which elements to include in the date & time, as well as the order in which they're presented.

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 を通じた翻訳

To translate your Date e.g. inside your plugin use the wp-function mysql2date(Dateformat, Datestring). It uses the month- and week-translations to return your date.

代替値を含むメッセージ

Many messages contain special PHP formatting placeholders, which allow the insertion of untranslatable dynamic content into the message after it is translated. The PHP placeholders come in two different formats:

%s 
When only one placeholder is present, this marker is used.
%1$s, %2$s, %3$s, … 
Numbered placeholders, which allow translations to rearrange the order of the placeholders in the string while maintaining the information each is replaced with.

#: 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不允许被上传。"

上記の中国語(中国語)では、ファイル名とファイルの種類を挿入する部分が英語とは逆になっています。

上手な翻訳をするためのヒント

一字一句直訳するのではなく、全体を見て訳しよう
表現の丁寧さを統一しよう
スラングや分かりにくい用語は避けよう
他のソフトウェアの翻訳を読んで、用語の一般的な使い方を知ろう

WordPress ローカライゼーションレポジトリ

WordPress ローカライゼーションレポジトリ」は、WordPressの公式翻訳版を管理している Subversion レポジトリです。さまざまなチームが協力して母国語の翻訳を行っており、チーム内の管理者がレポジトリにあるファイルの更新を担っています。

参加者募集中!

誰でもローカライゼーションレポジトリへ参加することができます。wp-polyglots メーリングリストに登録し、自己紹介メールを送ってどのロケールの翻訳に参加したいかを表明しましょう。

手引きと必須事項

注: これらのガイドラインはシステムの変化にしたがって変更になることがあります。

文字コード

すべてのローカリゼーションには最低限UTF-8バージョンを含めるべきですが、そのほかにロケールごとに良く使われている別の文字コードのバージョンを含めることもできます(例:日本語でのShift_JISやEUC-JPなど)。

PHPはバイトオーダーマーク(BOM)に対応していません。UTF-8のファイルにはBOMをつけないで保存するようにしましょう。

HTML 実体参照文字

一部の例外を除き、翻訳したすべての文字列は HTML の実体参照文字ではなく普通のテキストで書きましょう。

XHTMLマークアップとの干渉を防ぐために、山形カッコ(&lt;&gt;)とアンド記号(&amp;)を半角で使う場合、必ず実体参照で表記する必要があります。また、空白(&nbsp;)、斜体クォート(&laquo;&raquo;)、巻きアポストロフィ(&#8217;)、巻き引用符(&#8220;&#8221;)も実体参照を使うことが勧められています。

W3C による文字コードおよび実体参照関連の慣行については、以下のリンクを参照してください。


レポジトリ内のファイル構成

ローカライゼーションレポジトリには各ロケールごとのディレクトリがあります。これらのディレクトリは、基本的に以下のルールに従って名づけられています。

(訳注: 日本で話されている日本語はこのルールに基づくと 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 ディストリビューション内のファイル /en が翻訳された状態ですべて含まれています。

ロケールが UTF-8 文字コードのみの場合、dist/ ディレクトリ直下にファイルが置かれ、この中身は WordPress のルートディレクトリ構造のミラーになります。各文字コードごとのサブディレクトリが必要になります。以下は、その例です。

  • dist/
    • license.html
    • readme.html
    • wp-config-sample.php
    • wp-admin/
      • install.php
      • upgrade.php
theme/

注: theme/ ディレクトリを使うより、国際化済みのデフォルトテーマを使うことが勧められています。上記の messages/ を覧ください。

Similarly to the dist/ dir, theme/ contains hard-translated theme files. If only a UTF-8 translation is present, the directory can be populated with subdirectories for each theme translated. These subdirectories contain all of the same files as the original theme (except that they're translated), and are named the same as the original theme:

  • theme/
    • default/
      • 404.php
      • index.php
      • sidebar.php
      • images/

dist/ ディレクトリと同じく、テーマに複数の文字コードがある場合、翻訳されたテーマを含む各文字コードごとのサブディレクトリが必要です。

ローカリゼーションファイルを利用する

In order to localize your installation of wordpress, create a directory named languages inside of wp-includes, if it does not already exist. Then grab the appropriate localization files from the Subversion Repository as described above. The main .mo file and the continent .mo file for the language should go inside the languages directory. Set WPLANG inside of wp-config.php to your chosen language. For example, if you wanted to use french, you would have:

define ('WPLANG', 'fr_FR');

関連ページ

一般ユーザ向け:

開発・翻訳者向け:


外部資料

国際化関数の記述などが古くなっているものもありますので注意してください。

最新英語版: WordPress Codex » Translating WordPress最新版との差分