Ajax html document I18n
Ajax html document I18n
我使用的代码是:
$.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;
可能是这样的:
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/
您正在寻找的可能是这样的东西:
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>
如果检索到的文档包含
<h3 id="localTitle"></h3>
你可以做
$.get(
'filename.html',
function(content)
{
$('#container').empty().append(content);
$('#container #localTitle').html('This is a title');
}
);
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 如何用更合适的内容替换document.write
- document.styleSheets不返回任何内容
- jQuery document.ready not working
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- reactjs this.refs vs document.getElementById
- 如何通过adf中的document.getElementById获取inputText字段值
- window.opener.document在ie中不起作用
- contentWindow.document.body is null
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- document.getElementById(“st”).click();不起作用
- $(document).height和$(window).heaght都返回相同的值-使用的是正确的doctype
- 如何将i18n.map转换为json对象
- jQuery document.ready停止代码
- document.getElementById并使用id名称
- 使用jQuery 1.8.1准备好多个$(document).是否有任何开销
- document.getElementById在js中不起作用
- document.getElementById.style.backgroundImage not working
- Ajax html document I18n