UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

117 lines (101 loc) 3.4 kB
// Class: openfl.globalization.LocaleID var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; function EReg() {return require("./../../EReg");} function HxOverrides() {return require("./../../HxOverrides");} function Reflect() {return require("./../../Reflect");} function haxe_CallStack() {return require("./../../haxe/CallStack");} function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} // Constructor var LocaleID = function(name) { if(name == "i-default") { this.name = name; this.language = name; this.region = ""; this.script = ""; this.rtl = false; this.lastOperationStatus = "noError"; } else { try { var intlLocale = (new Intl.Locale)(name).maximize(); this.name = (Reflect().default).field(intlLocale,"baseName"); this.language = (Reflect().default).field(intlLocale,"language"); this.region = (Reflect().default).field(intlLocale,"region"); this.script = (Reflect().default).field(intlLocale,"script"); this.rtl = LocaleID.RTL_LANGUAGES.indexOf(this.language) != -1; this.lastOperationStatus = "noError"; } catch( e ) { (haxe_CallStack().default).lastException = e; var e1 = ((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e; this.lastOperationStatus = "errorCodeUnknown"; } } } // Meta LocaleID.__name__ = "openfl.globalization.LocaleID"; LocaleID.__isInterface__ = false; LocaleID.prototype = { getLanguage: function() { return this.language; }, getRegion: function() { return this.region; }, getScript: function() { return this.script; }, getVariant: function() { return ""; }, isRightToLeft: function() { return this.rtl; } }; LocaleID.prototype.__class__ = LocaleID.prototype.constructor = $hxClasses["openfl.globalization.LocaleID"] = LocaleID; // Init // Statics LocaleID.normalizeRequestedLocaleIDName = function(requestedLocaleIDName) { if(requestedLocaleIDName == null) { return null; } if(requestedLocaleIDName == "i-default") { requestedLocaleIDName = Intl.DateTimeFormat().resolvedOptions().locale; } requestedLocaleIDName = new (EReg().default)("_","g").replace(requestedLocaleIDName,"-"); var parts = requestedLocaleIDName.split("-"); var language = parts.shift(); language = language.toLowerCase(); if(language == "root") { language = "und"; } var script = null; var region = null; if(parts.length > 0) { var next = parts.shift(); if(next != null && next.length == 4) { script = next.charAt(0).toUpperCase() + (HxOverrides().default).substr(next,1,null).toLowerCase(); next = parts.shift(); } if(next != null && (next.length == 2 || next.length == 3)) { region = next.toUpperCase(); next = parts.shift(); } } var result = language; if(script != null) { result += "-" + script; } if(region != null) { result += "-" + region; } return result; } LocaleID.DEFAULT = "i-default" LocaleID.RTL_LANGUAGES = ["ae","ar","arc","bcc","bqi","ckb","dv","fa","glk","he","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"] // Export exports.default = LocaleID;