npm 包 machine-gettext 使用教程

介绍

Machine-gettext 是一个跨平台的 gettext 包装器,可以让你与 gettext 文件(.po / .mo)交互,并将它们转换成 JavaScript 对象或 JSON 字符串,以供前端应用使用。

在编写多语言 Web 应用时,gettext 是一个非常受欢迎的工具。gettext 常被用于 PHP 和 Python 等后端语言,但 machine-gettext 的出现,使得前端开发人员也可以使用 gettext 来管理国际化文本了。

安装

你可以使用 npm 命令来安装 machine-gettext:

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

使用方法

载入 gettext 文件

要开始使用 machine-gettext,首先需要将 gettext 文件载入到内存中:

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

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

此处,我们通过指定 gettext 文件所在路径和默认语言来载入一个 gettext 编目(catalog)。

获取翻译

客户端上下文通常是浏览器。以这样的方式初始化 machine-gettext:

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

调用翻译方法:

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

这样将返回视图环境下对应的“Hello,世界!”文本。

复数翻译

关于复数翻译(例如,用户数)的常见例子:

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

默认情况下,gettext 会使用字符串中的第一个百分号后的数字参数。在我们的例子中,这是百分号 %d。

此处将输出”3 tracks”。

翻译带变量的文本

有些文字需要变量来填充,这时候可以使用占位符:

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

此代码会输出 “Dashboard: Hello,User!” 输出的结果中,“Dashboard” 是 gettext 的 context,即上下文。

转换为 JSON

最后,如果你想把 gettext 编目的内容转换成 JSON 字符串,可以使用 gettext 类的 stringify 方法:

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

这将返回 JSON 字符串, 示例:

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

结语

获取和管理多语言文本是 Web 应用开发过程中的一个非常重要的部分,通过使用 gettext 和 machine-gettext,我们可以轻松地在前端开发中优雅地管理和维护多语言文本资源的管理,同时还能够同时兼容 Server 和 Client。希望能够对你有所帮助。

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


猜你喜欢

  • npm 包 infore-cli 使用教程

    简介 infore-cli 是一款基于 Node.js 和 npm 包管理器的命令行工具,它可以帮助前端工程师快速搭建项目框架和生成前端代码。使用 infore-cli,我们可以完成以下工作: 创建...

    3 年前
  • npm 包 js-flow-ctrl 使用教程

    在前端开发中,控制流程是非常重要的一方面,它决定了我们的程序进行到哪一步,以及在哪一个条件下会执行哪些代码。js-flow-ctrl 是一个非常实用的 npm 包,可以帮助我们更好地掌控代码执行流程。

    3 年前
  • NPM 包 tux-addon-admin 使用教程

    随着前端技术的不断发展,NPM 包已经成为了前端开发不可或缺的一部分。其中,tux-addon-admin 是一款非常实用的 npm 包,本文将详细介绍这款包的使用教程。

    3 年前
  • npm 包 censorify_nishit 使用教程

    在前端开发中,我们经常需要对用户输入的内容进行敏感词过滤和替换,而手动编写过滤函数是一项繁琐且重复的工作,因此我们可以使用一个名为 censorify_nishit 的 npm 包来简化这一过程。

    3 年前
  • npm 包 npm-test-energy 使用教程

    随着前端技术的不断发展,npm 包已经成为了前端开发的必备工具之一。而 npm-test-energy 就是一款非常有用的 npm 包,它可以帮助我们进行前端项目的能量测试,评估项目在不同环境下的表现...

    3 年前
  • npm 包 tpaging 使用教程

    前言 在前端开发中,我们经常需要对一堆数据进行分页展示,这时候分页组件就是必不可少的工具。tpaging 是一个简单易用且高度可定制的分页包,使用 npm 包安装后能够在我们的项目中快速集成分页组件。

    3 年前
  • npm 包 homebridge-delayed-switches 使用教程

    什么是 homebridge-delayed-switches homebridge-delayed-switches 是一款基于 homebridge 平台的 npm 包,可为智能家居添加延迟功能。

    3 年前
  • npm 包 ngcreditcard 使用教程

    在前端开发中,表单验证是必不可少的一部分。而信用卡表单验证是其中一个重要的验证部分。在 Angular 中,我们可以使用 ngcreditcard npm 包来进行信用卡表单验证。

    3 年前
  • npm 包 oftn-l10n 使用教程

    在前端开发中,国际化是一个非常重要的需求。为了解决这个问题,我们可以使用现成的 npm 包 oftn-l10n。这个 npm 包可以提供一些非常有用的工具和函数,帮助我们快速实现国际化功能。

    3 年前
  • npm 包 date-utility 使用教程

    #npm 包 date-utility 使用教程 在前端开发中,日期和时间处理是非常常见和重要的操作。因此,很多开发者在开发过程中都会需要使用一些日期和时间处理的库或者工具。

    3 年前
  • npm 包 find-or-create-uuid 使用教程

    在前端开发中,UUID(通用唯一标识符)是很常用的一种标识方式。而 Find-or-Create-UUID 这个 npm 包可以帮助我们更方便地生成 UUID,并确保其唯一性。本文将介绍如何使用该包。

    3 年前
  • npm 包 alex-lib1 使用教程

    1. 简介 npm 是一个 JavaScript 包管理器,它允许前端开发人员使用并共享在 npm 上发布的模块。而 alex-lib1 则是一个基于 npm 发布的前端库,旨在为开发人员提供一些常用...

    3 年前
  • npm 包 three-ziploader 使用教程

    前言 three-ziploader 是一个基于 Three.js 的 npm 包,它可以帮助开发者快速加载 zip 压缩包中的模型。这篇文章将介绍如何使用 three-ziploader 这个 np...

    3 年前
  • npm 包 Vue-gtagjs-directive 使用教程

    在 Vue.js 的开发过程中,我们经常需要使用 Google Analytics 进行统计分析。为了简化和加速这个过程,我们可以使用 npm 包 Vue-gtagjs-directive。

    3 年前
  • npm 包 vnng-auth 使用教程

    npm 包 vnng-auth 使用教程 在现代的 web 开发中,用户认证和授权是一个必不可少的部分。它可以保护我们的应用程序,限制未授权访问,确保用户身份验证和授权。

    3 年前
  • npm 包 fahrenheit 使用教程

    在前端开发中,我们经常需要将温度在华氏度和摄氏度之间进行转换。npm 包 fahrenelsius 是一个用于华氏度和摄氏度转换的工具包。本文将详细讲解 fahrenelsius 的使用教程。

    3 年前
  • npm 包 yosql 使用教程

    在 web 开发中,我们经常需要从数据库中获取数据并进行处理。为了简化这个过程,npm 社区中出现了很多优秀的包,其中 yosql 便是其中之一。yosql 是基于 SQLException 和 Jd...

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

    在 web 前端开发中,使用 npm 包已经成为了一种非常普遍的做法。js-weapon 是一个很棒的 npm 包,它提供了一系列的工具和方法,可以帮助前端开发者更高效地开发 web 应用程序。

    3 年前
  • npm包dynamo-querystring使用教程

    介绍 DynamoDB是AWS云服务提供的一种NoSQL数据库,可以用于存储和检索大量数据。dynamo-querystring是一个npm包,提供了一个简单的方法来构建DynamoDB查询字符串,以...

    3 年前
  • npm 包 game-data 使用教程

    前言 在现代前端开发中,使用第三方库可以大大提高工作效率。而 npm 是最为流行的包管理器之一,其中有各种优秀的 JavaScript 库和工具,它们能帮助我们快速开发出高质量的 Web 应用。

    3 年前

相关推荐

    暂无文章