javascriptファイルのテキスト用の言語ファイルを作成する方法は?
-
06-07-2019 - |
質問
私のWebアプリケーションはjavascriptの割り当てを使用しており、javascriptにはユーザーに報告するメッセージがあります。
javascriptからテキストを抽出し、別の.js言語ファイルに外部に保存する最良の方法は何ですか?今後のjsコードでどのように参照しますか?
これに関するベストプラクティスはありますか?
解決
オブジェクトリテラルを作成します:
var messages = {
welcome: "Welcome",
goodbye: "Goodbye",
error: "Something bad happend. Sowwy!"
};
次のように参照できます:
if (error) alert(messages.error);
これは、複数の言語を実装する場合に最適です。私が通常行うことは、「メッセージ」をレンダリングするサーバー側ファイルを含めることです。オブジェクトは、アプリの構成で選択された言語に応じて、またはUIカルチャ(ASP.NETの場合)に従って選択されます。
インラインでの使用方法は次のとおりです。
<head>
<!-- messages.aspx renders out the object literal -->
<script type="text/javascript" src="messages.aspx"></script>
<script type="text/javascript">
/* when messages.aspx is included it provides you with an object literal
as a global variable. The example below would alert "Something bad
happend. Sowwy!" */
if (error) alert(messages.error);
</script>
</head>
オブジェクトリテラルを使用することの素晴らしい点は、コードがより冗長になることです。次のような配列を使用する代わりに: alert(messages [0])
これを行います: alert(messages.error)
これはもう少し説明的です。
注:すべてのメッセージは、変数の束によって定義されるのではなく、1つのオブジェクトで定義されるため、グローバルネームスペースの汚染を回避できます。
JavaScriptでは、実行時にオブジェクトを変更できます。そのため、後のコードでオブジェクトにさらにメッセージを追加する場合は、次のようにします。
messages.newMessageAddedLaterOnInTheCode = "This is a new message";
他のヒント
他の人が、あなたが尋ねたように、それをJSファイルに保存する方法を教えてくれたようです。しかし、代わりにXMLファイルに保存することをお勧めしますか?管理が多少簡単です(IMO)。
次のようなエントリでXMLファイルを作成します。
<text id="welcome_to_site">Welcome to our site!</text>
<text id="come_back_soon">Come back soon!</text>
その後、通常のJS / jQueryで必要なすべてのテキストを簡単に取得できます。
var text = new Object();
$.ajax({
async: false,
type: 'GET',
url: 'text.xml',
dataType: "xml",
success: function(xml){
$(xml).find('text').each(function(){
text[$(this).attr('id')] = $(this).text();
});
}
});
テキストを呼び出すには、次のように簡単です:
alert(text ['welcome_to_site']);
また、XMLファイルでいつでも簡単に変更できます。テキストの追加、テキストの削除、テキストの編集。とても簡単です。また、デザインを分離して、他の人がテキストを編集できるようにするための扉を開きます。
それを行う1つの方法は、実際にサーバー側のスクリプトを指す個別のjsインクルードをページに含めることです。このスクリプトは、必要な文字列を次のようにエコー出力できます。
var STRINGS = {'greeting': "Hello", 'error': "Something went wrong"};
そしてあなたのウェブページにはこれがあります:
これは http://addons.mozilla.org でここで行います: http://addons.mozilla.org/en-US/firefox/pages/js_constants.js