summaryrefslogtreecommitdiff
path: root/webpack/module/rules
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-10-25 20:29:14 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-10-25 20:29:14 +0900
commit4cac6316f77e4c31d8caa1e7bb74ea9a063e02c7 (patch)
tree0a2cafb0343923e075a52ad9471afdd97ad8e881 /webpack/module/rules
parentメジャーバージョンを明記 (diff)
downloadsharkey-4cac6316f77e4c31d8caa1e7bb74ea9a063e02c7.tar.gz
sharkey-4cac6316f77e4c31d8caa1e7bb74ea9a063e02c7.tar.bz2
sharkey-4cac6316f77e4c31d8caa1e7bb74ea9a063e02c7.zip
[Client] Fix bug
Diffstat (limited to 'webpack/module/rules')
-rw-r--r--webpack/module/rules/i18n.ts70
1 files changed, 41 insertions, 29 deletions
diff --git a/webpack/module/rules/i18n.ts b/webpack/module/rules/i18n.ts
index 3023253cab..9a4acde686 100644
--- a/webpack/module/rules/i18n.ts
+++ b/webpack/module/rules/i18n.ts
@@ -4,34 +4,46 @@
const StringReplacePlugin = require('string-replace-webpack-plugin');
-export default (lang, locale) => ({
- enforce: 'pre',
- test: /\.(tag|js)$/,
- exclude: /node_modules/,
- loader: StringReplacePlugin.replace({
- replacements: [
- {
+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;
+ }
+ }
+
+ return {
+ enforce: 'pre',
+ test: /\.(tag|js)$/,
+ exclude: /node_modules/,
+ loader: StringReplacePlugin.replace({
+ replacements: [{
+ pattern: /"%i18n:(.+?)%"/g, replacement: (_, key) => {
+ return '"' + get(key).replace(/"/g, '\\"') + '"';
+ }
+ }, {
+ pattern: /'%i18n:(.+?)%'/g, replacement: (_, key) => {
+ return '\'' + get(key).replace(/'/g, '\\\'') + '\'';
+ }
+ }, {
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, '\\"');
- }
+ return get(key);
}
- }
- ]
- })
-});
+ }]
+ })
+ };
+};