Module 在PrestaShop类重写中,新翻译的正确域是什么?
您能帮助我使用Module 在PrestaShop类重写中,新翻译的正确域是什么?,module,overriding,prestashop,translation,Module,Overriding,Prestashop,Translation,您能帮助我使用$this->trans()函数中的“domain”参数吗 在我自己的模块中,我有一个CartRule类的重写。我的覆盖工作正常-它由Presta和代码函数从我的模块复制到覆盖文件夹 我有一个新的翻译字符串在里面,我不知道给“域”什么值 我的代码: $this->trans('Promotion codes cannot be combined', array(), 'Shop.Notifications.Error'); \\ ID, parameters, domain
$this->trans()
函数中的“domain”参数吗
在我自己的模块中,我有一个CartRule类的重写。我的覆盖工作正常-它由Presta和代码函数从我的模块复制到覆盖文件夹
我有一个新的翻译字符串在里面,我不知道给“域”什么值
我的代码:
$this->trans('Promotion codes cannot be combined', array(), 'Shop.Notifications.Error'); \\ ID, parameters, domain
对于我尝试过的域:
$this->l
,这在本文中不可用。
我也尝试了
$this->module->trans()
,但是“module”在这个上下文中不可用。首先在您的模块中,我们必须指定哪些字符串是可翻译的
为Prestashop(版本1.7.5及更高版本)翻译:
第三方物流:
PHP:
为Prestashop(1.7.6版及更新版本)翻译:
第三方物流:
细枝:
PHP:
您可以看到,我们需要使用模块名称(大写)声明其为模块中的可翻译字符串,然后定义可翻译字符串的位置
重要提示
使用prestashop新翻译系统需要在模块中声明。因此,在主php文件mymodule.php中添加以下代码:
public function isUsingNewTranslationSystem()
{
return true;
}
PrestaShop开发者文档(翻译)
有关经典模块翻译系统(1.7.5和)的信息,请参阅
翻译您的模块:
定义所有可翻译字符串后,我们将模块安装到Prestashop web shop
安装模块后,我们必须转到:
很高兴知道,当您有一个模块的已翻译PHP文件(例如en.PHP)时,您可以多次翻译相同的en.PHP文件,并将其保存在不同的等位代码下,例如nl.PHP。首先,在您的模块中,我们必须指定哪些字符串是可翻译的 为Prestashop(版本1.7.5及更高版本)翻译: 第三方物流: PHP: 为Prestashop(1.7.6版及更新版本)翻译: 第三方物流: 细枝: PHP: 您可以看到,我们需要使用模块名称(大写)声明其为模块中的可翻译字符串,然后定义可翻译字符串的位置 重要提示 使用prestashop新翻译系统需要在模块中声明。因此,在主php文件mymodule.php中添加以下代码:
public function isUsingNewTranslationSystem()
{
return true;
}
PrestaShop开发者文档(翻译)
有关经典模块翻译系统(1.7.5和)的信息,请参阅
翻译您的模块:
定义所有可翻译字符串后,我们将模块安装到Prestashop web shop
安装模块后,我们必须转到:
很高兴知道,当您有一个模块的已翻译PHP文件(例如en.PHP)时,您可以多次翻译相同的en.PHP文件,并将其保存在不同的等位代码下,例如nl.PHP。对不起,忘了说这是PrestaShop v1.7.6.5对不起,忘了说这是PrestaShop v1.7.6.5谢谢。你重复了我在问题中所说的大部分内容。我相信你答案的相关部分是使用
isUsingNewTranslationSystem
功能,我会尝试一下。这只是一种给出完整答案的方式,可以在将来帮助其他人,因为翻译方法最近才有所改变。正在使用新的翻译系统
是您在编码时犯的错误。你也没有指出你在哪里使用哪个版本,这就是为什么我需要指出新的翻译只适用于最新的prestashop版本。我解决了我的问题!为了强调我必须使用的内容:1)$this->trans('My text to translate',array(),'Modules.Modulename.Admin')
和2)正在使用新的TranslationSystem
。在PrestaShop v1.7.6.5中。谢谢@CrezzurThanks。你重复了我在问题中所说的大部分内容。我相信你答案的相关部分是使用isUsingNewTranslationSystem
功能,我会尝试一下。这只是一种给出完整答案的方式,可以在将来帮助其他人,因为翻译方法最近才有所改变。正在使用新的翻译系统
是您在编码时犯的错误。您也没有指出您使用的版本,这就是我需要指出的原因
{l s='My text to translate' d='Modules.Modulename.Somefile'}
{{ 'My text to translate'|trans({}, 'Modules.Modulename.Admin') }}
// For back-office translations we use "Admin"
$this->trans('My text to translate', array(), 'Modules.Modulename.Admin');
// For front-office translations we use "Shop"
$this->trans('My text to translate', array(), 'Modules.Modulename.Shop');
public function isUsingNewTranslationSystem()
{
return true;
}