簡體   English   中英

Gulp任務翻譯JS

[英]Gulp task to translate JS

我正在使用JavaScript應用程序,到目前為止,我所有的字符串都輸入為純文本。

這開始感覺真的很hacky(我習慣於獲取文本),所以我更喜歡將它們全部包裹在{{translatable_string}}之類的東西中,並且吞噬所有任務,只在構建步驟中搜索/替換它們。

所以,我的問題是; 是否有通用的(沒有特定於框架的類似angular-gettext或類似的東西)gettext替換器?

顯然,它甚至不必以任何方式連接到JavaScript,您應該能夠在任何文件類型上運行它並進行{{translatable_string}}:s的翻譯。

您可能需要研究使用gulp-replace 正如他們在此答案中所解釋的那樣,您應該能夠使用它來查找和替換流中所需的任何字符串。

如果可以為您的應用程序動態生成頁面內容,我建議為您的翻譯提供一個字符串數據庫。 從英語開始或以任何普通語言開始,但是如果沒有健壯的系統,則需要對內容進行本地化是一個難題。 一個簡單的MongoDB表可用於存儲內容,並且當應用程序需要界面時,可以使用正確的本地化字符串加載該表。 例如:

if(err) alert("Please turn off caps lock");

可能成為:

if(err) alert(Please_turn_off_caps_lock.English);

如果您需要使用gulp構建靜態頁面,那么結合gulp-replace的數據庫聽起來很有趣。 使用gulp-data調用和打包字符串,然后可以將其提供給gulp-replace和更改文件。 數據庫或文檔存儲的可擴展性使您可以擴展本地化,而無需始終對單個文件或樹進行黑客攻擊。

嘗試gulp-gettext-parser

var gettext = require("gulp-gettext-parser");
var rename = require("gulp-rename");

gulp.task("gettext", function() {
   return gulp.src("src/**/*.js")
      .pipe(gettext())
      .pipe(rename("bundle.po"))
      .pipe(gulp.dest("dist/"));
});

也許您需要的是mustache.js ,看看: https : //github.com/janl/mustache.js/

我不習慣使用胡須,但是我必須在使用胡須的項目中進行一些更新,而令我驚訝的是它的功能。

如果您熟悉jade (現在已重命名為pug),則會發現類似的東西,但是最后,您不必強迫僅生成html文件,可以生成任何類型的文本文件。

該博客有助於理解Nodejs上其他模板語言之間的差異: https ://strongloop.com/strongblog/compare-javascript-templates-jade-mustache-dust/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM