使用 GraphQL 查询从多语言模式中获取本地化数据

     2023-03-08     203

关键词:

【中文标题】使用 GraphQL 查询从多语言模式中获取本地化数据【英文标题】:Get localized data from multilingual schema with GraphQL query 【发布时间】:2019-02-25 23:18:58 【问题描述】:

我有以下 MongoDB 架构。

Item 
  _id: ObjectId,
  translations: [
    language: String
    name: String
  ]

所以我的 Item 实例可能看起来像这样。


  _id: ObjectId("5ba3bf09d3121aba3ba2f488"),
  translations: [
  
    language: "en"
    name: "a Car"
  ,
  
    language: "de",
    name: "der Wagen"
  ]

我希望能够以这种方式使用 Graphql 以特定语言查询我的数据。


  item(where: language: "en") 
    name
  

所以它会产生像这样的形状很好的输出。


  name: "a Car"

请告诉我一些好的做法或好方法,我可以设置我的 Graphql 解析器映射?

我正在使用 Apollo 服务器。

非常感谢!

【问题讨论】:

【参考方案1】:

针对特定语言查询(具有多个字段)的一般解决方案可能是:

将语言参数传递给查询解析器 将语言存储在解析器上下文中 根据需要使用上下文中的语言

查询:

query 
  item(language: "en") 
    name
    otherField
  

解析器:


  item: (_,  language , context) => 
    context.language = language;
    return 
      name: (_, context) => getNameByLang(context.language),
      otherField: (_, context) => getOtherByLang(context.language),
    ;
  ,


或者如果只有一个翻译字段:

query 
  item 
    name(language: "en")
  

因此您可以直接在名称解析器中获取语言作为参数。


  item: () => (
    name: ( language ) => getNameByLang(language),
  )

【讨论】:

使用 Relay 时本地化 GraphQL 结果

】使用Relay时本地化GraphQL结果【英文标题】:LocalizingGraphQLresultswhenusingRelay【发布时间】:2017-02-0814:02:18【问题描述】:我希望GraphQL/Relay社区中的某个人遇到了这个问题。我们有一个多语言系统,这意味着结果是本地化的。所以... 查看详情

IOS:启动镜像多语言

...内容吗?【问题讨论】:【参考方案1】:解决方案是像本地化项目中的任何其他资源一样本地化Default.png。从Xcode的项目列表中选择Default.png,在右 查看详情

纸壳cms可视化建站系统搭建多语言网站(代码片段)

...功能:设置说明多语言模式单域名模式,即所有的语言都使用同一个域名访问,不同的语言使 查看详情

德尔福。使用 idHTTP 显示获取。在多语言 Windows 中获取 Unicode 文本

】德尔福。使用idHTTP显示获取。在多语言Windows中获取Unicode文本【英文标题】:Delphi.ShowgottenwithidHTTP.GetUnicodetextinmultilanguageWindows【发布时间】:2011-06-0716:27:43【问题描述】:我需要你的帮助。请帮帮我。我有Delphi2010我尝试idHTTP.G... 查看详情

使用 Laravel 进行多语言数据库管理

...下载到应用程序的对象集合。对象必须根据设备语言进行本地化。在Laravel中是否有一种简单的方法可以做到这一点?也许是一个雄辩的或Laravel插件?我想避免自己编写本地化支持 查看详情

ios国际化(多语言)(代码片段)

...2从代码中分离出文本创建一个“.strings”扩展名的文件来本地化字符串,需要把这些字符串全部放在一个单独的文件中。它将会在包中简单地引用这些字符串,而不是在实现、使用的方法中进行硬编码。Xcode使用带有“.s 查看详情

使用 AWS AppSync 和 Amplify 从 GraphQL 查询中获取自定义响应

】使用AWSAppSync和Amplify从GraphQL查询中获取自定义响应【英文标题】:GettingcustomizedresponsesfromGraphQLquerieswithAWSAppSyncandAmplify【发布时间】:2021-02-2103:07:57【问题描述】:我对GraphQL、Appsync和Amplify非常陌生。我正在使用带有Amplify的AWS... 查看详情

ios多语言本地化(国际化)设置

...,其他的操作是一致的。先来说说几个涉及到多语言本地化设置的:1.本地化应用名称2.本地化字符串(文字)3.本地化图片、素材4.本地化StoryBoard(Xib)!!重点重点,以上都是废话:这里才是配置根据当前设... 查看详情

多语言应用开发中本地化信息对照表

多语言应用开发中本地化信息对照表。包含区域编号、本地化名称、英语名称、中文名称、国家地区码、语言代码和流通币种等。区域编号本地化名称英语名称中文名称国家地区语言流通币种排序id-idBahasaIndonesiaIndonesian印度尼西... 查看详情

为部分 graphQL 查询指定缓存策略

】为部分graphQL查询指定缓存策略【英文标题】:SpecifycachepolicyforpartsofagraphQLquery【发布时间】:2021-03-0720:51:26【问题描述】:在Apollo的GraphQL版本中,有fetchpolicies指定获取查询是应该从服务器获取数据还是使用本地缓存(如果有... 查看详情

为 Movilizer 应用程序提供本地化/多语言支持

】为Movilizer应用程序提供本地化/多语言支持【英文标题】:ProvideLocalization/MultilanguagesupportforMovilizerApplications【发布时间】:2016-10-1521:24:00【问题描述】:本地化Movilizer应用程序(提供多语言支持)我使用以下方法来替换屏幕的... 查看详情

[abp源码分析]十多语言(本地化)处理(代码片段)

...走向世界的话,那么肯定需要针对每一个用户进行不同的本地化处理,有可能你的客户在日本,需要使用日语作为显示文本,也有可能你的客户在美国,需要使用英语作为显示文本。如果你还是一样的写死错误信息,或者描述信... 查看详情

无法在异步方法中获取查询,无法从外部导入 graphql 查询

】无法在异步方法中获取查询,无法从外部导入graphql查询【英文标题】:Cannotfetchqueryinsideasyncmethod,cantimportgraphqlqueriesfromoutside【发布时间】:2021-10-2421:35:24【问题描述】:我想从父组件获取属性更改的字符(并且ofc使用这些道... 查看详情

ios多语言本地化(国际化)设置

讨论的iOS应用中的多语言设置,Ok一般是两种情况:1.根据当前设备语言自动切换显示2.在应用中可进行语言设定至今,我个人做过的项目中有6个是涉及到多语言的,其中全部都是需要在应用中可进行设置。其实也... 查看详情

如何编写 GraphQL 查询以使用 GatsbyJS 从 mdx 文件中获取图像?

】如何编写GraphQL查询以使用GatsbyJS从mdx文件中获取图像?【英文标题】:HowtowriteGraphQL-queryforfetchingimagefrommdx-fileusingGatsbyJS?【发布时间】:2020-02-0323:24:37【问题描述】:我正在尝试使用GatsbyJS创建博客。我按照本教程进行操作https... 查看详情

我如何在 react-native 聊天应用程序中使用 GraphQl 订阅从 GraphQl 查询中获取实时更新

】我如何在react-native聊天应用程序中使用GraphQl订阅从GraphQl查询中获取实时更新【英文标题】:HowcaniuseGraphQlsubscriptionsinreact-nativechatapplicationtogetreal-timeupdatesfromGraphQlqueries【发布时间】:2020-09-2223:33:38【问题描述】:我在react-nativ... 查看详情

graphQL:如何在查询中从对象列表中获取对象

】graphQL:如何在查询中从对象列表中获取对象【英文标题】:graphQL:howtogetanobjectfromalistofobjects,inaquery【发布时间】:2018-07-0908:45:19【问题描述】:我正在尝试在GatsbyJS项目中使用graphQL,但不确定如何从“recipeImages”对象中的三... 查看详情

wordpress多语言支持(本地化)

本博客将介绍WordPress的多语言制作首先需要在wp-content目录下创建一个languages文件夹,用于存放语言包文件。然后在模板目录下的functions.php,然后在代码中添加函数加载该文件夹,示例代码如下:add_action(‘after_setup_theme‘,‘alanh... 查看详情