This commit is contained in:
2021-03-19 17:01:40 +00:00
parent ae68ec0695
commit ef8279ec9f
27 changed files with 156 additions and 70 deletions

View File

@@ -675,13 +675,11 @@ export default {
Authorization: "Bearer " + window.$gz.store.state.apiToken, //api token for using api methods as current user viewing report
DownloadToken: window.$gz.store.state.downloadToken,
TimeZoneName: window.$gz.locale.getResolvedTimeZoneName(),
LanguageName: window.$gz.locale.getBrowserLanguages(),
LanguageName: window.$gz.locale.getResolvedLanguage(),
Hour12: window.$gz.locale.getHour12(),
CurrencyName: window.$gz.locale.getCurrencyName(),
LanguageName: window.$gz.locale.getBrowserFirstLanguage(),
DefaultLocale: window.$gz.locale
.getBrowserFirstLanguage()
.split("-", 1)[0]
LanguageName: window.$gz.locale.getResolvedLanguage(),
DefaultLocale: window.$gz.locale.getResolvedLanguage().split("-", 1)[0]//kind of suspect, maybe it can be removed
};
},
///////////////////////////////////

View File

@@ -730,16 +730,18 @@ async function getUserOptions() {
mapUrlTemplate: null
};
//removed this block, locale already attempts this fully and this should really only set the user persisted value, not guess it here
//get language to use, try user set override first, if empty then browser set, if empty then default to en-us
l.languageOverride =
res.data.languageOverride ||
window.$gz.locale.getBrowserFirstLanguage() ||
"en-US";
// l.languageOverride =
// res.data.languageOverride || window.navigator.languages[0] || "en-US";
l.timeZoneOverride =
res.data.timeZoneOverride ||
window.$gz.locale.getResolvedTimeZoneName() ||
"America/New_York";
// l.timeZoneOverride =
// res.data.timeZoneOverride ||
// window.$gz.locale.getResolvedTimeZoneName() ||
// "America/New_York";
l.languageOverride = res.data.languageOverride;
l.timeZoneOverride = res.data.timeZoneOverride;
//No browser setting for this so meh
l.currencyName = res.data.currencyName || "USD";

View File

@@ -16,14 +16,21 @@ export default {
// only how the user expects to see the page itself
//
// also for sake of future proofing and edge cases need to have it be manually settable as well
// ############### TODO: modify all of these to put the user's manual override first in line (if there is one)
//
//https://appmakers.dev/bcp-47-language-codes-list/
getBrowserLanguages() {
return window.navigator.languages;
},
getBrowserFirstLanguage() {
return window.navigator.languages[0];
///////////////////////////////////////////
// Get users default language code
// first check if overriden in useroptions
// if not then use browsers own setting
getResolvedLanguage() {
let ov = window.$gz.store.state.userOptions.languageOverride;
if (!window.$gz.util.stringIsNullOrEmpty(ov)) {
return window.$gz.store.state.userOptions.languageOverride;
} else {
return window.navigator.languages[0];
}
},
///////////////////////////////////////////
// Get users default time zone
// first check if overriden in useroptions
@@ -68,7 +75,7 @@ export default {
timeZoneName = this.getResolvedTimeZoneName();
}
if (!languageName) {
languageName = this.getBrowserLanguages();
languageName = this.getResolvedLanguage();
}
if (!hour12) {
@@ -101,7 +108,7 @@ export default {
timeZoneName = this.getResolvedTimeZoneName();
}
if (!languageName) {
languageName = this.getBrowserLanguages();
languageName = this.getResolvedLanguage();
}
//parse the date which is identified as utc ("2020-02-06T18:18:49.148011Z")
@@ -128,7 +135,7 @@ export default {
timeZoneName = this.getResolvedTimeZoneName();
}
if (!languageName) {
languageName = this.getBrowserLanguages();
languageName = this.getResolvedLanguage();
}
if (!hour12) {
@@ -278,7 +285,7 @@ export default {
currencyLocalized(value, languageName, currencyName) {
if (value == null) return "";
if (!languageName) {
languageName = this.getBrowserLanguages();
languageName = this.getResolvedLanguage();
}
if (!currencyName) {
currencyName = this.getCurrencyName();
@@ -296,7 +303,7 @@ export default {
decimalLocalized(value, languageName) {
if (value == null) return "";
if (!languageName) {
languageName = this.getBrowserLanguages();
languageName = this.getResolvedLanguage();
}
//This forces 2 digits after the decimal
// return new Intl.NumberFormat(languageName, {