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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(4 版)
(WPJ Codexデータインポート(2006年4月30日 (日) 20:59 Tordans 版 en:Translating WordPress)、コメントアウトにも未翻訳あり)
1行目: 1行目:
{{Copyedit}}
+
{{Old}}
 +
{{NeedTrans|一部}}
 +
 
 
__TOC__
 
__TOC__
 
「インターナショナリゼーション(国際化)」や「ローカライゼーション(現地化)」とは、WordPressを始めとするさまざまなソフトウェア、プロジェクトなどを、もともとのターゲットとする言語や地域以外のユーザーにも利用できるようにする試みのことです。
 
「インターナショナリゼーション(国際化)」や「ローカライゼーション(現地化)」とは、WordPressを始めとするさまざまなソフトウェア、プロジェクトなどを、もともとのターゲットとする言語や地域以外のユーザーにも利用できるようにする試みのことです。
9行目: 11行目:
 
== WordPressを翻訳する ==
 
== WordPressを翻訳する ==
  
WordPressの翻訳に足を踏み入れる前に、[http://codex.wordpress.org/WordPress_in_Your_Language WordPress in Your Language](英語)ページを確認して、「[[#「地域(ロケール)」について|ロケール]] 」がすでに存在していないか確認しましょう([http://codex.wordpress.org/WordPress_in_Your_Language#Japanese 日本語はすでに存在します])。
+
WordPressの翻訳に足を踏み入れる前に、[[:en:WordPress in Your Language|WordPress in Your Language]](英語)/([[WordPress in Your Language|和訳]])ページを確認して、「[[#「地域(ロケール)」について|ロケール]] 」がすでに存在していないか確認しましょう([[:en:WordPress in Your Language#Japanese(日本語)(ja)|日本語はすでに存在します]])。
  
もし翻訳したいロケールが公式[http://svn.automattic.com/wordpress-i18n/ WordPressローカリゼーションレポジトリ]に見当たらない場合、[[Mailing_Lists#Polyglots|wp-polyglotsメーリングリスト]]に参加するのが一番良い初めの一歩でしょう。自己紹介をし、そのロケールをすでに翻訳し始めている人がいないか聞いてみましょう。
+
もし翻訳したいロケールが公式[http://svn.automattic.com/wordpress-i18n/ WordPressローカリゼーションレポジトリ]に見当たらない場合、[[:en:Mailing_Lists#Polyglots|wp-polyglotsメーリングリスト]]に参加するのが一番良い初めの一歩でしょう。自己紹介をし、そのロケールをすでに翻訳し始めている人がいないか聞いてみましょう。
  
 
WordPress Japanの「[http://wordpress.xwd.jp/begin/ スタートガイド]」内には'''[http://wordpress.xwd.jp/begin/lang.php 言語ファイルの編集]'''という簡潔な解説もありますので、ぜひご活用ください。
 
WordPress Japanの「[http://wordpress.xwd.jp/begin/ スタートガイド]」内には'''[http://wordpress.xwd.jp/begin/lang.php 言語ファイルの編集]'''という簡潔な解説もありますので、ぜひご活用ください。
511行目: 513行目:
 
-->
 
-->
  
[[Category:Translating WordPress]]
+
== 関連ページ ==
[[Category:Advanced Topics]]
+
{{ローカライズ関連リンク}}
[[Category:WordPress Development]]
+
 
 +
{{原文|Translating WordPress|32824}}
 +
 
 +
{{DEFAULTSORT:ほんやく}}
 +
[[Category:WordPress の翻訳]]
 +
[[Category:上級トピック]]
 +
[[Category:WordPress の開発]]
 +
 
 +
[[en:Translating WordPress]]

2008年4月4日 (金) 21:22時点における版

このページ「WordPress の翻訳」は 情報が古くなっている可能性があります。最新版英語)も合わせてご覧ください。最新に更新してくださる協力者を求めています

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

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

プログラムのローカリゼーションには2つの側面があります。ひとつは、開発者側の面です。ここでの作業は、世界中のユーザーのために、各地の状況や言語に合わせてプログラムの内部やインターフェースをいずれ翻訳するための仕組みを整えておくことから始まります。最終的には、開発者の指定したフレームワークを使ってメッセージなどが翻訳されることにより、「ローカリゼーション」が完了します。

WordPress は世界中で使用されていますが、このような人気を得ることができたのも翻訳に手を貸してくださったユーザーのみなさんのおかげです。このページでは、WordPressをローカライズするために必要なツールや手順についてご紹介します。

WordPressを翻訳する

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

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

WordPress Japanの「スタートガイド」内には言語ファイルの編集という簡潔な解説もありますので、ぜひご活用ください。

翻訳への参加資格

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

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

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

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

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

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

WordpressはGNU Gettextローカリゼーションフレームワークを使っています。Gettextは成熟しており、ソフトウェアのモジュール形式の翻訳に広く使われているフレームワークです。


翻訳ツール

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


poEdit
WindowsおよびUNIX/Linux向けオープンソースのプログラム。簡単にMOファイルの作成を行えるGUIを持つ。
KBabel
Linux向けのPO編集用オープンソースプログラム。
GNU Gettext
公式Gettextツールパッケージ。POTファイル作成、POファイルへ編集、MOファイル作成用のコマンドラインツールを含む。

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)."


メッセージのタイプ

ラベル

ラベルは、<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. ドイツ語(ドイツ)翻訳より。)

地域ごとの日時設定

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.

WordPress translates the following:

#: 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の公式翻訳版を管理している[Subversion]レポジトリです。さまざまなチームが協力して母国語の翻訳を行っており、チーム内の管理者がレポジトリにあるファイルの更新を担っています。

参加者募集中!

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

手引きと必須事項

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

文字コード

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

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

HTML実体参照文字

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

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

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

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

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

各ロケールのディレクトリないには、Subversion標準のバージョニングディレクトリ(branches/、tags/、 trunk/)があります。

バージョニングディレクトリないにはdist/というサブディレクトリがあります。このディレクトリにはWordPressの配布パッケージのうち、Gettextを使えないファイルを翻訳したもの(例えばreadme.htmlなど)を含めます。

もし翻訳後のファイルがUTF-8形式のみの場合、ここにWordPressルートディレクトリと同じ構造でファイルを置きます。

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

ロケールがUTF-8文字コード以外のファイルを含む場合、dist/ ディレクトリには各文字コードごとのサブディレクトリが必要になります。以下は、その例です。

  • dist/
    • UTF-8/
      • license.html
      • readme.html
      • wp-config-sample.php
      • wp-admin/
        • install.php
        • upgrade.php
    • ISO-8859-1/

messages/

このディレクトリには、各ロケール用のGettextのMO/POファイルが含まれます。メッセージファイルは以下のように名前がつけられています。

Examples:

cs_CZ.po        # UTF-8の文字コード
ja_JP.EUC-JP.mo # EUC-JPの文字コード

theme/

dist/ ディレクトリのように、theme/ ディレクトリには翻訳したテーマファイルを含めます。もし翻訳後のファイルがUTF-8形式のみの場合、このディレクトリ内に直接各テーマのフォルダをサブディレクトリとして入れます。

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

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


関連ページ

一般ユーザ向け:

開発・翻訳者向け:


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