# General Translation Integrations: Interroger les traductions URL: https://generaltranslation.com/fr/docs/integrations/sanity/guides/querying-translations.mdx --- title: Interroger les traductions description: Comment interroger les traductions Sanity au niveau du document et au niveau du champ avec GROQ. related: links: - /docs/integrations/sanity/guides/translating-content - /docs/integrations/sanity/guides/managing-translations - /docs/integrations/sanity/guides/configuring-sanity --- General Translation prend en charge deux modèles de stockage dans Sanity. La localisation au niveau du document crée un document pour chaque paramètre régional, tandis que la localisation au niveau du champ stocke les valeurs de paramètre régional dans des tableaux internationalisés au sein d’un même document. ## Interroger les traductions au niveau du document [#documents] Les traductions au niveau du document sont associées à un champ de langue (par défaut `language`). Interrogez la version dont vous avez besoin en filtrant sur ce champ. ### Interroger le contenu source Les documents source ne renseignent pas le champ de langue par défaut. Excluez les documents traduits en filtrant sur un champ de langue non défini. ```text *[_type == "article" && !defined(language)]{ title, slug, body } ``` ### Interroger un paramètre régional cible Filtrez selon le champ de langue. ```text *[_type == "article" && language == "es"]{ title, slug, body } ``` ### Interroger un document traduit ```text *[_type == "article" && slug.current == "hello-world" && language == "es"][0]{ title, body } ``` Si vous dédupliquez des slugs traduits, le slug inclut le suffixe du paramètre régional, par exemple `hello-world-es`. ### Interroger toutes les versions dans chaque langue ```text *[_type == "article"]{ title, slug, body, language } ``` ### Interroger le contenu source avec ou sans champ de langue Certains documents source définissent explicitement le paramètre régional source, tandis que d’autres ne définissent pas le champ de langue. Incluez les deux représentations lorsque vous avez besoin de tout le contenu source. ```text *[_type == "article" && (language == "en" || !defined(language))]{ title, slug, body } ``` ### Utiliser un champ de langue personnalisé Si la configuration de votre plugin définit `languageField: 'locale'`, interrogez `locale` plutôt que `language`. Le champ du schéma et le champ de la requête doivent correspondre à la valeur configurée. ```text *[_type == "article" && locale == "es"]{ title, slug, body } ``` ### Interroger les références traduites Une fois les références mises à jour, les documents traduits pointent vers les versions traduites des documents référencés. Interrogez-les comme d’habitude. ```text *[_type == "article" && language == "es"]{ title, "author": author->{ name, language } } ``` Voir [Modification des références](/docs/integrations/sanity/guides/managing-translations#patch-references) pour savoir comment les références sont réécrites. ## Interroger les traductions au niveau du champ [#fields] La localisation au niveau du champ stocke chaque paramètre régional dans un champ `internationalizedArray*`. Filtrez le tableau en fonction de sa propriété `language`, puis projetez la `value` correspondante : ```text *[_type == "article"][0]{ "titleEs": title[language == "es"][0].value, "bodyEs": body[language == "es"][0].value } ``` Le document lui-même ne reçoit ni le champ `language` au niveau du document, ni un lien `translation.metadata`. Interrogez comme d’habitude les autres champs non localisés du même document. ## Next steps - /docs/integrations/sanity/guides/translating-content - /docs/integrations/sanity/guides/managing-translations - /docs/integrations/sanity/guides/configuring-sanity