Internationalization 为什么内联/IRE记录获取sys\u language\u uid=0?

Internationalization 为什么内联/IRE记录获取sys\u language\u uid=0?,internationalization,typo3,typo3-9.x,Internationalization,Typo3,Typo3 9.x,当在后端创建sys\u language\u uid=2(无翻译/l10n\u parent=0)中的tt\u content记录,并在类型=>'inline'列tx\u foo\u slides中插入字段时(定义如下),tx\u foo\u domain\u model\u幻灯片中新创建的记录是使用sys\u language\u uid=0创建的。将图像添加到幻灯片的图像字段将创建一个sys\u文件\u引用,其中sys\u语言\u uid=2这是正确的吗?如果没有,我该如何更改此设置?我希望

当在后端创建
sys\u language\u uid=2
(无翻译/
l10n\u parent=0
)中的
tt\u content
记录,并在
类型=>'inline'
tx\u foo\u slides
中插入字段时(定义如下),
tx\u foo\u domain\u model\u幻灯片中新创建的记录是使用
sys\u language\u uid=0
创建的。将图像添加到幻灯片的图像字段将创建一个
sys\u文件\u引用
,其中
sys\u语言\u uid=2
这是正确的吗?如果没有,我该如何更改此设置?我希望所有记录(
tt\u content
tx\u foo\u slider\u slides
sys\u file\u reference
)都是用
sys\u language\u uid=2
创建的。似乎在更新之前创建的记录的
sys\u language\u uid
设置为2,但我不确定在8到9之间发生了什么变化:这是核心变化吗?还是我的站点/语言配置
sys\u language\u uid
在TCA中的默认值为0,但删除该值并创建其他记录并没有显示任何不同的行为

当试图通过ExtBase存储库加载记录时,我似乎必须使用
setreservesyslanguage(false)

  • 使用
    setLanguageOverlyMode(false)
  • 我确实使用
    setlanguageOverlyMode(true)
    获得结果,但是图像字段是
    NULL
    • 。。。但是,如果我也手动将
      tx\u foo\u domain\u model\u slide.sys\u language\u uid
      更改为2,则在BE和FE/ExtBase中看起来很好(
      image
      是一个有效的
      FileReference
会出什么问题?可能需要改变什么?我认为使用非默认语言创建记录是一种受支持的情况?对我来说,根本原因似乎是使用错误的语言集创建记录

我的配置:

  • 类型3 9.5.5(从8更新)
  • config.tx\u extbase.features.consistentTranslationOverlayHandling=1
    (但也测试了
    0
  • config.sys\u language\u overlay=0
    (我不认为
    1
    hideNonTranslated
    改变了任何行为)
  • 站点(和多站点)。此特定网站提供两种语言:
    • 已禁用德语语言1(
      languageId:'0'
    • 语言2,英语(
      languageId:'2'
      )已启用<代码>后备类型:严格
  • 自定义表格
    tx\u foo\u domain\u model\u幻灯片
    ,包括语言字段和
    图像
    列:
    • tt\u content
      中有一列
      tx\u foo\u slider\u幻灯片

    这种情况下的问题是,
    tx\u foo\u domain\u model\u slide.sys\u language\u uid
    定义为:

    'sys_language_uid' => [
      'config' => [
        'type' => 'passthrough',
        'default' => '',
      ],
    ],
    
    根据报告:

    • 默认情况下,FormEngine不会为传递类型呈现任何内容。但它可以与自定义renderType组合,使其呈现某些内容。不过,用户类型更适合此类用例
    • 类型传递字段值通常也不会在后端的其他位置呈现

    这导致未设置
    sys\u language\u uid
    (并保持在0)。因此,
    sys\u language\u uid
    必须定义为
    'type
    =>'select'`或类似的类型。要隐藏它,可以将其放入一个幻灯片中,如前所述。

    本例中的问题是,
    tx\u foo\u domain\u model\u slide.sys\u language\u uid
    定义为:

    'sys_language_uid' => [
      'config' => [
        'type' => 'passthrough',
        'default' => '',
      ],
    ],
    
    根据报告:

    • 默认情况下,FormEngine不会为传递类型呈现任何内容。但它可以与自定义renderType组合,使其呈现某些内容。不过,用户类型更适合此类用例
    • 类型传递字段值通常也不会在后端的其他位置呈现
    这导致未设置
    sys\u language\u uid
    (并保持在0)。因此,
    sys\u language\u uid
    必须定义为
    'type
    =>'select'`或类似的类型。要隐藏它,可以将其放入一个文件夹中,如所述

    'sys_language_uid' => [
      'config' => [
        'type' => 'passthrough',
        'default' => '',
      ],
    ],