前端开发在开发多语言网站的过程中,需要与后端进行数据交互以获得正确的翻译。GraphQL 是一种广泛使用的 API 查询语言,可以帮助开发人员更好地管理数据,并在多语言设置中进行更好的数据处理。
在本文中,我们将探讨如何使用 GraphQL 在后端实现多语言 API。
什么是 GraphQL?
GraphQL 是一种用于 API 的查询语言,是一种更高效,更强大,更灵活的替代 REST API。GraphQL 充分利用现代客户端的数据要求,用于构建 API,并在客户端应用程序中实现精准数据的获取需求。
与 REST API 不同的是,GraphQL API 提供了一个适用于客户端的强大查询语言,使客户端可以精确指定其所需的数据,而无需依赖后端固定的接口。
GraphQL 与多语言
多语言网站的前端通常需要不同语言的翻译。这个需求需要在后端实现多语言 API。
GraphQL 提供了在后端处理这种需求的强大能力。在 GraphQL 中,API 呈现为一种有层次的数据图,其中每个字段都有其自己唯一的标识符。这确保了与多语言数据共存的数据是精准的且有序的,而不是传统的无序的 JSON 数据。
在 GraphQL 中,我们可以使用本地化软件来管理翻译,并将其与 API 定义一起管理。这意味着我们可以根据客户端语言选择提供正确的翻译,并将其内容嵌入到我们的 API 响应中。
GraphQL 多语言示例
为了了解如何在 GraphQL 中实现多语言后端 API,请执行以下步骤:
- 添加 i18next 依赖项
在你的项目目录中,使用以下命令安装 i18next:
--- ------- ------- ------
然后,将其添加到你的后端项目中。
- 添加本地化区域和语言
在项目文件夹中,创建一个 locales
文件夹,然后添加一个用于存储语言文件的新文件夹。
在这个文件夹中,创建使用标准的 .json
文件格式的语言文件。例如,在一个名为 en
的文件夹中,创建一个 translation.json
文件:
- ----------- ------- ------- -
在一个 fr
文件夹中,创建一个 translation.json
文件:
- ----------- -------- -- ------- -
- 在 GraphQL 中使用本地化
创建一个 GraphQL 查询,并将其与 i18next
库结合使用。在查询语句中,定义一个名称和一个它所关联的语言代码。
有关完整操作,请查看以下代码示例:
------ ------- ---- ---------- ----- ----- - - ----- -------------- -------- - -------- -- - ---- ----------------- ------ - - -- ----- ------------ - ----- -------------- ---- ------------- ---------- - --- - ------------ -------------------------------------- -- --- - ------------ -------------------------------------- - - -- ------------- -- - -- ---- --- ------------ ---- -- ---- --- ------------------------------------ ----- -- -- - ----- --------- - - ----- ------------ -- --------------- ------ ---------------------- -- - -------------------- --- ---
在上面的例子中,我们首先初始化 i18next,并定义我们所支持的语言。然后,我们调用 i18next.changeLanguage
方法来更改当前语言,并在查询语句中传递变量。
这个查询将返回一个名为 getUser
的查询结果,其中包含用户的名称和由所选语言的翻译。
结论
GraphQL 在多语言应用程序的设计和开发中可以发挥关键作用。由于 GraphQL 支持有层次的数据图和相关查询语言,因此处理多语言数据非常容易。在本文中,我们演示了如何在 GraphQL 中使用 i18next 将多语言 API 集成到后端。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672b1ed4ddd3a70eb6d1c119