[TYPO3-german] newbie

bernd wilke t3ng at bernd-wilke.net
Wed Sep 10 10:20:27 CEST 2014


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


More information about the TYPO3-german mailing list