Web界面简繁体转换

1、静态转换(逐字翻译)

2、界面翻译(逐字翻译)

3、国际化(语句替换)

1、静态转换

使用 Vue 插件 language-tw-loader

在打包时把本地的文字转换成繁体,动态加载的文字不会转换。也就是说接口返回的文字不会自动转换。

打包后无法再切换为简体。除非专门打一个简体的包。

使用方式

安装插件

npm i language-tw-loader

修改 webpack 配置文件webpack.base.conf.js

module: {

rules: [

......

{

test: /.(js|vue)$/,

loader: 'language-tw-loader',

}

]

}

运行或者打包就可看到效果

接口返回数据如何处理?

在本地配置一个参数,启动时读取参数,把参数发送到服务端,服务端根据类型返回简体或者繁体数据。

2、界面翻译

自定义工具类translate.js,递归翻译 document.body

在方法中 monted,updated 方法中调用translate方法

接口返回数据不影响,刷新界面后会翻译为繁体

如果启用了繁体整个项目基本不会出现简体,就算你输入框输入的简体,也会被强制刷新为繁体。

使用

引入项目

import Translate from './plugins/translate.js'

Vue.use(Translate)

调用方法

mounted() {

console.log("home mounted");

this.$translatePage();

},

updated() {

console.log("home updated");

this.$translatePage();

},

3、国际化

国际化的方式更加灵活,可以支持多种语言,不止繁体,需要维护多套文本,需要什么语言,增加一个语言描述文件即可。

vue-i18n安装: npm install vue-i18n --save

新建文件如下

zh-hans.js

const hans = {

message: {

'title': '简体显示',

'address': '广州市',

'text': '{msg}这是测试语句',

'name': '{0}赵钱孙{1}{2}',

'product': 'apple
$99',

'car': '车 | 很多车',

'apple': 'no 铁甲依然在 | one 铁甲依然在 | {count} 铁甲依然在',

'hello': '铁甲依然在,宗主依然菜。'

}

}

export default hans

zh-hant.js 文件

const hant = {

message: {

'title': '繁体显示',

'address': '廣州市',

'text': '{msg}這是測試語句',

'name': '{0}趙錢孫{1}{2}',

'product': 'apple
$99',

'car': '車 | 很多車',

'apple': 'no 鐵甲依然在 | one 鐵甲依然在 | {count} 鐵甲依然在',

'hello': '鐵甲依然在,宗主依然菜。'

}

}

export default hant

index.js

import hans from './zh-hans'

import hant from './zh-hant'

export default {

'zh-Hans': hans, // 简体

'zh-Hant': hant // 繁体

}

i18n.js 文件

import Vue from 'vue'

import VueI18n from 'vue-i18n'

import messages from './langs'

Vue.use(VueI18n)

const i18n = new VueI18n({

locale: (localStorage.lang !== undefined) ? localStorage.lang : (navigator.language === 'zh-HK' || navigator.language === 'zh-TW' || navigator.language === 'zh-hant' || navigator.language === 'zh-Hant') ? 'zh-Hant' : 'zh-Hans',

fallbackLocale: 'zh-Hans',

messages

})

export default i18n

main.js 中引入

import i18n from './i18n/i18n'

new Vue({

i18n,

el: '#app',

router,

components: { App },

template: ''

})

使用,通过$t引用定义的文字

{{$t('message.title')}}

点我切换繁体

点我切换简体

插值访问

{{$t('message.address')}}
{{$t('message.text',{msg:'哈哈哈,'})}}
{{$t('message.name',{'0':'替换替换:'})}}
{{$t('message.name',['替换第一个元素:',',替换第二个元素,','替换第三个元素。'])}}

插入html语句

复数访问

{{$tc('message.car',1)}}
{{$tc('message.car',2)}}
{{$tc('message.apple',0)}}
{{$tc('message.apple',1)}}
{{$tc('message.apple',2,{count:1222})}}

组件

手动改变语言类型

changeType(index){

if(index == 0){

localStorage.setItem('lang','zh-Hant');

this.$i18n.locale = 'zh-Hant';

}else{

localStorage.setItem('lang','zh-Hans');

this.$i18n.locale = 'zh-Hans';

}

}

请求头中添加语言类型,服务端根据类型返回数据

'Accept-Language': (localStorage.lang !== undefined) ? localStorage.lang : (navigator.language === 'zh-HK' || navigator.language === 'zh-TW' || navigator.language === 'zh-hant' || navigator.language === 'zh-Hant') ? 'zh-Hant' : 'zh-Hans', // 初始未选择默认 cn 中文

总结

如果只是改变固定文字,国际化无疑是最好的选择,可灵活扩展更多语言,而且可以更加加入个性化差异,比如设置、設定(設置),相比‘設置’而言‘設定’更加符合用户习惯。

如果要app所有内容强制转换为繁体,只能使用方法2。

如果要打包成繁体项目,不考虑接口返回数据,可以考虑方法1。

读取浏览器配置navigator.language获取浏览器语言,将这个加到请求头里,这样后端可根据类型判断是否返回繁体文字。本地也可以根据类型自动加载不同类型的文字。

也可在app内部添加切换入口,用户自己设置语言,默认从浏览器读取。

编码参考 rfc4646

zh-Hant(Chinese written using the Traditional Chinese script)

zh-Hans(Chinese written using the Simplified Chinese script)

zh-HK

zh-TW

zh-CN

html简繁替换,Web界面简繁体转换相关推荐

  1. html 简繁文件转换器,在线简繁

    路由器之家网今天精心准备的是<在线简繁>,下面是详解! 可以把繁体中文翻译成简体字的在线翻译软件有哪些 1,搜狗输入法的工具条自带这个功能. 2,网页输入"在线繁体" ...

  2. 简繁 data_gb.php 下载,简繁转换的程序_php

    php代码:-------------------------------------------------------------------------------- /** *中速版,中等内存 ...

  3. html 简繁替换,js简繁转换,两种实现方式,妥妥的~

    cef3 获得js 返回值, 以及js 指挥delphi 函数的 总结参考 cef3  如何加载 本地html 文件.   请教老师[吐槽]常忘  22:21:45@lazarus 下载cef3中的范 ...

  4. js搞定网页的简繁转换

    对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...

  5. php 设置输出字体,利用PHP的输出信息控制功能实现Web页面简繁字体的自动转换...

    ! " #$% & ' "! () * $% +,,-./ 实践与经验 现代计算机︵总第二 " 七期︶ 引 言 目前,许多网站同时需要简体和繁体字版面的012 页 ...

  6. java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...

    一.OpenCC介绍 OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港 ...

  7. excel简繁切换_详细介绍在Excel中将简体转换成为繁体的方法

    繁体字,亦称繁体中文.繁体中文至今已有三千年以上的历史,直到1956年前一直是各地华人中通用的中文标准字.今天就跟着小编一起来看一看:详细介绍在Excel中将简体转换成为繁体的方法. 不知道大家在日常 ...

  8. java utf8 简繁转换 类库_Java封装简体繁体(香港台湾)转换工具

    简体繁体转换 新建工具类:HKTWwordVO import java.io.BufferedReader; import java.io.FileNotFoundException; import ...

  9. 网站必备之简繁切换功能实现 1

    前言 一个优秀的网站为了能够更好地照顾不同的用户,一般都会提供简繁两种版本字体切换,提高用户的体验.例如 : Hexo 官网 .之所以 Hexo 能得到了不少内地忠实粉丝的追捧,是因为 Hexo 的官 ...

  10. 使用Javascript直接将网页进行简繁转换 转

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 方法之一 ...

最新文章

  1. 如何将你在公有云环境中的漏洞找出来?
  2. 入门代码教程第二节 如何:实现服务协定
  3. 【刷算法】两个链表的第一个公共结点
  4. Android 7.1.1 去感叹号
  5. Spark中组件Mllib的学习40之梯度提升树(GBT)用于回归
  6. java网络编程阻塞_Java网络编程由浅入深三 一文了解非阻塞通信的图文代码示例详解...
  7. CI框架--加载静态内容
  8. ac2100 反弹shell无法粘贴_记一次突破反弹shell
  9. 未检测到其他显示器_同维工控机显示器显示器没反应维修技术精湛
  10. python实现一个简单的加法计算器_Python简易项目 加减计算器的实现
  11. mysql 5.7参数配置_MySQL 5.7-新增配置参数
  12. 好用的文献论文管理软件 EndNote X 9.3.3 Mac版
  13. STM32 DCMI调试
  14. 计算机不支持格式,显示视频格式不支持怎么处理,需要什么软件
  15. AI 黑科技,老照片修复,模糊变高清
  16. Linux常用基本命令分享
  17. 使用视频作为网页背景的写法
  18. OJ:Bad Cowtractors(最大生成树)
  19. 智慧物流解决方案-最新全套文件
  20. python 将MP3格式转换为WAV格式(ffmpeg安装,使用pycharm安装包)

热门文章

  1. 定义一个函数用来判断奇偶数PHP,定义函数 判断整数的奇偶性,如果是偶数则返回1,否则返回0,函数...,C语言:编写一个程序,判断一个整数的奇偶性。如果是奇数,输....
  2. List集合排序Collections.sort()方法的一个容易忽略的小问题
  3. 阿里云服务器 —— linux是什么样子的呢(适合新手,建议收藏!)
  4. latex强制图片标题居中
  5. 城市规划设计毕业论文范文
  6. EtherCAT 总线初见
  7. CSS背景background和显示元素
  8. x y z 1 在python 中非法_Python面试考题
  9. MSP430初学one
  10. rs485数据线接反_RS485引脚说明及接口说明