[英]Kohana i18n using database
我是kohana的新手,正在嘗試將i18n從基於文件的數據庫修改為基於數據庫的數據庫。 基於本教程,我做了以下工作:在application/classes
目錄中創建新的類i18n
以覆蓋默認的__()
函數。
<?php
class I18n extends Kohana_I18n
{
function __($token, $lang = 'en')
{
$query = ORM::factory('Dictionary')->where('token', '=', $token)->find();
return $query->{"txt_" . $lang};
}
}
我有看起來像這樣的字典模型
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Dictionary extends ORM {
protected $_table_name = 'Dictionary';
}
得到錯誤消息:
http://screencast.com/t/r84oL1A1
我究竟做錯了什么? 有什么建議嗎? 也許類不會自動加載?
在這種實現中,您需要在View中使用:
I18n::__($message_to_translate);
不
__($message_to_translate);
並且必須將__()
函數聲明為static :
<?php defined('SYSPATH') or die('No direct script access.');
class I18n extends Kohana_I18n
{
public static function __($token, $lang = 'en')
{
$query = ORM::factory('Dictionary')->where('token', '=', $token)->find();
return $query->{"txt_" . $lang};
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.