diff options
| author | RblSb <msrblsb@gmail.com> | 2020-03-06 06:55:44 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2020-03-06 19:03:23 +0300 |
| commit | f4546e9f999e2ae26ee83bc706abcd9971317afa (patch) | |
| tree | 2f60f4af7e9670723a17c9f2add3e5e4ce0489d0 /src/Lang.hx | |
| parent | 0ca7420ad952c0332ab36e37596b0fa53e710325 (diff) | |
Load only required languages on client
Diffstat (limited to 'src/Lang.hx')
| -rw-r--r-- | src/Lang.hx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/Lang.hx b/src/Lang.hx index 8632812..7b7642d 100644 --- a/src/Lang.hx +++ b/src/Lang.hx @@ -7,13 +7,17 @@ import sys.io.File; #else import haxe.Http; #end +using Lambda; private typedef LangMap = Map<String, String>; class Lang { - static final ids = ["en", "ru"]; static final langs:Map<String, LangMap> = []; + static var ids = ["en", "ru"]; + #if (js && !nodejs) + static var lang = js.Browser.navigator.language.substr(0, 2).toLowerCase(); + #end static function request(path:String, callback:(data:String)->Void):Void { #if (sys || nodejs) @@ -26,6 +30,10 @@ class Lang { } public static function init(folderPath:String, ?callback:()->Void):Void { + #if (js && !nodejs) + // Filter unused languages + ids = ids.filter(id -> id == lang || id == "en"); + #end langs.clear(); var count = 0; for (name in ids) { @@ -50,8 +58,6 @@ class Lang { return text == null ? key : text; } #else - static var lang = js.Browser.navigator.language.substr(0, 2).toLowerCase(); - public static function get(key:String):String { if (langs[lang] == null) lang = "en"; final text = langs[lang][key]; |
