Problemi comuni
Problemi comuniGli articoli non vengono tradotti

Gli articoli non vengono tradotti

Se i tuoi articoli personalizzati non vengono tradotti, consulta i log per trovare una voce di errore o di avviso che spieghi il problema.

Per risolvere il problema, potresti dover configurare le impostazioni in base alle tue esigenze, oppure eventualmente ricreare l'articolo se contiene dati obsoleti o corrotti.

Le cause più frequenti, e le relative soluzioni, sono le seguenti:

Non esiste alcuna voce di traduzione

Se vedi un avviso come questo:

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.

...ciò significa che le voci di traduzione per i tuoi articoli personalizzati non sono state create (prima di avviare la traduzione).

Nelle impostazioni del plugin, sotto General Configuration, verifica se l'opzione Automatic creation of translation entries è abilitata per quel CPT:

Configurazione dell'opzione 'Automatic creation of translation entries'
Configurazione dell'opzione 'Automatic creation of translation entries'

In caso contrario, e se quel CPT utilizza wp_insert_post per creare le voci, abilita allora questa opzione.

Altrimenti, devi prima creare quelle voci di traduzione tramite Polylang (cliccando sul link +), quindi avviare la traduzione.

Le voci di traduzione non hanno lo stato previsto

Se vedi un avviso come questo:

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.

...ciò significa che le voci di traduzione hanno uno stato diverso da quello configurato nelle impostazioni del plugin.

Ad esempio, se l'opzione Status to update è impostata su draft, e le voci di traduzione hanno uno stato publish, allora la traduzione non verrà creata.

Nelle impostazioni del plugin, sotto General Configuration, verifica se l'opzione Status to update è impostata sullo stato previsto:

Configurazione dell'opzione 'Status to update'
Configurazione dell'opzione 'Status to update'

Altrimenti, modifica lo stato delle voci di traduzione di conseguenza.

L'articolo contiene dati obsoleti o corrotti

Se vedi un avviso come questo:

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

...e la voce del log indica che, anche se l'articolo ha un articolo di traduzione, non lo riconosce, allora l'articolo potrebbe contenere dati obsoleti o corrotti che devono essere rimossi.

Ad esempio, verifica il "Additional context" in questa voce 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
    }
  }
}

Nell'esempio precedente, l'articolo di origine in inglese con ID 16597 ("id": 16597, "polylangLanguageLocale": { "code": "en" }) ha un articolo di traduzione in spagnolo con ID 16613 ("customPostIDTranslationCustomPostIDLanguageIDs": { "es": 16613 }), ma non lo riconosce ("hasTranslationCustomPosts": false).

In questo caso, quell'articolo di traduzione con ID 16613 non esiste più, ma la relazione Polylang nell'articolo con ID 16597 verso quell'articolo non è stata rimossa.

A causa di questi dati obsoleti o corrotti, il plugin non riesce a tradurre l'articolo.

Per risolvere il problema, devi ricreare l'articolo di origine e tradurre quello. Quindi, elimina l'articolo di traduzione corrotto.