summaryrefslogtreecommitdiff
path: root/webpack
diff options
context:
space:
mode:
Diffstat (limited to 'webpack')
-rw-r--r--webpack/i18n.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/webpack/i18n.ts b/webpack/i18n.ts
new file mode 100644
index 0000000000..de4d02e9d9
--- /dev/null
+++ b/webpack/i18n.ts
@@ -0,0 +1,24 @@
+/**
+ * Replace i18n texts
+ */
+
+export const pattern = /%i18n:([a-z0-9_\-@\.\!]+?)%/g;
+
+export const replacement = (ctx, match, key) => {
+ const client = '/src/client/app/';
+ let name = null;
+
+ const shouldEscape = key[0] == '!';
+ if (shouldEscape) {
+ key = key.substr(1);
+ }
+
+ if (key[0] == '@') {
+ name = ctx.src.substr(ctx.src.indexOf(client) + client.length);
+ key = key.substr(1);
+ }
+
+ const path = name ? `${name}|${key}` : key;
+
+ return shouldEscape ? `%i18n:!${path}%` : `%i18n:${path}%`;
+};