注释:此补丁其实早就已经做好,只是一直没有时间打包发布,就算是迟来的礼物吧!
[+]新增 [-]删除 [^]升级 [#]修复 【】重要
(2014-10-09)
[^] JS 控件的汉化记录
chosen(下拉框)
修改文件:/libraries/jquery/chosen/chosen.jquery.js 此文件为 chosen 控件的未进行压缩的源码。
大概98行:
this.default_text_default = this.is_multiple ? "Select Some Options" : "Select an Option";
修改为:
if ( typeof app.vtranslate == 'function' )
{ this.default_text_default = this.is_multiple ? app.vtranslate('JS_SELECT_AN_OPTION') : app.vtranslate('JS_SELECT_AN_OPTION'); }
else
{ this.default_text_default = this.is_multiple ? "Select Some Options" : "Select an Option"; }
调用vTiger的语言函数来进行翻译
validationEngine (输入框验证)
此控件本身没有什么问题,只是因为在 includes/runtime/Controller.php 中的 getHeaderScripts 方法是使用 Vtiger_Language_Handler::getShortLanguageName()
来获取当前的语言环境的,然后中文这个家伙比较特殊 通常为 zh-CN、zh-TW、zh-HK,然后他获取的方法只是提取了 zh 也就是说在vTiger中要加载JS的语言包需要将
中文的扩展名修改为zh.js才可以,所以偶就附加了一个文件 /libraries/jquery/posabsolute-jQuery-Validation-Engine/js/languages
datepicker (日期选择)
本来挺标准的一个东西,然后vTiger 6.1.0 版本中附加上了 bootstrap 的 eternicode-bootstrap-datepicker 所以语言就被这个玩意给控制了,当然 bootstrap 的
这个也附带有语言包,但同样会面临到上面说的 zh后面的那个杠杠的问题,因为这个控件获取当前语言的方式是根据当前HTML中的Body对象中的附加属性language中的值
代码在 resources/app.js 491 行
var language = jQuery('body').data('language');
var lang = language.split('_');
坑爹还是取了个_用来分割,所以还是剩下了孤独的zh,所以偶干脆就省事(当然也是效率最高的方式,因为不用多一个HTTP的请求)直接在
libraries/bootstrap/js/eternicode-bootstrap-datepicker/js/bootstrap-datepicker.js 中的 574 行直接附加了 zh 的翻译,代码就不贴了,直接看文件就好。
datepick (日期选择的扩展)
增加文件: libraries/jquery/jquery.datepick.package-4.1.0/jquery.datepick-zh.js 同上一样的问题,所以馁懂滴……
修改文件:
modules\Settings\Workflows\views\Edit.php [189 行]
modules\Reports\views\ChartEdit.php [263 行]
modules\Reports\views\Edit.php [332 行]
增加代码:
// 获取当前的语言 修正没有加载语言补丁的Bug 2014-10-09 12:41:54 By Coco老爸
$currentLanguage = Vtiger_Language_Handler::getShortLanguageName();
$jsFileNames[] = "~libraries/jquery/jquery.datepick.package-4.1.0/jquery.datepick-$currentLanguage.js";
[^] TPL 的修改记录
layouts
└─vlayout
└─modules
├─Settings
│ ├─Profiles
│ │ DetailView.tpl # 调整了一下因为中文后那几个小圆点和文件之间的间距
│ │
│ └─Vtiger
│ ListViewContents.tpl # 增加了状态字段内容的翻译 也就是那个 Active 的东东
│
├─Users
│ ListViewContents.tpl # 增加了状态字段内容的翻译 也就是那个 Active 的东东
│
└─Vtiger
ModalFooter.tpl # 只是调整了一下那个《取消》按钮的对齐
[^] PHP 的修改记录
modules
├─Reports
│ └─views
│ ChartEdit.php
│ Edit.php
│
└─Settings
└─Workflows
└─views
Edit.php
全部是为了修正 datepick (日期选择的扩展) 加载语言文件而已。
modules
└─Settings
├─CronTasks
│ └─models
│ Module.php # 将定时任务的描述显示出来
补丁下载地址:http://pan.baidu.com/s/1i3AAFHz