overriding of template with module 中的英文翻译
English translation in overriding of template with module
我需要覆盖 class 和模板。为此,我选择创建一个新模块,以便在 Prestashop 更新时不被阻止。对于覆盖 class,我没有问题。
担心的是重写模板,字段是英文的,而在我网站的其余部分,它们是法语的(当我卸载模块时,它们又是法语的)。
在我的模块中,我用这种方式覆盖了模板:
public function hookDisplayOverrideTemplate($params)
{
$controllerName = get_class($params['controller']);
$tpl = $this->local_path . 'override/tpl/' . $controllerName . '.tpl';
if (file_exists($tpl))
{
return $tpl;
}
return false;
}
在我的 .tpl 文件中,没有翻译的字段是这样的:
{l s='Your addresses'}
因此,我尝试在 /my_module/translations/fr.php 中插入 fr.php 文件,并对其进行了编辑:
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{customaddresses}prestashop>customaddresses_3908e1afa0ff22fbf112aff3c5ba55c1'] = 'Vos adresses';
然后,我修改了 .tpl 文件:
{l s='Your addresses' mod='customaddresses'}
我的字段仍然是英文的。
有人有建议的解决方案吗?
经过大量研究,我发现了我的问题。
我的解决方案是:$_MODULE['<{customaddresses}prestashop>address_0f68b904e33d9ac04605aecc958bcf52'] = 'Informations supplémentaires';
我用 "address_"(我的覆盖模板)替换了 "customaddresses_"。
我保留了:
{l s='Your addresses' mod='customaddresses'}
为了更恰当,我稍微更改了我的方法 hookDisplayOverrideTemplate :
public function hookDisplayOverrideTemplate($params)
{
$controllerName = get_class($params['controller']);
$tpl = $this->local_path . 'override/tpl/' . strtolower(str_replace("Controller", "", $controllerName)) . '.tpl';
if (file_exists($tpl))
{
return $tpl;
}
return false;
}
我需要覆盖 class 和模板。为此,我选择创建一个新模块,以便在 Prestashop 更新时不被阻止。对于覆盖 class,我没有问题。
担心的是重写模板,字段是英文的,而在我网站的其余部分,它们是法语的(当我卸载模块时,它们又是法语的)。
在我的模块中,我用这种方式覆盖了模板:
public function hookDisplayOverrideTemplate($params)
{
$controllerName = get_class($params['controller']);
$tpl = $this->local_path . 'override/tpl/' . $controllerName . '.tpl';
if (file_exists($tpl))
{
return $tpl;
}
return false;
}
在我的 .tpl 文件中,没有翻译的字段是这样的:
{l s='Your addresses'}
因此,我尝试在 /my_module/translations/fr.php 中插入 fr.php 文件,并对其进行了编辑:
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{customaddresses}prestashop>customaddresses_3908e1afa0ff22fbf112aff3c5ba55c1'] = 'Vos adresses';
然后,我修改了 .tpl 文件:
{l s='Your addresses' mod='customaddresses'}
我的字段仍然是英文的。 有人有建议的解决方案吗?
经过大量研究,我发现了我的问题。
我的解决方案是:$_MODULE['<{customaddresses}prestashop>address_0f68b904e33d9ac04605aecc958bcf52'] = 'Informations supplémentaires';
我用 "address_"(我的覆盖模板)替换了 "customaddresses_"。
我保留了:
{l s='Your addresses' mod='customaddresses'}
为了更恰当,我稍微更改了我的方法 hookDisplayOverrideTemplate :
public function hookDisplayOverrideTemplate($params)
{
$controllerName = get_class($params['controller']);
$tpl = $this->local_path . 'override/tpl/' . strtolower(str_replace("Controller", "", $controllerName)) . '.tpl';
if (file_exists($tpl))
{
return $tpl;
}
return false;
}