Php 使用数据库的kohanai18n
我是kohana的新手,正在尝试将i18n从基于文件修改为基于数据库。基于此,我做了以下工作:在Php 使用数据库的kohanai18n,php,database,orm,translation,kohana,Php,Database,Orm,Translation,Kohana,我是kohana的新手,正在尝试将i18n从基于文件修改为基于数据库。基于此,我做了以下工作:在application/classes目录中创建了新的类i18n,以覆盖默认的\uu()函数 <?php class I18n extends Kohana_I18n { function __($token, $lang = 'en') { $query = ORM::factory('Dictionary')->where('token', '='
application/classes
目录中创建了新的类i18n
,以覆盖默认的\uu()
函数
<?php
class I18n extends Kohana_I18n
{
function __($token, $lang = 'en')
{
$query = ORM::factory('Dictionary')->where('token', '=', $token)->find();
return $query->{"txt_" . $lang};
}
}
在此实现中,您需要在视图中使用:
I18n::__($message_to_translate);
不是
并且您必须将\uuu()
函数声明为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};
}
}
“[…]基于数据库。基于[…]什么?呼市
__($message_to_translate);
<?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};
}
}