Problemas comunes
Problemas comunesLas entradas no se traducen

Las entradas no se traducen

Si tus entradas personalizadas no se traducen, revisa los logs para encontrar una entrada de error o advertencia que explique el problema.

Para resolver el problema, es posible que necesites configurar los ajustes según tus necesidades, o posiblemente recrear la entrada si contiene datos obsoletos o corruptos.

Las causas más comunes, y sus soluciones, son las siguientes:

No existen entradas de traducción

Si ves una advertencia como esta:

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.

...significa que las entradas de traducción para tus entradas personalizadas no se crearon (antes de activar la traducción).

En los ajustes del plugin, dentro de General Configuration, comprueba si la opción Automatic creation of translation entries está activada para ese CPT:

Configuración de la opción 'Automatic creation of translation entries'
Configuración de la opción 'Automatic creation of translation entries'

Si no lo está, y ese CPT utiliza wp_insert_post para crear entradas, entonces activa esa opción.

De lo contrario, primero debes crear esas entradas de traducción usando Polylang (haciendo clic en el enlace +) y luego activar la traducción.

Las entradas de traducción no tienen el estado esperado

Si ves una advertencia como esta:

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.

...significa que las entradas de traducción tienen un estado diferente al configurado en los ajustes del plugin.

Por ejemplo, si la opción Status to update está configurada a draft, y las entradas de traducción tienen un estado de publish, entonces la traducción no se creará.

En los ajustes del plugin, dentro de General Configuration, comprueba si la opción Status to update está configurada al estado esperado:

Configuración de la opción 'Status to update'
Configuración de la opción 'Status to update'

De lo contrario, cambia el estado de las entradas de traducción en consecuencia.

La entrada contiene datos obsoletos o corruptos

Si ves una advertencia como esta:

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

...y la entrada del log muestra que, aunque la entrada tiene una entrada de traducción, no la reconoce, entonces la entrada puede contener datos obsoletos o corruptos que deben eliminarse.

Por ejemplo, revisa el "Additional context" en esta entrada del log:

{
  "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
    }
  }
}

En el ejemplo anterior, la entrada de origen en inglés con ID 16597 ("id": 16597, "polylangLanguageLocale": { "code": "en" }) tiene una entrada de traducción en español con ID 16613 ("customPostIDTranslationCustomPostIDLanguageIDs": { "es": 16613 }), pero no la reconoce ("hasTranslationCustomPosts": false).

En este caso, esa entrada de traducción con ID 16613 ya no existe, pero la relación de Polylang en la entrada con ID 16597 con esa entrada no se ha eliminado.

Debido a estos datos obsoletos o corruptos, el plugin no puede traducir la entrada.

Para resolver el problema, debes recrear la entrada de origen y traducir esa. Luego, elimina la entrada de traducción corrupta.