GraphQL 是一种用于 API 的查询语言,它可以帮助前端开发人员更高效地获取数据。在多语言应用程序中,我们需要能够根据用户的语言偏好来查询不同的本地化内容。本文将介绍如何在 GraphQL 中实现多语言查询。
基本思路
在 GraphQL 中实现多语言查询的基本思路是,为每种语言创建一个翻译对象,并将其作为查询参数传递给 GraphQL 查询。在服务器端,根据用户的语言偏好选择正确的翻译对象,并使用它来填充查询结果。
实现步骤
下面是在 GraphQL 中实现多语言查询的详细步骤:
1. 创建翻译对象
首先,我们需要为每种语言创建一个翻译对象。这个对象应该包含所有需要本地化的文本,以及每个文本对应的翻译。例如,对于英语和法语,我们可以创建以下两个对象:
-- -------------------- ---- ------- ----- ------------ - - --- - --------- -------- -------- ---------- ------ --- ----- --------- -- --- - --------- ---------- -------- --- -------- ------ ---- ------ --- --------- - --
2. 创建 GraphQL 查询
接下来,我们需要创建一个 GraphQL 查询,该查询应该接受一个语言参数,并使用该参数来选择正确的翻译对象。例如,我们可以创建以下查询:
query GetLocalizedContent($language: String!) { localizedContent(language: $language) { greeting goodbye error } }
3. 编写查询解析器
现在我们需要编写查询解析器,该解析器将根据用户的语言偏好选择正确的翻译对象,并使用它来填充查询结果。例如,我们可以创建以下查询解析器:
-- -------------------- ---- ------- ----- --------- - - ------ - ----------------- --- - -------- -- -- - ----- ----------- - ---------------------- -- ---------------- ------ - --------- --------------------- -------- -------------------- ------ ----------------- -- - - --
4. 运行查询
现在我们可以运行我们的查询了。我们只需要将语言参数传递给查询,并将结果用于渲染我们的应用程序。例如,我们可以使用以下代码来运行查询:
const result = await graphql({ schema, source: query, rootValue: resolvers, contextValue: { language: "fr" } });
示例代码
下面是完整的示例代码,它演示了如何在 GraphQL 中实现多语言查询:
-- -------------------- ---- ------- ----- - -------- ----------- - - ------------------- ----- ------------ - - --- - --------- -------- -------- ---------- ------ --- ----- --------- -- --- - --------- ---------- -------- --- -------- ------ ---- ------ --- --------- - -- ----- ------ - ------------- ---- ---------------- - --------- ------- -------- ------- ------ ------- - ---- ----- - -------------------------- --------- ----------------- - --- ----- --------- - - ------ - ----------------- --- - -------- -- -- - ----- ----------- - ---------------------- -- ---------------- ------ - --------- --------------------- -------- -------------------- ------ ----------------- -- - - -- ----- ----- - - ----- ------------------------------ -------- - -------------------------- ---------- - -------- ------- ----- - - -- --------- ------- ------- ------ ---------- ---------- ------------- - --------- ---- - -------------- -- - ------------------------------------------ ---
结论
在本文中,我们介绍了如何在 GraphQL 中实现多语言查询。我们讨论了基本思路和实现步骤,并提供了示例代码。希望这篇文章能够帮助你更好地为多语言应用程序编写 GraphQL 查询。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675e42f4e1dcc5c0fa4544d5