Am 10.09.14 09:05, schrieb Uli ilu:
Hallo Bernd,

vielen Dank für die ausführlichen Erklärungen.

Ich habe nun versucht die Setup.txt für meine Bedürfnise anzupassen.
Ich habe vor unten links ein Menü zur Auswahl der entsprechnenden
Sprache anzeigen zu lassen.
Im Backende habe ich die Anpassungen mit TypoScript wie vorgeschlagen
durchgeführt und habe das gewünschte Ergebnis im BE erzeilen können.
Standard ist nun Deutsch (mit Flagge!), dann kommt Englisch und
Französisch, welche ich als zusätzliche Übersetzungen anlegen kann.
Soweit ich das sehen kann haben die Sprachen die IDs 3 für Englisch und
4 für Französisch im BE. Deutsch sollte dann ja ID 0 haben?
Meine Frage nun, ob ich diese IDs auch im Script verwenden muss, oder
lege ich diese selbst fest?!

hier musst du aufpassen.
natürlich kannst du an einigen Stellen deien eigene Nummerierung benutzten, doch an anderen Stellen musst du unbedingt die uids der sys_language Tabelle benutzen. und natürlich sieht das immer schöner aus, wenn da keine Lücken sind. Aber lieber mit Lücken leben als ein Chaos mit unterschiedlichen Nummern auf verschiedenen Ebenen zu haben. Oder den gesamten Content auf andere Sprachen umziehen zu müssen (das würde ich dann allerdings per SQL machen)

und natürlich kannst du einen bestehenden sys_language-Datensatz nehmen und dort die Sprache wechseln. Das hat dann erstmal keinen Einfluss auf deinen Content oder typoscript-Konfiguration. Die müssen dann auch angepasst werden.



In der nun von mir angepassten Datei sieht es jetzt bei den Sprachen so
aus:

#######################
#### LANGUAGE MENU ####
#######################
lib.language = COA
lib.language {

    #10 = TEXT
    #10 {
    #    value = Language
    #    value.lang.de = Sprache
    #    value.lang.en = language
    #    value.lang.fr = lang
    #    noTrimWrap = |<li><span class="glyphicon
glyphicon-globe"></span> |</li>|
    #}

    20 = HMENU
    20 {
        special = language
        special.value = 0,1,2

uids der sys_language Datensätze?

        special.normalWhenNoLanguage = 0
        wrap =
        1 = TMENU
        1 {
            noBlur = 1
            NO = 1
            NO {
                linkWrap = <li>|</li>
                stdWrap.override = Deutsch || English || Francaise
                doNotLinkIt = 1
                stdWrap {
                    typolink {
                        parameter.data = page:uid
                        additionalParams = &L=0 || &L=1 || &L=2

eigene Sprach-Ids

                        addQueryString = 1
                        addQueryString.exclude = L,id,cHash,no_cache
                        addQueryString.method = GET
                        useCacheHash = 1
                        no_cache = 0
                    }
                }
            }
            ACT < .NO
            ACT.linkWrap = <li class="active">|</li>
            #### NO TRANSLATION AVAILABLE STATES ####
            USERDEF1 < .NO
            USERDEF1 {
                linkWrap = <li class="text-muted">|</li>
                stdWrap.typolink >
            }
            USERDEF2 < .ACT
            USERDEF2 {
                linkWrap = <li class="text-muted">|</li>
                stdWrap.typolink >
            }
        }
    }
    wrap = <ul id="language_menu" class="list-inline">|</ul>
}


################
#### CONFIG ####
################
config {
    no_cache                            = {$config.no_cache}
    uniqueLinkVars                      = 1
    pageTitleFirst                      = 1
    linkVars                            = L

am besten auf benutzte Werte einschränken, damit sich kein SPAM/Injections im Cache festsetzen:
linkVars = L(0-4)

    renderCharset                       = utf-8
    metaCharset                         = utf-8
    doctype                             = html5
    removeDefaultJS                     = external
    inlineStyle2TempFile                = 1
    admPanel                            = 1
    debug                               = 0
    cache_period                        = 43200
    sendCacheHeaders                    = 0
    intTarget                           =
    extTarget                           =
    disablePrefixComment                = 1
    index_enable                        = 1
    index_externals                     = 1
    headerComment                       = {$config.headerComment}


    // Language Settings
    sys_language_uid                    = 0
    sys_language_overlay                = 1
    sys_language_mode                   = content_fallback
    language                            = de
    locale_all                          = de_DE.UTF-8
    htmlTag_setParams                   = lang="de" dir="ltr" class="no-js"
}


#############################
#### LANGUAGE CONDITIONS ####
#############################
[global]
[globalVar = GP:L = 1]

eigene ID

config {
    sys_language_uid                    = 1

sys_language Datensatz uid

    language                            = en
    locale_all                          = en_US.UTF-8
    htmlTag_setParams                   = lang="en" dir="ltr" class="no-js"
}
[global]
[globalVar = GP:L = 2]

eigene ID

config {
    sys_language_uid                    = 3

sys_language Datensatz uid

    language                            = fr
    locale_all                          = fr_FR.UTF-8
    htmlTag_setParams                   = lang="fr" dir="ltr" class="no-js"
}
[global]

Macht das so Sinn?

wie schon erwähnt würde ich versuchen unterschiedlichen Werte zwischen L und sys_language zu vermeiden.

bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an