如何解决如果 Sanity Studio 中没有可用于当前语言环境的文档,如何查询回退文档?
我正在做一个多语言项目。其中有 3 个语言环境 en-SG、en-VN 和 vi-VN。其中en-SG为默认locale。
是否可以通过某种方式查询文档,以便在没有任何语言环境(尤其是 en-VN)的文档时,站点会显示默认语言环境文档?
我已经通过这个查询获得了类似的结果。
*[_type == "cardPage" && (__i18n_lang == $locale || __i18n_lang == $defaultLocale ) && !(_id in path('drafts.**'))]
但是当 $locale doc 可用时它不能正常工作,它同时查询 $locale doc 和 $defaultLocale doc。并在某些页面上显示 $defaultLocale 文档而不是实际的 $locale 文档。
我使用 nextjs 作为前端,使用 sanity-plugin-intl-input 插件进行本地化。
解决方法
您可以将默认文档添加到结果中并返回第一个匹配项。
./squashfs-root/usr/bin/nvim: 1: ./squashfs-root/usr/bin/nvim: ELF: not found
./squashfs-root/usr/bin/nvim: 2: ./squashfs-root/usr/bin/nvim: ▒▒: not found
./squashfs-root/usr/bin/nvim: 3: ./squashfs-root/usr/bin/nvim: @8
@$@@@0ppp I I ▒I▒i▒i▒▒8R ▒▒K▒▒k▒▒k`▒▒▒DD▒I▒i▒i P▒td▒CA▒CA▒CA▒▒Q▒tdR▒td▒I▒i▒iP▒P▒/lib64/ld-linux-x86-64.so.2GNUGNU▒wvP▒HzƋ]▒▒n▒: not found
./squashfs-root/usr/bin/nvim: 4: ./squashfs-root/usr/bin/nvim: ▒: not found
./squashfs-root/usr/bin/nvim: 3: ./squashfs-root/usr/bin/nvim: Syntax error: Unterminated quoted string
串联有不同的风格。这是另一个使用 Spread 语法的例子。
[(
*[ _type == "something" && the_one_you_want ] +
*[ _type == "something" && fallback_or_default ]
)[0]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。