2

I'm setting up a Typo3 site, with a default language of English, and a German translation (id=1).

However, on the German translation, I need to be able to create additional content elements in the 'default' column that do not exist in the default.

However, whenever I try to create new content elements, they are showing up in BE, but on the frontend it only renders ones that were created with the 'Copy Default' button.

This is my config:

config.linkVars = L
config.uniqueLinkVars = 1
config.sys_language_overlay = default
config.sys_language_mode = content_overlay
config.language = en
config.locale_all = en_EN
config.htmlTag_langKey = en-EN
config.sys_language_uid = 0
[browser = msie]
config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xmlns:v=”urn:schemas-microsoft-com:vml” xml:lang="en"

[globalVar = GP:L = 1]
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de-DE
config.sys_language_uid = 1
[globalVar = GP:L = 1] && [browser = msie]
config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xmlns:v=”urn:schemas-microsoft-com:vml” xml:lang="de"
[global]

I've copied over the 2 default elements, then tried to add additional elements that are not rendering.

I've not worked with TYPO3 before, but I'm pretty sure those additional content elements should be rendered? Do I need to include any additional markup in the templates to enable it?

Cœur
  • 37,241
  • 25
  • 195
  • 267
Liam Wiltshire
  • 1,254
  • 13
  • 26
  • Try to make your content element in Default and Hide it there, and make a translation to the other language but not Hide there. You should see it in translated side but not in the default. – András Ottó Jun 19 '13 at 10:13
  • @AndrásOttó - thanks for the suggstion, I'm still only seeing the 'unhidden' elements from default - if I unhide it in default, then I see the related element in the German translation, but when I re-hide it from default, it then doesn't display on the translated page again. – Liam Wiltshire Jun 19 '13 at 10:17

2 Answers2

3

Try this:

config.sys_language_overlay = hideNonTranslated
config.sys_language_mode = strict

[globalVar = GP:L = 1]
    config.sys_language_overlay = 0
[end]

By setting config.sys_language_overlay = 0, TYPO3 should display your german records even if there is no record in the default language.

Also i corrected your default values for config.sys_language_overlay and config.sys_language_mode since they are not valid.

The documentation can be found at TSREF.

Shufla
  • 872
  • 4
  • 10
  • Hi Shufla, Thanks - pointing me to the documentation (which to this point I hadn't found) helped! I actually had to remove the config.sys_language_overlay - as per the documentation "If set, records from certain tables selected by the CONTENT cObject using the "languageField" setting will select the default language (0) instead of any language set by sys_language_uid / sys_language_mode" – Liam Wiltshire Jun 19 '13 at 10:58
  • Oh, i confused the value for sys_language_overlay. I edited my post and set it to "0", then it works! – Shufla Jun 19 '13 at 11:11
3

Answering my own question for future visitors...

When you set config.sys_language_overlay it tells Typo3 to actually get all the records from the default language, and then just overlay the matches over the top - that way, it will only show translated elements that have been descended from the default language.

Taking that out completly, it then allows you to use as many content elements in a translation as you want, without paying attention to the default language.

As @Shufla mentioned, using config.sys_language_mode = strict then means that any translations that have less elements than the default won't then inherit the default language ones.

Liam Wiltshire
  • 1,254
  • 13
  • 26