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

可能是您正在寻找的类似的东西:

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 回答
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 回答