PHP项目多语言配置平台实现过程解析_php技巧

来源:脚本之家  责任编辑:小易  

静态模板实现动态其实很简单的,将静态html页面里的固定文字内容改成动态变量比如,商品名称 用 {$goods.name}来代替即可,详细的变量说明的话可以看看ecshop字段说明:http://wenku.baidu.com/view/799b38660b1c59eef8c7b4b9.html当然,也可以通过默认default模板来找www.zgxue.com防采集请勿采集本网。

这个月用ant design的方式重构了我在15年的时候写的一个给主端项目写的多语言配置后台。发现当时的设计很“深”,深到有些功能根本就没用过,根据这几年的使用情况,重构了这一版本,无论是体验上还是实用性上都有所提高。今天抽时间把当时的一些想当然的需求拿出来总结下吧:

基本实现过了MVC每一层;具有自动操作命令行脚本功能。2、文档比较全,在国内推广的比较成功,大部分人都知道CakePHP,学习成本中等。(四)CakePHP 的缺点 1、CakePHP非常严重的问题是把Model理解为数据

使用的技术

我们的项目主要是PHP为主要开发语言。使用gettext扩展实现国际化的。即通过人工的方式按照规则写入.po文件,然后调用某函数生成.mo 文件,放到生产环境的文件夹下,然后在代码里初始化一些内容进行引用。

使用file_md5获得文件的MD5值,比较MD5可以判断文件是否被修改过.再加以辅助字段,如文件大小可以判断文件内容是否增加,相同size的,判断MD5,至少于删除的.数据库的文件列表与当前列表中不一致的.当前列表

gettext

不管是PHP还是Java都是不错的选择,目前来说这两种语言都还处在势头上,但是从长远出发还是Java好,毕竟从性能、处理数据各方面来看还是Java有优势一些,当然最终选择还是在你自己的手里。

gettext是php实现国际化的基本方式。使用方法如下:

找到php的音频转换工具,基于html5开发的android和ios的app应用上实现语音聊天功能也就理论上打通了。1.用phonegap封装成android应用,phonegap官网上有详细介绍 2.实现js和android原生语言java

安装php扩展gettext,这个同php其他扩展一样,这里就不详细介绍了。

PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的“嵌入HTML文档的脚本语言”,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。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!"); // 与上面函数相同

管理后台

以前都是开发人员自己上传,后来为了解放开发者,让产品自己操作,我们进行了如下改进: 做成可配置后台,产品自己根据内容填写。 配置后台分成入口(权限控制),展示列表页,即每个词组key对应各种语言下的内容。 详情页,详情页支持批量添加。 点击按钮触发发布。 发布高级功能:生成列表和支持比对,对历史版本发布(拷贝历史版本到对应的文件夹下)。

改进

经过一段时间的使用,我决定根据实际使用情况重构一版。 页面全部采用ant design pro为基础的框架,采用前后端分离的样式,我特别推崇ant design的设计思想,和人机交互的开发方法,是后端开发者的福音。 淡化历史版本的记录。虽然有个好些,但是这个确实看的人少,基本没有。 重新发布,如果有时间就做,没时间就不做。 对于一些特殊内容的规定,如如果一个词组key在某种语言环境下显示为空,该怎么处理等等。

php比较c java好上手 而且就开发速度上来讲也是可圈可点的。PHP几乎支持所以的操作系统平台及数据库系统,具有良好的跨平台特性,主要是针对ASP而言,ASP只能在“瘟”系统下使用;PHP嵌入在HTML语言中,且坚持脚本语言为主。与JAVA、c等语言不同,语法简单,书写容易,方便学习掌握;PHP占用系统资源少,代码执行速度快的特点也让它在互联网上得到了广泛的应用。开源。开源的优势是其它人可以任意修改其代码,这样可以依据个人需要来定制业务流程;在修改的过程中发现的问题以及心得可以被利用来维护更新开源项目;另外由于代码完全暴露,因此安全性可以得到快速更新内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • thinkphp5 框架引入 go aop,php aop编程项目详解
  • thinkphp5框架前后端分离项目实现分页功能的方法分析
  • php项目中类的自动加载实例讲解
  • docker-compose部署php项目实例详解
  • php如何实现阿里云短信sdk灵活应用在项目中的方法
  • vue 项目中遇到的跨域问题及解决方法(后台php)
  • 在云虚拟主机部署thinkphp5项目的步骤详解
  • php+redis在实际项目中http 500: internal server error故障排除
  • php提高网站效率的技巧
  • php读取word文档的方法分析【基于com组件】
  • array_multisort实现php多维数组排序示例讲解
  • php抽象类与接口的区别实例详解
  • php 按指定元素值去除数组元素的实现方法
  • php自带函数给数字或字符串自动补齐位数
  • php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全
  • 在同一窗体中使用php来处理多个提交任务
  • php获取指定时间段之间的 年,月,天,时,分,秒
  • laravel5.3+框架定义api路径取消csrf保护方法详解
  • PHP 做为一门web开发语言,较其他同类语言有哪些优势
  • ECSHOP如何将静态模板实现动态 第一次接触ECSHOP和PHP语言 请详细解答
  • PHP为什么说是最好的编程语言
  • php自学要多久才能学会?
  • php是世界上最好的语言?
  • php 检测源代码是否被改动过和是否项目中有增加或删除的文件的实现思路
  • php和java哪个语言更有前途
  • php如何实现语音聊天? - PHP进阶讨论
  • php程序员项目经验怎么写
  • 点击“支持”“反对”的投票程序php语言如何实现?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php技巧thinkphp5 框架引入 go aop,php aop编程项目详解thinkphp5框架前后端分离项目实现分页功能的方法分析php项目中类的自动加载实例讲解docker-compose部署php项目实例详解php如何实现阿里云短信sdk灵活应用在项目中的方法vue 项目中遇到的跨域问题及解决方法(后台php)在云虚拟主机部署thinkphp5项目的步骤详解php+redis在实际项目中http 500: internal server error故障排除php提高网站效率的技巧php读取word文档的方法分析【基于com组件】array_multisort实现php多维数组排序示例讲解php抽象类与接口的区别实例详解php 按指定元素值去除数组元素的实现方法php自带函数给数字或字符串自动补齐位数php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全在同一窗体中使用php来处理多个提交任务php获取指定时间段之间的 年,月,天,时,分,秒laravel5.3+框架定义api路径取消csrf保护方法详解php中json_decode()和json_encodphp 数组和字符串互相转换实现方php中使用curl实现get和post请求php中iconv函数使用方法php日期转时间戳,指定日期转换成php 页面跳转到另一个页面的多种php中文处理 中文字符串截取(mb_php下intval()和(int)转换使用与利用phpexcel实现excel数据的导入phpmyadmin 配置文件详解(配置)分割gbk中文遭遇乱码的解决方法php获取开始与结束日期之间所有日期的方法解析关于java,php以及html的所有文件编码php连接mysql数据库的三种方式实例分析【php实现的下载远程文件类定义与用法示例php简单构造json多维数组的方法示例php+mysql事务rollback&commit示例php常用字符串输出方法分析(echo,print,pphp+ajax无刷新上传图片的实现方法php+ajax实现文章自动保存的方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved