When Swedish language is selected (sv-SE or sv), LocalizedResourcesHelper tries to find jquery.jtable.sv-SE.js or jquery.jtable.sv.js here <a class="postlink" href="https://github.com/aspnetzero/aspnet-zero-core/blob/3c65f620aab8042b9b85109054c606836d15b8ed/angular/src/shared/helpers/LocalizedResourcesHelper.ts#L40">https://github.com/aspnetzero/aspnet-ze ... per.ts#L40</a> Too bad the language file is called jquery.jtable.se.js, so we get a 404. The same goes for jquery timeago.
Bootstrap Select also checks for supported cultures, so it reverts to english, since it cannot find sv-SE or sv in the supportedCultures array.
This is probably not only a problem with Swedish. How to solve this best?
4 Answer(s)
-
0
I solved it like this:
private static loadLocalizedScripts(): JQueryPromise<any> { if (!abp.session.userId) { return $.Deferred().resolve(); } var currentCulture = abp.localization.currentLanguage.name; var jTable = "/assets/localization/jtable/jquery.jtable.{0}.js"; var bootstrapSelect = "/assets/localization/bootstrap-select/defaults-{0}.js"; var jqueryTimeago = "/assets/localization/jquery-timeago/jquery.timeago.{0}.js"; return $.when( ((currentCulture !== 'en') ? jQuery.getScript(abp.utils.formatString(jTable, LocalizedResourcesHelper.mapCultureForJtable(currentCulture))) : $.Deferred().resolve()), jQuery.getScript(abp.utils.formatString(bootstrapSelect, LocalizedResourcesHelper.mapCultureForBootstrapSelect(currentCulture))), jQuery.getScript(abp.utils.formatString(jqueryTimeago, LocalizedResourcesHelper.mapCultureForTimeago(currentCulture))) ); } private static mapCultureForJtable(currentCulture: string): string { const cultureMap = { 'sv-SE': 'se', 'sv': 'se' //Add more here }; if (cultureMap[currentCulture]) return cultureMap[currentCulture]; return currentCulture; } private static mapCultureForBootstrapSelect(currentCulture: string): string { const cultureMap = { 'en': 'en_US' //Add more here }; if (cultureMap[currentCulture]) return cultureMap[currentCulture]; return currentCulture.replace('-', '_'); } private static mapCultureForTimeago(currentCulture: string): string { const cultureMap = { 'sv-SE': 'sv' //Add more here }; if (cultureMap[currentCulture]) return cultureMap[currentCulture]; return currentCulture; }
-
0
Hi,
Thank you for sharing the solution as well. You can create an issue in aspnet zero repository and we will think a better way and if we can find one, we will apply it.
Thanks.
-
0
GitHub issue here: <a class="postlink" href="https://github.com/aspnetzero/aspnet-zero-core/issues/109">https://github.com/aspnetzero/aspnet-ze ... issues/109</a>
-
0
Thanks :)