1

私は、次の言語で多言語 TYPO3 サイトを作成しました。

  1. ドイツ語 (デフォルト)
  2. 英語
  3. スペイン語

すべてのページの翻訳はありません。たとえば、ドイツ語で 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 を定義しましたが、それでもユーザーをスペイン語版のホームページにリダイレクトしたいと考えています。何か提案はありますか?

4

1 に答える 1

1

リンクを削除する代わりに、ターゲットを変更する必要があります:

USERDEF1 < .NO
USERDEF1.stdWrap.typolink {
  parameter.data >
  parameter = 123           <- use your homepage id
}
于 2016-11-03T23:45:28.543 に答える