云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_待嫁三千金百度云_限量秒杀

小七 141 0

欢迎回到社区!

很高兴你能来到我们的博客上节点.jsI18n–CSV转换器。

在本博客中,我们将构建节点.js应用程序本身。这与前一个博客圣诞节中解释的2个功能?节点.jsI18n–CSV转换器–部件?。对于那些还没有读过上一篇博客的人来说,这些特性存在于创建一个包含所有项目翻译(基于所有i18n文件)的CSV文件之外。继续使用反向功能,将项目中i18n.properties文件中CSV文件的所有翻译存储在每个app./module的原始目录中。

开始构建!

此应用程序的完整代码可在我的GitHub存储库中找到:节点.js-I18n CSV转换器

构建此应用程序将有三个主要实现。第一个将是节点.js应用程序。有关建筑的详细信息节点.jsSAP Cloud foundry上的应用程序可以在这里找到节点.js在Cloud Foundry环境中,

第二个是将项目的所有i18n文件转换为一个CSV文件。

最后但并非最不重要的是从CSV中构建所有i18n文件并将它们存储到原始文件和适当的i18n目录。

创建名为i18nCsvConverter的目录。

在可视化代码或任何其他您喜欢的代码编辑器中打开项目。

创建清单.yml在i18nCsvConverter目录中添加以下内容:

在i18nCsvConverter中创建一个名为i18nCsvConverterApp的新目录。

接下来打开终端,并通过执行以下命令导航到i18nCsvConverterApp目录:

您必须执行的下一个命令是:

提供配置值或将其留空。(本例中我将其留空)

打开json文件,它将如下所示:

对其进行一些调整,大数据可视化平台,使您的json文件如下所示:

我们将主脚本更新为创建csv.js脚本。这将是我们稍后创建的第一个文件。在脚本下我们看到创建csv.js和createI18n.js脚本。这些脚本使用节点参数调用.js脚本文件。最后,当我们执行npm run createCsv或createI18n时,节点*.js将被执行。

好的,好的,现在开始CSV部分!

创建脚本创建csv.js在i18nCsvConverterApp目录内。

在脚本中添加以下内容:

需要安装我们在这里需要的所有包/模块。除了文件系统模块。这是按节点知道的。要安装所有这些软件包,请在i18nCsvConverterApp目录中执行以下所有命令。

为脚本中的递归读取器添加以下选项:

有关此递归读取器的详细信息,请参阅:

https://www.npmjs.com/package/recursive-readdir-async

下一步调用递归函数的列表功能读卡器

列出所有文件及其全名、isdirectry、名称和路径。仅选择.properties文件,因为配置参数include:[".properties"],.

此承诺返回包含对象的数组。这些对象保留了所有.properties文件的fullname、isdirectry、name和path属性。为什么只有.properties文件?这是因为在我们的递归读取器配置中,我们定义了以下内容:[".properties"],这将只搜索.properties文件。

下一步在我们的资源列表承诺我们只选择"i18n"目录中的.properties文件。

它将只选择"/18n"目录中的i18n文件。

对于找到的每个文件我们在apropises数组中创建了一个新的promise。

这里我们使用正则表达式来定义appPath和语言。如果无法定义任何语言,则表示这是默认翻译。

在我们的承诺中,我们使用文件appPath读取文件,因为它保留了我们要读取的文件的完整路径和文件名。我们通过utf-8编码,最后当读取文件被解析时,我们返回appPath、语言和数据。这个数据是从属性转换成JSON的,因为我们将属性转换成JSON模块答应我。好的. 在这里,我们传递我们的承诺数组(apropises)作为参数。接下来,通过对结果调用forEach(保存所有文件的数据),我们将选择json对象的所有键(由于json模块的属性而创建),并将转换推送到aTranslationEntries数组中。

变量foundTranslation根据appName和path检查键是否已经存在于aTranslationEntries中。如果此应用程序已存在此密钥,则表示它只是另一种语言的另一个翻译,我们可以将此翻译设置为同一对象上的语言作为密钥。Id它不存在,物联网协议,我们将一个新对象推送到aTranslationEntries数组。

既然我们的aTranslationEntries数组中的所有翻译条目都是JSON对象,我们就可以将它们传递给jsonexport模块。这个jsonexport模块需要一个带有翻译的json对象数组,并将返回一个CSV文件。

在我们的sPath中,我们将使用filePath常量将CSV文件写回原始位置,文件名为translationFileI18n.CSV。重要的是将"\ufeff"参数传递给文件系统模块的writeFile函数。这将确保您的文件是utf-8编码的。否则,当您在电子表格编辑器中打开您的csv时,您可能会有错误的或电子表格的默认编码创建csv.js脚本应该是这样的:

是时候测试我们的创建csv.js脚本!