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 包 htmlelement-animation

    使用教程:npm 包 htmlelement-animation 当今,动画已经成为了网站设计必不可少的一部分,而 htmlelement-animation npm 包则是一个简单易用的动画库。

    3 年前
  • npm 包 @dwarvesf/tailwind-plugins 使用教程

    简介 @dwavesf/tailwind-plugins 是一款基于 Tailwind CSS 的插件,允许快速创建常用的 UI 组件,在日常的前端开发中极为实用。

    3 年前
  • npm 包 sparkline.js 使用教程

    随着 Web 界面的日益复杂,需要更强大的界面交互效果去提升用户的体验。在数据可视化的领域中,小而美的 sparkline 图表(小型折线图)是一种非常受欢迎的作法,能够展示紧凑、简洁的数据趋势,适用...

    3 年前
  • NPM 包 rehype-sectionize-headings 使用教程

    前言 在前端开发中,HTML 经常是开发者们需要操作的一项技术。而随着项目规模的不断增大,HTML 中的一些细节问题就变得十分重要。这时候,使用一些帮助我们更好地操作 HTML 的工具就非常必要了。

    3 年前
  • npm 包 @beefoio/file.log 使用教程

    在前端开发中,我们会经常需要将应用程序的日志信息记录到文件中,以便于后续排查问题。而使用 npm 包 @beefoio/file.log 则可以简化这一过程。 安装 在项目根目录下使用 npm 安装 ...

    3 年前
  • npm 包 @kelcon/homebridge-zwave-direct 使用教程

    在前端工程师的日常工作中,引入外部库和第三方依赖非常常见。其中,npm 包是前端开发中使用最多的工具之一。本文将详细介绍一个叫做 @kelcon/homebridge-zwave-direct 的 n...

    3 年前
  • npm包 @psoltys/remarker使用教程

    在前端开发中,我们经常需要创建文档或演示文稿,这时用到一个好的Markdown解析器就非常重要。本篇文章介绍了一个优秀的npm包 @psoltys/remarker,它可以将Markdown格式的文档...

    3 年前
  • npm 包 @unibtc/theia-vue-extension 使用教程

    在前端开发中,Vue.js 是一种广泛使用的 JavaScript 框架之一。在使用 Vue.js 开发应用程序时,很多情况下我们需要使用一些插件来简化开发工作流程。

    3 年前
  • npm 包 codex.editor.warning 使用教程

    在前端开发中,我们经常需要进行代码检查以确保代码质量和可读性。而 codex.editor.warning 正是一个非常强大的 npm 包,它可以帮助我们对代码进行自动化的检查,以提高编程能力和效率。

    3 年前
  • npm 包 react-decent-virtualization 使用教程

    简介 react-decent-virtualization 是一款基于 React 的可视化组件库,适用于大数据量的展示和滚动操作。它基于虚拟化技术实现了高效的渲染和滚动体验,减少了对内存和性能的消...

    3 年前
  • npm 包 code-music 使用教程

    随着 Web 技术的不断发展,前端开发已经不再是简单的 HTML、CSS 和 JavaScript 语言的拼接。现在,前端工程师需要掌握更多的技术和工具,其中 npm 是其中一个必不可少的工具。

    3 年前
  • npm包cpreact使用教程

    什么是cpreact Cpreact是一个React组件库。它提供了一系列优秀的组件,可以快速帮助开发者构建Web应用程序。 cpreact的优点 Cpreact不仅提高了开发效率,还具有以下优点: ...

    3 年前
  • npm 包 @shawn-leo/jsmind 使用教程

    简介 @shawn-leo/jsmind 是一个使用 JavaScript 编写的脑图库,能够以简洁易懂的方式用于前端应用程序的设计。该库提供了一系列可重用的组件和 API,将复杂脑图的创建变得简单,...

    3 年前
  • npm 包 react-svg-font-icons 使用教程

    在现代的前端开发中,图标已经成为了不可或缺的一部分。在很多情况下,我们需要使用图标来设计我们的网站或应用程序。在这个过程中,react-svg-font-icons是一个常用的工具,它提供了一种简单易...

    3 年前
  • npm 包 @akitecht/workshopper 使用教程

    在前端开发的过程中,我们经常需要学习新的技能和知识。而学习过程中,我们可能需要一些指导和练习。因此,很多开发者会选择使用交互式教程平台,比如 Codecademy。

    3 年前
  • npm 包 @mixint/bytepipette 使用教程

    在前端开发过程中,我们经常需要对图像进行操作,比如缩放、剪裁、调整亮度、对比度等等。BytePipette 是一个专为前端设计的图像处理库,它提供了丰富的 API,方便我们快速实现图像处理的需求。

    3 年前
  • npm 包 rails-nodejs 使用教程

    前言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,许多现代 web 应用程序都是基于 Node.js 构建的,同时也有着丰富的 npm 包库支持,而 Rai...

    3 年前
  • npm包react-native-animated-dialog使用教程

    在现代化的web开发过程中,移动端应用程序已成为不可或缺的一部分。这就导致开发人员需要为多个平台创建许多应用程序。React Native是一种用于开发跨平台移动应用的工具,其中,npm包react-...

    3 年前
  • npm 包 retry-assert 使用教程

    在前端开发中,我们经常会遇到需要对某些操作进行重试的情况,比如网络请求失败、数据库连接超时等。通常情况下,我们需要手动编写重试逻辑,这不仅费时费力,而且容易出错。在这种情况下,npm 包 retry-...

    3 年前
  • npm 包 yarn-workspace-commands 使用教程

    现代的前端项目通常由多个子项目组成,这些子项目各自拥有自己的代码库和依赖管理。管理这么多子项目会给我们带来一定的困难,例如如何一次性地安装所有依赖、如何快速地启动多个开发服务器等等。

    3 年前

相关推荐

    暂无文章