前端如何完成多语言功能

项目需求,要把pc端的jq+avalon项目和移动端的vue项目都完成多语言化,比如英语韩语等,现在打算走的路线是把每个页面只要显示的字都写成一个对象,比如
`

let welcome = {
    'en' : 'welcome',
    'cn' : '你好',
    'kr' : '阿尼阿塞哟',
    'jp' : '哄你几瓦'
}

`
然后根据开始选择语言的字段存储到sessionStorage,判断输出是什么文字,但是感觉这样做每段文字都要做定义会代码量很大,请问有没有更好的解决方法?我也有上网查过i18n,但是还是没搞懂i18n的作用是什么,自动翻译吗?如果要在jq项目中运用要怎么用,求大神指导

阅读 7.3k
6 个回答

我司也要 但是我做两套 方法公用 页面不共用 我看了挺多多语言网站 挺多都是两套
你这种方式我以前做过 可以不用一个一个存 可以把语言sessionStorage存着 作为一个key 然后字段每个语言做一个json 然后写一个方法 获取sessionStorage的语言key 传入函数参数 不同的key调不同的json文件 然后填充

推荐使用 jquery.i18n.properties

简单讲jquery.i18n.properties就是把你预先配置好的语言配置文件读取出来,像下面这样的

header.login= 登录
header.register= 注册
header.logout= 退出

再根据你需要显示哪个国家的语言去使用en_US.properties或者zh_CN.properties之类的配置进行国际化。

这里有个中文文档 jQuery.i18n.properties 中文说明文档

希望对你有帮助。

就是一个映射关系,如果多的话,直接后台维护吧

当客户端向服务器发送 HTTP 请求时,通常会发送有关语言首选项的信息,比如使用Accept-Language请求头。如果替换语言存在,服务器可以利用该信息返回与之相匹配的 HTML 文档。返回的 HTML 文档还应在<html>标签中声明lang属性,比如<html lang="en">...</html>

在后台中,HTML 将包含i18n占位符和待以替换的内容,这些按照不同语言,以 YML 或 JSON 格式存储。然后,服务器将动态生成指定语言内容的 HTML 页面。整个过程通常需要借助后台框架实现。
参考:
https://www.w3.org/Internatio...

准确翻译的话只能像你说的方法,每种语言一个json,用到哪个就重新渲染。

这个方法就是,把文案地方写成配置文件的一个变量。有个通用语言配置文件(一个语言一个配置文件)存储所有变量,然后根据需要请求不同配置文件。这样就可以了,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题