我如何在我的应用程序中翻译默认的Cake php时间助手字符串,我在Cake php中使用了一个名为timeAgoInWords
的函数,它从时间助手函数中给出了一个像{{{{{{ 1}}。
我想把它翻译成另一种语言,我该怎么做?我搜索了文档,但我没有得到任何东西。
5 hours, 52 minutes ago
答案 0 :(得分:0)
您需要一个定制的助手来完成您的工作。 timeAgoInWords助手不会给你的单词替换单词的灵活性。
在此处,在View/Helper
我不确定您要翻译哪种语言,我会用英文写,您可以替换您的文字。
<?php
App::uses('AppHelper', 'View/Helper');
class TimeagoHelper extends AppHelper {
public function __construct(View $view, $settings = array()) {
parent::__construct($view, $settings);
}
public function timeago($datetime) {
$datetime1 = new DateTime($datetime);
$datetime2 = new DateTime('now');
$obj = $datetime1->diff($datetime2);
if($obj->days == 1) {
$time = $obj->format('%a day'); // Replace your word
} elseif($obj->days == 0) {
if($obj->h == 0) {
if($obj->i == 0) {
$time = $obj->s . ' seconds'; // Replace your word
} else {
$time = $obj->i . ' minutes'; // Replace your word
}
} else {
$time = $obj->h . ' hours'; // Replace your word
}
} else {
$time = $obj->format('%a days'); // Replace your word
}
return $time.' ago'; // Replace your word
}
}
在您的操作或控制器中加载此帮助程序。
我一直在使用php 5.5,因为我不确定它是否适用于较小的版本,即不记得是否允许连续几秒钟和几分钟。 Incase,它不起作用,将它们分配给变量并连接它们。
在View .ctp
文件中使用它,如下所示:
$this->Timeago->timeago($question['Question']['created']);
PS:CakeTime也派上用场,查看api的可能性。
干杯!