Skip Navigation

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 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 -
- 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 -

Supporter timezone: America/Los_Angeles (GMT-08:00)

Tagged: 

This topic contains 9 replies, has 2 voices.

Last updated by oldrichH 5 months ago.

Assisted by: Bobby.

Author Posts
July 27, 2024 at 11:31 am #16010630

oldrichH

Background of the issue:
Check the translation and sync changes.

Symptoms:

Questions:

July 30, 2024 at 12:18 am #16018222

Bobby
Supporter

Languages: English (English )

Timezone: America/Los_Angeles (GMT-08:00)

Hi there,

Did you recently make an edit to the default language? Was there possibly any new content added or the structure of the paragraph/sentence changed?

August 4, 2024 at 8:55 am #16036271

oldrichH

No, we did nothing since translation to Spanish on 2022. I just updated one page and then I have noticed that many strings are selected as unsaved. But on good side, page remain translated on front end.

Another very strange behavior is that after saving translation I am redirected to another page than I have edited (when entering to ATE from front end).

Anyway, we have many problems so I have a big doubts about WPML functionality on this site. I would like to examine old backup database from Januray 2018. Can you help me to analyze default language setup via SQL?

I am duplicating old production version to the new development URL with appropriate PHP version.

I did not find the information, when I am changing URL of the WP installation, should I check "Keep Post GUID Unchanged" option in Duplicator? Should I replace URL and absolute path in all DB tables?

WPML was installed in 2016 and there were many problems during upgrading. When I will be ensured, that all options and languages are set well I would like to test controlled upgrade from WP 4.8.2 to 6.4, WPML and all plugins too, as well as PHP.

Then we can check out db tables again.

Image 2024 56 04 001.png
August 4, 2024 at 5:01 pm #16036974

oldrichH

I tried to restore and update old backup. I have got an error after activation latest WPML on WP 6.4.5 with WPML tables from 2018.

[04-Aug-2024 16:31:59 UTC] WordPress database error Unknown column 'translate_job.editor_job_id' in 'field list' for query (
SELECT
translation_status.rid AS id, 'post' AS type, translation_status.tp_id AS tp_id, batches.id AS local_batch_id, batches.tp_id AS tp_batch_id, batches.batch_name, translation_status.status AS status, original_translations.element_id AS original_element_id, translations.source_language_code AS source_language, translations.language_code AS target_language, translations.trid, translations.element_type, translations.element_id, translation_status.translation_service AS translation_service, translation_status.timestamp AS sent_date, translate_job.deadline_date AS deadline_date, translate_job.completed_date AS completed_date, posts.post_title AS title, source_languages.english_name AS source_language_name, target_languages.english_name AS target_language_name, translate_job.translator_id AS translator_id, translate_job.job_id AS translate_job_id, translation_status.tp_revision AS revision, translation_status.ts_status AS ts_status, translation_status.needs_update AS needs_update, translate_job.editor AS editor, (
SELECT COUNT(job_id)
FROM wpweb_icl_translate_job as copmpleted_translation_job
WHERE copmpleted_translation_job.rid = translation_status.rid AND copmpleted_translation_job.translated = 1
) > 0 AS has_completed_translation, translate_job.editor_job_id AS editor_job_id, translate_job.automatic AS automatic, translate_job.title AS job_title, translation_status.review_status AS review_status
FROM wpweb_icl_translation_status translation_status
INNER JOIN wpweb_icl_translations translations
ON translations.translation_id = translation_status.translation_id INNER JOIN wpweb_icl_translations original_translations
ON original_translations.trid = translations.trid AND original_translations.language_code = translations.source_language_code INNER JOIN (
SELECT *
FROM wpweb_icl_translate_job as translate_job
WHERE job_id = (
SELECT MAX(job_id) AS job_id
FROM wpweb_icl_translate_job as sub_translate_job
WHERE sub_translate_job.rid = translate_job.rid
)
) AS translate_job ON translate_job.rid = translation_status.rid INNER JOIN wpweb_posts posts ON posts.ID = original_translations.element_id LEFT JOIN wpweb_icl_languages source_languages
ON source_languages.code = translations.source_language_code LEFT JOIN wpweb_icl_languages target_languages
ON target_languages.code = translations.language_code INNER JOIN wpweb_icl_translation_batches batches
ON batches.id = translation_status.batch_id WHERE original_translations.element_type LIKE 'post%' AND translation_status.status IN (1,2) AND translation_status.translation_service != 'local' AND ( translation_status.tp_id IN ('0') ) AND translation_status.status != '42' ) UNION (
SELECT
translation_status.rid AS id, 'package' AS type, translation_status.tp_id AS tp_id, batches.id AS local_batch_id, batches.tp_id AS tp_batch_id, batches.batch_name, translation_status.status AS status, original_translations.element_id AS original_element_id, translations.source_language_code AS source_language, translations.language_code AS target_language, translations.trid, translations.element_type, translations.element_id, translation_status.translation_service AS translation_service, translation_status.timestamp AS sent_date, translate_job.deadline_date AS deadline_date, translate_job.completed_date AS completed_date, string_packages.title AS title, source_languages.english_name AS source_language_name, target_languages.english_name AS target_language_name, translate_job.translator_id AS translator_id, translate_job.job_id AS translate_job_id, translation_status.tp_revision AS revision, translation_status.ts_status AS ts_status, translation_status.needs_update AS needs_update, translate_job.editor AS editor, (
SELECT COUNT(job_id)
FROM wpweb_icl_translate_job as copmpleted_translation_job
WHERE copmpleted_translation_job.rid = translation_status.rid AND copmpleted_translation_job.translated = 1
) > 0 AS has_completed_translation, translate_job.editor_job_id AS editor_job_id, translate_job.automatic AS automatic, translate_job.title AS job_title, translation_status.review_status AS review_status
FROM wpweb_icl_translation_status translation_status
INNER JOIN wpweb_icl_translations translations
ON translations.translation_id = translation_status.translation_id INNER JOIN wpweb_icl_translations original_translations
ON original_translations.trid = translations.trid AND original_translations.language_code = translations.source_language_code INNER JOIN (
SELECT *
FROM wpweb_icl_translate_job as translate_job
WHERE job_id = (
SELECT MAX(job_id) AS job_id
FROM wpweb_icl_translate_job as sub_translate_job
WHERE sub_translate_job.rid = translate_job.rid
)
) AS translate_job ON translate_job.rid = translation_status.rid INNER JOIN wpweb_icl_string_packages string_packages
ON string_packages.ID = original_translations.element_id LEFT JOIN wpweb_icl_languages source_languages
ON source_languages.code = translations.source_language_code LEFT JOIN wpweb_icl_languages target_languages
ON target_languages.code = translations.language_code INNER JOIN wpweb_icl_translation_batches batches
ON batches.id = translation_status.batch_id WHERE original_translations.element_type LIKE 'package%' AND translation_status.status IN (1,2) AND translation_status.translation_service != 'local' AND ( translation_status.tp_id IN ('0') ) AND translation_status.status != '42' ) UNION (
SELECT
string_translations.id as id, "string" as type, string_status.rid as tp_id, batches.id as local_batch_id, batches.tp_id as tp_batch_id, batches.batch_name, string_translations.status as status, strings.id as original_element_id, strings.language as source_language, string_translations.language as target_language, NULL AS trid, NULL AS element_type, NULL AS element_id, string_translations.translation_service as translation_service, string_status.timestamp as sent_date, NULL as deadline_date, NULL as completed_date, strings.value as title, source_languages.english_name as source_language_name, target_languages.english_name as target_language_name, string_translations.translator_id as translator_id, NULL as translate_job_id, core_status.tp_revision AS revision, core_status.ts_status AS ts_status, NULL AS needs_update, NULL AS editor, string_translations.status = 10 AS has_completed_translation, NULL AS editor_job_id, 0 AS automatic, NULL AS job_title, NULL AS review_status
FROM wpweb_icl_translation_batches AS translation_batches
INNER JOIN wpweb_icl_string_translations AS string_translations
ON string_translations.batch_id = translation_batches.id INNER JOIN wpweb_icl_strings AS strings
ON strings.id = string_translations.string_id LEFT JOIN wpweb_icl_string_status AS string_status
ON string_status.string_translation_id = string_translations.id LEFT JOIN wpweb_icl_core_status AS core_status
ON core_status.rid = string_status.rid LEFT JOIN wpweb_icl_languages source_languages
ON source_languages.code = strings.language LEFT JOIN wpweb_icl_languages target_languages
ON target_languages.code = string_translations.language INNER JOIN wpweb_icl_translation_batches batches
ON batches.id = string_translations.batch_id WHERE string_translations.status IN (1,2) AND string_status.rid IS NOT NULL AND ( string_status.rid IN ('0') ) ) UNION (
SELECT
translation_status.rid AS id, 'st-batch_strings' AS type, translation_status.tp_id AS tp_id, batches.id AS local_batch_id, batches.tp_id AS tp_batch_id, batches.batch_name, translation_status.status AS status, original_translations.element_id AS original_element_id, translations.source_language_code AS source_language, translations.language_code AS target_language, translations.trid, translations.element_type, translations.element_id, translation_status.translation_service AS translation_service, translation_status.timestamp AS sent_date, translate_job.deadline_date AS deadline_date, translate_job.completed_date AS completed_date, translation_batches.batch_name AS title, source_languages.english_name AS source_language_name, target_languages.english_name AS target_language_name, translate_job.translator_id AS translator_id, translate_job.job_id AS translate_job_id, translation_status.tp_revision AS revision, translation_status.ts_status AS ts_status, translation_status.needs_update AS needs_update, translate_job.editor AS editor, (
SELECT COUNT(job_id)
FROM wpweb_icl_translate_job as copmpleted_translation_job
WHERE copmpleted_translation_job.rid = translation_status.rid AND copmpleted_translation_job.translated = 1
) > 0 AS has_completed_translation, translate_job.editor_job_id AS editor_job_id, translate_job.automatic AS automatic, translate_job.title AS job_title, translation_status.review_status AS review_status
FROM wpweb_icl_translation_status translation_status
INNER JOIN wpweb_icl_translations translations
ON translations.translation_id = translation_status.translation_id INNER JOIN wpweb_icl_translations original_translations
ON original_translations.trid = translations.trid AND original_translations.language_code = translations.source_language_code INNER JOIN (
SELECT *
FROM wpweb_icl_translate_job as translate_job
WHERE job_id = (
SELECT MAX(job_id) AS job_id
FROM wpweb_icl_translate_job as sub_translate_job
WHERE sub_translate_job.rid = translate_job.rid
)
) AS translate_job ON translate_job.rid = translation_status.rid INNER JOIN wpweb_icl_translation_batches translation_batches ON translation_batches.id = original_translations.element_id LEFT JOIN wpweb_icl_languages source_languages
ON source_languages.code = translations.source_language_code LEFT JOIN wpweb_icl_languages target_languages
ON target_languages.code = translations.language_code INNER JOIN wpweb_icl_translation_batches batches
ON batches.id = translation_status.batch_id WHERE original_translations.element_type = 'st-batch_strings' AND translation_status.status IN (1,2) AND translation_status.translation_service != 'local' AND ( translation_status.tp_id IN ('0') ) AND translation_status.status != '42' ) made by require_once('wp-admin/admin.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, WPML_TM_Upgrade_Loader->wpml_tm_upgrade, WPML_Upgrade->run, WPML_Upgrade->run_admin, WPML_Upgrade->run_commands, WPML_Upgrade->run_command, WPML_Upgrade->maybe_run_admin, WPML_TM_Upgrade_Cancel_Orphan_Jobs->run_admin, WPML_TP_Sync_Orphan_Jobs->cancel_orphans, WPML_TM_Jobs_Repository->get

I have tried to activate WPML also on WP 5.3 to make WPML table maintenance but it was not compatible with latest WPML version.

So which is the really safe and garanted upgrade setup? I think that our production database is messed by WPML totally.

August 4, 2024 at 9:47 pm #16037153

oldrichH

I have reverted back to WordPress 4.8.2, WPML Multilingual CMS 3.9.2, WPML Media 2.2.2, WPML String Translation 2.7.2, WPML Translation Management 2.5.1, WPML Sticky Links 1.4.2, WPML CMS Nav 1.4.22 on PHP 7.0.33.

I am digging in the old history. I used WP ALL IMPORT to import some contents during site creation, I think we have to check that all language attributes are set well.

Than we may upgrade to newer version of WP, PHP, WPML and Theme Enfold.
I have designed one upgrade point in the on September 2020, to avoid too big database maintenance and errors. I have prepared to upgrade:
WP 5.3,
wpml-cms-nav.1.5.5.zip
wpml-sticky-links.1.5.4.zip
wpml-media-translation.2.6.0.zip
wpml-string-translation.3.1.0.zip
sitepress-multilingual-cms.4.4.0.zip
enfold 4.7.4.zip

and switch to PHP 7.4.

Then we can upgrade to recent versions.

August 5, 2024 at 8:06 am #16037840

oldrichH

Hello Bobby,
I have updated to WPML to wpml-string-translation.3.1.5.zip, wpml-media-translation.2.6.1.zip, sitepress-multilingual-cms.4.4.5.zip, wpml-translation-management.2.10.3.zip, wpml-cms-nav.1.5.5.zip, wpml-sticky-links.1.5.4.zip

After WPML activation i have not received any DB or WPML errors.

I will need your help with checking default language settings, WPML settings and WPML tables.

I'm working on development site, I can share access with you.

August 5, 2024 at 10:40 pm #16042174

Bobby
Supporter

Languages: English (English )

Timezone: America/Los_Angeles (GMT-08:00)

Hi there,

Thank you for the updates, I will share the private field reply however, before I gain access to the backend I would like to verify the issue that we are reviewing.

Do you want me to do a general overview of the setup or is there a specific issue you would like us to resolve?

The original issue in this thread is about the translation missing the translations when opening the ATE editor.

August 7, 2024 at 6:19 pm #16049693

Bobby
Supporter

Languages: English (English )

Timezone: America/Los_Angeles (GMT-08:00)

Thank you for the access details! I am reviewing this and will update you shortly

August 9, 2024 at 5:12 pm #16057367

Bobby
Supporter

Languages: English (English )

Timezone: America/Los_Angeles (GMT-08:00)

Hi there,

A few things:

In WPML->Settings->Translation Mode set to "Translate what you choose".

Editor for new translations is set to "Advanced Translation Editor"

Editor for translations previously created using Classic Translation Editor
set to Classic Translation Editor (recommended).

It is important to note that the Classic Translation Editor(CTE) and the Advanced Translation Editor(ATE) do not communicate with each other.

This means that if you make full translations in the CTE then you switch to ATE the ATE editor will require you to translate the page again.

Pages->Studiu ARC -> if I edit the EN page I can see that it's created in CTE.

Pages-> Zasílání pozvánek -> click to add new translation it opens in ATE.

In the ATE editor I can see you are using the new GEN 3 version of ATE, click on the gear icon at the top right and either deactivate "I prefer bigger segments" if you wish to keep using Gen 3 OR Turn on "Use the previous version of the Advanced Translation Editor" to switch to the previous version.

A few issues are coming from the GEN 3 version that our team is working on resolving at the moment this should help with any issues you might have in the ATE editor.

August 11, 2024 at 10:43 am #16059315

oldrichH

In WPML->Settings->Translation Mode set to "Translate what you choose".
RE: that's right

Editor for new translations is set to "Advanced Translation Editor"

RE: that's right but I would avoid GEN 3 beta. This version bring back "new line headake". WPML seem to be misconceptual at all. And you probably know, that GEN3 is not fully compatible with older version due the new line handling...

Editor for translations previously created using Classic Translation Editor
set to Classic Translation Editor (recommended).

RE: Ok, probably I have fixed the bug with CTE, which was the reason to migrate to ATE all translations

It is important to note that the Classic Translation Editor(CTE) and the Advanced Translation Editor(ATE) do not communicate with each other.
This means that if you make full translations in the CTE then you switch to ATE the ATE editor will require you to translate the page again.

RE: I know, it is big deal for the clients...

Pages->Studiu ARC -> if I edit the EN page I can see that it's created in CTE.
RE: Of course, only the Spanish is made by ATE.

Pages-> Zasílání pozvánek -> click to add new translation it opens in ATE.
RE: It is ok if you have set ATE for new translations.

In the ATE editor I can see you are using the new GEN 3 version of ATE, click on the gear icon at the top right and either deactivate "I prefer bigger segments" if you wish to keep using Gen 3 OR Turn on "Use the previous version of the Advanced Translation Editor" to switch to the previous version.

RE: Yes I will do it, but anyway, WPML will remove ATE GEN 2 soon.

A few issues are coming from the GEN 3 version that our team is working on resolving at the moment this should help with any issues you might have in the ATE editor.

RE: Yes, I have noticed the problem with wrong redirection after save and problems with new lines while pasting translations to ATE in GEN 3. It really complicates manual translations, but WPML probably focus only on the automatic translations.

I also experienced the problem with unsaved finished translations in ATE on my another website, so I would not recommend to my client migrate to ATE at all. I think that ATE automatically changes string joins or something like this. IF ATE is not reliable as well as CTE, we will try to keep CTE functional as possible or find another solution.

WPML is a big disappointment for me.
Not resolved, but we can close this thread.

The topic ‘[Closed] ATE detect some strings as changed and set the done translation as unsaved’ is closed to new replies.