使用jquery-i18n-properties实现多语言切换,自动选择,及持久化
2018-02-09 16:14
956 查看
jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化。
国际化英文单词为:Internationalization,又称i18n,“i”为单词的第一个字母,“18”为“i”和“n”之间单词的个数,而“n”代表这个单词的最后一个字母。jQuery.i18n.properties采用.properties文件对JavaScript进行国际化。jQuery.i18n.properties插件首先加载默认的资源文件(strings.properties),然后加载针对特定语言环境的资源文件(strings_zh.properties),这就保证了在未提供某种语言的翻译时,默认值始终有效。
官方地址:https://code.google.com/archive/p/jquery-i18n-properties/
官方github地址:https://github.com/jquery-i18n-properties/jquery-i18n-properties
实现步骤,
第一步:下载JS插件
jquery.i18n.properties.js
第二步
编写前端页面
<select id="lang" class=" form-control">
<option value="zh-CN">中文</option>
<option value="en">English</option>
</select>
<label data-locale="username">用户名:</label><input type="text">
<label data-locale="password">密码:</label><input type="password">
编写JS
loadProperties();
function loadProperties() {
jQuery.i18n.properties({ //加载资浏览器语言对应的资源文件
name: 'strings', //属性文件名 命名格式: 文件名_国家代号.properties
path: 'i18n/', //注意这里路径是你属性文件的所在文件夹
mode: 'map', //用Map的方式使用资源文件中的值
//language: 'zh', //国家代号 name+language刚好组成属性文件名:strings+zh -> strings_zh.properties
//删除则自动选择浏览器语言
callback: function() {
$("[data-l ocale]").each(function() {
//console.log($(this).data("locale"));
$(this).html($.i18n.prop($(this).data("locale")));
});
}
});
}
持久化
$(function() {
if(!localStorage.currentLang) {
//本地存储当前选中语言
localStorage.currentLang = $('#lang option:selected').val();
} else {
//定义当前语言
var currLang = localStorage.currentLang;
$("#lang option[value=" + currLang + "]").attr("selected", true);
$("#lang").on('change', function() {
//存储当前选中的语言
localStorage.currentLang = $(this).children('option:selected').val();
//单页面可以注释
//刷新
location.reload();
loadProperties(localStorage.currentLang);
});
}
loadProperties(localStorage.currentLang)
});
function loadProperties(currentLang) {
switch(currentLang) {
case 'en':
langi18n = 'en';
break;
case 'zh':
langi18n = 'zh';
break;
default:
langi18n = 'zh';
}
jQuery.i18n.properties({ //加载资浏览器语言对应的资源文件
name: 'strings', //属性文件名 命名格式: 文件名_国家代号.properties
path: 'i18n/', //注意这里路径是你属性文件的所在文件夹
mode: 'map', //用Map的方式使用资源文件中的值
language: langi18n, //国家代号 name+language刚好组成属性文件名:strings+zh -> strings_zh.properties
//删除则自动选择浏览器语言
callback: function() {
$("[data-i18n]").each(function() {
$(this).html($.i18n.prop($(this).data("i18n")));
//特殊标签处理
$(this).attr('placeholder
95e0
', $.i18n.prop($(this).attr('data-i18n')));
});
}
});
}
编写语言包
strings_en.properties
username=NAME
password=PASSWORD
strings_zh.properties
username=用户名
password=密码
注,请在服务器中打开。
下载地址 http://download.csdn.net/download/u013317712/10247518
国际化英文单词为:Internationalization,又称i18n,“i”为单词的第一个字母,“18”为“i”和“n”之间单词的个数,而“n”代表这个单词的最后一个字母。jQuery.i18n.properties采用.properties文件对JavaScript进行国际化。jQuery.i18n.properties插件首先加载默认的资源文件(strings.properties),然后加载针对特定语言环境的资源文件(strings_zh.properties),这就保证了在未提供某种语言的翻译时,默认值始终有效。
官方地址:https://code.google.com/archive/p/jquery-i18n-properties/
官方github地址:https://github.com/jquery-i18n-properties/jquery-i18n-properties
实现步骤,
第一步:下载JS插件
jquery.i18n.properties.js
第二步
编写前端页面
<select id="lang" class=" form-control">
<option value="zh-CN">中文</option>
<option value="en">English</option>
</select>
<label data-locale="username">用户名:</label><input type="text">
<label data-locale="password">密码:</label><input type="password">
编写JS
loadProperties();
function loadProperties() {
jQuery.i18n.properties({ //加载资浏览器语言对应的资源文件
name: 'strings', //属性文件名 命名格式: 文件名_国家代号.properties
path: 'i18n/', //注意这里路径是你属性文件的所在文件夹
mode: 'map', //用Map的方式使用资源文件中的值
//language: 'zh', //国家代号 name+language刚好组成属性文件名:strings+zh -> strings_zh.properties
//删除则自动选择浏览器语言
callback: function() {
$("[data-l ocale]").each(function() {
//console.log($(this).data("locale"));
$(this).html($.i18n.prop($(this).data("locale")));
});
}
});
}
持久化
$(function() {
if(!localStorage.currentLang) {
//本地存储当前选中语言
localStorage.currentLang = $('#lang option:selected').val();
} else {
//定义当前语言
var currLang = localStorage.currentLang;
$("#lang option[value=" + currLang + "]").attr("selected", true);
$("#lang").on('change', function() {
//存储当前选中的语言
localStorage.currentLang = $(this).children('option:selected').val();
//单页面可以注释
//刷新
location.reload();
loadProperties(localStorage.currentLang);
});
}
loadProperties(localStorage.currentLang)
});
function loadProperties(currentLang) {
switch(currentLang) {
case 'en':
langi18n = 'en';
break;
case 'zh':
langi18n = 'zh';
break;
default:
langi18n = 'zh';
}
jQuery.i18n.properties({ //加载资浏览器语言对应的资源文件
name: 'strings', //属性文件名 命名格式: 文件名_国家代号.properties
path: 'i18n/', //注意这里路径是你属性文件的所在文件夹
mode: 'map', //用Map的方式使用资源文件中的值
language: langi18n, //国家代号 name+language刚好组成属性文件名:strings+zh -> strings_zh.properties
//删除则自动选择浏览器语言
callback: function() {
$("[data-i18n]").each(function() {
$(this).html($.i18n.prop($(this).data("i18n")));
//特殊标签处理
$(this).attr('placeholder
95e0
', $.i18n.prop($(this).attr('data-i18n')));
});
}
});
}
编写语言包
strings_en.properties
username=NAME
password=PASSWORD
strings_zh.properties
username=用户名
password=密码
注,请在服务器中打开。
下载地址 http://download.csdn.net/download/u013317712/10247518
相关文章推荐
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- struts2实现选择i18n语言选择切换
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现Web 前端的国际化
- 使用Zookeeper实现集群中选择单机器执行任务并自动切换
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- jQuery-easyUI的使用:combobox实现联动选择及自动搜索
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 详解使用jQuery.i18n.properties实现js国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- 使用 jQuery.i18n.properties 实现Web 前端的国际化
- 详解使用jquery.i18n.properties 实现web前端国际化
- 使用jquery.i18n.properties 实现web前端国际化
- 使用 jQuery.i18n.properties 实现 Web 前端的国际化
- php实现首页自动选择语言转跳(转)