1

これは、技術的な問題ではなく、より「理論的な」問題です。

SCORM e ラーニング コンテンツ、純粋な HTML-CSS-Javascript をサーバー サイド テクノロジーなしで作成する必要があり、このコンテンツは多言語でなければなりません。2 つの主な要件: サーバー側の言語ではなく、多言語。

私の質問は、これを達成するための最良の方法は何ですか? これらは明白なオプションです:

  1. 言語ごとに異なるフォルダーに、必要な言語の html ファイルを複製します。
  2. すべての言語ファイル (つまり、xml または json の例) を読み込み、html dom を解析し、javascript を使用してコンテンツを動的に割り当てます。

2 番目のケースでは、ファイルを動的にロードします。HTML内のすべての邪魔なスクリプトタグがあるため、このような考えは嫌いです。

<div>
<p><script> document.write(some_translatable_variable) </script></p>
</div>

また、次のようなものは、多くの ID が必要であり、維持するのが非常に難しいため、嫌いです。

//in json file lang.es.json
"some_translatable_variable" : "Esto está en español";

//In a loaded langs.js, using jquery:
$("#some_id").html("<p>"+some_translatable_variable+"<p>");


//the html code
<div id="some_id"> <!-- nothing here --> </div>
4

1 に答える 1

1

MustacheHandlebars、またはAngularなどの JavaScript ベースのテンプレート エンジンを使用できます。

基本的に、HTML にプレースホルダーを配置すると、JavaScript がプレースホルダーをテキストに置き換えます。多数の ID を管理する必要はありません。

必要に応じて別の言語のテキストを挿入することもできますが、RTL 言語やレイアウトを壊す可能性のある非常に長い文など、レイアウトの問題に注意してください。

クライアント側のテンプレートに関する役立つ記事をいくつか紹介します : http://coding.smashingmagazine.com/2012/12/05/client-side-templating/ -throwdown-mustache-handlebars-dustjs-and-more http://net.tutsplus.com/tutorials/javascript-ajax/best-practices-when-working-with-javascript-templates/

于 2013-05-21T14:41:11.210 に答える