[英]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和更改文件。 數據庫或文檔存儲的可擴展性使您可以擴展本地化,而無需始終對單個文件或樹進行黑客攻擊。
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.