1. gettext
Polyglotの「gettext」(2020-08-18更新版)の私家版和訳を掲載します。 「翻訳者ハンドブック|プラグイン/テーマ作者ガイド」の続きのコンテンツです。
以下、本文です。
1. gettext
https://make.wordpress.org/polyglots/handbook/plugin-theme-authors-guide/gettext/
WordPressの開発者は、WordPressにローカリゼーションインフラストラクチャを提供するために、GNU gettextローカリゼーションフレームワークを使用することを選択しました。gettextは、ソフトウェアのモジュール翻訳のための成熟した、広く使われているフレームワークであり、オープンソース/フリーソフトウェア領域におけるローカリゼーションのデファクトスタンダードです。
gettextは、メッセージレベル翻訳を採用 – つまり、ユーザーに表示されるすべての“message”は、それが段落であろうと単語1つであろうと、個別に翻訳されます。WordPressでは、この様な“messages”は生成、翻訳され、2つのPHP関数を介してWordPressのPHPファイルで使用されます。__()は、メッセージが他の関数の引数として渡されるときに使用され、_e()は、ページに直接メッセージを書き込むときに使用されます。この2つの関数の詳細はこちら:
__(‘message’)
ローカライゼーションモジュールから‘message’の翻訳を探し、PHPのreturn文に渡します。‘message’の翻訳が見つからなかった場合は、単に‘message’を返します。
_e(‘message’)
ローカライゼーションモジュールから‘message’の翻訳を探し、PHPのecho文に渡します。‘message’の翻訳が見つからなかった場合は、単に‘message’をechoします。
[preserved_text 8be67cb84dc37240ff1c2893ece8582d /]
ローカライゼーションの為のPHP関数は他にもあり、_n()、_x()など、wp-includes/l10n.phpにあります。
gettextフレームワークは、WordPressの殆どの機能を担っています。しかし、WordPressのディストリビューションには、gettextが使えない場所がいくつかあります – これらの場所を翻訳する方法については、直接翻訳用のファイルを参照してください。
Getting Started
通常、ファイルを直接編集する必要はなく、GlotPressやpoeditの様なpoファイルエディタを使うことができます。ただし、ファイルをどの様に編集し、どの様に扱うべきかを知っておくことは良いことです。
或いは、以下の様にファイルを直接編集することもできます:
公式WordPress POTファイルをダウンロードします
お気に入りのテキストエディターでファイルを開きます
ヘッダー情報を更新します
メッセージを翻訳します
ファイルの拡張子を.poにして保存します
msgfmt -o filename.mo filename.po を発行します
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"
大文字で書かれたテキスト(訳者注:1行目のLANGUAGE (LOCALE) translation for WordPress.、2行目のYEAR WordPress contributors.、3行目のWordPress、9行目のWordPress VERSION)の残りの部分を、適切な値で埋めます。
メッセージ・フォーマット
ファイルの残りの部分は、以下の様なフォーマットになります:
#: 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)は空白の文字列で、ここに翻訳を記入します。
同じ数行が翻訳された後、どの様に見えるかを、French (France)ロケールを例にして示します:
#: 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)."
Last updated: August 18, 2020
この記事が気に入ったらサポートをしてみませんか?