27 lines
		
	
	
		
			559 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			559 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| export interface LocaleData {
 | |
|   locale: string;
 | |
|   messages: Record<string, string>;
 | |
| }
 | |
| 
 | |
| let loadedLocale: LocaleData | undefined;
 | |
| 
 | |
| export function setLocale(locale: LocaleData) {
 | |
|   loadedLocale = locale;
 | |
| }
 | |
| 
 | |
| export function getLocale(): LocaleData {
 | |
|   if (!loadedLocale) {
 | |
|     if (process.env.NODE_ENV === 'development') {
 | |
|       throw new Error('getLocale() called before any locale has been set');
 | |
|     } else {
 | |
|       return { locale: 'unknown', messages: {} };
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return loadedLocale;
 | |
| }
 | |
| 
 | |
| export function isLocaleLoaded() {
 | |
|   return !!loadedLocale;
 | |
| }
 |