我想在插件中创建一个新的客户组。此客户组的名称应该是可翻译的。我怎样才能做到这一点?这是我到现在为止的代码:
$customerGroupRepository->create([
[
'id' => Uuid::randomHex(),
'registrationActive' => false,
'displayGross' => true,
'translations' => [
Defaults::LANGUAGE_SYSTEM => [
'name' => 'Customer group',
],
'de_DE' => [
'name' => 'Kundengruppe',
],
'en_GB' => [
'name' => 'Customer group',
]
]
],
], $context);
但这行不通。无论我在商店软件后端选择哪种语言,客户组的名称都是"客户组"。
区域设置需要包括连字符:de-DE
、en-GB
使用正确的语言环境,应该将它们解析为language.id
。
不过,一般来说,首先获取language
实体的id
,然后将其用作密钥并不是一个坏主意。作为一种预防措施,确保语言/区域设置存在。
带language.id
:
[
// ...
'translations' => [
Defaults::LANGUAGE_SYSTEM => [
'name' => 'Customer group',
],
'9e4f6342174749aa897c5b64d57d7996' => [
'name' => 'Kundengruppe',
],
'0a7f24f26e48436d9f3b343fc43b65b7' => [
'name' => 'Customer group',
]
]
]
带区域设置:
[
// ...
'translations' => [
Defaults::LANGUAGE_SYSTEM => [
'name' => 'Customer group',
],
'de-DE' => [
'name' => 'Kundengruppe',
],
'en-GB' => [
'name' => 'Customer group',
]
]
]
两者都应该有效。