Распространённые проблемы
Распространённые проблемыЗаписи не переводятся

Записи не переводятся

Если ваши пользовательские записи не переводятся, просмотрите логи, чтобы найти запись об ошибке или предупреждении, объясняющую проблему.

Для решения проблемы может потребоваться настроить параметры в соответствии с вашими потребностями или, возможно, пересоздать запись, если она содержит устаревшие или повреждённые данные.

Наиболее распространённые причины и их решения приведены ниже:

Записи перевода отсутствуют

Если вы видите предупреждение следующего вида:

Warning [Query "translate-customposts"] Execution successful, but with warnings: 🟡 No custom post(s) was translated, because no translation entries exist. In the plugin Settings, enable the 'Automatic creation of translation entries' option for CPT 'post'; or otherwise, create those translation entries using Polylang (clicking on the '+' link), then trigger the translation.

...это означает, что записи перевода для ваших пользовательских записей не были созданы (до запуска перевода).

В настройках плагина в разделе General Configuration проверьте, включена ли опция Automatic creation of translation entries для данного CPT:

Настройка опции «Automatic creation of translation entries»
Настройка опции «Automatic creation of translation entries»

Если нет, и данный CPT использует wp_insert_post для создания записей, включите эту опцию.

В противном случае необходимо сначала создать записи перевода с помощью Polylang (нажав на ссылку +), а затем запустить перевод.

Записи перевода имеют неожиданный статус

Если вы видите предупреждение следующего вида:

Warning [Query "translate-customposts"] Execution successful, but with warnings: 🟡 No custom post(s) was translated, because the translation entries (CPT: 'post', IDs: [48634]) do not have the expected status: 'draft'. If this is unintended, either update the  and/or 'Status to synchronize' options in the plugin Settings, or change the status of the translation entries accordingly.

...это означает, что записи перевода имеют статус, отличный от настроенного в параметрах плагина.

Например, если параметр Status to update установлен в draft, а записи перевода имеют статус publish, перевод не будет создан.

В настройках плагина в разделе General Configuration проверьте, установлен ли параметр Status to update в ожидаемый статус:

Настройка опции «Status to update»
Настройка опции «Status to update»

В противном случае измените статус записей перевода соответствующим образом.

Запись содержит устаревшие или повреждённые данные

Если вы видите предупреждение следующего вида:

Warning [Query "translate-customposts"] Execution successful, but with warnings: 🟡 There are no custom posts to translate

...и запись в логе показывает, что, несмотря на наличие записи перевода у данной записи, она не распознаётся, значит запись может содержать устаревшие или повреждённые данные, которые необходимо удалить.

Например, проверьте «Additional context» в этой записи лога:

{
  "queryExecutionResponse": {
    "data": {
      "originCustomPosts": [
        {
          "__typename": "GenericCustomPost",
          "id": 16597,
          "polylangLanguageLocale": {
            "code": "en"
          },
          "polylangLanguage": "en",
          "originCustomPostHasDefaultLanguage": true,
          "isTranslateFromLanguageProvided": true,
          "originCustomPostHasSpecificLanguage": true,
          "canTranslateOriginPostFromSpecificLanguage": true,
          "canTranslateOriginPost": true,
          "customPostIDTranslationCustomPostIDLanguageIDs": {
            "es": 16613
          },
          "hasTranslationCustomPosts": true
        }
      ],
      "customPostIDTranslationCustomPostIds": {
        "16597": [
          16613
        ]
      },
      "translationCustomPostIdsList": [
        [
          16613
        ]
      ],
      "translationCustomPostIds": [
        16613
      ],
      "translationCustomPostIdToCustomPostIDs": {
        "16613": 16597
      },
      "emptyTranslationCustomPostVars": [],
      "hasTranslationCustomPosts": false
    }
  }
}

В приведённом примере исходная запись на английском языке с ID 16597 ("id": 16597, "polylangLanguageLocale": { "code": "en" }) имеет запись перевода на испанском с ID 16613 ("customPostIDTranslationCustomPostIDLanguageIDs": { "es": 16613 }), однако она не распознаётся ("hasTranslationCustomPosts": false).

В данном случае запись перевода с ID 16613 больше не существует, но связь Polylang в записи с ID 16597 с этой записью не была удалена.

Из-за этих устаревших или повреждённых данных плагин не может перевести запись.

Для решения проблемы необходимо пересоздать исходную запись и перевести её. Затем удалите повреждённую запись перевода.