Silverstripe 4:配置 Fluent 以使 Widget 字段可翻译
Silverstripe 4: Configuring Fluent to make Widget fields translatable
我正在建立一个 SS 项目,并希望使用 silverstripe-fluent 插件(https://github.com/tractorcow-farm/silverstripe-fluent).我已经成功安装它并可以使用 cms 添加语言环境,但可翻译字段仅适用于主要内容。我如何使其他小部件和数据对象也可翻译?
我已尝试按照 github 文档并执行下面列出的操作,使其适用于 Widgets。
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 或内容widget.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
文件夹的内容。
如有任何帮助,我们将不胜感激。谢谢。
在 SS4 中,您需要 FQCN(完全限定的 class 名称)进行配置,class 名称包括完整的命名空间。这应该适用于您的配置:
SilverStripe\Widgets\Model\Widget:
extensions:
- TractorCow\Fluent\Extension\FluentVersionedExtension
translate:
- HTMLTitle
- HTMLContent
类似于ContentWidget
我正在建立一个 SS 项目,并希望使用 silverstripe-fluent 插件(https://github.com/tractorcow-farm/silverstripe-fluent).我已经成功安装它并可以使用 cms 添加语言环境,但可翻译字段仅适用于主要内容。我如何使其他小部件和数据对象也可翻译?
我已尝试按照 github 文档并执行下面列出的操作,使其适用于 Widgets。
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 或内容widget.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
文件夹的内容。
如有任何帮助,我们将不胜感激。谢谢。
在 SS4 中,您需要 FQCN(完全限定的 class 名称)进行配置,class 名称包括完整的命名空间。这应该适用于您的配置:
SilverStripe\Widgets\Model\Widget:
extensions:
- TractorCow\Fluent\Extension\FluentVersionedExtension
translate:
- HTMLTitle
- HTMLContent
类似于ContentWidget