reactjs - 如何运行 formatjs 编译?
问题描述
如何在不替换已翻译消息的情况下运行 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>
推荐阅读
- django - 在 django 模型中为复制对象创建函数
- python - 转置特定的熊猫列
- javascript - 如何限制文本宽度阿拉伯文段落
- javascript - 在 document.write() 中添加变量
- java - 如何在 VisualVM 中诊断高自我时间?
- r - phyper 的超几何分布
- matlab - 线和圆的交点
- c++ - 我们可以在 c++ 中分配我们想要的任意数量的字节吗?(例如为一个类型分配 6 个字节)
- android - 无法接受 Android 许可证,运行颤振医生命令后无法输入 Y/N(颤振)
- php - 使用 php 函数在 json 文件中添加和更新数据