多言語シンタックス

移動先: 案内, 検索

ロケーション: 管理 > モジュール > フィルタ

多言語コンテンツフィルタでは、多言語のリソースを作成することができます。多言語コンテンツフィルタの設定を有効にした場合、 テキストが多言語を含んでいることを意味する <span lang="xx" class="multilang"> タグが探されます。そして、現在のユーザに対する最適な言語が選択され、リソースが表示されます。ユーザがMoodleの言語を変更することにより、リソースの言語も変更されます。


例) リソース内のコンテンツに下記内容が記載された場合、Moodle言語が英語の場合「This is English Text.」が表示され、日本語の場合「日本語のテキストです。」が表示されます。

<span lang="en" class="multilang">This is English Text.</span>
<span lang="ja" class="multilang">日本語のテキストです。</span>


多言語シンタックスは、Moodle 1.8で変更されました。今後、<lang>タグはサポートされません。多言語コンテンツを記述する場所で、<span>タグの中に class="multilang" を追加してください。新しいシンタックスには古いプラグインに対する下位互換性がありますので、古いバージョンのMoodleでも使用することができます。

コースでの使い方

この機能を使用するには、最初に多言語のコンテンツを同じリソース内に作成してください。そして、それぞれの言語ブロック (別名 多言語ブロック) を次のタグで囲んでください:

      <span lang="XX" class="multilang">あなたのコンテンツです。</span>
      <span lang="YY" class="multilang">あなたの別の言語のコンテンツです。</span>

これらのタグを入力する場合、HTMLエディタでは必ず「コード編集モード」 ([<>]をクリック) にしてください。スペース、タブおよびそれぞれの内容のみ多言語ブロックの個々の言語で使用されます。class="multilang" は、Moodle 1.8以前のバージョンでは必須ではありません。

次のコードは、

      <lang="XX">あなたのコンテンツです。</lang>
      <lang="YY">あなたの別のコンテンツです。</lang>

動作しません。

次の古いHTMLタグは、

      <lang lang="XX">あなたのコンテンツです。</lang>
      <lang lang="YY">あなたの別のコンテンツです。</lang>

      <span lang="XX">あなたのコンテンツです。</span>
      <span lang="YY">あなたの別のコンテンツです。</span>

Moodle 1.8以降のバージョンでは動作しません。Moodle 1.8で class="multilang" を使用しない言語属性は、テキスト言語をマークするために使用されます - 詳細は、http://www.w3.org/TR/html4/struct/dirlang.html をご覧ください。

内部的にどのように動作するか

  1. 最初にテキスト内で多言語ブロックを探します。
  2. それぞれの多言語ブロックでは:
    • 現在の使用言語と同じ言語がテキスト内にある場合、そのテキストを表示します。
    • 現在の使用言語の親言語と同じ言語がテキスト内にある場合、そのテキストを表示します。
    • テキスト内で発見された最初の言語を表示します。
  3. 多言語ブロックの外にあるテキストは常に表示されます。

コース要約およびタイトルタグ

リソースタイトルおよびコース要約等のテキストをフィルタできるようにするには、管理者はサイト管理 (管理 > 外観 > フィルタ設定) の「すべての文字をフィルタする filterall」を有効にする必要があります。

 <span lang="en" class="multilang">Mathematics</span> <span lang="ja" class="multilang">数学 (日本語)</span>

は、英語のタイトルでも日本語のタイトルでも動作します。

コースタイトル (名称および省略名) では動作しないようです。

コース要約で:

<span lang="en" class="multilang">Growth is often a major concern in planning society.
How can one avoid superficial conclusions? <br>
(Exists in Japanese too. 日本語でも記述できます。)</span>
<span lang="sv" class="multilang">社会計画の主要な関心事は成長です。私たちはどのようにして表面的な結果を避けることができるのでしょうか?
 (日本語でも記述できます。 Exists in English too.)
<br /></span> 

は、選択された言語で表示され、他の言語の記述もあることを示すことができます。class="multilang" は、Moodle 1.8以前のバージョンでは必要ではありません。

タグを使用した翻訳

あなたが英語の単語または語句を他の言語に翻訳したい場合:

If I want to include an explanation <span lang="en"> </span>
 <span lang="ja" class="multilang">(ja: 日本語)</span> in a running text can I do it?
<span lang="en" class="multilang>If I want to include an explanation in a running text
 can I do it? </span>
<span lang="ja" class="multilang>If I want to include an explanation (ja: 日本語) in a 
running text can I do it?</span>

は両者とも動作しますが:

If I want to include an explanation <span lang="en" class="multilang></span>
 <span lang="ja" class="multilang>(ja: 日本語)</span> in a running text can I do it?
IIf I want to include an explanation <span lang="ja" class="multilang>(ja: 日本語)</span>
 in a running text can I do it?<br />

の場合、仮に選択された言語が英語だとしても日本語が表示されます。Moodle 1.8以前のバージョンでは、"span lang=en" に少なくとも半角スペースを含む必要があります。

新しい多言語シンタックス

Moodle 1.8

  • <span lang="xx"> および <lang> は使用されることはありません。
  • 既存のコンテンツは、admin/multilangupgrade.phpスクリプトを使用してアップグレードすることができます。多言語コンテンツのアップグレードが必要な場合、「管理 > 通知」ページにリンクが表示されます。
  • 多言語フィルタは、古いシンタックスのみ使用する設定をすることもできます - 「管理 > モジュール > フィルタ > 多言語コンテンツ」をご覧ください。この設定は、Moodle 1.9で取り除かれる予定です。
  • Moodle 1.8の新たなインストールでは、新しいシンタックスが強制されます。アップグレードサイトでは、多言語コンテンツの更新後、新しいシンタックスが有効にされます。

一般的な問題

  • 多言語フィルタが有効されていない - フィルタ設定画面で有効にしてください。
  • 多言語のタイトル、ナビゲーション、ヘッダ等が必要なサイトでは、「すべての文字をフィルタする filterall」設定は有効にされません。
  • 言語spanタグ間の特別文字 - エディタで <br /> または他のタグを追加することができます。「コード編集モード」 ([<>]をクリック) で、ソースを表示してhtmlをレビューしてください。
  • 言語spanタグ内の余分な空白

関連情報