Skip to content Skip to sidebar

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- - 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00
- - - - - - -

Supporter timezone: America/Lima (GMT-05:00)

Tagged: 

This topic contains 24 replies, has 0 voices.

Last updated by Andreas W. 1 month, 3 weeks ago.

Assisted by: Andreas W..

Author Posts
February 17, 2026 at 4:25 pm #17829902

willJ-2

Thank you,

When I add additional languages, (French & German ) translating with Google Translate again, will this be an issue again or is there something I should look out for?

February 17, 2026 at 4:56 pm #17829991

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

I have tried to replicate the issue on a sandbox, but it appears that at the moment, I am not able to test this way using the Google Translation Engine for String Translations.

Yes, if the issue occurs again, please let me know. Until now, it looked like someone actually changed at least a hundred placeholders manually, as I saw random results.

The ticket will remain open for 14 days.

February 24, 2026 at 2:12 pm #17847217

willJ-2

Hi Andreas,

We are still having some issues with the WPML and the subscriptions and were getting fatal errors?

please have a look in to the live site error log and you will see:
Ive copied them below for your convenience.

2026-02-24T10:58:14+00:00 Critical Uncaught ValueError: Unknown format specifier "v" in /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/emails/class-wcs-email-completed-renewal-order.php:30
Additional context

2026-02-24T13:43:04+00:00 Critical Uncaught ValueError: Unknown format specifier "P" in /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/privacy/class-wcs-privacy.php:110 CONTEXT: {"error":{"type":1,"file":"/var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/privacy/class-wcs-privacy.php","line":110},"remote-logging":true,"backtrace":["","#0 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/privacy/class-wcs-privacy.php(110): sprintf('Als u PayPal St...', '')","#1 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-privacy.php(85): WCS_Privacy->get_privacy_message()","#2 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/class-wp-hook.php(341): WC_Abstract_Privacy->add_privacy_message('')","#3 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array)","#4 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/plugin.php(522): WP_Hook->do_action(Array)","#5 /var/www/vhosts/karnlea.eu/httpdocs/wp-admin/admin-ajax.php(45): do_action('admin_init')","#6 {main}","thrown"]}

Are these related to the random translations you mentioned that you saw in the back end?

If you could take a look for me that would be amazing, its a little over my head.

Thanks

February 24, 2026 at 5:20 pm #17848229

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

Hello,

Those are the same kind of errors that are related to wrong translations for PHP placeholders on WPML > String Translation.

Bascially, you still need to go through WPML String Translation and search for PHP placeholders like %s, %1$s, %2$s, and so on, and make sure that those placeholders are identical in all languages.

I have solved one of these errors now.

Could you please provide me with complete details about the errors, in case you still see some on the error.log?

Best regards
Andreas

February 26, 2026 at 9:18 am #17855550

willJ-2

OK, I will take a look and see what I can find.

Many thanks for your help again.

There is only one fatal error in the error log now, details below:

2026-02-25T06:28:56+00:00 Critical Uncaught ValueError: Unknown format specifier "w" in /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:326 CONTEXT: {"error":{"type":1,"file":"/var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/gateways/paypal/includes/admin/class-wcs-paypal-admin.php","line":326},"remote-logging":true,"backtrace":["","#0 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-subscriptions/includes/core/gateways/paypal/includes/admin/class-wcs-paypal-admin.php(326): sprintf('Voordat u PayPa...', '')","#1 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/class-wp-hook.php(341): WCS_PayPal_Admin::add_enable_for_subscriptions_setting(Array)","#2 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/plugin.php(205): WP_Hook->apply_filters(Array, Array)","#3 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-settings-api.php(67): apply_filters('woocommerce_set...', Array)","#4 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-settings-api.php(306): WC_Settings_API->get_form_fields()","#5 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/gateways/paypal/class-wc-gateway-paypal.php(176): WC_Settings_API->get_option('transact_onboar...', 'no')","#6 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-wc-gateways.php(72): WC_Gateway_Paypal->__construct()","#7 [internal function]: WCML_WC_Gateways->loaded_woocommerce_payment_gateways(Array)","#8 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Fns.php(358): call_user_func_array(Array, Array)","#9 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/class-wp-hook.php(341): WPML\FP\Fns::WPML\FP\{closure}(Array)","#10 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/plugin.php(205): WP_Hook->apply_filters(Array, Array)","#11 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/class-wc-payment-gateways.php(92): apply_filters('woocommerce_pay...', Array)","#12 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/class-wc-payment-gateways.php(77): WC_Payment_Gateways->init()","#13 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/class-wc-payment-gateways.php(50): WC_Payment_Gateways->__construct()","#14 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/woocommerce/includes/class-woocommerce.php(1205): WC_Payment_Gateways::instance()","#15 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/mollie-payments-for-woocommerce/src/Assets/MollieCheckoutBlocksSupport.php(35): WooCommerce->payment_gateways()","#16 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/mollie-payments-for-woocommerce/src/Assets/MollieCheckoutBlocksSupport.php(31): Mollie\WooCommerce\Assets\MollieCheckoutBlocksSupport::gatewayDataForWCBlocks(Object(Mollie\WooCommerce\Shared\Data), Array, Object(Mollie\Inpsyde\Modularity\Container\ReadOnlyContainer))","#17 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/mollie-payments-for-woocommerce/src/Assets/AssetsModule.php(148): Mollie\WooCommerce\Assets\MollieCheckoutBlocksSupport::localizeWCBlocksData(Object(Mollie\WooCommerce\Shared\Data), Array, Object(Mollie\Inpsyde\Modularity\Container\ReadOnlyContainer))","#18 /var/www/vhosts/karnlea.eu/httpdocs/wp-content/plugins/mollie-payments-for-woocommerce/src/Assets/AssetsModule.php(314): Mollie\WooCommerce\Assets\AssetsModule->registerBlockScripts('hidden link...', '/var/www/vhosts...', Object(Mollie\Inpsyde\Modularity\Container\ReadOnlyContainer))","#19 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/class-wp-hook.php(341): Mollie\WooCommerce\Assets\AssetsModule->Mollie\WooCommerce\Assets\{closure}('')","#20 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array)","#21 /var/www/vhosts/karnlea.eu/httpdocs/wp-includes/plugin.php(522): WP_Hook->do_action(Array)","#22 /var/www/vhosts/karnlea.eu/httpdocs/wp-admin/admin-ajax.php(45): do_action('admin_init')","#23 {main}","thrown"]}

February 26, 2026 at 10:59 am #17855959

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

The string you are looking for begins with "Voordat u PayPa...".

If you go to WPML > String Translation, use the text search field and put "Voordat" and then mark the checkbox for including translations into the search, you should be able to find it.

If you wish me to take a look at your production site, please use the private reply form and provide admin access to the site.

February 26, 2026 at 11:58 am #17856354

willJ-2

Ive had a look and can see a few references for 'Voordat' but im not 100% sure what the translation should be and where the '%1$s' and other code snippets should be placed.

Would you be able to login to the live site with the details you have previously used above and have a look for me please.

Thanks.

February 26, 2026 at 1:50 pm #17856767

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

At the moment, I can sadly not find the matching string, but I found one issue:

Subscribers %1$s - %2$s
was translated to
Abonnement %1$ - %2$

Should be:
Abonnement %1$s - %2$s

and

%1$s free trial then %2$s
was translated to
Gratis proefperiode van 1%, daarna 2%

Should be:
Gratis proefperiode van %1$s, daarna %2$s

and

%1$s for %2$s
was translated to
1% voor 2%

Should be:
%1$s voor %2$s

and

%1$s on %2$s %3$s each year
was translated to
%1$ op %2$ %3$ elk jaar

Should be:
%1$s op %2$s %3$s elk jaar

and

Want to know more about Subscriptions %s?
was translated to
Wil je meer weten over abonnementspercentages?

Should be:
Wil je meer weten over abonnements %s?

Plus another dozen issues that I have fixed now manually. To know if there are more errors, I would need to enable the debug mode and try to trigger further errors by navigating the site, as there are hundreds of translated strings on your site that are using such specifiers. I have already verified a few hundred of them.

Bascially, you need to go to WPML > String Translation, search for %1$s and also for %s, and make sure that all strings that are translated use the same placeholders (also called specifiers) on the translated strings.

What is most important for me to know, can you please confirm if those issues were soley caused by manual translation or could this be an issue related to Google Translate?

March 3, 2026 at 5:38 pm #17869686

willJ-2

Thanks, Ill search and have a look for %1$s and also for %s

Regarding your last point no manual translations have been used for the string translations so can only assume they have come from the automatic Google translations.

hope this helps.

March 4, 2026 at 3:49 am #17870490

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

I ran some test trying to translate strings from a PHP snippet which uses PHP specifiers in different layouts.

I was able to replicate an issue that occurs if the PHP specifier is used as an HTML attribute like for example in:

<a href="%s">Click here to view your profile</a>

This will be translated into

<a href="%S">Klik hier om je profiel te bekijken.</a>

and break the translation if you translate with Google from English to Dutch.

It does not occur if I translate the same string with Google from English to French.

I am escalating this issue internally, so that the respective team can review this issue.