Silverstripe 如何翻译$url\u处理程序?
我的情况是,我需要为不同的国家翻译以下Silverstripe 如何翻译$url\u处理程序?,silverstripe,Silverstripe,我的情况是,我需要为不同的国家翻译以下$url\u处理程序 因此,在英文网站上,URL如下所示: 我需要能够翻译“团体培训”的网址的一部分。我已经用\u t()方法翻译了网站的其余部分 我当前的设置: class GymLocationPage_Controller extends Page_Controller { private static $allowed_actions = array( 'currentSpecials', 'sevenDay
$url\u处理程序
因此,在英文网站上,URL如下所示:
我需要能够翻译“团体培训”的网址的一部分。我已经用\u t()
方法翻译了网站的其余部分
我当前的设置:
class GymLocationPage_Controller extends Page_Controller {
private static $allowed_actions = array(
'currentSpecials',
'sevenDayFreeTrial',
'groupTraining'
);
private static $url_handlers = array(
'current-specials' => 'currentSpecials',
'trial' => 'sevenDayFreeTrial',
'group-training' => 'groupTraining'
);
}
如何实现这一点?您可以在控制器的init()函数中更新配置,如下所示:
public function init(){
父::init();
//定义你的动作。
$translatedCurrentSpecials=\u t('Actions.CURRENT\u SPECIALS','aktuella kampanjer');
$translatedSevenDayFreeTrial=\u t('Actions.Sevenday\u TRIAL','sjudagars prova pa period');
//定义url处理程序。
$urlHandlers=$this->config()->url\u处理程序;
$translatedUrlHandlers=[
$translatedCurrentSpecials=>currentSpecials,
$translatedSevenDayFreeTrial=>“sevenDayFreeTrial”
];
//更新配置文件。
Config::inst()->更新(
$this->class,
“url_处理程序”,
$translatedUrlHandlers+$urlHandlers//对于前置而非追加很重要。
);
}
我对此很感兴趣,因为我不确定你是否能……完美!我发现我不需要在init
中设置$allowed\u actions
。我只是像您通常在私有静态$allowed\u actions
中那样设置允许的操作,但在init中根据您的代码设置$url\u处理程序。非常感谢!:)两年前,我们在奥地利林茨的第一届StripeCon上进行了讨论,我编写了一个工作示例,请参见