首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SilverStripe Fluent自动翻译行为

SilverStripe Fluent自动翻译行为
EN

Stack Overflow用户
提问于 2016-04-27 10:34:28
回答 2查看 722关注 0票数 2

SilverStripe Fluent模块似乎自动转换了DataExtension中的所有字段。要禁用它,我必须使用:private static $translate = 'none';

这很奇怪,因为当涉及到DataObjects时,它的工作方式正好相反:没有什么是自动翻译的,只有您明确告诉要翻译的字段。

是否有可能禁用SS模块的自动翻译行为?了解流利的其他内容自动翻译也会很有趣。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-12 05:33:14

仅仅是基于巴里的答案;Fluent不翻译扩展,它会翻译DataObjects,默认情况下,它会自动转换数据对象上与Fluent.data_include规则匹配的字段。将其看作是将字段推入数据对象本身的扩展,而非扩展本身,而非扩展本身。

您遇到的问题是自动转换行为,其中没有定义translate。您可以按照Barry的答案来解决单个对象的问题。

如果要全局禁用所有自动字段转换,可以将值从Fluent.data_include复制到Fluent.data_exclude。此列表中的字段类型将不包括本地化(即使在Fluent.data_include中)。

代码语言:javascript
复制
---
Name: myfluentconfig
After: '#fluentconfig'
---
Fluent:
  data_exclude:
    - 'Text'
    - 'Varchar'
    - 'HTMLText'
    - 'HTMLVarchar'

这意味着,如果您有如下数据对象(或扩展),它将不会被自动翻译。

代码语言:javascript
复制
class MyObject extends DataObject {
    private static $db = [
        'Name' => 'Text'
    ];
}
票数 2
EN

Stack Overflow用户

发布于 2016-04-27 10:48:38

在密码里..。

在silverstripe中,可以在代码中设置任何静态数组,所以可以将其添加到_confip.php中。

代码语言:javascript
复制
Config::inst()->update('MyDataObject', 'translate',<SET ME HERE>);

...will工作确保设置所需的值!

如果你想在config.yml中添加同样的东西.

代码语言:javascript
复制
MyDataObject:
  translate:
    - 'FieldOne'
    - 'SomeOtherField'

...this在https://github.com/tractorcow/silverstripe-fluent/blob/master/docs/en/configuration.md中有更详细的介绍。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36887328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档