在前端开发中,国际化是一个非常重要的问题。而 ember-i18n-csv 是一个方便的 npm 包,可以帮助开发者快速地将前端应用程序国际化。
简介
ember-i18n-csv 是一个让您可以轻松创建和维护 Ember.js 应用程序翻译的 npm 包。它支持将翻译数据存储在 CSV 文件中,并且与 Ember.js 应用程序的其他部分集成得非常好。
安装
首先需要安装 ember-i18n-csv ,可以通过使用 npm 进行安装:
npm install ember-i18n-csv --save-dev
如何使用
创建 CSV 文件
首先,需要创建 CSV 文件,并将翻译数据存储在其中。可以使用 Microsoft Excel 或 Google Sheets 创建 CSV 文件。
具体来说,它的形式如下:
key, en-US, zh-Hans-CN app.pageTitle, Title, 标题 app.welcomeMessage, Welcome, 欢迎
其中,每行代表一个关键字、一个英文翻译和一个中文翻译(可修改以满足需求)。第一列是关键字,它是字符串,由字母和数字组成。
安装插件
在.js 项目中,为了使用 ember-i18n-csv ,需要在 Ember.js 应用程序项目的 package.json 文件中引用:
"ember-i18n-csv": "X.Y.Z"
其中,X.Y.Z 是 ember-i18n-csv 的版本号。
执行转换
使用以下命令将 CSV 文件转换为 .po 或 .json 文件:
i18n generate -i <input-file> -o <ouput-path>
其中,<input-file>
是 CSV 文件的路径,<ouput-path>
是输出路径。.po 或 .json 文件会自动创建。
初始化 i18n
在 Ember.js 应用程序中,可以在 start-app.js 或者其他需要初始化 i18n 的地方进行。
this.container.lookup(‘service:i18n’).set(‘locale’, ‘zh’); // 这里我们使用中文作为本地化语言
获取翻译
在 Handlebars 模板和 JavaScript 中可以使用以下方法获取翻译内容:
{{t "app.pageTitle"}} // 或者在 JavaScript 中 this.get('i18n').t('app.pageTitle');
高级用法:使用变量
在 Handlebars 模板和 JavaScript 中,可以使用变量对文本进行动态渲染。
例如,在 CSV 文件中,如果翻译措辞类似于 this is a {{name}}。
在 Handlebars 模板中使用变量:
{{t "greeting" name=model.name}}
在 JavaScript 中使用变量:
let greeting = this.get('i18n').t('greeting', { name: 'Tom' });
总结
通过本文,我们初步了解了如何使用 ember-i18n-csv 包来为应用程序提供国际化。重要的是,翻译数据是以 CSV 文件格式存储的,因此开发者可以像编辑 Excel 文件一样实现添加、修改、删除等操作。此外,有了 ember-i18n-csv,您可以让非程序员也能够方便地管理翻译数据。
ember-i18n-csv 是一个非常实用的 npm 包,它可以极大地提高翻译数据的处理效率。如果你的应用程序需要支持多语言,那么不要犹豫,来试试 ember-i18n-csv 吧!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e17a563576b7b1ecaaa