npm 包 keystone-multilingual 使用教程

当我们构建多语言站点时,管理和维护分散的语言文件很不方便。npm 包 keystone-multilingual 可以帮助我们将多语言内容存储在数据库中,便于管理和维护,同时提供了许多方便的 API。

安装

在项目根目录下执行以下命令:

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

使用

在 keystone.js 中引入 keystone-multilingual:

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

定义多语言模型:

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

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

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

其中:

  • locales: 所有的语言类型,这里有 'zh-cn''en' 两种;
  • defaultLocale: 默认语言,这里是 zh-cn
  • modelsDir: 多语言模型所在目录,这里是 ./models
  • translationsDir: 多语言文件所在目录,这里是 ./translations

keystoneMultilingual.register 接收要进行多语言化的模型,这里是 Post

./models/Post.js 中,根据需要添加多语言字段:

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

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

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

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

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

这里添加了多语言标题,并在 schema 中添加了 'title.zh-cn''title.en' 两个字段。

如此,我们就完成了一个多语言化的模型。

接下来,在控制器中添加多语言处理:

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

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

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

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

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

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

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

其中:

  • keystoneMultilingual.getLocale(req) 从请求中获取当前语言;
  • keystoneMultilingual.translateModel(post, locale) 完成多语言翻译。

在模板文件中,我们可以这样使用翻译:

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

模板引擎会自动根据当前语言显示正确的翻译内容。

示例代码

./models/Post.js

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

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

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

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

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

./controllers/postController.js

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

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

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

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

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

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

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

./views/post.hbs

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

这样,我们就完成了 keystone-multilingual 的使用教程。希望能对你的前端开发工作有所帮助。

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


猜你喜欢

  • npm 包 node-red-contrib-ads1x15 使用教程

    介绍 Node-RED 是一款在浏览器中运行的流程编程工具,它通过连接各种节点来实现数据的处理和传输等功能。node-red-contrib-ads1x15 是一个针对 TI 公司的 ADS1x15 ...

    2 年前
  • npm 包 object-translation 使用教程

    在前端开发中,我们常常需要对不同的对象进行格式化或翻译,而 npm 包 object-translation 可以帮助我们快速地转化和翻译对象。 Object-translation 是一个小型的 J...

    2 年前
  • npm 包 onpromise 使用教程

    onpromise 是一个 npm 包,可以让你使用 Promise 对象更加便利。本文将为你介绍如何安装 onpromise,它的常见使用场景,以及如何使用它来简化异步操作的处理。

    2 年前
  • npm 包 promise-mmmagic 使用教程

    引言 在前端开发中,我们常常需要处理图片相关的问题,比如图片的压缩、水印、裁剪等。而在 Node.js 中,有一个名为 mmmagic 的库可以用于探测文件的类型。

    2 年前
  • npm 包 vgeorgiev-test 使用教程

    前言 在前端开发过程中,我们经常需要使用一些外部的库或工具来帮助我们完成任务。npm 是一个广泛使用的 JavaScript 包管理工具,可以让我们轻松地安装、管理和分享 JavaScript 包。

    2 年前
  • npm 包 node-red-contrib-iboost-conversation 使用教程

    简介 node-red-contrib-iboost-conversation 是一个用于 Node-RED 的 npm 包,它提供了一系列节点,便于用户从 Node-RED 中轻松地集成和使用 IB...

    2 年前
  • npm 包 nymble-middleware 使用教程

    介绍 nymble-middleware 是一个 HTTP 中间件,用于在客户端和服务端之间防止重复请求。这个包使用了 Nymble 协议,以防止客户在自己的请求中使用相同的 token。

    2 年前
  • npm 包 git-lint-emacs 使用教程

    git-lint-emacs 是一个npm包,它提供了git提交信息的检查和修正。这个检查可以确保你的提交信息是符合规范的,从而方便你和其他开发者一起工作,提高代码的质量。

    2 年前
  • npm 包 chrome-cli 使用教程

    前言 在前端开发中,经常需要使用 Chrome 浏览器进行调试和测试。chrome-cli 是一个 npm 包,可以通过命令行控制 Chrome 浏览器。本文将介绍如何安装和使用 chrome-cli...

    2 年前
  • npm 包 eslint-config-elm 使用教程

    随着前端技术的不断发展,前端代码的规范化和统一变得越来越重要。其中,ESLint 是一个广泛使用的 JavaScript 代码检查工具,它可以帮助团队统一代码规范、提高代码质量以及减少错误,极大提高团...

    2 年前
  • npm包onesignal-sdk使用教程

    前言 现在,移动应用已经成为人们生活不可或缺的一部分,而移动应用的推送通知功能也越来越受到开发者们的关注。本文将为大家介绍如何使用npm包onesignal-sdk,实现在Web应用中集成OneSig...

    2 年前
  • npm 包 basscss-js 使用教程

    前端开发中,制作页面样式是一个必不可少的部分。而 CSS 是用来控制网页样式的一种语言。但是,CSS 的语法比较复杂,而且写起来也比较麻烦。所以,现在出现了许多能够帮助我们简化 CSS 编写的工具。

    2 年前
  • npm 包 codebox-lite 使用教程

    codebox-lite 是一个轻量级的在线代码编辑器,在前端开发中有着重要的作用。它不仅可以在浏览器中进行高效的代码编辑,还具有便捷的调试和部署功能,适用于大型团队协同开发和个人开发。

    2 年前
  • npm 包 js.optional 使用教程

    在前端开发中,我们经常会遇到一些变量可选、代码可选等情况。这时候,我们可以使用 npm 包 js.optional 来帮助我们更方便地处理这些情况。 什么是 js.optional? js.optio...

    2 年前
  • npm 包 electron-viewport 使用教程

    简介 electron-viewport 是一个基于 Electron 的 npm 包,可以用来在 Electron 应用程序中实现移动轨迹和手势操作。该库的目标是提供一个可扩展的视口程序,使得使用者...

    2 年前
  • npm 包 data-byte-buffer 使用教程

    简介 在前端领域中,我们常常需要处理二进制数据,比如音频、视频、图像等等。而 JavaScript 语言本身不支持直接操作二进制数据,需要使用特定的工具库来进行操作。

    2 年前
  • npm 包 parse-due-date 使用教程

    parse-due-date 是一个基于 JavaScript 的 npm 包,用于解析字符串格式的日期,并将其转换为 JavaScript Date 对象。它非常适合前端开发人员在开发和调试日期和时...

    2 年前
  • npm 包 partbee 使用教程

    什么是 npm 包 partbee? npm 包 partbee 是一个适用于前端开发的模块化打包工具。它可以帮助开发者自动完成所有模块的打包,压缩和合并等操作,使得开发者可以更加专注于业务逻辑的实现...

    2 年前
  • npm 包 tick-of-clock 使用教程

    简介 tick-of-clock 是一个帮助前端开发者快速实现倒计时的 npm 包。本文将详细介绍如何使用该 npm 包,包括安装和调用方式,以及示例代码。 安装 使用 npm 可以很容易地安装 ti...

    2 年前
  • npm 包 @ttlabs/react-leaflet 使用教程

    介绍 @ttlabs/react-leaflet 是一款基于 React 库的地图管理组件库。它提供了多种常用的地图控件、交互操作以及可自定义的地图配置,同时支持在不同平台上运行。

    2 年前

相关推荐

    暂无文章