-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide a way to change form's locale #1128
Comments
I feel rather that this is a matter of locale fallback mechanism such as that which attempts to automatically load the |
@takayukister Thanks for getting back to me. The thing is that If I may ask: why this locale switching has been introduced in recent version of CF7? If I understand the change correctly, any CF7 form now always renders in the locale/language it has been created in - even if the actual locale of a front-end page with the form is different? I would say it can be a BC break for some websites. I'm not saying BC breaks are bad, I'm just curious (as a fellow WordPress developer) what is the motivation for such change? Anyway, if you don't see the need for my suggested change, feel free to close the issue. |
To say precisely, there was a bug that a contact form wasn't displayed in its locale. So, I had to introduce a bug-fix in 5.7. Yes, it can be called a backward compatibility break, but it's a necessary BC break. But, in most cases, the front-end page locale and the contact form locale on the page should be the same. When the both locales are the same, locale switching won't happen. This is why most users have not realized the BC break.
I'm interested in this discussion, so let me keep it open. If you will share more detailed information and your findings, I'll be happy to look into it. |
WordPress is not loading any fallback languages because it is not easy to decide which fallbacks should be used for every language (this could be a very hot topic to discuss). But there are at least two plugins to solve this issue. Especially useful for formal or other variants: Maybe these could be helpful in this case @chesio? |
Hi @Zodiac1978, thanks for the links, I'll check them out. I solved this particular problem by changing form's locale to match frontend locale, but they might be useful in other situations.
Yeah, it's been a topic for quite a while, I don't think anything will change in this regard soon: https://core.trac.wordpress.org/ticket/28197 I think however the issue here is a bit different - the locale is being switched by CF7, but the translations for switched locale are not being loaded. I'll give it closer look if I find some spare time. |
FYI there is a bug in locale switching in WP core 6.1 that will be fixed in the next release. See https://core.trac.wordpress.org/ticket/57116 That might be the culprit here. |
Looks like this is not the problem @swissspidy if this was introduced in 6.1. |
If this issue is really tied to WP 6.1 then it must be something else. Anyway, thanks for heads up @swissspidy, at least I know that there have been changes to this part of WordPress in recent version. |
Small update: I just had the same issue on a website with single language only where contact form had |
Hi! Found this discussion while investigating strange issue on our site that translations (via __() function ) were not being loaded on certain pages' sidebars. It appeared to be issue with those pages having some (older) CF7 forms which had _locale en_US. Our front-end uses locale fi, and I assume it has always been using, so little strange why any forms had en_US...but who knows. And indeed the issue seemed to be introduced after CF7 5.7 update, as roll-back to 5.64 had no issues. Ended to fix this by updating en_US locale values to fi in db via update_post_meta as suggested. Not nice but seems to work. But agree with @chesio, that it sounds little strange why someone would like to show contact form in different language than front-end page in general. Especially if user has no UI setting to change the locale of the form. |
This is not really a bug report, more a suggestion.
I recently upgraded to Contact Form 5.7 (5.7.2 to be precise) and suddenly a shortcode placed within one of forms stopped working - the rendered contents have not been translated via
__()
function anymore and I had to manually change form's locale in the database fromde_DE_formal
tode_DE
to get it working again as the website frontend is set tode_DE
locale.I'm not an expert in l10n stuff in WordPress - I would assume that WordPress should load
de_DE_formal
translations for all plugins and themes as soon as Contact Form 7 switches the locale tode_DE_formal
when rendering the form. But this somehow did not happen. The website has multiple languages on frontend and I am using Polylang for multilanguage, so I cannot rule out the possibility that Polylang somehow interferes here. The site had usedde_DE_formal
for German at some point, but now usesde_DE
instead. Before Contact Form 7 version 5.7 it made no difference.Anyway, I think it would be nice to have an option to at least inspect and ideally also edit form's locale form WordPress admin. This way one could quickly see whether there may be a problem. An option to select form locale when creating new form would be an extra bonus. I guess I am not the only one that has backend user with
en_US
set as backend language even on websites that do not have English version on frontend at all (now I always have to change BE user language before creating new form and I forget about it from time to time...).My environment (just in case):
WordPress: 6.0.3
Contact Form 7: 5.7.2
Polylang: 3.3
Site Language in General Settings is set to
de_DE
. In addition,en_US
andde_DE_formal
locales are also installed.Languages configured (added) via Polylang:
de_DE
,en_GB
,fr_FR
.The text was updated successfully, but these errors were encountered: