【转】i18n实现前端国际化(实例)

源地址:https://www.jianshu.com/p/ea93efef5155

i18n实现前端国际化(实例)

0.1442018.08.27 16:25:10字数 246阅读 10563

在今日的需求中需要利用 i18n 这个框架来实现前端的国家化操作,下图是实现效果:

点击选择框实现网页上语言的切换:

下面开始实现过程:

  1. 所需工具:
    - jquery-3.3.1.js 下载地址:jquery
    - jquery.i18n.properties.js jquery.i18n.properties.js
  2. 搭建项目目录如下:

    其中:language.js 为自定义的 js 文件,用于实现页面逻辑,strings_en_US.properties
    和 strings_en_ZH.properties文件为语言文件。

  3. 首先我们在 index.html 中写上一定的测试页面代码,如下所示:
<!doctype html>
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
  content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>国际化样例</title>
</head>
<body>  

<form>
     <select class="lan_select">
         <option class="lan_zh">中文</option>
         <option class="lan_en">英文</option>
     </select>
 </form>  

<label class="username"><!--用户名:--></label><input type="text">
<label class="password"><!--密码:--></label><input type="password">  

<script type="application/javascript" src="JS/jquery-3.3.1.js"></script>
<script type="application/javascript" src="JS/jquery.i18n.properties.js"></script>
<script type="application/javascript" src="JS/language.js"></script>  

</body>
</html>
  1. 下面我们在两个语言中分别定义需要显示的文字:

    1. strings_en_ZH.properties文件:

      username=用户名:
      password=密码:
      lan_zh=中文
      lan_en=英文
      
    2. strings_en_US.properties 文件:
      username=User Name:
      password=Password:
      lan_zh=Chinese
      lan_en=English
      
  2. 最后我们在 language.js 中实现点击事件和切换方法,代码如下:
var LANGUAGE_Index = "zh_CN"; //标识语言  

jQuery(document).ready(function () {
    // alert("页面加载时调用的方法");  

  LANGUAGE_Index = jQuery.i18n.normaliseLanguageCode({}); //获取浏览器的语言
  loadProperties(LANGUAGE_Index);
});  

$(".lan_select").change(function () {  

    if (($(".lan_select").val() === "英文") || ($(".lan_select").val() === "English")) {
        LANGUAGE_Index = "en_US";
  } else {
        LANGUAGE_Index = "zh_CN";
  }  

    loadProperties(LANGUAGE_Index);  

});  

function loadProperties(type) {
    jQuery.i18n.properties({
        name: ‘strings‘, // 资源文件名称
        path: ‘Languages/‘, // 资源文件所在目录路径
        mode: ‘map‘, // 模式:变量或 Map
        language: type, // 对应的语言
        cache: false,
        encoding: ‘UTF-8‘,
        callback: function () { // 回调方法
            $(‘.lan_zh‘).html($.i18n.prop(‘lan_zh‘));
            $(‘.lan_en‘).html($.i18n.prop(‘lan_en‘));
            $(‘.username‘).html($.i18n.prop(‘username‘));
            $(‘.password‘).html($.i18n.prop(‘password‘));
        }
    });
}

原文地址:https://www.cnblogs.com/haizine/p/11582802.html

时间: 2024-10-15 04:53:19

【转】i18n实现前端国际化(实例)的相关文章

jquery.i18n.properties前端国际化解决方案“填坑日记”

但现在的情况是老的项目并没有使用这类架构.说起国际化,博主几年前就做过,在MVC里面实现国际化有通用的解决方案,主要就是通过资源文件的方式定义多语言.最初接到这个任务,并没有太多顾虑,毕竟这种东西有很成熟的解决方案,实现起来难点不会很大.可当真正动起来手来去实现的时候发现一些问题,这里先介绍下我们老平台的架构:MVC+WebApi,MVC项目负责页面渲染,webapi负责数据接口,是一种很传统的架构方式.国际化主要在MVC端去做就好了,可是由于MVC项目里面使用了大量第三方bootstrap组件

jQuery之前端国际化jQuery.i18n.properties

jQuery之前端国际化jQuery.i18n.properties jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化. 国际化英文单词为:Internationalization,又称i18n,“i”为单词的第一个字母,“18”为“i”和“n”之间单词的个数,而“n”代表这个单词的最后一个字母.jQuery.i18n.properties采用.properties文件对JavaScript进行国际化.jQuery.i18n.proper

Web前端国际化之jQuery.i18n.properties

Web前端国际化之jQuery.i18n.properties jQuery.i18n.properties介绍 国际化是如今Web应用程序开发过程中的重要一环,jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能在不正确后端做不论什么更改的条件下,轻松简易的实现Web前端的国际化. 与其它国际化工具相比,jQuery.i18n.properties插件具有简单.易用.高内聚低耦合的特点. 国际化英文单词为:internationalization.又称i18n,

【整理】前端国际化小结

近期在做国际化的改造,做了相应的调研,简单做下项目前端国际化的小结 国际化可以分为前端国际化和后端国际化,也可以是前后端组合的国际化后端多为spring国际化,这里不做展开,百度一下到处都是 常见型 常见的前端国际化方法步骤如下:(原理) 定义国际化配置 根据环境读取配置 将配置展现在页面上 展开说: 定义国际化配置: 定义的方式有多种,多以文件的形式单独保存,如json,js,properties 等, 并且将配置信息以键值对的形式保存备用 根据环境读取配置: 所谓环境说白了就是用户选择的标志

前端国际化

摘要: 国际化是指将页面显示的信息翻译成不同语言,可以根据不同语言开发多个版本,然后根据用户选择的语言显示不同的页面.但是这样需要很高的成本,而且维护起来也很麻烦,一个地方有问题就要修改所有版本.本文主要是分享一种前端国际化解决方法,并且已经应用到自己的项目中. 前端国际化需要将页面HTML.javascript的提示信息.后端返回的信息翻译成对应的语言.如果我们能够将这几个地方的内容提取出来,然后用一个翻译函数,根据不同的参数将内容翻译成不同的语言,这样就达到我们的目的了. 页面国际化: 对于

前端系列——jquery前端国际化解决方案“填坑日记”

前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都有成熟的方案,比如: vue + vue-i18n angular + angular-translate react + react-intl 但现在的情况是老的项目并没有使用这类架构.说起国际化,博主几年前就做过,在MVC里面实现国际化有通用的解决方案,主要就是通过资源文件的方式定义多语言.最初

如何优雅的实现前端国际化

今天小编会使用boostrap框架搭建一个配有中英文切换功能的网页,还有就是使用nodejs搭建后台服务,从头实现一个完整的前端国际化开发项目,内容不算很复杂,很适合前端已入门的胖友们. 01 .前端国际化概述 港真,自己刚接到这个需求的时候,也是不知如何下手,毕竟也没经验,后面就找了百度,经过一番探索,最终圆满的完成了任务,下面就把我的经验写下来,有需要的朋友拿去,不谢~~~ 首先我们先来普及一下什么是国际化?国际化这个英文单词为:Internationalization,又称 i18n,"i

Struts1国际化实例

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. Struts1国际化实例

jQuery之前端国际化jQuery.i18n.properties[转]

http://www.ibm.com/developerworks/cn/web/1305_hezj_jqueryi18n/ jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化. 国际化英文单词为:Internationalization,又称i18n,“i”为单词的第一个字母,“18”为“i”和“n”之间单词的个数,而“n”代表这个单词的最后一个字母.jQuery.i18n.properties采用.properties文件对JavaSc