使用gulp-angular gettext从JS文件中提取字符串不起作用
Extracting strings from JS file with gulp-angular-gettext does not work
我将angular gettext工具与@gabegorelick的gullow angular gettext。html文件的所有内容都可以,但我无法从js文件中提取字符串。我同时尝试了gettextCatalog.getString和gettext函数,也分别尝试了,但都没有成功。
我的提取代码(smth.js文件)如下所示:
$scope.openCreateOfferPopup = function($event, buttonState) {
$event.preventDefault();
loadTypes();
logger('openCreateOfferPopup');
if (buttonState) {
var params;
if (!$rootScope.dashboard.spots || $rootScope.dashboard.spots.length === 0) {
params = {
title: 'Spots needed',
content: gettextCatalog.getString(gettext("Oops! You need to add your spot before creating an offer!"))+
'<br/>'+gettextCatalog.getString(gettext("Please, click on Create new spot button")),
buttons: [{
text: gettextCatalog.getString(gettext("Create spot")),
href: '',
'class': '',
ngClick: 'openCreateSpotPopup($event)',
ngController: 'SpotsController'
}, {
text: gettextCatalog.getString(gettext("cancel")),
href: '#',
'class': 'b-close'
}]
};
DialogService.makeDialog(params, $scope);
return;
}
我的吞咽任务是这样的:
import gulp from 'gulp';
import gettext from 'gulp-angular-gettext';
//import debug from 'gulp-debug';
gulp.task('pot', function () {
return gulp.src(['src/app/**/*.html','src/app/**/*.js',
'!src/app/pages/static/acceptable_policy.html','!src/app/pages/static/legal.html',
'!src/app/pages/static/privacy_policy.html','!src/app/pages/static/refund_policy.html',
'!src/app/pages/static/terms_of_service.html'])
//.pipe(debug({title: 'files to translate:'}))
.pipe(gettext.extract('template.pot', {
// options to pass to angular-gettext-tools...
}))
.pipe(gulp.dest('po/'));
});
我非常确信js文件被传递给了一个gular gettext工具——我使用了gull调试来验证它
没有错误消息。所有内容都是从html中提取的,但没有从JavaScript中提取任何条目。
你能告诉我这个问题的根源吗?
我有gulp-angular-gettext@2.1.0使用angular-gettext-tools@2.1.13吞咽4.0.0α2
好吧,我找到了罪魁祸首。Angular gettext工具无法与JavaScriptES7配合使用。我们有一段代码:
async function loadTypes() {
if ($rootScope.dashboard.types) return;
const { categories } = await Api.offerTypes();
$rootScope.dashboard.types = categories;
}
在CCD_ 1上死亡。可能是angular-gettext-tools
的旧版本的espree
包造成的。
我请求与ES7兼容,并在此处打印一些调试信息(以了解由于某些错误导致文件无法翻译):https://github.com/rubenv/angular-gettext-tools/issues/140
现在,我们将使用babel将javascript降级为可处理版本,并使用它进行提取。
官方github:对此问题的更新
espree不支持,所以我们可能无能为力async/await是标准化的,它将被添加到espree中,我们应该支持它而不做任何更改。在此之前,请使用类似babel,然后调用angular gettext。
- 使用gulp-angular gettext从JS文件中提取字符串不起作用
- Javascript:如何通过Regexp从属性中提取字符串
- 使用Node/Javascript提取字符串中的所有占位符
- 需要从随机大小的字符串中提取字符串
- 用unicode字符提取字符串中的单词
- 使用java脚本提取字符串
- JavaScript:如何提取字符串中的复杂内容
- 如何删除“;NULL”;使用Javascript从sails.js中的JSON对象中提取字符串
- 当前面的数字或前面字符的组合未知时提取字符串
- 如何根据 javascript 中的两个字符比较从另一个字符串中提取字符串
- 从两边提取字符串和相等数量的字符
- 如何在从 javascript 中的 json 对象中提取字符串时保留转义序列.(字符串实际上是正则表达式模式)
- 使用 javascript 从脚本标记中提取字符串
- 如何根据某些正则表达式模式提取字符串的“部分”
- 检查是否为数字,如果是字母,则在javascript中提取字符串的一部分
- 介绍JS学生使用isNaN(与其他语句结合使用)提取字符串
- 正则表达式后视以提取字符串
- 从另一个url或字符串中提取字符串
- 使用Javascript提取字符串中的数字
- 在javascript中提取字符串中的数字