• translate属性は翻訳しない固有名と通常の文章を分けて指定する

translate属性は翻訳しない固有名と通常の文章を分けて指定する

公開日: 執筆:佐藤

translate属性は、pageの一部を翻訳対象にするか、翻訳しない語として扱うかを示すための属性です。会社名、商品名、型番、定めたservice名などをむやみに翻訳させたくない場合に使えます。page全体の言語を示すlang属性や、多言語pageを用意する作業とは役割が違います。

翻訳しない語を決める作業は、技術的な属性を選ぶ作業より先です。会社名を日本語表記のまま出すのか、決めた英字表記を使うのか、商品名をどこまで同じ形で出すのかを先に決めます。名称がpageごとに違えば、translateで翻訳を抑えても、利用者は同じものか判断できません。まず表記をそろえ、その表記を保つ必要がある範囲だけを指定します。

HTML 5.1 Candidate Recommendationは、translateをglobal attributeとして定めています。yesまたはnoを使い、要素内のtextと、翻訳可能なattribute valueを翻訳対象にするかを示します。translate="no"を付けたからといって、そのpageの言語が決まるわけでも、別の言語pageが用意されるわけでもありません。

pageの言語と翻訳しない語を分ける

英語pageへ会社名が出てくる場合でも、page全体は英語で書かれ、会社名だけは日本語表記のままにしたいことがあります。この場合、pageの言語はlangで示し、固有名を翻訳しない範囲はtranslateで示します。pageの言語、本文を翻訳する作業、固有名の表記を一つの属性へ任せません。

確認するもの 主な役割 代わりにできないこと
lang属性 pageまたは部分の言語を示す 固有名だけを翻訳しない指定
translate属性 textを翻訳対象にするかを示す page全体の言語指定
多言語page 各言語で読める本文を用意する browserの翻訳機能への指示だけで本文を作ること
固有名の表記ルール 会社名、商品名、型番を統一する 翻訳対象かどうかの技術的な指定

たとえば、サービス名を日本語pageでは「サトラボ制作プラン」、英語pageでは決めた英字表記で使う場合、その表記自体を先に決めます。translateを付けてから名称を考える順序ではありません。表記が決まっていない語を翻訳対象から外しても、利用者に何を指すか伝わりません。

サービス名と説明文も分けます。「サトラボ制作プラン」は固有の名称として表記を保ちたいことがあります。しかし、そのplanが何を含み、誰が使えるかという説明まで翻訳させない範囲に入れると、別の言語で読む人には内容が伝わりません。名称を保つことと、内容を読めるようにすることは両立させます。

翻訳しない候補には、会社名、registered product name、型番、技術的なcode、特定のservice名があります。一方で、料金、対応地域、受付時間、利用条件のように、利用者が判断するための説明は通常の文章です。固有名らしく見えるからという理由で、重要な条件まで翻訳から外しません。

翻訳しない範囲を必要な語へ絞る

翻訳を避けたい語があるからといって、paragraph全体やpage全体へtranslate="no"を付ける必要はありません。必要な固有名だけを囲みます。

<p>
  <span translate="no">SATOLAB.</span>の制作サービスについて説明します。
</p>

この例では、会社名だけを翻訳しない範囲として示しています。価格、対応地域、受付時間、利用条件のように、利用者が読むべき説明まで同じ範囲へ入れません。固有名と説明文を分けておけば、名称を保ちながら内容を読めます。

translate="yes"は、親要素で翻訳しないと示した範囲の中に、翻訳させるtextを置きたい場合に使えます。親子で指定を重ねる前に、どの語を固有名として守り、どの説明を読ませるかを整理してください。指定を深く重ねると、更新する人がどの文を翻訳対象にしたか読み取りにくくなります。最初は固有名だけを小さな範囲で指定します。

templateの中に会社名が何度も出る場合は、各pageへ個別に同じ指定を足す前に、どこから出力されているかを確認します。header、footer、商品一覧、投稿本文で出し方が違えば、表記を直す場所も違います。翻訳しない指定を増やすことより、会社名の正本を一つに決め、変更時に同じ表記へ直せる状態を作る方が先です。

実際の翻訳と表示を確認する

attributeを加えた後は、sourceだけを見て終わりにしません。対象pageを開き、会社名、商品名、型番、本文の表記が意図どおりか確認します。

  1. 翻訳しない固有名を一覧にする。
  2. pageの主な言語をlangで確認する。
  3. 固有名だけへtranslate="no"を付ける。
  4. 本文や利用条件まで翻訳しない範囲に入っていないか確認する。
  5. 対象browserと翻訳serviceで表示を確認する。
  6. 固有名の表記ルール、編集担当、変更日を残す。

翻訳serviceで確認するときは、固有名だけでなく周囲の文章を読みます。会社名が残っていても、直後の説明が読めなければ、利用者は何の会社か分かりません。料金や対象地域が意図せず翻訳されない範囲へ入っていないか、link文言が利用者の言語で内容を示しているかも確認します。固有名を守る設定と、page全体を読ませる設計を一緒に見ます。

翻訳作業を外部へ頼む場合も、会社名や商品名の正式表記、pageの原文、公開する翻訳文はsite側で確認します。attributeを入れることと、事業名や条件を正しく伝えられることは別です。翻訳者へ渡す表記表には、固有名の正しい表記、訳さない理由、本文中での説明を記録します。外部の人が変わっても同じ名称を使えるようにします。

最初の一手は、site内で翻訳したくない固有名を五つ以内で書き出すことです。その語が本当に固有名か、説明文まで含めていないかを確認してから指定します。page全体の言語、多言語URL、翻訳文の内容を直す必要がある場合は、それぞれを別の作業として進めます。

戻る