I used FireFox with prefered language English [en] on Debian Linux.
If everything is OK:
8. Repeat multiple times.
Joomla! always produce consistant output.
Menue, contact form and miscelleaneous information are all in German or all in English.
Some times Contact Form and Miscellaneous Information are in different language.
This should not be, since the form and the miscelleanous information are created from one contact (System -> Content -> Contacts -> Contacts) a contact may either be in German or in English but not both.
Debian 11.5, FireFox, Joomla! 4.2.4 (upgraded from 3.x) with languagepacks en-GB, de-DE and th-TH no other extensions installed.
All Menu Items pointing to the two forms are set to language All.
The form with Alias contact is set to language English.
The form with Alias kontakt ist set to language German.
Whenever the mixed languages in the form and miscelleanous information appear, then the address bar also shows a mixed URI like /en/kontakt or /de/contact.
Labels |
Removed:
?
|
Labels |
Added:
No Code Attached Yet
|
It is a mixed setup. Some pages and menues are multi language and some are not. As mentioned in the issue report the involved contacts are marked as German and English and the menues are marked as language All.
This is the whole workaround nothing more.
SEF URLs are active also URL Rewriting is on.
The .htaccess file is active and it is the default file which came with Jommla! 3 (since the site is upgraded from Joomla! 3
.
Just to make sure here are the entries:
<IfModule autoindex>
IndexIgnore *
</IfModule>
## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
No extensions installed. I had Akeeba Backup installed and a small plugin for conditional content. Had a hard time to get it out, am not shure if it makes a difference because it left some garbage which I had to remove manual. I removed that before the upgrade to Joomla! 3.10 to 4.2
For styling I added a user.css to Cassiopeia.
Nothing else that I remember.
P.S. I took a look at the Routing Component and think it would be an inspiration to take a look at how the routing engine is implemented in django.
Just separate those installs (install two Joomla's; both in separate folders, install one lang
per install, than just make parent > child structure in your webserver
. Detection based on client's IP. I know thats doubling ( at the very best ) on resources butr this is how its done.
Other way is just make complete rewrite of in-built language module to make it more dynamic. Im more than sure this is not going to happen.
Doubling the installation would not allow assosiations between articles. Therefore it would render the entire multi-language feature obsolate. Besides, doubling would mean tripling for three languages and so on.
As a workaround until the routing is fixed, I experimented with rewriting the URL from the Apache2 web server with mod_rewrite, but it does not change the URI. It seems that the URI is interpreted to use the alias to find the menu item and then the contact to output. This is perfectly logical, because somehow the information has to be evaluated. But there is no way to rewrite the URI.
From the documentation of Apache2 it seems that there is a possibility to use mod_proxy, because this would also change the URI. But I have not been able to get it to work.
I already suggested a rule based routing engine (like python django has it). That would on one hand provide a lot of flexibility for the Joomla! users. On the other hand it would make routing more stable because it would not need to interpret single attibutes of articles, menuitems etc. But exchanging the whole routing component is a major change to Joomla!. That would be more like a feature request for Joomla! 5 or 6.
However, all this does not change the fact that different parts of a single contact are output in two different languages. This looks to me like bug.
Therefore it would render the entire multi-language feature obsolate
@RichardZimmerEschborn if doubling would render multilang
feature obsolete, it means that multi-lang feature was designed badly. Well designed multilang would work with doubled ( or even more tiered ) Joomla without any issues......Maybe its time to redesign multilang support within Joomla?
I experimented with rewriting the URL from the Apache2 web server with mod_rewrite, but it does not change the URL
You experimented not fully man. mod_rewrite
handles changing URL without any issue. I agree, though, that to configure it properly, is not easy task.
But there is no way to rewrite the URI.
Oh yes, there is a way. One of which is mod_proxy
.
I already suggested a rule based routing engine
Thats one possibility. However, major drawback from this, is that it will require lots of code to be added, another lots of code rewritten......... so it will do two things:
Sorry for me not being able to express myself in an understandable manner. Sorry also for my mistakes and for not knowing Joomla! as deep as I would like.
I understood, that you suggest installing multiple complete Joomla instances in parallel, one for each language.
I have no idea how to make Assosiations between an article in one language (which,following your suggestion, would be stored in one Joomla! installation) to the same article in the other language (which, again following your suggestion, would be stored in the other Joomla! installation) This, for my understanding is the main feature of multi-language.
So please tell, how to do that. Or explain how you understand I should install Joomla to fix the issue.
You quoted wrong! I wrote:
I experimented with rewriting the URL from the Apache2 web server with mod_rewrite, but it does not change the URI.
If anyone has an idea how to rewrite the URI using mod_rewrite, please tell.
You quoted wrong again. This sentence belongs to the paragraph about mod_rewrite so it should read:
But there is no way to rewrite the URI using mod_rewrite.
If anybody has an idea how to change the URI using mod_rewrite, please tell.
I wrote:
From the documentation of Apache2 it seems that there is a possibility to use mod_proxy, because this would also change the URI. But I have not been able to get it to work.
So, if anybody has a hint what mistake I might have taken whitch kept me from using mod_proxy to work, please tell.
You are just repeating, what I already wrote about a rule based routing engine so there is nothing what could help to solve the issue.
I got mod_proxy working. So I do not need hints to Apache2 mod_proxy any more.
Thanks anyway
P.S. The issue itself still exists, I just hope to now find a way to work around it.
Labels |
Added:
bug
|
It is over a year since your last comment and there have been a lot of changes in the core since then - Is this still a problem for you?
I assume this is not a standard Joomla multilinguag setup but the workaround of which you wrote in your comment here: #39100 (comment) . Otherwise it would not be possible to use the 2 mentioned URLs, both without language code.
If my assumption is true, you should describe your workaround here or link to a description so people can help.