mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-31 13:34:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			781 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			781 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * 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, '\\"');
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		]
 | |
| 	})
 | |
| });
 |