Я настраиваю проект SS и хочу добавить локали на основе URL (/en
, /gb
и т. Д.) С помощью аддона Silverstripe-Fluent (https://github.com/tractorcow-farm/silverstripe-fluent). Я успешно установил его и могудобавить локали, используя cms, но переводимые поля работают только для основного контента. Как сделать так, чтобы другие виджеты и объекты данных тоже переводились?
Я пытался заставить его работать для виджетов, следуя документации на github и выполняя перечисленные ниже действия.ниже.
mysite.yml
Silverstripe\SiteConfig\SiteConfig:
extensions:
- TCM\SiteConfig\Extensions\LdaUrlExtension
- TractorCow\Fluent\Extension\FluentExtension
SiteTree:
extensions:
- TractorCow\Fluent\Extension\FluentFilteredExtension
Widget:
extensions:
- TractorCow\Fluent\Extension\FluentVersionedExtension
translate:
- HTMLTitle
- HTMLContent
ContentWidget:
extensions:
- TractorCow\Fluent\Extension\FluentVersionedExtension
translate:
- HTMLTitle
- HTMLContent
Page:
translate:
- 'Heading'
- 'Description'
---
Name: myfluentconfig
---
TractorCow\Fluent\Extension\FluentDirectorExtension:
disable_default_prefix: false
---
Name: fluentfieldconfig
---
TractorCow\Fluent\Extension\FluentExtension:
field_include:
- Varchar(100)
- DBHTMLText
- HTMLTitle
- HTMLContent
PHP в widget.php или contentwidget.php
private static $db = array(
'HTMLTitle' => 'HTMLVarchar',
'HTMLContent' => 'HTMLText',
'PreviewBgImg' => 'HTMLText',
'TextPosition' => 'Varchar(6)',
'TextColour' => 'Varchar(5)',
'BackgroundColour' => 'Varchar(5)'
);
private static $translate = [
'HTMLTitle',
'HTMLText',
'HTMLContent'
];
Я ожидал, что это сделает мои поля виджетов контента также переводимыми, но, к сожалению, содержимое виджетов остается одинаковым для всех локалей.
Я также убедился, что я сделал dev/build?flush=all
и вручную даже очистил содержимое папки silverstripe-cache
.
Буду признателен за любую помощь. Спасибо.