TYPO3 默认 locallang.xlf 当网站的基本语言不是英语时
TYPO3 default locallang.xlf when the website's base language is not English
我有一个以希腊语为基本语言的网站。所以在我的液体上我有一个 <f:translate key="more_button" />
viewhelper。
由于 locallang.xlf 必须始终使用英文,我无法添加名称为 en.locallang.xlf 的文件,所以我不知道如何将其转换为希腊语。
我试图用 TypoScript 覆盖它,但我失败了。
我试过类似的东西:
plugin.tx_akmyBasebase._LOCAL_LANG.gr.more_button = Value
plugin.tx_ak_myBase_base._LOCAL_LANG.gr.more_button = Value
尽管在我的 TOB 上我的插件没有显示,因为我没有包含任何静态模板,所以我不知道这个想法有多有效。
接下来我尝试的是:locallang.xlf
1.
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2017-07-18T14:10:33Z" product-name="bw_apoKardias_base">
<header/>
<body>
<trans-unit id="more_button" xml:space="preserve">
<source>More</source>
</trans-unit>
</body>
</file>
</xliff>
并且我创建了一个文件 gr.locallang.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0">
<file source-language="en" target-language="gr" datatype="plaintext" original="messages" date="2017-07-18T14:10:33Z" product-name="bw_apoKardias_base">
<header/>
<body>
<trans-unit id="more_button" xml:space="preserve">
<source>More</source>
<target>Value</target>
</trans-unit>
</body>
</file>
</xliff>
我希望 TYPO3 能以某种方式理解(TypoScript 配置)哪种语言是我的基本语言,它会自动读取 gr.locallang 但它不起作用。
我的 TypoScript:
config {
uniqueLinkVars = 1
linkVars = L(int)
sys_language_uid = 0
sys_language_mode = content_fallback;2,1,0
sys_language_overlay = 0
language = gr
locale_all = gr_GR.utf8
htmlTag_langKey = el
htmlTag_dir = ltr
htmlTag_setParams = lang="el" dir="ltr" class="no-js"
}
AND
[globalVar = GP:L = 1]
config {
sys_language_uid = 1
language = en
locale_all = en_EN.UTF-8
htmlTag_setParams = lang="en" dir="ltr" class="no-js"
}
[global]
有什么想法吗?
编辑
@Morgus Lethe 的回答后,我的问题实际上是.
。显然这个 .
是使多语言功能正常工作所必需的。去图吧。
如果不是@Bernd Wilke πφ 也指出我的语言前缀是错误的,我将找不到解决我的问题的方法。所以谢谢你们的帮助。
此致,
您需要适当的语言配置,以便 TYPO3 知道您当前使用的是什么语言。
在TYPO3 9之前(你用的是什么版本?)是这样的打字稿:
// no sys_language record: uid=0
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE.UTF-8
config.htmlTag_langKey = de
[globalVar = GP:L = 1]
// sys_langugage record with uid=1, does not need to match the L value!
config.sys_language_uid = 1
config.language = en
config.locale_all = en_US.UTF-8
config.htmlTag_langKey = en
[global]
从 TYPO3 9 开始,语言配置在站点配置中完成:
rootPageId: 2
base: 'https://www.beispiel.de/'
languages:
-
languageId: '0'
title: Deutsch
navigationTitle: ''
base: /
locale: de_DE.UTF-8
iso-639-1: de
hreflang: de-DE
direction: ltr
typo3Language: de
flag: de
-
languageId: '1'
title: English
navigationTitle: ''
# base: 'https://www.example.com/'
base: /en/
locale: en_US.UTF-8
iso-639-1: en
hreflang: en-US
direction: ltr
typo3Language: default
flag: us
fallbackType: strickt
:
从 URL TYPO3 可以检测当前语言:在 URL 参数 L(TYPO3 <9)或域或路径段(自 TYPO3 9)上使用 TS 条件并使用正确的翻译文件。
我只知道 Typo3 v9.5,它有很好的多语言功能,但我有一个非常相似的情况:
我的默认语言是斯洛文尼亚语,url 是 http://example.com
并且在站点配置中将英语定义为额外的站点语言,然后通过列表模块将其添加到我的站点中。 url 是 http://example.com/en/
为了翻译标签(例如),我有我的 locallang.xlf 文件,其中包含如下内容:
<trans-unit id="common.contact" xml:space="preserve">
<source>Contact</source>
</trans-unit>
然后我有我的 sl.locallang.xlf 文件(斯洛文尼亚语),其中包含如下内容:
<trans-unit id="common.contact" xml:space="preserve">
<source>Contact</source>
<target>Kontakt</target>
</trans-unit>
然后我可以在我的流体模板中使用它来翻译标签:
<p>
<f:translate key="LLL:EXT:myext/Resources/Private/Language/locallang.xlf:common.contact" />
</p>
Typo3 然后会自动检测应该显示的语言并使用适当的翻译。
小心,我认为您必须使用 .
字符来定义标签,并确保您在语言配置中具有正确的语言标签、区域设置和 iso 代码。
我有一个以希腊语为基本语言的网站。所以在我的液体上我有一个 <f:translate key="more_button" />
viewhelper。
由于 locallang.xlf 必须始终使用英文,我无法添加名称为 en.locallang.xlf 的文件,所以我不知道如何将其转换为希腊语。
我试图用 TypoScript 覆盖它,但我失败了。
我试过类似的东西:
plugin.tx_akmyBasebase._LOCAL_LANG.gr.more_button = Value
plugin.tx_ak_myBase_base._LOCAL_LANG.gr.more_button = Value
尽管在我的 TOB 上我的插件没有显示,因为我没有包含任何静态模板,所以我不知道这个想法有多有效。
接下来我尝试的是:locallang.xlf
1.
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2017-07-18T14:10:33Z" product-name="bw_apoKardias_base">
<header/>
<body>
<trans-unit id="more_button" xml:space="preserve">
<source>More</source>
</trans-unit>
</body>
</file>
</xliff>
并且我创建了一个文件 gr.locallang.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0">
<file source-language="en" target-language="gr" datatype="plaintext" original="messages" date="2017-07-18T14:10:33Z" product-name="bw_apoKardias_base">
<header/>
<body>
<trans-unit id="more_button" xml:space="preserve">
<source>More</source>
<target>Value</target>
</trans-unit>
</body>
</file>
</xliff>
我希望 TYPO3 能以某种方式理解(TypoScript 配置)哪种语言是我的基本语言,它会自动读取 gr.locallang 但它不起作用。
我的 TypoScript:
config {
uniqueLinkVars = 1
linkVars = L(int)
sys_language_uid = 0
sys_language_mode = content_fallback;2,1,0
sys_language_overlay = 0
language = gr
locale_all = gr_GR.utf8
htmlTag_langKey = el
htmlTag_dir = ltr
htmlTag_setParams = lang="el" dir="ltr" class="no-js"
}
AND
[globalVar = GP:L = 1]
config {
sys_language_uid = 1
language = en
locale_all = en_EN.UTF-8
htmlTag_setParams = lang="en" dir="ltr" class="no-js"
}
[global]
有什么想法吗?
编辑
@Morgus Lethe 的回答后,我的问题实际上是.
。显然这个 .
是使多语言功能正常工作所必需的。去图吧。
如果不是@Bernd Wilke πφ 也指出我的语言前缀是错误的,我将找不到解决我的问题的方法。所以谢谢你们的帮助。
此致,
您需要适当的语言配置,以便 TYPO3 知道您当前使用的是什么语言。
在TYPO3 9之前(你用的是什么版本?)是这样的打字稿:
// no sys_language record: uid=0
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE.UTF-8
config.htmlTag_langKey = de
[globalVar = GP:L = 1]
// sys_langugage record with uid=1, does not need to match the L value!
config.sys_language_uid = 1
config.language = en
config.locale_all = en_US.UTF-8
config.htmlTag_langKey = en
[global]
从 TYPO3 9 开始,语言配置在站点配置中完成:
rootPageId: 2
base: 'https://www.beispiel.de/'
languages:
-
languageId: '0'
title: Deutsch
navigationTitle: ''
base: /
locale: de_DE.UTF-8
iso-639-1: de
hreflang: de-DE
direction: ltr
typo3Language: de
flag: de
-
languageId: '1'
title: English
navigationTitle: ''
# base: 'https://www.example.com/'
base: /en/
locale: en_US.UTF-8
iso-639-1: en
hreflang: en-US
direction: ltr
typo3Language: default
flag: us
fallbackType: strickt
:
从 URL TYPO3 可以检测当前语言:在 URL 参数 L(TYPO3 <9)或域或路径段(自 TYPO3 9)上使用 TS 条件并使用正确的翻译文件。
我只知道 Typo3 v9.5,它有很好的多语言功能,但我有一个非常相似的情况: 我的默认语言是斯洛文尼亚语,url 是 http://example.com 并且在站点配置中将英语定义为额外的站点语言,然后通过列表模块将其添加到我的站点中。 url 是 http://example.com/en/
为了翻译标签(例如),我有我的 locallang.xlf 文件,其中包含如下内容:
<trans-unit id="common.contact" xml:space="preserve">
<source>Contact</source>
</trans-unit>
然后我有我的 sl.locallang.xlf 文件(斯洛文尼亚语),其中包含如下内容:
<trans-unit id="common.contact" xml:space="preserve">
<source>Contact</source>
<target>Kontakt</target>
</trans-unit>
然后我可以在我的流体模板中使用它来翻译标签:
<p>
<f:translate key="LLL:EXT:myext/Resources/Private/Language/locallang.xlf:common.contact" />
</p>
Typo3 然后会自动检测应该显示的语言并使用适当的翻译。
小心,我认为您必须使用 .
字符来定义标签,并确保您在语言配置中具有正确的语言标签、区域设置和 iso 代码。