5.1. メッセージの種類
Polyglotの「メッセージの種類」(2020-08-18更新版)の私家版和訳を掲載します。「翻訳者ハンドブック|WordPress翻訳|translate.wordpress.org (GlotPress)」の続きのコンテンツです。
以下、本文です。
5.1. メッセージの種類
WordPressの管理画面には、翻訳が必要なさまざまなメッセージがあります。頻繁に目にするメッセージもあれば、たまにしか目にしないメッセージもあります。それぞれのメッセージタイプについて、例とともに以下に説明します。
ラベル
ラベルは、HTML<label>、<legend>、<a>、<select>タグの文脈でよく使われます。それらはUI要素の目的を短く正確に記述したものです。これらは、特に単一ワードの場合、そして、英語で使用されているワードが名詞とも命令形動詞とも解釈できる場合、翻訳が非常に難しいことがあります。殆どのラベルでは、適切な翻訳を考える前に、コードを検索して、そのラベルが使用されている文脈を見つける必要があります。
メッセージの多くはWordPressの管理インターフェイスの一部であるため、ラベルはおそらく最も頻繁に翻訳されるメッセージの種類です。
例
“Post”は命令形の動詞とも解釈できるが、この文脈では名詞です。英語の“Post”の名詞形は訳しにくく、チームによっては最も適切な訳語を決めるのが難しいです。下記のフィンランド語訳の様に、多くの翻訳が英語の“Article”に相当するものを使用しています。
msgid "Post"
msgstr "Artikkeli"
ヒンディー語訳のラベルの例をもうひとつ紹介しましょう。
#: wp-login.php:79 wp-login.php:233 wp-register.php:166
#: wp-includes/template-functions-general.php:46
msgid "Register"
msgstr "रजिस्टर"
以下の例(ウェールズ語訳)の様に、ダッシュで囲まれたラベルは、ターゲットとするロケールのユーザーを混乱させる可能性がある場合、またはあなたのロケールで確立された慣習が異なる場合は、削除または置き換えることができます。
#: wp-admin/admin-functions.php:357
msgid "- Select -"
msgstr " - Dewis -"
情報メッセージ
情報メッセージは通常、完全な文章で構成されます。それらは情報を伝えたり、ユーザーに行動を求めたりします。これらのメッセージは、ラベルよりも長い傾向があるので、翻訳するのが少し簡単になる傾向があります。しかし、長いメッセージになると、フォーマルなレベル(または非フォーマルなレベル)のバリエーションが増えるため、翻訳者は注意が必要です。
例
下の例 – ブルガリア語訳 – では、情報メッセージに英語の定型表現(“小切手/小切手は郵送中です”)が含まれており、これが非フォーマルさを助長しています。
#: wp-login.php:146
msgid "Your new password is in the mail."
msgstr "Вашата нова парола е в електронната ви поща."
このスウェーデン語訳の例に見られる様に、エラーメッセージは短く簡潔であるため、よりフォーマルなものになる傾向があります。
#: wp-includes/functions.php:1636
msgid "<strong>Error</strong>: Incorrect password."
msgstr "<strong>FEL</strong>: Felaktigt lösenord."
勿論、WordPressのインターフェースでは、すべてのエラーメッセージがフォーマルなものではありません。以下の例は、ドイツ語の翻訳からで、非フォーマルなトーンのエラーメッセージを示しています。
#: 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."
説明付き文字列
文字列が縦棒|を含む場合、|の右側の部分は説明です。その目的は、文字列を特定の文脈に置いたり、追加情報を提供したりして、翻訳を助けることです。
例
以下のケースでは、文字列を翻訳するためにwebページを見ることを示唆しています。
#: wp-includes/locale.php:186
msgid ""
"number_format_decimal_point|$dec_point argument for http://php.net/number_format, default is ."
msgstr ","
日付と時刻のロケール設定
殆どのホストでは、多くの言語に対して正しく設定されていない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が普通でないことに注意してください。これらのメッセージは直訳すべきではありません。ここでのmsgidは、フルネームと略称が英語では同じである為、Gettextが誤って2つを1つのエントリにまとめてしまう為に使われるハックです。(イタリア語翻訳より)
曜日名
#: 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のカレンダー機能の為のもので、英語の火曜日と木曜日が同じ頭文字であることを回避する為に、上記の月の略語と同じハックを使用しています。すべてのロケールがすべての日に一文字の略語を使うわけではありません。上の例では、ノルウェー語ではtirsdag(火曜日)とtorsdag(木曜日)を区別する為に余分な文字を使っています。
日付のフォーマット文字列
これらは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の特別なフォーマットプレースホルダを含んでいます。PHPのプレースホルダには2つの異なるフォーマットがあります:
%s:プレースホルダが一つしかないときに使われます。
%1$s、%2$s、%3$s、…:番号の付いたプレースホルダで、翻訳者が順番を並べ替えることができます。これにより、動的コンテンツが適切な場所に挿入されることを保証しながら、翻訳された文字列をより柔軟にすることができます。
例
以下の例 – スペイン語訳から – では、eメールが送信されたユーザーのユーザー名がメッセージに挿入されています。
#: 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不允许被上传。"
ストップワード
ストップワードとは、‘a’、‘the’、‘and’の様な、検索から除外されるべき非常に一般的な単語のことです。これらの単語を単純にあなたの言語に翻訳すべきではありません。その代わりに、あなたの言語で一般的に受け入れられているストップワードを探し、提供してください。
注:
WordPressコアのストップワードの比較アルゴリズムは、完全に一致するものを探しているので、発音記号を使用する言語の場合は、ストップワードのすべてのバリエーションをリストに含める様にしてください(例:“pravé”と“právě”)。
一文字のストップワードを追加する必要はない(それらの文字がA~Zの範囲にある場合)。
例
#: wp-includes/query.php:2031
msgctxt "Comma-separated list of search stopwords in your language"
msgid "about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www"
msgstr "le,la,les,de,des,un,uns,une,unes,et,a,à,il,elle,on,ne,je,tu,nous,vous,ils,elles,son,sa,ses,que,quoi,se,qui,ce,cette,dans,en,du,au,aux,pour,pas,sur,y,ou,où,si,ton,ta,te,mon,ma,tout,toute,tous,toutes,ça,ni,www,com,fr,par,sur,par,dans,mais,vos,votre,vôtre,sans,toi,moi,lui,leur,leurs"
Last updated: August 18, 2020
この記事が気に入ったらサポートをしてみませんか?