日记大全

日记大全 > 二年级日记

HTML国际化显示问题及前端解决方案——填坑日记

二年级日记 2024-07-05 00:29:26
相关推荐

原标题:前端国际化解决方案“填坑日记”

来源:懒得安分

/landeanfen/p/7581609.html

如果好文章投稿,点击 → 了解详情

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

vue + vue-i18n

angular + angular-translate

react + react-intl

但现在的情况是老的项目并没有使用这类架构。说起国际化,博主几年前就做过,在MVC里面实现国际化有通用的解决方案,主要就是通过资源文件的方式定义多语言。最初接到这个任务,并没有太多顾虑,毕竟这种东西有很成熟的解决方案,实现起来难点不会很大。可当真正动起来手来去实现的时候发现一些问题,这里先介绍下我们老平台的架构:MVC+WebApi,MVC项目负责页面渲染,webapi负责数据接口,是一种很传统的架构方式。国际化主要在MVC端去做就好了,可是由于MVC项目里面使用了大量第三方bootstrap组件,几乎95%的组件都是通过js去实现的,比如bootstrapTable,比如bootstrap-select,比如bootstrap-fileinput。如果按照传统的方式,仅仅在MVC里面去实现国际化,那么大量的js代码里面的中文没法统一处理,并且很多第三方组件有自己的本地化local文件,和后端的国际化很难统一处理;可能有人又说,那就前后端分开国际化呗,这种方案博主真的想过,但是想到要维护两套资源文件,果断放弃。最后还是决定直接维护一套,做前端国际化好了。于是在网上搜索基于jquery的国际化,千篇一律,几乎都说的是jquery + jquery.i18n.properties这种方案,既然大家都这么选型,那博主也按照这种思路去做好了。

在实现的过程中,有很多值得注意和分享的东西,在此写一个填坑笔记,希望对大家有帮助!接下来,博主就一步一步带领大家解决这个过程中遇到的一些坑,如果有这个需求的童鞋可以关注下,可能这些问题你也会遇到。

一、jquery.i18n.properties通用解决方案

关于jquery.i18n.properties的使用,网上资料很多,比较完整的使用可以参考 这篇 ,有比较详细的使用说明。这里博主简单概述下过程。

1、需要引用的js文件

先在你的项目文件里面添加如下目录结构

首先页面引用的js文件如下

< src="~/s/jquery-1.9.1.min.js">>

< src="~/Content/i18n/jquery.i18n.properties.js">>

< src="~/Content/i18n/language.extensions.js">>

其中jquery-1.9.1.min.js和jquery.i18n.properties.js文件是开源组件,直接去网上找到即可

jquery.i18n.properties.js

jquery.js

第三个文件language.extensions.js是我们自定义的js文件,如果你将国际化的代码直接写在html页面里面,这个文件就是不用的。

2、html文件和国际化组件的初始化

这里直接引用上面示例文章里面的代码,首先需要一个切换中英文的标签,比如是一个select

中文简体

English

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新