Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File SilverStripe文件标题翻译_File_Internationalization_Silverstripe - Fatal编程技术网

File SilverStripe文件标题翻译

File SilverStripe文件标题翻译,file,internationalization,silverstripe,File,Internationalization,Silverstripe,是否可以为资产文件夹中的所有文件翻译文件标题 我安装了可翻译插件,但i18n SilverStripe章节或插件文档中没有文件翻译文档 在myProductPage中,我有一个自定义字段用于文件上载: $fields->addFieldToTab( 'Root.Attachments', $uploadField = UploadField::create('Files', 'Dateien') ); 这些文件可以在英语和德语网站上找到。我需要为每种语言翻译文件标题 我

是否可以为资产文件夹中的所有文件翻译
文件
标题

我安装了可翻译插件,但i18n SilverStripe章节或插件文档中没有文件翻译文档

在my
ProductPage
中,我有一个自定义字段用于
文件
上载:

$fields->addFieldToTab(
    'Root.Attachments',
    $uploadField = UploadField::create('Files', 'Dateien')
);
这些文件可以在英语和德语网站上找到。我需要为每种语言翻译
文件
标题

我尝试了以下操作,但当我更改
文件
标题时,德语和英语的标题都会更改:

// Apply Translatable modifications
$this->applyTranslatableFieldsUpdate($fields, 'updateCMSFields');

当你开始做这件事时,我建议你

在创建字段时回答,然后在其中指定需要使用的标题

函数是silverstripe用于所有字段的函数,因此您只需要为指定函数找到正确的名称空间和实体名称字符串

_t("Namespace.Entity","This is a string") 
对于突出显示的字段,它位于对象
文件
中,该文件是名称空间,实体是
名称
,您可以在
framework\lang\en.yml

要覆盖它,您可以在mysite或模块文件夹中创建自己的lang文件,并使用以下详细信息覆盖它

en:
  File:
    Name: My New Name Title

要在
文件
类上启用可翻译模块,我们必须在
mysite/\u config.php
文件中向
文件
添加
translateable
扩展名:

File::add_extension('Translatable');
但是,我认为可翻译模块目前不适用于文件

访问资产时出错,因为可翻译类尝试将字段添加到
文件夹
类,这会导致错误。此问题已在最新版本中修复

下一个问题是
translateable
要求对象具有
CMSEditLink
函数
SiteTree
SiteConfig
具有
CMSEditLink
功能,但
文件
(和
数据对象
)没有

为了解决这个问题,我们可以创建一个
文件扩展名
,为
文件
定义一个
CMSEditLink
函数:

class FileExtension extends DataExtension {
    public function CMSEditLink() {
        return singleton('AssetAdmin')->Link('EditForm/field/File/item/' . $this->owner->ID . '/edit');
    }
}
要启用此扩展,我们将以下内容添加到
config.yml

File:
  extensions:
    - FileExtension
完成所有这些之后,我们可以创建文件翻译并查看每个文件的翻译列表,但是翻译文件链接重定向到根管理员屏幕。如果设置了
?Locale=
URL参数,则资产链接似乎将重定向。此URL参数由可翻译模块设置


因此,在所有这些工作之后,这仍然不起作用。

你能更清楚地了解你想要翻译的内容和你尝试过的内容吗请更新我的问题我不想翻译标签“Titel”我想翻译输入字段中的文本…我已经提交了pull请求:我发现的下一个问题是
CMSEditLink
SiteTree
上的一个函数,而不是
DataObject
File
。在可翻译的
代码中,检查此函数是否存在。这将永远不会在任何东西上工作,除了页面:我使用SiteConfig插件来翻译,翻译正在工作。SiteConfig扩展了DataObject。是的,这是因为
SiteConfig
具有
CMSEditLink
功能:我们可能需要做的是通过扩展名将
CMSEditLink
功能添加到
文件
,以定义文件的CMS编辑链接。