javascript - HTML 自动化脚本

标签 javascript html localization gulp

作为前端开发人员,我遇到了一个需要花费大量时间和资源的主要问题,那就是文档中的语言转换。

举个例子:我写了一封邮件,必须将其从英语转换为 14 种其他语言。正如您可以想象的那样,这既无聊又耗时。

我正在寻找解决方案,但除了 gulp-replace 之外什么也没找到,这可能很有用。这是一个简短的例子。

var replace = require('gulp-replace');

gulp.task('templates', function(){
  gulp.src(['file.txt'])
    .pipe(replace('foo', function(match) {
      // Replaces instances of "foo" with "oof" 
      return match.reverse();
    }))
    .pipe(gulp.dest('build/'));
});

我的想法是编写一个 gulp 任务,它接受 HTML 文件,其中一个包含所有翻译,其他 13 个文件带有如下标签:

<!-- REPLACE HEADER -->

在应该替换文本的地方,它采用行形式translations.html将其粘贴到标记位置,然后移动到另一个文件并对下一行执行相同的操作。

如果您能提供任何有助于我实现自动化的有用信息,我将不胜感激。

最佳答案

我想推荐类似GNU gettext的东西在 JavaScript 中。官方没有js gettext库,但是可以使用jquery i18n或者推出您自己的翻译机制:

将翻译放入 JavaScript 结构中:

var app = {}
var app.translations = {
  en:  { hello: "Hello!"
       , bye:   "Goodbye!"
       }
, de:  { hello: "Guten Tag!"
       , bye:   "Auf Wiedersehen!"
       }
};

然后您可以在 JavaScript 中读取翻译字符串:

var curentLanguage = document.documentElement.lang || "en";
app.lang = app.translations[ currentLanguage ] || app.translations.en;

您可以使用如下代码:

alert( app.lang.hello );

关于javascript - HTML 自动化脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47023179/

相关文章:

javascript - 与 Material-ui 卡片媒体 react ,点击添加叠加层

php - 在 php 中获取我的系统时区

javascript - 如何查找从服务器运行或不使用javascript的html文件?

Javascript setDate() 意外行为错误月份

html - 保持div在不同屏幕尺寸的页面底部

php - 如何发布与选择表单输入中显示的值不同的值

android - 动态 Android 应用程序本地化

c - Visual Studio 2010 中的 Langinfo.h

android - 在 Android 中存储和使用依赖于语言环境的正则表达式的最佳方式是什么?

javascript - 重新绑定(bind)位于 'ng-click' 中的 'ng-view' 指令