如何在不替换已翻译消息的情况下运行 formatjs 编译命令?现在我这样运行它:
../../node_modules/.bin/formatjs compile lang/ru.json --out-file compiled-lang/ru.json
如何在不替换已翻译消息的情况下运行 formatjs 编译命令?现在我这样运行它:
../../node_modules/.bin/formatjs compile lang/ru.json --out-file compiled-lang/ru.json
您需要有一个具有自己编译功能的自定义格式化程序: https ://formatjs.io/docs/tooling/cli/#custom-formatters
这是我的格式化程序文件的样子:
const argv = require('yargs').argv;
const originTranslations = require(argv['out-file']);
module.exports = {
compile: function (msgs) {
const results = {};
for (const k in msgs) {
const defaultMessage = msgs[k].defaultMessage;
if (originTranslations[k]) {
results[k] = originTranslations[k];
} else if (defaultMessage) {
results[k] = defaultMessage;
} else {
results[k] = 'MISSING TRANSLATION';
}
}
return results;
},
};
您需要通过--format
选项传入此格式化程序
yarn formatjs compile lang/ru.json --out-file compiled-lang/ru.json --format <your formatter file>