|
|
发表于 2010/8/10 21:43:22
|
显示全部楼层
本帖最后由 LinOx 于 2010/8/10 21:45 编辑
这是 PO_Header.php 中的一段代码,目的是判断根据当前订单的状态给出恰当的状态下拉菜单选项
-------------------------------------
switch ($_SESSION['PO'.$identifier]->Stat) {
case '':
$StatusList=array(_('New Order'));
break;
case _('Pending'):
$StatusList=array(_('Pending'), _('Authorised'), _('Rejected'), _('Cancelled'));
break;
case _('Authorised'):
$StatusList=array(_('Pending'), _('Authorised'), _('Cancelled'));
break;
case _('Rejected'):
$StatusList=array(_('Pending'), _('Authorised'), _('Rejected'), _('Cancelled'));
break;
case _('Cancelled'):
$StatusList=array(_('Pending'), _('Cancelled'));
break;
case _('Printed'):
$StatusList=array(_('Pending'), _('Printed'), _('Cancelled'));
break;
case _('Completed'):
$StatusList=array(_('Completed'));
break;
default:
$StatusList=array(_('New Order'), _('Pending'), _('Authorised'), _('Rejected'), _('Cancelled'));
break;
---------------------------------------
其中多处用到了 _() 函数。这个函数是 getext 项目的函数,用来将函数值转换成相应的语言,也就是在mo文件中的相应的定义。
这里所有的判断都是根据用户当前语言的。
前提条件是数据库中存储的状态值所使用的语言必须与当前浏览的用户使用的语言相同。
问题来了,不同语言的用户无法操作对同一个订单。
也就是中国人修改了订单的状态,其它国家的人来看都会出问题。
PS
Reject 应该翻译成驳回更恰当一些,而不是不可修改。
|
|