Project

General

Profile

Feature #103905

Updated by André Buchmann 6 months ago

Once upon a time there was the all mighty sys_language_uid *0*. 

 To support record sharing across multiple sites with different language configurations the "default" language uid should be configurable. 

 The SiteConfig already supports this behavior as it just returns the first language of the SiteConfiguration. 

 $site->getDefaultLanguage()->getLanguageId() 

 --- 

 *Example Usecase by @sorenmalling* 
 (Quote from Slack: https://typo3.slack.com/archives/C05D7UF1L8M/p1715761552677479) 


 University of Copenhagen is eager to share our case and situation and work together with any knowledge, testing etc. to help. 
 Link to original thread: https://typo3.slack.com/archives/C03AM9R17/p1715684411418909 
 Original content follows here: 
 Curious to know about the language handling ( @languageId@ in site settings) and having a default language that is not @languageId: 0@ ) 
 The site tree only displays pages with @sys_language_uid = 0@ . 
 So having multiple sites in a installation, some with @danish - languageId: 0@ as default and others with @english - languageId: 1@ requires me to use the "hide default language" (l18n_cfg). 
 With the concept of @languages@ as entrypoints, and the method @getDefaultLanguage@ on a Site object to take the first language in the array, is it something pointing towards, that the pagetree could handle sites, with a default language different than 0? 

 This would be one site with danish as default language, english as secondary 
 <pre><code class="yaml"> 
 base: 'https://cms-distribution.ddev.site/' 
 languages: 
   - 
     title: Sundhed 
     enabled: true 
     locale: da_DK 
     hreflang: da-DK 
     base: /sund 
     websiteTitle: '' 
     navigationTitle: Dansk 
     flag: dk 
     solr_core_read: core_da 
     languageId: 0 
     piwik_app_id: '' 
   - 
     title: English 
     enabled: true 
     locale: en_US 
     hreflang: da-DK 
     base: /health 
     websiteTitle: '' 
     navigationTitle: English 
     fallbackType: free 
     fallbacks: '' 
     flag: en-us-gb 
     languageId: 1 
 rootPageId: 3 
 websiteTitle: 'Site name' 
 </code></pre> 

 And another site with english as primary/only language is named english-only 
 <pre><code class="yaml"> 
 base: 'https://cms-distribution.ddev.site/' 
 contentSecurityPolicies: {    } 
 languages: 
   - 
     title: English 
     enabled: true 
     locale: en_US 
     hreflang: '' 
     base: /english-only 
     websiteTitle: '' 
     navigationTitle: English 
     fallbackType: free 
     fallbacks: '' 
     flag: en-us-gb 
     languageId: 1 
 rootPageId: 73 
 websiteTitle: 'English only' 
 </code></pre> 

 This last one can not render in the frontend, and the slug field does not show including the @base@ - because there is no @languageId: 0@ 
 One issue here is, that we have translated announcements living on pid = 0 - if we use @languageId: 0@ in the @english-only@    site, it will get the announcements in danish, because danish announcements are with @sys_language_id: 0@

Back