diff --git a/haxe/ui/containers/Box.hx b/haxe/ui/containers/Box.hx index fc7c48bec..1b6385cd3 100644 --- a/haxe/ui/containers/Box.hx +++ b/haxe/ui/containers/Box.hx @@ -148,7 +148,7 @@ private class Builder extends CompositeBuilder { var childRenderers = _component.findComponents(ItemRenderer, 1); for (i in 0...dataSource.size) { - var item = dataSource.get(i); + var item:Dynamic = dataSource.get(i); // For some reason without :Dynamic it's null on cpp var renderer = findRenderer(item, childRenderers); if (renderer == null && _box.cacheItemRenderers && _cachedItemRenderers != null) { renderer = findRenderer(item, _cachedItemRenderers); diff --git a/haxe/ui/locale/LocaleManager.hx b/haxe/ui/locale/LocaleManager.hx index e56ebcbd4..d8fe3522f 100644 --- a/haxe/ui/locale/LocaleManager.hx +++ b/haxe/ui/locale/LocaleManager.hx @@ -256,33 +256,25 @@ class LocaleManager { } stringMap.set(k, v); } - - localeId = StringTools.replace(localeId, "-", "_"); - var parts = localeId.split("_"); - if (parts.length > 1) { - var parent = _localeMap.get(parts[0]); - if (parent != null) { - for (k in parent.keys()) { - if (stringMap.exists(k) == false) { - stringMap.set(k, parent.get(k)); - } - } - } - } } private function getStrings(localeId:String):Map { - var strings = _localeMap.get(localeId); - if (strings != null) { - return strings; - } - localeId = StringTools.replace(localeId, "-", "_"); var parts = localeId.split("_"); if (!_localeMap.exists(parts[0])) { return _localeMap.get("en"); } - return _localeMap.get(parts[0]); + + var parentLocale = _localeMap.get(parts[0]); + var locale = _localeMap.get(parts[0]); + + var mergedLocale:Map = new Map(); + mergedLocale = parentLocale.copy(); + for (k in locale.keys()) { + var v = locale.get(k); + mergedLocale.set(k, v); + } + return mergedLocale; } public function hasString(id:String):Bool {