You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					66 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					66 lines
				
				1.9 KiB
			| 
											2 years ago
										 | import type { App } from 'vue'; | ||
|  | import { createI18n } from 'vue-i18n'; | ||
|  | import { Quasar } from 'quasar'; | ||
|  | import en from './i18n/platform_en'; | ||
|  | import zh_CN from './i18n/platform_zh_CN'; | ||
|  | import tw_CN from './i18n/platform_tw_CN'; | ||
|  | 
 | ||
|  | let gc: any = undefined; | ||
|  | let i18n: any = undefined; | ||
|  | 
 | ||
|  | class Initializer { | ||
|  |   public static init(callback) { | ||
|  |     fetch(window['webContextPath'] + 'api/lcdp/configure/getActiveConfigure') | ||
|  |       .then((response) => response.json()) | ||
|  |       .then((data) => { | ||
|  |         gc = data.data; | ||
|  |         gc.webContextPath = window['webContextPath']; | ||
|  |         gc.loginError = window['loginError'] === 'true' ? true : false; | ||
|  | 
 | ||
|  |         for (const key in gc.i18nMessages['en']) { | ||
|  |           en[key] = gc.i18nMessages['en'][key]; | ||
|  |         } | ||
|  |         for (const key in gc.i18nMessages['zh_CN']) { | ||
|  |           zh_CN[key] = gc.i18nMessages['zh_CN'][key]; | ||
|  |         } | ||
|  |         for (const key in gc.i18nMessages['tw_CN']) { | ||
|  |           tw_CN[key] = gc.i18nMessages['tw_CN'][key]; | ||
|  |         } | ||
|  |         i18n = createI18n({ | ||
|  |           legacy: false, | ||
|  |           availableLocales: gc.setting.i18n.availableLocales, | ||
|  |           locale: gc.setting.i18n.locale, | ||
|  |           fallbackLocale: gc.setting.i18n.fallbackLocale, | ||
|  |           missingWarn: gc.setting.i18n.missingWarn, | ||
|  |           fallbackWarn: gc.setting.i18n.fallbackWarn, | ||
|  |           messages: { | ||
|  |             en: en, | ||
|  |             zh_CN: zh_CN, | ||
|  |             tw_CN: tw_CN, | ||
|  |           }, | ||
|  |         }); | ||
|  |         callback(); | ||
|  |       }); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | export default { | ||
|  |   install: (app: App) => { | ||
|  |     app.use(i18n); | ||
|  |     app.use(Quasar, { | ||
|  |       config: { | ||
|  |         brand: gc.theme.brand, | ||
|  |         loadingBar: { | ||
|  |           color: gc.theme.loadingBar.color, | ||
|  |           size: gc.theme.loadingBar.size + 'px', | ||
|  |           position: gc.theme.loadingBar.position, | ||
|  |           reverse: gc.theme.loadingBar.reverse, | ||
|  |         }, | ||
|  |       }, | ||
|  |     }); | ||
|  |     app.config.globalProperties.$gc = gc; | ||
|  |   }, | ||
|  | }; | ||
|  | 
 | ||
|  | export { gc, i18n, Initializer }; |