javascriptファイルのテキスト用の言語ファイルを作成する方法は?

StackOverflow https://stackoverflow.com/questions/1628407

  •  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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top