2020-08-17 17:23:15 +02:00
import { UIEventSource } from "../../Logic/UIEventSource" ;
import { LocalStorageSource } from "../../Logic/Web/LocalStorageSource" ;
2021-01-06 02:21:50 +01:00
import { Utils } from "../../Utils" ;
2021-08-21 20:25:36 +02:00
import { QueryParameters } from "../../Logic/Web/QueryParameters" ;
2020-07-20 12:39:43 +02:00
export default class Locale {
2020-07-25 18:00:08 +02:00
2022-04-03 03:00:45 +02:00
public static showLinkToWeblate : UIEventSource < boolean > = new UIEventSource < boolean > ( false ) ;
2020-07-31 04:58:58 +02:00
public static language : UIEventSource < string > = Locale . setup ( ) ;
2022-04-01 12:51:55 +02:00
2020-07-31 04:58:58 +02:00
private static setup() {
2020-12-14 01:14:22 +01:00
const source = LocalStorageSource . Get ( 'language' , "en" ) ;
2021-01-06 02:21:50 +01:00
if ( ! Utils . runningFromConsole ) {
2020-07-31 17:11:44 +02:00
// @ts-ignore
window . setLanguage = function ( language : string ) {
source . setData ( language )
}
2022-04-03 03:49:09 +02:00
}
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 ) ;
} )
2022-04-03 03:00:45 +02:00
2020-07-31 04:58:58 +02:00
return source ;
2020-07-25 18:00:08 +02:00
}
2020-07-20 12:39:43 +02:00
}
2020-07-25 18:00:08 +02:00