基于 jQuery.i18n.properties 对老项目实现国际化

jQuery.i18n.properties实现前端国际化 引用 jQuery.i18n.properties 插件 script type="text/javascript" src="../../vendor/i18/jquery.i18n.properties.js">script> script src="../../js/config.js">script> config.js jQuery(document).ready( 阅读详情

公司之前的项目都是以中文为主,随着业务的增长,现需要支持国际化,但是由于项目并没有使用三大框架,所以没有与之配套的成熟的解决方案,遂找到了一款轻量化的基于jQuery的国际化插件jQuery.i18n.properties

引用一段对jQuery.i18n.properties的介绍

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),这就保证了在未提供某种语言的翻译时,默认值始终有效。

首先先展示一下目录结构:
在这里插入图片描述

1.下载所需要的文件

2.准备 index.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title class="i18n" name="title"></title>
    <!-- 切记要加上这句 每个页面都要对应上其翻译的文件 -->
    <meta id="i18n_page" content="index">
    <meta name="viewport" content="width=device-width">
    <meta name="keywords" content="" />
    <meta name="description" content=""/>
</head>
<body>
    <div>
      <label class="i18n" name="lang"></label>
      <select id="language">
        <option value="zh_CN">简体中文</option>
        <option value="en">English</option>
      </select>
    </div>
    <div>
      <div>
        <label class="i18n" name="name"></label>
        <input type="text" id="input-name" class="i18n-attr" attrName="namePlaceholder" i18nAttr="placeholder">
      </div>
      <div>
        <label class="i18n" name="age"></label>
        <input type="text" id="input-age" class="i18n-attr" attrName="agePlaceholder" i18nAttr="placeholder">
      </div>
    </div>

    <script src="jquery-3.4.1.min.js"></script>        
    <!-- 加载语言包文件 -->
    <script src="jquery.i18n.properties.js"></script>
    <script src="language.js"></script>
</body>
</html>
<style>
  div {
    margin-top: 20px;
  }
  label {
    display: inline-block;
    width: 100px;
  }
  input {
    width: 200px;
  }
</style>

3.准备 language.js

// 默认语言
let defaultLanguage = 'zh_CN'

const translate = () => {

  // 如果缓存中有语言类型则选用缓存中的语言
  defaultLanguage = localStorage.getItem('language') || defaultLanguage
  // 将默认的语言值进行选中
  $('#language option[value=' + defaultLanguage + ']').attr('selected', true);
  // 获取资源文件
  let sourceName = $('#i18n_page').attr('content');

  // 执行 i18n 翻译
  jQuery.i18n.properties({
    name : sourceName, // 资源文件名称
    path : defaultLanguage + '/', // 资源文件路径
    mode : 'map', // 用 Map 的方式使用资源文件中的值
    language : defaultLanguage,
    callback : function() { // 资源文件加载成功之后的回调
      // 替换页面文本
      let element = $('.i18n');
      element.each(function() {
        // 根据 i18n 元素的 name 获取内容写入
        $(this).html($.i18n.prop($(this).attr('name')));
      });
      // 替换元素的属性
      let attrElement = $(".i18n-attr");
      attrElement.each(function() {
        let i18nAttr = $(this).attr('i18nAttr');
        if (!i18nAttr) {
          i18nAttr = 'value';
        };
        $(this).attr(i18nAttr, $.i18n.prop($(this).attr('attrName')));
      });
    }
  });
}

$(function(){

  // 页面加载先执行一遍翻译
  translate()

  // 选择语言时触发的事件
  $("#language").on('change', function() {
    let language = $(this).children('option:selected').val()
    localStorage.setItem('language', language)
    translate()
  });

});

4.准备对应的语言文件

  • 中文(zh_CN)
    title=国际化
    lang=语言
    name=姓名
    age=年龄
    namePlaceholder=请输入姓名
    agePlaceholder=请输入年龄
    
  • 英语(en)
    title=i18n
    lang=language
    name=name
    age=age
    namePlaceholder=please enter your name
    agePlaceholder=please enter your age
    

准备完毕就可以开始运行了,但是在本地直接打开index.html是会报错的,这时候我们需要一个webServer容器(.properties文件需要通过webServer才能访问),选择Apache、Node、Tomcat或Nginx都可以。这里我选择的是Tomcat,将整个文件夹放到webapps目录下,启动Tomcat即可访问。如果报Cannot read property 'length' of undefined的错,就要注意一下资源文件的路径是不是传错了(path参数)。

接下来来看一下效果图:

  • 中文
    在这里插入图片描述

  • 英文
    在这里插入图片描述

体验链接:http://39.107.83.60:9001/i18n/index.html

参考文章:https://blog.youkuaiyun.com/aixiaoyang168/article/details/49336709

前端国际化与智能翻译的利器:jQuery i18n Properties 本文还有配套的精品资源,点击获取 简介:随着全球化的发展,网站和应用的国际化变得至关重要。jQuery i18n Properties插件为JavaScript开发者提供强大的支持,处理.properties文件以实现前端的多语言环境。本插件支持动态语言切换和自动语言检测,简化了多语言应用的开发流程,并提供智能翻译功能。开发者可以快速实现前端应用的国际化,专注于业务逻辑。 ... 阅读详情

相关推荐

前端国际化实践:使用jQuery.i18n.properties插件

随着互联网的全球化发展,越来越多的网站和应用程序不再局限于单一语言环境。前端国际化(Internationalization,通常缩写为i18n)成为满足不同地区用户需求的重要途径。用户对多语言网站的访问不再满足于仅仅通过翻译工具实现的简单文本替换,而是期望得到更自然、更本地化的体验。因此,前端开发中需要一个高效、灵活且易于维护的国际化解决方案。

weixin_33816734的博客 989

jquery.i18n.properties.js使用及seo优化

jquery.i18n.properties.js使用及seo优化

qq_45634989的博客 1027

jquery.i18n.properties.js.rar

jquery.i18n.properties-min-1.0.9.js前端国际化文件,项目中用到的前端国际化文件。 $.i18n.properties( {   name : 'web_i18n', // Resource name   path : '/resources/i18n/', //Resource path   cache : true,   mode : 'map' }); 文件加载,使用$.i18n.prop(key)获取value

利用jquery.i18n.properties实现前端网页国际化小示例(详细版)

利用jquery.i18n.properties实现前端网页国际化小示例(详细版)

我只是个很菜的前端 2784

前端国际化插件i18n

前端国际化插件i18n

AICodeing:AI驱动的全栈开发革命

作为阿里/字节跳动的资深Java工程师,我们正站在研发效能革命的临界点上。本文将深入探讨如何利用AI技术重构全栈开发流程,实现从需求到上线的量子级提速。

weixin_43290370的博客 1137

jquery.i18n.properties的使用讲解与实例

最近在做一个主页时需要用国际化,用HTML+JS,还有jQuery, 于是就选择了jquery.i18n.properties.js。本文介绍的示例还依赖jquery、jquery.json。 介绍jquery.i18n.properties是一款轻量级的国际化插件,采用.properties文件来对javascript文件进行国际化,即根据用户指定的语言和国家编码来解析对应的以”.properti...

判断一个点是否在闭合曲线内 2万+

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

jquery.i18n国际化简单实现

1 基本介绍 个人建议使用jquery.i18n.properties-1.0.x版本,高版本可能会出现意想不到的问题。 我在git上传了jquery.i18n.properties-1.0.x、jquery.i18n.properties-1.2.7(最新版本)和jquery-1.9.0.js源文件,有需要的可以下载:https://github.com/MasonYyp/jquery.i...

make_progress的博客 2040

电机控制必看!SVPWM谐波优化:5段式与7段式全参数对比测试

本文通过实测数据,对比分析了电机控制中5段式与7段式SVPWM控制算法的谐波性能。实验表明,7段式SVPWM在电流波形质量(THD)和低速性能上更优,而5段式SVPWM则在开关损耗和效率方面表现突出。文章为工程师在不同应用场景(如对噪音、效率或动态响应的侧重)下的算法选型提供了清晰的依据和实用的工程指南。

weixin_28331555的博客 178

Allegro如何输出ODB文件操作指导

在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图。用Allegro如何输出ODB文件,具体操作如下。如何输出ODB文件操作指导。

weixin_54787054的博客 7216

jquery.i18n.properties前端国际化方案

如果新项目要做系统国际化, 时下热门的任何一种技术选型都有成熟的方案,比如: vue+vue-i18n angular+angular-translate react+react-intl 但是老项目的国际化几乎是jquery + jquery.i18n.properties这种方案. 那么我们就来看看这种方案是如何实现的. 一. 引入必要的 js 文件 在项目中添加如下目录结构:...

weixin_34252090的博客 234

【数据分析】R语言分段结构方程模型手把手教程(Piecewise Structural Equation Model)

分段结构方程模型(Piecewise Structural Equation Model, SEM)是一种用于分析变量之间因果关系的统计方法。它通过将复杂的因果关系分解为多个简单的线性模型来评估变量之间的直接和间接效应。与传统的结构方程模型(SEM)不同,分段结构方程模型不需要假设数据的多变量正态分布,因此在处理非正态数据时更为灵活。

专注生信领域 2652

jquery.i18n.properties前端国际化(供参考)

正文 前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化。如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都有成熟的方案,比如: vue+vue-i18n angular+angular-translate react+react-intl 但现在的情况是...

晓光同学的博客 2488

opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用opencode的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

第 1 章 Prometheus 监控 | Prometheus 入门

了解 Prometheus 监控系统,学会安装及了解页面功能。

甘蓝的专栏 486

html data i18n属性,前端系列——jquery.i18n.properties前端国际化解决方案“填坑日记”...

阅读目录一、jquery.i18n.properties通用解决方案1、需要引用的js文件2、html文件和国际化组件的初始化3、资源文件准备二、坑一:配置IIS对.properties文件的支持三、坑二:使用html的data属性初始化国际化内容四、坑三:第三方组件的国际化(一)五、坑四:第三方组件的国际化(二)六、总结正文前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国...

weixin_33740934的博客 526

Android 13.0 设置默认屏幕亮度百分比

在13.0的系统ROM产品开发中,在一些产品开发中,对于设置默认屏幕亮度和屏幕亮度百分比的功能,在开发中也是常见的功能,在10.0的平台设置可能有一些不同,一般的都是在SettingProvider中设置就可以了 在11.0以后的系统中设置默认屏幕亮度的方法就不同了,接下来具体分析功能的实现

安卓兼职framework和app工程师的博客 1560

jQuery.i18n.properties实现js国际化

当我们在做前台页面开发时,由于页面内容过多,过于繁杂,有的时候一个页面上千行的(当然这样的页面也就算一般的),为了减少页面的内容,我们将页面的js文件提取出去,放入一个特定的js文件中,然后在页面中导入进来。这样做当我们需要做应用程序的国际化的时候,就需要考虑js的国际化,这里介绍一下使用JQuery.i18n.properties来实现js的国际化。 PS:jQuery.i18n.proper

leox_2012的专栏 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

Web前端国际化之jQuery.i18n.properties国际化是现在Web应用程序开发过程中的重要一环,jQuery.i18n.properties

Joyce Luo的专栏 8681

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

基于jQuery.i18n.properties 实现前端页面的资源国际化

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

哎_小羊的博客 6万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jq国际化jquery.i18n.properties简单使用,跟着步骤来,超级简单

最初使用jquery.i18n.properties是为了实现项目国际化中英文字段对照表,这样可以把中英文的翻译工作减轻不少,用法很简单,我就是在简单使用的基础上稍微简化 一、项目目录

三俩句的博客 3210

jquery.i18n.properties国际化实例

前沿 先来理解jquery.i18n实现中英文版本切换的原理,再来看具体实现的实例。 首先将中文汉字以变量的形式存入以zh_CN.properties结尾的文件中。将同样变量名值为英文的数据存入到en_GB.properties结尾的文件中。也可以是en_US.properties文件,总之是properties文件,文件名字与语言对应,已达到语义化的目的。 语言资源文件: strings_zh_CN.properties文件内容 string_prop=今天是{0},我们可以出去{1} st

zyz00000000的博客 1453

jQuery-i18n-properties 使用指南

--- ## 项目介绍 jQuery-i18n-properties 是一款专为前端设计的轻量级国际化插件,它利用 `.properties` 文件来实现 JavaScript 应用的国际化功能。此插件允许开发者根据用户的语言和地区设置,动态加载相应的配置文件,从而展示对应语言的内容。它简化了多语言环境下的资源配置,特别适用于基于 jQuery 的项目。 ## 项目快速启动 要快速启动使用...

gitblog_00079的博客 1352

利用jQuery.i18n实现web前端的国际化

i18n官网:http://i18next.com/ 在介绍 jQuery.i18n.properties 之前,我们先来看一下什么是国际化。国际化英文单词为:Internationalization,又称 i18n,“i”为单词的第一个字母,“18”为“i”和“n”之间单词的个数,而“n”代表这个单词的最后一个字母。在计算机领域,国际化是指设计能够适应各种区域和语言环境的软件的过程。

小小_一路走一路成长 7338

【亲测免费】 开源项目《jQuery国际化插件之jQuery-i18n-properties》下载与安装教程

``` 直接点击上述链接进入仓库页面后,可以选择“Download ZIP”按钮直接下载压缩包,或者通过Git命令克隆到本地: ```bash git clone https://github.com/jquery-i18n-properties/jquery-i18n-properties.git ``` ## 3. 项目安装环境配置 ### 图片示例 由于文本形式无法直接展示图片,以下是...

gitblog_01216的博客 755
上一篇: Vue 子组件中 this.$parent 无法调用父组件的自定义方法
下一篇: js 实现单链表
趣果有间
博客等级 码龄10年 15粉丝 17原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值