现在 appserver 里的接口,返回的 message 信息都是英文的,请问有没有经过翻译处理呢?
本文由 successgdc 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
目前没有翻译的,如果想要中文,需要自己处理一下了
是不是要在 \Yii::$service->helper->appserver 里面处理:
\Yii::$service->helper->appserver
/** * @param int $code 状态码 * @param mixed $data 可以是数字,数组等格式,用于做返回给前端的数组。 * @param string $message 选填,如果不填写,则使用函数返回的内容作为 message * @return array */ public function getResponseData($code, $data, $message = '') { if (!$message) { $message = $this->getMessageByCode($code); } if ($message) { return [ 'code' => $code, 'message' => $message, 'data' => $data, ]; } else { // 如果不存在,则说明系统内部调用不存在的 code,报错。 $code = $this->status_invalid_code; $message = $this->getMessageByCode($code); return [ 'code' => $code, 'message' => $message, 'data' => '', ]; } }
此外,还需要一一添加语言包数据。
@successgdc #3楼
应该是这个,有一个统一的处理函数,然后使用 page translate service的 __(),函数翻译一下。
__()
有时间,详细整理一下这个。
知道了。我先试试看,稍后再完善这一块的翻译处理。
然后再增加一个多语言的开关,选择在接口中是否开启翻译。哈哈,棒。
@successgdc #6楼 恩,开关可以设置在appserver的param里面
https://github.com/fecshop/yii2_fecshop/blob/master/app/appserver/config/appserver.php
$config = [ 'modules'=>$modules, /* only config in front web */ 'bootstrap' => ['store'], 'params' => [ 'appName' => 'appserver', ... ];
通过函数 Yii::$app->params['appName']; 来获取
Yii::$app->params['appName'];