如何在我的應用程序中翻譯默認的Cake php時間幫助字符串,我在Cake php中使用了一個函數timeAgoInWords
,它從時間幫助器函數中爲我提供了一個文本,如5 hours, 52 minutes ago
。將時間文本翻譯成另一種語言
我想將其翻譯成另一種語言,我該怎麼做?我搜查了文件,但沒有收到任何東西。
<?php echo $this->Time->timeAgoInWords($question['Question']['created']) ?>
如何在我的應用程序中翻譯默認的Cake php時間幫助字符串,我在Cake php中使用了一個函數timeAgoInWords
,它從時間幫助器函數中爲我提供了一個文本,如5 hours, 52 minutes ago
。將時間文本翻譯成另一種語言
我想將其翻譯成另一種語言,我該怎麼做?我搜查了文件,但沒有收到任何東西。
<?php echo $this->Time->timeAgoInWords($question['Question']['created']) ?>
您需要一個定製的幫手才能完成您的工作。 timeAgoInWords幫助程序不會提供用您的詞語替換單詞的靈活性。
這裏,在你的View/Helper
創建一個名爲TimeagoHelper.php文件我不知道你要翻譯,我會寫英語,你可以取代你的話的語言。
<?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,因爲相當長的一段時間,我不確定它是否適用於較小的版本,即不記得是否允許concat在秒和分鐘內完成。 Incase,它不起作用,將它們分配給變量並連接它們。
用它查看的.ctp
文件像這樣:
$this->Timeago->timeago($question['Question']['created']);
PS:CakeTime就派上用場了太多,檢查出api的可能性。
乾杯!
不知道任何其他信息,我會說最簡單的方法是用str_replace簡單地用正確的語言替換英文單詞。 –
我該怎麼做? – osos
http://www.php.net//manual/en/function.str-replace.php –