0

私はそのコードを使用しています:

$.get(
    'filename.html',
    function(content)
    {
        $('#container').empty().append(content);
    }
);

いくつかの外部ファイルをロードし、コンテンツを現在の作業ページに配置します。私がロードする外部ファイルはプレーンHTMLであり、ロードされたページを国際化するための良い方法があるかどうかを尋ねたいと思います。

現在のページでは、次のようなすべての翻訳キーを使用してjavascriptオブジェクトを作成する機会があります。

var i18n = {
    'doc1' : {
        'title' : 'This is a title'
    }
};

たとえば、外部ファイルは次のようになります

<h3>This is a title</h3>
.....

それを次のようなものに変更する方法はありますか

<h3>{doc1.title}</h3>
.....

次に、ロード後にdoc1.titleを置き換えます。

4

3 に答える 3

1

取得したドキュメントに含まれている場合

<h3 id="localTitle"></h3>

あなたができる

$.get(
    'filename.html',
    function(content)
    {
        $('#container').empty().append(content);
        $('#container #localTitle').html('This is a title');
    }
);
于 2012-07-28T10:55:37.233 に答える
1

あなたが探しているのは次のようなものかもしれません:

1.更新

JavaScript:

var i18n = { doc1: { title: 'Title', ... }, ... };
var doc_name = 'doc1';

$.get(doc_name + '.html', function(data) {
  for (var word in i18n[doc_name]) {
    data = data.replace(new RegExp('/' + word + '/', 'g'), i18n[doc_name][word]);
  }

  $('#container').html(data);
});

HTML:

<h3>{title}</h3>

2.

JavaScript:

var doc1 = { title: 'Title', ... };

$.get("doc1.php", doc1, function(data) {
  $('#container').html(data);
});

PHP:

<h3><?= $_GET['title'] ?></h3>
于 2012-07-28T10:35:37.707 に答える
1

次のようになります。

var i18n = {
    'doc1' : {
        'title' : 'This is a title'
    }
};

$.get(
    'filename.html',
    function(content)
    {
        for (var doc in i18n) {
            for (var key in i18n[doc]) {
                var val = i18n[doc][key];
                content = content.replace( '{' + doc + '.' + key + '}', val );
            }
        }
        $('#container').empty().append(content);
    }
);

フィドル: http://jsfiddle.net/Kirrr/eW7Nn/

于 2012-07-28T10:39:52.857 に答える