blob: 3023253cabc6c2cbe5f25a8384a12bd6bae44144 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/**
* Replace i18n texts
*/
const StringReplacePlugin = require('string-replace-webpack-plugin');
export default (lang, locale) => ({
enforce: 'pre',
test: /\.(tag|js)$/,
exclude: /node_modules/,
loader: StringReplacePlugin.replace({
replacements: [
{
pattern: /%i18n:(.+?)%/g, replacement: (_, key) => {
let text = locale;
// Check the key existance
const error = key.split('.').some(k => {
if (text.hasOwnProperty(k)) {
text = text[k];
return false;
} else {
return true;
}
});
if (error) {
console.warn(`key '${key}' not found in '${lang}'`);
return key; // Fallback
} else {
return text.replace(/'/g, '\\\'').replace(/"/g, '\\"');
}
}
}
]
})
});
|