diff options
Diffstat (limited to 'webpack')
| -rw-r--r-- | webpack/i18n.ts | 24 |
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}%`; +}; |