add excludeFuzzy option - #4
Conversation
| for (const ctxt of Object.values(poData.translations)) { | ||
| for (const msgid of Object.keys(ctxt)) { |
There was a problem hiding this comment.
I don't recall why I used that specific idiom...
- maybe it was specifically to drop header comments
- maybe because of ES level?
- or maybe I was lazy?
Please check that the semantics are still the same 🙇🏻
|
|
||
| module.exports = function (source) { | ||
| if (this.cacheable) this.cacheable(); | ||
| const excludeFuzzy = this.getOptions().excludeFuzzy; |
There was a problem hiding this comment.
this.getOptions is available since Webpack 5
so says someone on stack overflow.. that should be good enough, I think?
| To exclude translations with the fuzzy flag, add option `excludeFuzzy` to loader: | ||
|
|
||
| ```js | ||
| // 1. Tell webpack how to load PO files | ||
| config.module.rules.push({ | ||
| test: [/\.po$/], | ||
| loader: "ttag-po-loader", | ||
| test: [/\.po$/], | ||
| loader: "ttag-po-loader", | ||
| options: { | ||
| excludeFuzzy: true, | ||
| }, |
There was a problem hiding this comment.
I have a slight preference to documenting options in a more generic way, for example, use this code example and list the possible options:
config.module.rules.push({
test: [/\.po$/],
loader: "ttag-po-loader",
options: {
excludeFuzzy: true,
},
});Available options:
excludeFuzzy: blah blah blah long description what it does
There was a problem hiding this comment.
I'd also move the options bit below CRA, maybe...
- if CRA caveat is still valid, which is then rather important for new users.
- if excludeFuzzy is a rare case.
However, if you recon that exceludeFuzzy should be the default, then let's make exclusion default and add inclusion via a flag.
| if (excludeFuzzy && msg.comments.flag | ||
| && msg.comments.flag.includes('fuzzy')) { |
There was a problem hiding this comment.
I was thinking if conditional chaining could be used, but that's only available since 2020, so maybe it's better to stay safe like this...
|
P.S. I don't have a setup where I can test this code 🙈 |
Add loader option to exclude fuzzy labeled translations.
Default is to include fuzzy for backwards compatibility.