npm 包 gatsby-source-strapi-localized 使用教程

简介

gatsby-source-strapi-localized 是一个适用于 GatsbyJS 的 npm 包,它允许你将 Strapi 管理的本地化内容源导入到你的 Gatsby 网站中。该包支持多语言的内容,因此可以轻松地创建多语言、本地化的网站。在本文中,我们将学习如何使用 gatsby-source-strapi-localized 包来创建多语言网站。

安装

首先,你需要在你的 Gatsby 网站项目中安装 gatsby-source-strapi-localized 包。你可以使用 npm 或 yarn 包管理器来安装,如下所示:

--- ------- ------------------------------
- --
---- --- ------------------------------

使用

安装成功后,我们可以在 Gatsby 配置文件中启用 gatsby-source-strapi-localized 插件。在 gatsby-config.js 文件中,我们需要配置 Strapi 的 GraphQL 端点,并在插件列表中启用 gatsby-source-strapi-localized 插件。示例如下所示:

-- ----------------
-------------- - -
  ------------- -
    -- --- --------
  --
  -------- -
    -- --- ----- -------
    -
      -------- ---------------------------------
      -------- -
        ------- ------------------------
        ------------- -
          ----------
          -----------
        --
        ----------- -----
      --
    --
  --
--

在上面的示例中,我们配置了一个名为 gatsby-source-strapi-localized 的插件,并将其启用。我们还指定了 Strapi API 的 URL、内容类型和查询限制。这里的内容类型指你要导入到 Gatsby 的内容类型,比如上面的 articlecategory

当我们重新开发和构建 Gatsby 网站时,Gatsby 将向未来的 GraphQL 数据层中添加一个新的节点 gatsbyStrapiLocalized。该节点将包含有关 Strapi API 中导入的内容类型数据的所有字段和本地化信息。

在 Gatsby 查询中使用该节点时,你必须指定要从该节点的哪个字段进行查询。示例如下所示:

-- ------- -----
------ ----- ----- - --------
  -
    ------------------------------- -
      ----- -
        ---- -
          ------- -
            -----
            -----------
            ----
          -
          ------
        -
      -
    -
  -
--

在上面的示例中,我们使用 allGatsbyStrapiLocalizedArticle 来查询 Strapi 中的所有文章,并指定要查询的字段。每个查询结果包含了 Strapi 的文章数据以及该数据的语言代码。

示例应用

以下是一个简单的多语言网站示例应用,它使用 gatsby-source-strapi-localized 对 Strapi 中的多语言内容进行导入和查询。

-- --------------
------ ----- ---- --------
------ - ------- - ---- ---------
------ - ------- - ---- --------------------- -- -- ------------------ ----- ------- ---- -------

----- -------- - -- ---- -- -- -
  ----- - ------------- - - ----------  -- -- ------- ---- ---------
  ----- -------- - -------------------------------------------

  ------ -
    ----------------
      -------------------- --- ------- --------  --- -- ------------- ------ ---
      ----
        ---------------- ----- - -------- ------ - -- ------ -- -
          ------ -
            --- ------------
              ------------------------
              ----------------------------
              ---------------------
              ---------------
            -----
          --
        ---
      -----
    -----------------
  --
--

------ ----- ----- - --------
  -
    ------------------------------- -
      ----- -
        ---- -
          ------- -
            -----
            -----------
            ----
          -
          ------
        -
      -
    -
  -
--

------ ------- ---------
-- ---------------
-
  -------- -------- -- -- --------
-

-- ---------------
-
  -------- ----------
-

在上面的示例中,我使用了 gatsby-plugin-intl 插件提供的 useIntl hook 来获取翻译函数,并在组件内部使用该函数来渲染页面上的文本内容。在下面的跟随的示例应用中,我们将更加深入地了解 gatsby-plugin-intl 插件。

使用 gatsby-plugin-intl 进行国际化

gatsby-source-strapi-localized 提供了多语言数据源的导入和查询,并以 GraphQL 数据结构的方式提供了这些数据,用于在 Gatsby 网站上进行多语言和本地化展示。

但是,如何在页面和组件中使用这些内容的翻译和本地化呢?答案就是 gatsby-plugin-intl 插件!gatsby-plugin-intl 插件可以帮助你自动化翻译你的 Gatsby 网站,并基于不同的区域设置(即语言环境)本地化你的 Gatsby 线上应用。

下面是如何使用 gatsby-plugin-intl 插件对上面的示例应用进行国际化的介绍。

安装

首先,你需要在你的 Gatsby 网站项目中安装 gatsby-plugin-intl 包。你可以使用 npm 或 yarn 包管理器来安装,如下所示:

--- ------- ------------------
- --
---- --- ------------------

配置

在 Gatsby 配置文件中添加 gatsby-plugin-intl 插件,并配置默认和支持的语言、语言文件目录和翻译文件。示例如下所示:

-- ----------------
-------------- - -
  ------------- -
    -- --- ---- --------
  --
  -------- -
    -- --- ----- -------
    -
      -------- ---------------------
      -------- -
        ----- ---------------------------
        ---------- ------ ------   -- -------
        ---------------- -----     -- ----
        --------- -----
      --
    --
  --
--

在上面的示例中,我们配置了 gatsby-plugin-intl 插件,并使用 options 属性配置插件的基本设置,如语言、语言文件目录和默认语言。我们还开启了自动重定向(即重定向不存在或无效语言请求到默认语言)的选择。

使用

完成插件的基本配置后,我们就可以在页面和组件中使用翻译和本地化内容。我们可以使用 useIntl hook 来访问和使用国际化和本地化信息。在之前的示例应用中,我们已经对 useIntl hook 进行了介绍。

最后,我们需要为每个语言(包括默认语言)在项目的 locales 目录下创建一个文件,以保存该语言的翻译和本地化内容。示例如下所示:

-- ---------------
-
  -------- -------- -- -- --------
-

-- ---------------
-
  -------- ----------
-

在上面的示例中,我们分别创建了英语(默认语言)和中文的国际化文件,并指定了相应的翻译。

总结

在本文中,我们学习了如何使用 gatsby-source-strapi-localized 包将 Strapi 管理的本地化内容源导入到 Gatsby 网站中。我们还介绍了如何使用 gatsby-plugin-intl 插件进行国际化和本地化。这些工具和技术可用于创建多语言、本地化的 Gatsby 网站。

通过本文的学习,相信你已经掌握了如何使用 gatsby-source-strapi-localized 包和 gatsby-plugin-intl 插件,从而可以实现一个真正的多语言、本地化的 Gatsby 网站,并向全世界的用户提供最佳体验。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668f4d9381d61a3540e51


猜你喜欢

  • npm 包 react-native-view-global-redux 使用教程

    前言 React Native 是一种基于 JavaScript 和 React 的应用开发框架,允许开发者使用类似于网页开发的方式创建本地应用程序。而 React Native View Globa...

    3 年前
  • npm 包 celeb-diwali 使用教程

    介绍 celeb-diwali 是一个可以用于在你的网页或移动应用中添加“Diwali”(印度教的节日)效果的 npm 包。它提供了丰富的选项,可以自定义颜色、粒子数量、动画速度等,同时还支持在代码中...

    3 年前
  • npm 包 backaid 使用教程

    什么是 backaid backaid 是一个可以帮助开发者在前端应用中轻松设置和使用后端接口的 npm 包。它可以帮助开发者避免重复编写类似的网络请求代码,提高开发效率。

    3 年前
  • npm 包 vegas-js-events 使用教程

    介绍 vegas-js-events 是一个基于 jQuery 的事件库,提供了一种舞台方式来实现事件的播放。它允许在具有先决条件的情况下触发多个事件。本文将介绍如何使用该包及其 API,以及示例代码...

    3 年前
  • npm 包 long-task-requester 使用教程

    在前端开发过程中,有时我们需要处理长时间运行的任务,如图像处理、视频转换等。这些任务可能会占用大量的时间和计算资源,而且会影响用户体验。因此,我们需要一种方法来让这些任务在后台运行,并可控。

    3 年前
  • npm 包 @dorious/generator-react-hot-antd 使用教程

    在现代的前端开发中,React 可谓是非常流行的一个前端框架。以 React 为基础,搭建出 Ant Design 风格的前端组件库可以大大提高开发效率。但是,使用 React 和 Ant Desig...

    3 年前
  • npm 包 vue-cg 使用教程

    介绍 vue-cg 是一个基于 Vue.js 的前端组件库,它提供了一系列的组件和工具,使开发者可以更加便捷地开发一个漂亮、易用、高效的 Web 应用程序。vue-cg 的代码易读易懂,易于维护,并且...

    3 年前
  • npm 包 cloud-build-message 使用教程

    引言 在前端开发中,我们时常需要将代码打包并部署至云端,而云端的构建过程是否成功的消息推送至团队成员有助于保证协作的高效性和项目的稳定性。npm 包 cloud-build-message 是一款易于...

    3 年前
  • npm 包 s3-bucket-toolkit 使用教程

    简介 s3-bucket-toolkit 是一个基于 Node.js 的 npm 包,用于管理 Amazon S3 存储桶。它提供了许多实用工具,如上传和下载文件、创建和删除存储桶等。

    3 年前
  • npm 包 @guillaumejasmin/redux-resource-plugins 使用教程

    在前端开发中,Redux 是一个非常流行的状态管理库。它通过单一的状态树和不可变的状态来管理应用程序的状态,使得状态的变化更加可控,同时也更容易进行调试和测试。 在 Redux 中,我们通常会使用 R...

    3 年前
  • npm 包 lang-detect-cli 使用教程

    lang-detect-cli 是一个命令行工具,用于检测文本的语言。该工具基于 langdetect 库实现。本文将详细介绍如何安装和使用 lang-detect-cli。

    3 年前
  • npm 包 orange-build-cli 使用教程

    在前端开发中,构建工具是必不可少的一部分,它能够自动化完成许多繁琐的操作,提高我们的效率。而 orange-build-cli 就是一款基于 Webpack 的构建工具,它能够帮我们自动化完成打包、压...

    3 年前
  • npm 包 spi-client-js-autoip 使用教程

    介绍 SPI (Serial Peripheral Interface) 客户端是一种常见的硬件接口协议,在物联网设备中被广泛使用。Webpack 是一个模块打包器,可以将多个模块打包成一个文件。

    3 年前
  • npm 包 gulu-lmj 使用教程

    简介 gulu-lmj 是一款基于 Vue.js 开发的前端 UI 组件库,提供了丰富的组件和工具,可以大大提高前端开发效率,同时也有利于代码的复用和维护。本文主要介绍 gulu-lmj 的使用方法和...

    3 年前
  • npm 包 @giveback007/proxy-state 使用教程

    介绍 在前端开发中,使用状态管理是非常重要的一部分。@giveback007/proxy-state 是一个功能强大的 npm 包,可帮助你轻松管理你的状态。该包使用 ES6 Proxy 实现了状态和...

    3 年前
  • npm 包 @nobleclem/jquery-dragndrop 使用教程

    前言 随着 Web 开发的发展,我们在开发过程中常常需要使用一些第三方库来辅助我们完成任务。其中,npm 包是很重要的一部分,它们提供了很多实用的功能,可以帮助我们更快、更高效地完成开发工作。

    3 年前
  • npm 包 donejs-ursa 使用教程

    在前端开发过程中,我们常常需要使用加密算法来保护我们的敏感数据或者验证信息的安全性。一个常用的开源库就是 donejs-ursa。本文将介绍 donejs-ursa 的使用方法,希望能给初学者带来些许...

    3 年前
  • npm 包 starcount 使用教程

    starcount 是一个可以方便地获取 GitHub 上某个仓库的 star 数量的 npm 包,本文将介绍如何使用该包,并提供具体的代码示例。 安装 安装 starcount 可以使用 npm,命...

    3 年前
  • npm 包 roboto-stylus 使用教程

    介绍 Roboto-stylus 是一个 npm 包,提供了 Google 出品的 Roboto 字体的 stylus 实现。将其引入项目后,可以在 stylus 文件中直接使用 Roboto 字体的...

    3 年前
  • npm 包 callbag-timestamp 使用教程

    在前端开发中,我们常常需要对流式数据进行处理。而在 JavaScript 中,我们可以使用 callbags 来处理这些数据流。其中,callbag-timestamp 是一种常用的 npm 包,用于...

    3 年前

相关推荐

    暂无文章