私は、次の言語で多言語 TYPO3 サイトを作成しました。
- ドイツ語 (デフォルト)
- 英語
- スペイン語
すべてのページの翻訳はありません。たとえば、ドイツ語で 10 ページ、英語で翻訳されたページが 10 ページありますが、スペイン語で翻訳されたページは 4 ページしかありませんが、言語スイッチャーはすべてのサイトで利用できます。そのため、誰かがスペイン語で利用できない 6 つのページの 1 つに移動し、言語スイッチャーを使用しようとすると、次のエラー メッセージが表示されます。
Page Not Found
Reason: Page is not available in the requested language (strict).
特定のページのスペイン語翻訳がない場合、ユーザーをスペイン語のホームページにリダイレクトするのがより良い解決策だと思いますが、どうすればこのようなことができますか?
私の現在の言語構成は次のようになります。
config {
...
sys_language_uid = 0
language = de
htmlTag_langKey = de-DE
locale_all = de_DE
sys_language_mode = strict
}
[globalVar = GP:L = 1]
config {
sys_language_uid = 1
language = en
htmlTag_langKey = en
locale_all = en_GB
linkVars = L(1)
}
[global]
[globalVar = GP:L = 2]
config {
sys_language_uid = 2
language = es
htmlTag_langKey = es
locale_all = es
linkVars = L(2)
}
[global]
そして、私の言語スイッチャーは次のようになります。
obj.languageSwitcher = HMENU
obj.languageSwitcher {
special = language
special.value = 0,1,2
special.normalWhenNoLanguage = 0
1 = TMENU
1 {
NO = 1
NO {
doNotLinkIt = 1
stdWrap {
override = DE || EN || ES
typolink {
parameter.data = page:uid
additionalParams = &L=0 || &L=1 || &L=2
}
outerWrap = <li>|</li>
}
}
ACT < .NO
ACT {
stdWrap.typolink >
stdWrap.outerWrap = <li class="active">|</li>
}
USERDEF1 < .NO
USERDEF1 {
stdWrap.typolink >
}
}
}
ご覧のとおり、現在のサイトにスペイン語版がない場合に言語スイッチャーからリンクを削除する USERDEF1 を定義しましたが、それでもユーザーをスペイン語版のホームページにリダイレクトしたいと考えています。何か提案はありますか?