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
- 8:00 – 10:00 8:00 – 10:00 8:00 – 13:00 8:00 – 13:00 9:00 – 13:00 -
- 11:00 – 17:00 11:00 – 17:00 14:00 – 17:00 13:00 – 17:00 13:00 – 18:00 -

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

Tagged: 

This topic contains 5 replies, has 0 voices.

Last updated by Lauren 1 day, 21 hours ago.

Assisted by: Lauren.

Author Posts
January 22, 2026 at 1:34 pm

rogerv-6

I'm working on an wordpress site Divi 5 template. I receive an internal server 500 error when switching to the Arabic language.

January 22, 2026 at 4:24 pm #17754788

Lauren
WPML Supporter since 10/2015

Languages: English (English )

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

When trying to test your site, I've encountered a critical error and no longer have access. Please share FTP access to the testing site so I can take a look at any changes I made for testing, and get the test site back up and further trouble shoot. I've marked the next reply as private so you can use the private fields to share credentials. Thanks!

January 26, 2026 at 6:00 pm #17763902

Lauren
WPML Supporter since 10/2015

Languages: English (English )

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

I'm currently seeing this error in the debug log, related to The Events Calendar:

PHP Fatal error: Uncaught ValueError: Unknown format specifier "$" in /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/plugins/the-events-calendar/src/Tribe/iCal.php:73
Stack trace:
#0 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/plugins/the-events-calendar/src/Tribe/iCal.php(73): sprintf()
#1 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/class-wp-hook.php(339): Tribe__Events__iCal->set_feed_link()
#2 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#3 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/plugin.php(522): WP_Hook->do_action()
#4 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/general-template.php(3197): do_action()
#5 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/themes/Divi/includes/builder/frontend-builder/theme-builder/frontend-header-template.php(11): wp_head()
#6 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/themes/Divi/includes/builder/frontend-builder/theme-builder/frontend.php(220): require_once('...')
#7 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/themes/Divi/includes/builder/frontend-builder/theme-builder/frontend.php(251): et_theme_builder_frontend_override_partial()
#8 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/class-wp-hook.php(343): et_theme_builder_frontend_override_header()
#9 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#10 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/plugin.php(522): WP_Hook->do_action()
#11 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/general-template.php(38): do_action()
#12 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/themes/Divi/page.php(3): get_header()
#13 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-includes/template-loader.php(125): include('...')
#14 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-blog-header.php(19): require_once('...')
#15 /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/index.php(17): require('...')
#16 {main}
thrown in /mnt/web705/b3/89/570427089/htdocs/STRATO-apps/wordpress_01/app/wp-content/plugins/the-events-calendar/src/Tribe/iCal.php on line 73

I was able to find the wrong translation in WPML -> String Translation for the string "%1$s %2$s iCal Feed" and replaced it with "موجز iCal %2$s %1$s". I then found a new fatal error, coming from the string "%s update available" which I replaced the Arabic translation with تتوفر تحديثات %s.

Now everything seems to be working as expected. Please let me know if you run into any other issues and I'll be happy to take another look.

January 28, 2026 at 9:13 am #17769831

rogerv-6

Good morning,
I've contacted The Events Calendar People and they looked into it. They came back with the following.
--------------------
HI Roger,

Thank you for your message and the information.

Looking into this error at the code level, it looks like the issue is with the string translation (please see explanation below).

The erroring lines of code in the /wp-content/plugins/the-events-calendar/src/Tribe/iCal.php file:
$separator = _x( '»', 'feed link', 'the-events-calendar' );
$feed_title = sprintf( esc_html__( '%1$s %2$s iCal Feed', 'the-events-calendar' ), get_bloginfo( 'name' ), $separator );
The above code is correct in both syntax and functionality. The hidden culprit is translations. — The issue lies in this function: esc_html__( ... ). This function tells WordPress: "Look up the translation for this sentence in the site's current language."
The Scenario: The code executes sprintf( esc_html__( '%1$s ...' ) ) . This is the website asking: "Hey WPML, what is the Arabic version of this sentence?".
The Lookup: WPML looks into its database (String Translation) or the .mo file to find the match.
The Return (The Bug): WPML finds the translation, but the translator made a typo. Instead of returning a sentence with a valid "slot" for the variable (%1$s ), it returns a sentence with a broken slot (%$s ).
The Crash: The code passes that broken sentence from WPML into the PHP sprintf function. PHP 8 panics because %$ is invalid syntax, and the site crashes.

Since you are using WPML, the following may help:
Go to WPML > String Translation.
In the search bar, search for: iCal Feed .
Look for the string that matches: %1$s %2$s iCal Feed .
Click translations (the pencil icon) for your active language.
You will likely see the typo in the translation box (e.g., %$s or % s ).
Correct it: Copy the English placeholder exactly: %1$s .
Save.

I would also recommend downloading the latest stable Arabic translation file at hidden link. See Downloading and using the language files for The Events Calendar or Event Tickets for more information.

---------------
Like to hear form you

January 28, 2026 at 4:38 pm #17771410

rogerv-6

Hi Lauren,

I tried all of the proposals above but it didn't work. I replied to The Events Calandar that the iCal files were different for all the languages.
The Event Calandar replied that i had to change all of them for the same one.
Eng — %1$s %2$s iCal Feed

Tur — %1$s %2$s iCal Beslemesi

Pol — %1$s %2$s iCal Feed

Arab — %1$s %2$s موجز iCal

And guess what it worked! Arabic no longer gives an error.

Thank you.

Roger

January 28, 2026 at 4:40 pm #17771415

Lauren
WPML Supporter since 10/2015

Languages: English (English )

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

Excellent, looks like we were all looking at a similar solution and I'm happy to hear it's working now! Please don't hesitate to open up a new ticket if you run into any further issues. Have a great rest of your day!