forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {UIEventSource} from "../../Logic/UIEventSource";
 | |
| import {LocalStorageSource} from "../../Logic/Web/LocalStorageSource";
 | |
| import {Utils} from "../../Utils";
 | |
| import {QueryParameters} from "../../Logic/Web/QueryParameters";
 | |
| 
 | |
| 
 | |
| export default class Locale {
 | |
| 
 | |
|     public static showLinkToWeblate: UIEventSource<boolean> =  new UIEventSource<boolean>(false);
 | |
|     public static language: UIEventSource<string> = Locale.setup();
 | |
|     
 | |
|     private static setup() {
 | |
|         const source = LocalStorageSource.Get('language', "en");
 | |
|         if (!Utils.runningFromConsole) {
 | |
|             // @ts-ignore
 | |
|             window.setLanguage = function (language: string) {
 | |
|                 source.setData(language)
 | |
|             }
 | |
|         }
 | |
|         source.syncWith(
 | |
|             QueryParameters.GetQueryParameter("language", undefined, "The language to display mapcomplete in. Will be ignored in case a logged-in-user did set their language before. If the specified language does not exist, it will default to the first language in the theme."),
 | |
|             true
 | |
|         )
 | |
|         QueryParameters.GetBooleanQueryParameter("fs-translation-mode",false,"If set, will show a translation button next to every string.")
 | |
|             .addCallbackAndRunD(tr => {
 | |
|                 Locale.showLinkToWeblate.setData(Locale.showLinkToWeblate.data || tr);
 | |
|         })
 | |
| 
 | |
| 
 | |
|         return source;
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 |