This commit is contained in:
2021-01-25 15:16:57 +00:00
parent c9c58af971
commit 60cf87d3ea
8 changed files with 34 additions and 50 deletions

View File

@@ -19,7 +19,7 @@ async function dealWithError(msg, vm) {
lastMessageTimeStamp = new Date();
//translate as necessary
msg = await window.$gz.translation.translateStringWithMultipleKeys(msg);
msg = await window.$gz.translation.translateStringWithMultipleKeysAsync(msg);
//In some cases the error may not be translatable, if this is not a debug run then it should show without the ?? that translating puts in keys not found
//so it's not as weird looking to the user

View File

@@ -654,16 +654,14 @@ export default {
ve.error +
"]";
if (ve.message) {
//NOTE: This is (**still not**) how to handle calling an async function from a sync function
//for reference sync async function async method from sync method
//it just can't be done and this needs to go away and not be expected to do this
let transMessage = ve.message;
window.$gz.translation
.translateStringWithMultipleKeys(ve.message)
.then(result => {
transMessage = result;
});
fldErr += ' - "' + transMessage + '"';
//NOTE: call sync version here as can't call async code from here
//so translations must already be pre-fetched to work here
fldErr +=
' - "' +
window.$gz.translation.translateStringWithMultipleKeys(
ve.message
) +
'"';
ret.push(fldErr);
} else {
ret.push(fldErr);

View File

@@ -301,7 +301,7 @@ export default {
//translation keys that start with LT:
//translate each and replace and return the string translated
// (fetch and cache any missing strings)
async translateStringWithMultipleKeys(s) {
async translateStringWithMultipleKeysAsync(s) {
let ret = s;
let found = s.match(/LT:[\w]*/gm);
if (found == null) {
@@ -324,6 +324,26 @@ export default {
return ret;
},
////////////////////////////////////////////////////////
// Take in a string that contains one or more
//translation keys that start with LT:
//translate each and replace and return the string translated
// (DOES NOT fetch and cache any missing strings, they must exist)
//this is the sync version to be used in non async capable code
translateStringWithMultipleKeys(s) {
let ret = s;
let found = s.match(/LT:[\w]*/gm);
if (found == null) {
return ret;
}
//replace
found.forEach(z => {
let translated = this.get(z.replace("LT:", ""));
//replace all
ret = ret.split(z).join(translated);
});
return ret;
},
////////////////////////////////////////////////////////
// dynamically set the vuetify language elements from