SilverStripe Fluent 自动翻译行为
SilverStripe Fluent automatic translation behaviour
SilverStripe Fluent mod 似乎可以自动翻译 DataExtension
中的所有字段。要禁用它,我必须使用:private static $translate = 'none';
.
这很奇怪,因为当谈到 DataObjects
时,它的工作方式恰恰相反:没有任何内容会自动翻译,只有您明确指定要翻译的字段。
是否可以禁用 SS-Fluent mod 的这种自动翻译行为?了解 Fluent 自动翻译的其他内容也很有趣。
在代码中...
在 silverstripe 中,任何静态数组都可以在代码中设置,所以可以将其添加到 _confip.php
Config::inst()->update('MyDataObject', 'translate',<SET ME HERE>);
...将确保设置所需的值!
如果您想将相同的内容添加到 config.yml 中,那么...
MyDataObject:
translate:
- 'FieldOne'
- 'SomeOtherField'
...这在 https://github.com/tractorcow/silverstripe-fluent/blob/master/docs/en/configuration.md
中有更详细的介绍
只是建立在 Barry 的回答之上; Fluent 不翻译扩展,它翻译数据对象,默认情况下会自动翻译数据对象上与 Fluent.data_include
规则匹配的字段。将其视为将字段推入数据对象本身的扩展,fluent 将其视为由该扩展对象拥有,而不是扩展本身。
您 运行 遇到的问题是自动翻译行为,其中 translate
未定义。您可以按照 Barry 的回答为单个对象解决此问题。
如果要全局禁用所有自动字段翻译,可以将值从 Fluent.data_include
复制到 Fluent.data_exclude
。此列表中的字段类型将不会包含在本地化中(即使在 Fluent.data_include
中)。
---
Name: myfluentconfig
After: '#fluentconfig'
---
Fluent:
data_exclude:
- 'Text'
- 'Varchar'
- 'HTMLText'
- 'HTMLVarchar'
这意味着如果您有如下所示的数据对象(或扩展名),它将不会被自动翻译。
class MyObject extends DataObject {
private static $db = [
'Name' => 'Text'
];
}
SilverStripe Fluent mod 似乎可以自动翻译 DataExtension
中的所有字段。要禁用它,我必须使用:private static $translate = 'none';
.
这很奇怪,因为当谈到 DataObjects
时,它的工作方式恰恰相反:没有任何内容会自动翻译,只有您明确指定要翻译的字段。
是否可以禁用 SS-Fluent mod 的这种自动翻译行为?了解 Fluent 自动翻译的其他内容也很有趣。
在代码中...
在 silverstripe 中,任何静态数组都可以在代码中设置,所以可以将其添加到 _confip.php
Config::inst()->update('MyDataObject', 'translate',<SET ME HERE>);
...将确保设置所需的值!
如果您想将相同的内容添加到 config.yml 中,那么...
MyDataObject:
translate:
- 'FieldOne'
- 'SomeOtherField'
...这在 https://github.com/tractorcow/silverstripe-fluent/blob/master/docs/en/configuration.md
中有更详细的介绍只是建立在 Barry 的回答之上; Fluent 不翻译扩展,它翻译数据对象,默认情况下会自动翻译数据对象上与 Fluent.data_include
规则匹配的字段。将其视为将字段推入数据对象本身的扩展,fluent 将其视为由该扩展对象拥有,而不是扩展本身。
您 运行 遇到的问题是自动翻译行为,其中 translate
未定义。您可以按照 Barry 的回答为单个对象解决此问题。
如果要全局禁用所有自动字段翻译,可以将值从 Fluent.data_include
复制到 Fluent.data_exclude
。此列表中的字段类型将不会包含在本地化中(即使在 Fluent.data_include
中)。
---
Name: myfluentconfig
After: '#fluentconfig'
---
Fluent:
data_exclude:
- 'Text'
- 'Varchar'
- 'HTMLText'
- 'HTMLVarchar'
这意味着如果您有如下所示的数据对象(或扩展名),它将不会被自动翻译。
class MyObject extends DataObject {
private static $db = [
'Name' => 'Text'
];
}