Weblate:使用 POST_UPDATE_SCRIPT 更新基础语言文件
Weblate: Update base language file using POST_UPDATE_SCRIPT
在我们的 AngularJS 项目中,翻译字符串使用 angular-translate 的 <translate>
标记进行标记,并使用 gulp-angular-translate-extract
提取。这是 Weblate 使用 POST_UPDATE_SCRIPT
自动 运行,因此开发人员不应该手动提取字符串。
这是 post 更新脚本:
#!/bin/bash
gulp --gulpfile gulp-i18n-extract.js
作为参考,这是 gulpfile:
#!/usr/bin/env gulp --gulpfile
'use strict';
var gulp = require('gulp'),
angularTranslate = require('gulp-angular-translate-extract');
gulp.task('default', function() {
return gulp.src('src/**/*.{html,js}')
.pipe(angularTranslate({
lang: ['en'],
defaultLang: 'en',
suffix: '.lang.json',
safeMode: false,
dest: './src/languages',
stringifyOptions: true, // Sort alphabetically.
verbose: false
}))
.pipe(gulp.dest('./src'));
});
脚本是 运行,将提取字符串。因此,对基础语言文件的更改显示在 存储库详细信息 视图中,粘贴如下:
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/languages/en.lang.json
no changes added to commit (use "git add" and/or "git commit -a")
我的问题是 Weblate 没有注意到更改,所以为了将更新的字符串导入 Weblate,我不得不手动 运行:
django-admin loadpo --force --all
此外,当我提交更改时,不会提交基本语言文件。
我做错了什么?
Weblate 需要查看 Git 存储库中的文件,它不会查找未提交的更改。
因此,要解决此问题,请将文件也提交到挂钩中的 git:
git commit -m 'Update source strings' src/languages/en.lang.json
在我们的 AngularJS 项目中,翻译字符串使用 angular-translate 的 <translate>
标记进行标记,并使用 gulp-angular-translate-extract
提取。这是 Weblate 使用 POST_UPDATE_SCRIPT
自动 运行,因此开发人员不应该手动提取字符串。
这是 post 更新脚本:
#!/bin/bash
gulp --gulpfile gulp-i18n-extract.js
作为参考,这是 gulpfile:
#!/usr/bin/env gulp --gulpfile
'use strict';
var gulp = require('gulp'),
angularTranslate = require('gulp-angular-translate-extract');
gulp.task('default', function() {
return gulp.src('src/**/*.{html,js}')
.pipe(angularTranslate({
lang: ['en'],
defaultLang: 'en',
suffix: '.lang.json',
safeMode: false,
dest: './src/languages',
stringifyOptions: true, // Sort alphabetically.
verbose: false
}))
.pipe(gulp.dest('./src'));
});
脚本是 运行,将提取字符串。因此,对基础语言文件的更改显示在 存储库详细信息 视图中,粘贴如下:
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/languages/en.lang.json
no changes added to commit (use "git add" and/or "git commit -a")
我的问题是 Weblate 没有注意到更改,所以为了将更新的字符串导入 Weblate,我不得不手动 运行:
django-admin loadpo --force --all
此外,当我提交更改时,不会提交基本语言文件。
我做错了什么?
Weblate 需要查看 Git 存储库中的文件,它不会查找未提交的更改。
因此,要解决此问题,请将文件也提交到挂钩中的 git:
git commit -m 'Update source strings' src/languages/en.lang.json