summaryrefslogtreecommitdiff
path: root/webpack/module/rules/i18n.ts
diff options
context:
space:
mode:
Diffstat (limited to 'webpack/module/rules/i18n.ts')
-rw-r--r--webpack/module/rules/i18n.ts33
1 files changed, 4 insertions, 29 deletions
diff --git a/webpack/module/rules/i18n.ts b/webpack/module/rules/i18n.ts
index aa4e58448f..7261548be5 100644
--- a/webpack/module/rules/i18n.ts
+++ b/webpack/module/rules/i18n.ts
@@ -3,28 +3,10 @@
*/
const StringReplacePlugin = require('string-replace-webpack-plugin');
+import Replacer from '../../../src/common/build/i18n';
-export default (lang, locale) => {
- function get(key: string) {
- 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;
- }
- }
+export default lang => {
+ const replacer = new Replacer(lang);
return {
enforce: 'pre',
@@ -32,14 +14,7 @@ export default (lang, locale) => {
exclude: /node_modules/,
loader: StringReplacePlugin.replace({
replacements: [{
- pattern: /"%i18n:(.+?)%"/g, replacement: (_, key) =>
- '"' + get(key).replace(/"/g, '\\"') + '"'
- }, {
- pattern: /'%i18n:(.+?)%'/g, replacement: (_, key) =>
- '\'' + get(key).replace(/'/g, '\\\'') + '\''
- }, {
- pattern: /%i18n:(.+?)%/g, replacement: (_, key) =>
- get(key)
+ pattern: replacer.pattern, replacement: replacer.replacement
}]
})
};