时间:2021-05-26
这个月用ant design的方式重构了我在15年的时候写的一个给主端项目写的多语言配置后台。发现当时的设计很“深”,深到有些功能根本就没用过,根据这几年的使用情况,重构了这一版本,无论是体验上还是实用性上都有所提高。今天抽时间把当时的一些想当然的需求拿出来总结下吧:
使用的技术
我们的项目主要是PHP为主要开发语言。使用gettext扩展实现国际化的。即通过人工的方式按照规则写入.po文件,然后调用某函数生成.mo 文件,放到生产环境的文件夹下,然后在代码里初始化一些内容进行引用。
gettext
gettext是php实现国际化的基本方式。使用方法如下:
安装php扩展gettext,这个同php其他扩展一样,这里就不详细介绍了。
linux环境安装msgfmt,安好后可用此命令将po文件生成.mo文件。
基本使用
建立文件如:zh_CN.po (.po是个文本文件),内容如下:
msgid "repeat content!"
msgstr "文本内容相同"
利用msgfmt将.po文件生成.mo文件。
msgfmt -o {$lang_path}/zh_CN.mo {$lang_path}/zh_CN.po
将生成的.po文件拷贝到你指定的文件夹 target_dir 下。
在php代码里面初始化。
$lang = 'zh_CN'; //
setlocale(LC_MESSAGES, 'en_US.UTF-8'); // 函数设置地区信息(地域信息)
bindtextdomain($lang, {$pofile_path})); // 用来设置文本域目录
textdomain($lang); // 设置默认域
bind_textdomain_codeset($lang, 'UTF-8');
在php的请求里面使用如下方法即可得到语境下对应词组的内容:
gettext("repeat content!") // 文本内容必须与1中的内容一致。
或者
_("repeat content!"); // 与上面函数相同
管理后台
以前都是开发人员自己上传,后来为了解放开发者,让产品自己操作,我们进行了如下改进:
改进
经过一段时间的使用,我决定根据实际使用情况重构一版。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Unity实现本地文本多语言化的具体代码,供大家参考,具体内容如下在unity项目过程中大多都会遇到多语言化,下面讲一下自己的一些实现思路。
始因--懒最近项目中,经常用到多语言翻译,而iOS的多语言适配,设计给出的多语言都是指定的翻译制作成的一系列表格,基本都要一点一点复制到对应的语言文件中,如此反
在基于vue-cli项目开发过程中,多语言切换功能可使用vue-i18插件,具体实现方法如下:step1:在项目中安装vue-i18插件cnpminstallv
本文实例为大家分享了Androidapp应用实现多语言切换功能,供大家参考,具体内容如下1.添加多语言文件在不同的value文件夹下(例如value、value
正好最近手上在给一个RazorMVC项目实现一个多语言功能,叫Globalization也好,Localization也好,whatever。最终要实现的效果呢