Lee*_*fin 19 html javascript jquery html5
我不开发任何包含客户端和后端服务器端的Web服务应用程序(如Java EE应用程序或Ruby on Rails).
相反,我只是在开发一个HTML 网站页面,在这个页面上,有两个标志图像(美国和中国),用作用户页面的语言选择.
我想知道,对于这个单一的网页开发(没有任何后端系统),是否有任何有效的方法来实现页面本地化(以不同语言显示页面)基于用户的标志选择?
cev*_*ing 26
您可以使用标准HTML lang属性:
<span lang="en">Scale</span><span lang="de">Maßstab</span>
Run Code Online (Sandbox Code Playgroud)
然后你可以隐藏并显示匹配的元素:
function select_language(language) {
$("[lang]").each(function () {
if ($(this).attr("lang") == language)
$(this).show();
else
$(this).hide();
});
}
Run Code Online (Sandbox Code Playgroud)
我用一个简单的选择:
<select onchange="select_language(this.options[this.selectedIndex].value)">
<option value="en" selected>English</option>
<option value="de">Deutsch</option>
</select>
Run Code Online (Sandbox Code Playgroud)
如今,我不用jQuery就能做到。首先,我将隐藏所有具有lang属性的节点,并仅显示默认语言。这可以在CSS中完成:
[lang] {
display: none;
}
[lang=en] {
display: unset;
}
Run Code Online (Sandbox Code Playgroud)
如果未启用JavaScript,则文档不会本地化,但至少会以默认语言可读。
接下来,如果支持的语言列表中有正确的语言,我将使用一些JavaScript来显示。
function localize (language)
{
if (['de'].includes(language)) {
let lang = ':lang(' + language + ')';
let hide = '[lang]:not(' + lang + ')';
document.querySelectorAll(hide).forEach(function (node) {
node.style.display = 'none';
});
let show = '[lang]' + lang;
document.querySelectorAll(show).forEach(function (node) {
node.style.display = 'unset';
});
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用选择框或浏览器语言。
localize(window.navigator.language);
Run Code Online (Sandbox Code Playgroud)
您可以使用 JavaScript 读取用户语言并显示正确的标志/内容:
HTML:
<img id="myFlag" src="flag_default.png"/>
Run Code Online (Sandbox Code Playgroud)
和一些 jQuery (因为你用 jQuery 标记了你的问题):
var supportedLangs = ['de', 'en', 'cn'];
var userLang = navigator.language;
if($.inArray(userLang, supportedLangs) >= 0){
$('myFlag').attr('src', 'flag_' + userLang + '.png');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25142 次 |
| 最近记录: |