我发现好多网站都有这个功能,不知道是怎么做的
你搜一下相关语言的:本地化/国际化。
如果要自己实现,有个很简单的办法:
1、定义中英文对照关系:
dic = {
'hello': {
'zh': '你好',
'en': 'hello',
'jp': 'こんにちは',
},
}
2、函数
def ugettext(text):
# text是要翻译的文字代号hello
language = xx # 可以通过header里的Accept-Language,也可以是用户自定义
retuan dic[text][language]
2、代码里凡是有文字的地方都用一个“代号”代替(即上面字典里的hello),比如:
原本:result = '你好'
换成:result = ugettext('hello')
可以使用jquery的插件i18n: https://www.ibm.com/developer...
下载地址: https://plugins.jquery.com/i18n/
你可以这么理解,页面上的每个文字除了差数据库的文字,只要显示需要用到不同语言的话,我们都用标签,比方说<?php echo $menu;?>,对应的页面会判断你当前语言,然后显示对应的语言。
比如说,你$menu保存到配置里面,chinese=>菜单,englist=>menu
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决
关键字
i18n
。这个既可以在web server级别通过静态页面实现,也可以在web app级别通过程序动态实现。比如
Apache HttpD
就可以通过MultiView这个Options
在静态资源级别指定国际化。基本原理其实就是浏览器请求的时候会带上一个
Accept-Language:zh-CN,zh;q=0.8
header,服务器通过这个头判断应当返回给客户端什么语言的内容。