We're developing a website for a customer which is operating all over the world. So we have 72 website languages in TYPO3 (0 = en_CH, 1 = de_CH, 2 = de_DE ...), but there are only 5 "real" languages (EN, DE, FR, ES, JA).
We want it to make as easy as possible for our customer to maintain the content so we work a lot with the "Insert records" content element and "Show content from page" pages. This works fine for normal content elements. But of course not with Extbase records which we want also have only one time in a real language.
So we tried to set config.sys_language_mode = content_fallback;1,0 as example for all german website versions (de_CH, de_DE). We also have the fallback settings in the sites config. Of course the Extbase records are all translated already in the 5 real languages.
Screenshot from the Backend
Typoscript
Swiss - German
[siteLanguage("languageId") == '1']
config {
htmlTag_setParams = lang="de-CH"
language = de
locale_all = de_CH
sys_language_uid = 1
sys_language_overlay = 1
}
[global]
Germany - German
[siteLanguage("languageId") == '2']
config {
htmlTag_setParams = lang="de-DE"
language = de
locale_all = de_DE
sys_language_uid = 2
sys_language_mode = content_fallback;1,0
sys_language_overlay = 1
}
[global]
Sites configuration
-
title: 'Switzerland (CH), German (Default)'
enabled: true
languageId: '1'
base: /ch-de/
typo3Language: de
locale: de_CH
iso-639-1: de
navigationTitle: ''
hreflang: de-CH
direction: ''
fallbackType: fallback
fallbacks: '0'
flag: ch
-
title: 'Germany (DE), German'
enabled: true
languageId: '2'
base: /de-de/
typo3Language: de
locale: de_DE
iso-639-1: de
navigationTitle: ''
hreflang: de-DE
direction: ''
fallbackType: fallback
fallbacks: '1,0'
flag: de
I expect that with these settings, the fallback should work but the output is always in english (0 = en_CH). We have TYPO3 9.5.8 installed.
You can reproduce the problem with the second link. There should be the same content as you see with the first link.
https://www.jakob.com/ch-de/produkte
https://www.jakob.com/de-de/produkte
EDIT: You can't reproduce the problem right now with these 2 links.
EDIT: This might be a problem related to this bug (marked as solved but see below).
https://forge.typo3.org/issues/86762
In the comments, some people still have the problem.
https://forge.typo3.org/issues/86762#note-40
https://forge.typo3.org/issues/86762#note-55
If you need more informations, please tell me.
Any help is very welcome!
Related
I've been working on making my Typo3 11.5 powered site multi-language. To translate the bulk of my content elements I want to use DeepL via https://github.com/web-vision/wv_deepltranslate. While the manually translated pages are shown correctly in frontend, there is still some configuration missing as wv_deepltranslate is not working and its settings screen is showing 'No system languages found.'. The Deepl API Key and the Deepl API Url are set, the translate button is appearing when creating a translation, but pressing it only copies the content element in its original language. I have no clue what setting needs to be made to make the extension work and not show 'No system languages found.' anymore.
My relevant Typoscript setup is
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[globalVar = GP:L = 1]
config.sys_language_uid = 0
config.language = en
config.locale_all = en_EN
[global]
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[global]
and the site config says
languages:
-
title: Deutsch
enabled: true
base: /
typo3Language: de
locale: de_DE
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
languageId: 0
websiteTitle: ''
-
title: English
enabled: false
base: /en/
typo3Language: default
locale: en_US.UTF-8
iso-639-1: en
websiteTitle: ''
navigationTitle: English
hreflang: en
direction: ''
fallbackType: strict
fallbacks: ''
flag: en-us-gb
languageId: 1
Edit:
Fixed the 'No system languages found.' by creating the corresponding languages in the list menu on the page root.
Try this:
config {
language = de
locale_all = de_DE.UTF-8
linkVars = L(0-1)
sys_language_uid = 0
}
[siteLanguage("locale") == "en_US.UTF-8"]
config {
language = en
locale_all = en_US.UTF-8
sys_language_uid = 1
}
[end]
Many TypoScript properties you're using are not existing anymore in TYPO3 Version 11. They have been removed in favor of the siteconfiguration.
See in the Changelog/10.0/Breaking-87193-DeprecatedFunctionalityRemoved.html.
Also like #Robert included in his answer already the conditions did change and something like [globalVar = GP:L = 1] is not understood by TYPO3 anymore. Details about the new syntax you can find in the TypoScript Reference, including a link to a more general explanation.
According to the documentation I doubt that the settings by TypoScript are required anyway, the configuration is done in a special module.
I have this Language-ID´s for the TYPO3 Backend:
0 = DE
1 = EN
2 = ES
3 = CN
And now i need a Fallback for the Language ES and CN to the Content EN (id=1).
How can i do this?
Thanks for help
config.sys_language_mode with content_fallback is your friend. Look here: https://docs.typo3.org/typo3cms/TyposcriptReference/8.7/Setup/Config/#sys-language-mode
enter image description here
Hello in drupal 8.0.0 when I created a new content the date is too long:
11/23/2015 - 20:54 America/Bogota11 2015-11-23T20:54:19-05:0020151130America/Bogotax302015: f2015Mon, 23 Nov 2015 20:54:19 -050011pm302015 23America/Bogota fAmerica/Bogota2015-11-23T20:54:19-05:0008pm -05:0020-05:00
the problem is in the translation to spanish:
If you have in spanish this is the answer:
Inicio->Administración->Configuración->Regional e idioma->Formato de fecha y hora
And find the text "m/d/Y - H:i"
Click in "Filtro"
Appear two translations, the first is brong,
change "D, m/d/Y - H:i
en contexto: formato de fecha PHP"
And put "D, m/d/Y - H:i"
And save,
If the problem persists
Go to:
Inicio->Administración->Configuración->Regional e idioma->Formato de fecha y hora
And
change "D, m/d/Y - H:i
en contexto: formato de fecha PHP"
And put "D, m/d/Y - H:i"
For some time I've been sending chat messages to users from certain ecommerce groups in facebook. I did this using the program sendxmpp. It worked fine until now. No error or warning is shown when I execute the program, but the message aren't send, except if I send a message to myself, then It does works.
echo 'Hola Solo Estilo Peluqueria!, somos programadores independientes de La Plata y estamos lanzando una nueva aplicacion para Android, para facilitar el comercio
online dentro de la ciudad de manera segura e inteligente. Nuestra aplicacion, Lunula, te va a permitir vender y comprar lo que quieras en la ciudad
de forma segura. Nos interesamos en vos porque vimos el anuncio que publicaste ("necesito lava cabeza para peluqeria! tienen?") en "Compra y venta la plata." y pensamos que por ahi te gustaría publicar ese mismo
articulo en Lunula. Descargatela de acá http://lunula.co/?utm_source=facebook&utm_medium=messaging&utm_campaign=lunula o buscala en el Google
Playstore como "Lunula", es completamente gratuita!' | sendxmpp -v -t 1428089740841785#chat.facebook.com
sendxmpp: config: 'password' => 'PASSWORD'
sendxmpp: config: 'jserver' => 'chat.facebook.com'
sendxmpp: config: 'component' => 'chat.facebook.com'
sendxmpp: config: 'port' => '0'
sendxmpp: config: 'username' => 'ID'
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path:
Use of uninitialized value within #_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
Use of uninitialized value within #_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
sendxmpp: Connect: 1
Use of uninitialized value within #_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
sendxmpp: AuthSend: ok
sendxmpp: MessageSend
sendxmpp: Disconnect
This means that I got banned from the facebook chat, or is something else?
Have a look at
https://developers.facebook.com/docs/apps/changelog#v2_0_chat
The Chat/XMPP service and API was deprecated along with Graph API v1.0 on April 30, 2015.
I'm a beginner on Event-B and I'm trying to model a machine where the set PERSONNE includes the set CLIENT which includes the set RESIDENT... I've searched on Rodin's documentation but I haven't found anything...
Here is the context
context contexteHumain
sets PERSONNE CLIENT RESIDENT
axioms
#axm1; finite(PERSONNE)
#axm2; finite(CLIENT)
#axm3; finite(RESIDENT) // Definition of three possible sets
and here is the machine
machine machineFunKeyHotel sees contexteHumain
variables
pers
reserv
cli
resid
chkin
chkout
invariants
#inv1: pers ⊆ PERSONNE
#inv2: cli ⊆ CLIENT
#inv3: resid ⊆ RESIDENT
// Définis les 3 variables d'ensemble de Personnes, Clients et Résidents
#inv4: reserv ∈ BOOL
#inv5: chkin ∈ BOOL
#inv6: chkout ∈ BOOL
// Les paramètres booléens si la ⦂personne a réservé, check-in ou check-out.
#inv7: CLIENT ⊆ PERSONNE
#inv8: RESIDENT ⊆ CLIENT
// Et les relations entre les différnets ensembles d'humains·
events
event INITIALISATION
begin
#act1: reserv ≔ FALSE
#act2: chkin ≔ FALSE
#act3: chkout ≔ FALSE
// Ces valeurs sont à faux, en effet, au début personne n'a ni réservé ni check-in
// Encore moins check out.
#act4: resid ≔ ∅
#act5: cli ≔ ∅
// Au début le nombre de client et de résidents sont zéro
#act6: pers ≔ ∅ //???
// Définir un nombre de personne presqu'infini (Personnes sur terre estimé à
// 7 290 477 807 personnes le vendredi 3 avril 2015 à 9 h 07 min et 24 s (GTM +1)
end
event réserver
// Lorsqu'une personne quelconque a réservé ça implique quelle soit ajoutée
// à l'ensemble clients.
any potentiel_client
where
#gr1: potentiel_client ∈ PERSONNE
#gr2: reserv = TRUE
then
#act1: cli ≔ cli ∪ {potentiel_client}
end
event checkerin
// Lorsqu'un client a passé l'étape de check-in, cela implique qu'il est ajouté
// à l'ensemble résident
any futur_resident
where
#gr1: futur_resident ∈ CLIENT
#gr2: chkin = TRUE
then
#act1: resid ≔ resid ∪ {futur_resident}
end
event checkerout
// Lorsqu'un résident a procédé au check out cela implique qu'il est retiré
// et de l'ensemble client et de l'ensemble résident.
any resident_actuel
where
#gr1: resident_actuel ∈ RESIDENT
#gr2: chkout = TRUE
then
#act1: resid ≔ resid ∖ {resident_actuel}
#act2: cli ≔ cli ∖ {resident_actuel}
end
end
I think I've got the idea but I cannot manage how to solve the various errors I get:
Types CLIENT and PERSONNE do not match (3 times)
Types RESIDENT and CLIENT do not match (2 times)...
There is a problem in your specification that is very common for beginners in Event-B. :)
You have introduced three deferred sets PERSONNE, CLIENT and RESIDENT. But I think a client or a resident are persons, too. And all deferred sets are constants, so with this construction, you're not able to modify your set of clients or residents.
I think the basic problem is the keyword SETS. You do not have to specify all sets of your machine there. Think TYPES! You just introduce a new type (I think you need only PERSONNE here) and have a constant for all elements.
context contexteHumain
sets PERSONNE
So remove the sets CLIENT and RESIDENT. I would suggest to remove all axioms, too. Do you really have to assume that the set of possible persons is finite?
Adapt your invariants:
invariants
#inv1: pers ⊆ PERSONNE
#inv2: cli ⊆ pers
#inv3: resid ⊆ cli
Remove inv7 and inv8. You probably want to add an invariant that the set of persons in your system is finite (in contrast to all possible persons in PERSONNE):
#inv9: finite(pers)
Accordingly, you would adapt your guards:
#gr1: futur_resident ∈ cli
resp.
#gr1: resident_actuel ∈ res