Silverstripe 4:配置Fluent使Widget字段可翻译

时间:2019-07-10 13:50:31

标签: php yaml silverstripe silverstripe-4

我正在设置一个SS项目,并希望使用silverstripe流利的插件(https://github.com/tractorcow-farm/silverstripe-fluent)添加基于URL的语言环境(.my-btn { background-color: white; color: #2b526d; border-color: #2b526d; margin-right: 0px; margin-left: 0px; } .my-btn:hover { background-color: white!important; color: #dd3049; border-color: #dd3049; opacity: 1 !important; } /en等)。我已经成功安装了它,可以使用cms添加语言环境,但是可翻译字段仅适用于主要内容。如何使其他小部件和数据对象也可翻译?

我已尝试通过遵循github文档并执行下面列出的内容来使其适用于Widget。

mysite.yml

/gb

widget.php或contentwidget.php中的PHP

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

我希望这些使我的内容窗口小部件字段也可翻译,但不幸的是,所有区域设置的窗口小部件内容仍然相同。

我还确保执行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文件夹中的内容。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

在SS4中,您需要FQCN(完全限定的类名)进行配置,该类名包括完整的名称空间。这应该在您的配置中起作用:

SilverStripe\Widgets\Model\Widget:
  extensions:
    - TractorCow\Fluent\Extension\FluentVersionedExtension
  translate:
    - HTMLTitle
    - HTMLContent

类似于ContentWidget