# General Translation Integrations: Eseguire query sulle traduzioni URL: https://generaltranslation.com/it/docs/integrations/sanity/guides/querying-translations.mdx --- title: Eseguire query sulle traduzioni description: Come eseguire query sulle traduzioni di Sanity a livello di documento e di campo con GROQ. related: links: - /docs/integrations/sanity/guides/translating-content - /docs/integrations/sanity/guides/managing-translations - /docs/integrations/sanity/guides/configuring-sanity --- General Translation supporta due modelli di archiviazione in Sanity. La localizzazione a livello di documento crea un documento per ogni impostazione regionale, mentre la localizzazione a livello di campo memorizza i valori delle impostazioni regionali in array internazionalizzati all'interno di un singolo documento. ## Eseguire query sulle traduzioni a livello di documento [#documents] Le traduzioni a livello di documento sono contrassegnate da un campo lingua (`language` per impostazione predefinita). Esegui la query della versione che ti serve filtrando per quel campo. ### Eseguire query sul contenuto sorgente I documenti sorgente non impostano il campo lingua per impostazione predefinita. Escludi i documenti tradotti filtrando per i documenti in cui il campo lingua non è definito. ```text *[_type == "article" && !defined(language)]{ title, slug, body } ``` ### Eseguire query su un'impostazione regionale di destinazione Filtra in base al campo della lingua. ```text *[_type == "article" && language == "es"]{ title, slug, body } ``` ### Eseguire query su un documento tradotto ```text *[_type == "article" && slug.current == "hello-world" && language == "es"][0]{ title, body } ``` Se elimini i duplicati degli slug tradotti, lo slug include il suffisso dell'impostazione regionale, ad esempio `hello-world-es`. ### Esegui query su tutte le versioni linguistiche ```text *[_type == "article"]{ title, slug, body, language } ``` ### Eseguire query sul contenuto sorgente con o senza il campo lingua Alcuni documenti sorgente impostano esplicitamente l'impostazione regionale sorgente, mentre altri lasciano il campo lingua non definito. Includi entrambe le rappresentazioni quando ti serve tutto il contenuto sorgente. ```text *[_type == "article" && (language == "en" || !defined(language))]{ title, slug, body } ``` ### Usa un campo lingua personalizzato Se la configurazione del plugin imposta `languageField: 'locale'`, esegui query su `locale` invece di `language`. Il campo nello schema e quello nella query devono corrispondere al valore configurato. ```text *[_type == "article" && locale == "es"]{ title, slug, body } ``` ### Eseguire query sui riferimenti tradotti Dopo l'aggiornamento dei riferimenti, i documenti tradotti puntano alle versioni tradotte dei documenti referenziati. Esegui query su di essi come fai normalmente. ```text *[_type == "article" && language == "es"]{ title, "author": author->{ name, language } } ``` Vedi [Riferimenti nelle patch](/docs/integrations/sanity/guides/managing-translations#patch-references) per capire come vengono riscritti i riferimenti. ## Eseguire query sulle traduzioni a livello di campo [#fields] La localizzazione a livello di campo memorizza ogni impostazione regionale in un campo `internationalizedArray*`. Filtra l'array in base alla proprietà `language` e seleziona il `value` corrispondente: ```text *[_type == "article"][0]{ "titleEs": title[language == "es"][0].value, "bodyEs": body[language == "es"][0].value } ``` Il documento stesso non riceve il campo `language` a livello di documento né un collegamento `translation.metadata`. Esegui query come di consueto sugli altri campi non localizzati dello stesso documento. ## Next steps - /docs/integrations/sanity/guides/translating-content - /docs/integrations/sanity/guides/managing-translations - /docs/integrations/sanity/guides/configuring-sanity