我遇到了为JavaScript库加载语言包的问题,我不确定最佳方法是什么。这就是我需要做的事情:
lang
标记的<html>
属性已设置)我正在尝试使用Modernizr并提出这个解决方案,但它似乎相当混乱:
'use strict';
Modernizr.load({
load: ['jquery.countdown.min.js', 'jquery.countdown.css'],
complete: function() {
switch(document.documentElement.lang) {
case 'fr-CA':
Modernizr.load({
load: 'jquery.countdown-fr.js',
callback: function() {
initCountdown();
}
});
break;
case 'zh-CN':
Modernizr.load({
load: 'jquery.countdown-zh-CN.js',
callback: function() {
initCountdown();
}
});
break;
default:
initCountdown();
break;
}
}
});
我尝试过的其他事情是使用yepnope.js中的test
来测试document.documentElement.lang === 'fr-CA'
等等,但我不确定如何编写多个测试加载一些东西然后在其中一个案例结束后执行回调函数。此代码似乎适用于需要语言包(除英语之外的任何内容)的情况:
Modernizr.load({
load: ['jquery.countdown.min.js', 'jquery.countdown.css'],
complete: function() {
Modernizr.load([
{
test: document.documentElement.lang === 'fr-CA',
yep: 'jquery.countdown-fr.js',
callback: function() {
initCountdown();
}
},
{
test: document.documentElement.lang === 'zh-CN',
yep: 'jquery.countdown-zh-CN.js',
callback: function() {
initCountdown();
}
}
]);
}
});
如果它只是两种语言,那么我可以轻松地测试一种语言并将其加载到yep
或nope
,但理想情况下我希望支持两种以上的语言。
想点什么?
我在此会注意到我已经查看了这个问题:Execute callback after modernizr/yepnope has loaded all files