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.

This topic contains 14 replies, has 0 voices.

Last updated by Otto 2 months, 3 weeks ago.

Assisted by: Otto.

Author Posts
February 25, 2026 at 12:11 pm #17851329

pierreB-56

Korean language is not available anymore - I have 6 Language in total and Korean language is not available

February 25, 2026 at 2:34 pm #17851904

pierreB-56

Hello Otto,
I would love a speedy response... Currently my client cannot access the Korean language at all

February 25, 2026 at 3:48 pm #17852236

Otto

Hello,

Please apologize for the delay.

I would need the debug.log to better understand the problem.

Please follow the instructions mentioned on this page: https://wpml.org/documentation/support/debugging-wpml/
Then, try to reproduce the issue and check your installation's **wp-content** folder to see if a file named **"debug.log"** was created (it will only be generated if a server error occurs).
If the file was created, please upload it to a platform like **Google Drive** or **Dropbox** (whichever you usually use) and share the link with me (make sure it is publicly accessible) so I can analyze it.

Best Regards,
Otto

February 25, 2026 at 4:32 pm #17852428

pierreB-56

The lines below show are the entire debug.log file

[25-Feb-2026 16:27:10 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:27:10 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
[25-Feb-2026 16:27:40 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the

presto-player

domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the

init

action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
[25-Feb-2026 16:28:31 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php:103
Stack trace:
#0 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php(103): sprintf()
#1 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Scripts.php(180): PrestoPlayer\Services\Translation::geti18n()
#2 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(341): PrestoPlayer\Services\Scripts->registerPrestoComponents()
#3 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#4 /home/u291129052/domains/re-down.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#5 /home/u291129052/domains/re-down.com/public_html/wp-settings.php(742): do_action()
#6 /home/u291129052/domains/re-down.com/public_html/wp-config.php(118): require_once('/home/u29112905...')
#7 /home/u291129052/domains/re-down.com/public_html/wp-load.php(50): require_once('/home/u29112905...')
#8 /home/u291129052/domains/re-down.com/public_html/wp-blog-header.php(13): require_once('/home/u29112905...')
#9 /home/u291129052/domains/re-down.com/public_html/index.php(17): require('/home/u29112905...')
#10 {main}
thrown in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php on line 103
[25-Feb-2026 16:29:41 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the

presto-player

domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the

init

action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131

February 25, 2026 at 4:33 pm #17852429

pierreB-56

If you need I can give you access to Via temporary admin
let me know

February 25, 2026 at 4:51 pm #17852440

Otto

Hello,

Thanks.

That fatal error is coming from **PHP 8+ being stricter with `sprintf()`**.

## What the error means

`Translation.php:103` in **Presto Player** calls `sprintf()` with a *translated* string.

`sprintf()` expects placeholders like:

* `%s`
* `%d`
* `%1$s` (numbered placeholders)

But in your case PHP sees a `%` followed by an **invalid character** (shown as `�`), so it throws:

> `ValueError: Unknown format specifier "�"`

This almost always happens when a translation accidentally changes placeholders, e.g.:

* `%s` became `s%`
* `%1$s` became `%1$ s` (extra space)
* there’s a stray `%` added in the translation
* encoding/copy-paste introduced a bad character after `%`

The fix is: **identify which Presto Player string is being passed to `sprintf()`**, then correct its **placeholders** in WPML’s Korean translation.

## Steps

1. **Find the string in the plugin code**

* Open: `wp-content/plugins/presto-player/inc/Services/Translation.php`
* Go to **line ~103** (where `sprintf()` is called).
* Note the **exact original string** being used (the one containing `%...` placeholders), or the translation key passed into that call.

2. **Locate the same string in WPML**

* In WP admin: **WPML → String Translation**
* Filter/search by domain: `presto-player` (or search the exact text / a unique fragment from step 1).

3. **Fix the placeholders**

* Make the Korean translation keep placeholders **identical** to the original:

* `%s` must stay `%s`
* `%1$s` must stay `%1$s` (same numbering/order)
* Remove any stray `%` or any `%` followed by a weird character/space

4. **Save**

Let me know if this helps, please.

Best Regards,
Otto

February 25, 2026 at 4:52 pm #17852441

pierreB-56

I have ran the debug once more here is the new debug log

[25-Feb-2026 16:49:46 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the

presto-player

domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the

init

action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
[25-Feb-2026 16:49:48 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:49:48 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
[25-Feb-2026 16:49:55 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the

presto-player

domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the

init

action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
[25-Feb-2026 16:49:58 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php:103
Stack trace:
#0 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php(103): sprintf()
#1 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Scripts.php(180): PrestoPlayer\Services\Translation::geti18n()
#2 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(341): PrestoPlayer\Services\Scripts->registerPrestoComponents()
#3 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#4 /home/u291129052/domains/re-down.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#5 /home/u291129052/domains/re-down.com/public_html/wp-settings.php(742): do_action()
#6 /home/u291129052/domains/re-down.com/public_html/wp-config.php(118): require_once('/home/u29112905...')
#7 /home/u291129052/domains/re-down.com/public_html/wp-load.php(50): require_once('/home/u29112905...')
#8 /home/u291129052/domains/re-down.com/public_html/wp-blog-header.php(13): require_once('/home/u29112905...')
#9 /home/u291129052/domains/re-down.com/public_html/index.php(17): require('/home/u29112905...')
#10 {main}
thrown in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php on line 103
[25-Feb-2026 16:49:58 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:49:58 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
[25-Feb-2026 16:50:05 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php:103
Stack trace:
#0 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php(103): sprintf()
#1 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Scripts.php(180): PrestoPlayer\Services\Translation::geti18n()
#2 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(341): PrestoPlayer\Services\Scripts->registerPrestoComponents()
#3 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#4 /home/u291129052/domains/re-down.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#5 /home/u291129052/domains/re-down.com/public_html/wp-settings.php(742): do_action()
#6 /home/u291129052/domains/re-down.com/public_html/wp-config.php(118): require_once('/home/u29112905...')
#7 /home/u291129052/domains/re-down.com/public_html/wp-load.php(50): require_once('/home/u29112905...')
#8 /home/u291129052/domains/re-down.com/public_html/wp-blog-header.php(13): require_once('/home/u29112905...')
#9 /home/u291129052/domains/re-down.com/public_html/index.php(17): require('/home/u29112905...')
#10 {main}
thrown in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php on line 103
[25-Feb-2026 16:50:15 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:50:15 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27

February 25, 2026 at 5:09 pm #17852511

pierreB-56

Sorry Otto,
This is tranlation.php (unchanged) file from line 100 until 110
I cannot see what I have to correct

'hide_chapters' => __( 'Hide Chapters', 'presto-player' ),
'restart' => __( 'Restart', 'presto-player' ),
/* translators: %1ss: Number of seconds to rewind */
'rewind' => sprintf( __( 'Rewind %1ss', 'presto-player' ), '{seektime}' ),
'play' => __( 'Play', 'presto-player' ),
'pause' => __( 'Pause', 'presto-player' ),
/* translators: %1ss: Number of seconds to fast forward */
'fastForward' => sprintf( __( 'Forward %1ss', 'presto-player' ), '{seektime}' ),
'seek' => __( 'Seek', 'presto-player' ),
/* translators: %1$1s: Current time, %2$2s: Total duration */
'seekLabel' => sprintf( __( '%1$1s of %2$2s', 'presto-player' ), '{currentTime}', '{duration}' ),

February 25, 2026 at 5:13 pm #17852543

pierreB-56

This is the line 103

'rewind' => sprintf( __( 'Rewind %1ss', 'presto-player' ), '{seektime}' ),

February 25, 2026 at 5:15 pm #17852547

pierreB-56

What is also very weird is the site is crashing for one language "Korean"

February 25, 2026 at 5:16 pm #17852548

Otto

Hello,

Please apologize, I wasn't clear enough.

The Korean translation of the string that is on line 103 is wrong; this is what's causing the fatal error.

According to the code you've shared, it should be 'Rewind %1ss' or maybe 'Forward %1ss'.

You can fix this by going to WPML > String Translation and searching for those strings within the presto-player domain. Check the Korean translation for those strings, making sure the placeholders are correct.

Let me know if it's clear now, please.

Best Regards,
Otto

February 25, 2026 at 5:17 pm #17852549

Otto

Hello,

It's expected that it crashes only in the Korean language. Because it's the only translation with wrong placeholders.

Let me know if my previous explanations helped, please.

Best Regards,
Otto

February 25, 2026 at 5:34 pm #17852632

pierreB-56

Hi Otto,

I was NOT able to see the translated strings neither 'Rewind %1ss' nor 'Forward %1ss' in the WPML > Translation screen.

What I end up doing is to rollback PrestoPlayer from ver. 4.1.10 to the previous version ver. 4.1.8 and disable the update in order to solve the issue for now. That solve my urgent matter (the crash when I switch to korean)

I do hope PrestoPlayer will release a fix soon enough
If you have another fix where I can find the wrong korean translation - It is also weird that it is the only language I have translation on for that plugin
Best regards

February 25, 2026 at 5:36 pm #17852633

pierreB-56

sorry the version numbers are 4.1.0... down to 4.0.8

February 25, 2026 at 5:39 pm #17852638

Otto

Hello,

I am glad you managed to fix it for now.

You can also fix the issue this way:
- Open the Korean .po file with Poedit (or similar).
- Usually next to the .mo file: presto-player-ko_KR.po
- Search within Poedit for the strings
- Ensure the translation contains the same placeholders
- Save (Poedit will regenerate the .mo), upload it back, and retest.

In any case, it looks like the issue is a typo in the Korean translation of the Presto Player plugin in the latest version.

Removing the Korean .po file should fix it, too. Then you can use String Translation for the translation.

Best Regards,
Otto