From b7e4149d6c304335d30526a2cfe129da83f9dcc7 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Wed, 13 Apr 2022 17:38:01 +0200 Subject: [PATCH] Translate Data Management Page --- qortal-ui-core/language/cn.json | 23 ++++ qortal-ui-core/language/de.json | 23 ++++ qortal-ui-core/language/fr.json | 23 ++++ qortal-ui-core/language/pl.json | 23 ++++ qortal-ui-core/language/sp.json | 23 ++++ qortal-ui-core/language/us.json | 23 ++++ .../data-management/data-management.src.js | 116 +++++++++++------- 7 files changed, 213 insertions(+), 41 deletions(-) diff --git a/qortal-ui-core/language/cn.json b/qortal-ui-core/language/cn.json index b2b0add8..97c961bd 100644 --- a/qortal-ui-core/language/cn.json +++ b/qortal-ui-core/language/cn.json @@ -365,5 +365,28 @@ "bchange14": "Error occurred when trying to unblock this registered name. Please try again!", "bchange15": "Can't delete data from followed names. Please unfollow first.", "bchange16": "Error occurred when trying to delete this resource. Please try again!" + }, + "datapage": { + "dchange1": "Data Management", + "dchange2": "Search in hosted data by this node", + "dchange3": "Data to search", + "dchange4": "Search", + "dchange5": "Registered Name", + "dchange6": "Service", + "dchange7": "Identifier", + "dchange8": "Actions", + "dchange9": "Data hosted by this node", + "dchange10": "Data name can not be empty!", + "dchange11": "Data not found!", + "dchange12": "Couldn't fetch hosted data list from node", + "dchange13": "This node isn't hosting any data", + "dchange14": "Unfollow", + "dchange15": "Delete", + "dchange16": "Block", + "dchange17": "Unblock", + "dchange18": "Error occurred when trying to block this registered name. Please try again!", + "dchange19": "Error occurred when trying to unfollow this registered name. Please try again!", + "dchange20": "Error occurred when trying to unblock this registered name. Please try again!", + "dchange21": "Error occurred when trying to delete this resource. Please try again!" } } \ No newline at end of file diff --git a/qortal-ui-core/language/de.json b/qortal-ui-core/language/de.json index 2200c7c1..ca9140f4 100644 --- a/qortal-ui-core/language/de.json +++ b/qortal-ui-core/language/de.json @@ -365,5 +365,28 @@ "bchange14": "Beim Versuch, diesen registrierten Namen zu entsperren, ist ein Fehler aufgetreten. Bitte versuche es erneut!", "bchange15": "Daten von verfolgten Namen können nicht gelöscht werden. Bitte zuerst entfolgen.", "bchange16": "Beim Versuch, diese Ressource zu löschen, ist ein Fehler aufgetreten. Bitte versuche es erneut!" + }, + "datapage": { + "dchange1": "Datenmanagement", + "dchange2": "Suche in gehosteten Daten von diesem Knoten", + "dchange3": "Daten zu suchen", + "dchange4": "Suchen", + "dchange5": "Registrierter Name", + "dchange6": "Service", + "dchange7": "Kennung", + "dchange8": "Aktionen", + "dchange9": "Von diesem Knoten gehostete Daten", + "dchange10": "Datenname darf nicht leer sein!", + "dchange11": "Daten nicht gefunden!", + "dchange12": "Gehostete Datenliste konnte nicht vom Knoten abgerufen werden", + "dchange13": "Dieser Knoten hostet keine Daten", + "dchange14": "Enfolgen", + "dchange15": "Löschen", + "dchange16": "Sperren", + "dchange17": "Entsperren", + "dchange18": "Beim Blockieren dieses registrierten Namens ist ein Fehler aufgetreten. Bitte versuche es erneut!", + "dchange19": "Beim Versuch, diesem registrierten Namen nicht mehr zu folgen, ist ein Fehler aufgetreten. Bitte versuche es erneut!", + "dchange20": "Beim Versuch, diesen registrierten Namen zu entsperren, ist ein Fehler aufgetreten. Bitte versuche es erneut!", + "dchange21": "Beim Versuch, diese Ressource zu löschen, ist ein Fehler aufgetreten. Bitte versuche es erneut!" } } \ No newline at end of file diff --git a/qortal-ui-core/language/fr.json b/qortal-ui-core/language/fr.json index 98309913..6885caf0 100644 --- a/qortal-ui-core/language/fr.json +++ b/qortal-ui-core/language/fr.json @@ -365,5 +365,28 @@ "bchange14": "Error occurred when trying to unblock this registered name. Please try again!", "bchange15": "Can't delete data from followed names. Please unfollow first.", "bchange16": "Error occurred when trying to delete this resource. Please try again!" + }, + "datapage": { + "dchange1": "Data Management", + "dchange2": "Search in hosted data by this node", + "dchange3": "Data to search", + "dchange4": "Search", + "dchange5": "Registered Name", + "dchange6": "Service", + "dchange7": "Identifier", + "dchange8": "Actions", + "dchange9": "Data hosted by this node", + "dchange10": "Data name can not be empty!", + "dchange11": "Data not found!", + "dchange12": "Couldn't fetch hosted data list from node", + "dchange13": "This node isn't hosting any data", + "dchange14": "Unfollow", + "dchange15": "Delete", + "dchange16": "Block", + "dchange17": "Unblock", + "dchange18": "Error occurred when trying to block this registered name. Please try again!", + "dchange19": "Error occurred when trying to unfollow this registered name. Please try again!", + "dchange20": "Error occurred when trying to unblock this registered name. Please try again!", + "dchange21": "Error occurred when trying to delete this resource. Please try again!" } } \ No newline at end of file diff --git a/qortal-ui-core/language/pl.json b/qortal-ui-core/language/pl.json index 2efb458a..97259e88 100644 --- a/qortal-ui-core/language/pl.json +++ b/qortal-ui-core/language/pl.json @@ -365,5 +365,28 @@ "bchange14": "Error occurred when trying to unblock this registered name. Please try again!", "bchange15": "Can't delete data from followed names. Please unfollow first.", "bchange16": "Error occurred when trying to delete this resource. Please try again!" + }, + "datapage": { + "dchange1": "Data Management", + "dchange2": "Search in hosted data by this node", + "dchange3": "Data to search", + "dchange4": "Search", + "dchange5": "Registered Name", + "dchange6": "Service", + "dchange7": "Identifier", + "dchange8": "Actions", + "dchange9": "Data hosted by this node", + "dchange10": "Data name can not be empty!", + "dchange11": "Data not found!", + "dchange12": "Couldn't fetch hosted data list from node", + "dchange13": "This node isn't hosting any data", + "dchange14": "Unfollow", + "dchange15": "Delete", + "dchange16": "Block", + "dchange17": "Unblock", + "dchange18": "Error occurred when trying to block this registered name. Please try again!", + "dchange19": "Error occurred when trying to unfollow this registered name. Please try again!", + "dchange20": "Error occurred when trying to unblock this registered name. Please try again!", + "dchange21": "Error occurred when trying to delete this resource. Please try again!" } } diff --git a/qortal-ui-core/language/sp.json b/qortal-ui-core/language/sp.json index 0b461f05..5ab728b5 100644 --- a/qortal-ui-core/language/sp.json +++ b/qortal-ui-core/language/sp.json @@ -365,5 +365,28 @@ "bchange14": "Error occurred when trying to unblock this registered name. Please try again!", "bchange15": "Can't delete data from followed names. Please unfollow first.", "bchange16": "Error occurred when trying to delete this resource. Please try again!" + }, + "datapage": { + "dchange1": "Data Management", + "dchange2": "Search in hosted data by this node", + "dchange3": "Data to search", + "dchange4": "Search", + "dchange5": "Registered Name", + "dchange6": "Service", + "dchange7": "Identifier", + "dchange8": "Actions", + "dchange9": "Data hosted by this node", + "dchange10": "Data name can not be empty!", + "dchange11": "Data not found!", + "dchange12": "Couldn't fetch hosted data list from node", + "dchange13": "This node isn't hosting any data", + "dchange14": "Unfollow", + "dchange15": "Delete", + "dchange16": "Block", + "dchange17": "Unblock", + "dchange18": "Error occurred when trying to block this registered name. Please try again!", + "dchange19": "Error occurred when trying to unfollow this registered name. Please try again!", + "dchange20": "Error occurred when trying to unblock this registered name. Please try again!", + "dchange21": "Error occurred when trying to delete this resource. Please try again!" } } \ No newline at end of file diff --git a/qortal-ui-core/language/us.json b/qortal-ui-core/language/us.json index bfbec6e5..fb0e1430 100644 --- a/qortal-ui-core/language/us.json +++ b/qortal-ui-core/language/us.json @@ -365,5 +365,28 @@ "bchange14": "Error occurred when trying to unblock this registered name. Please try again!", "bchange15": "Can't delete data from followed names. Please unfollow first.", "bchange16": "Error occurred when trying to delete this resource. Please try again!" + }, + "datapage": { + "dchange1": "Data Management", + "dchange2": "Search in hosted data by this node", + "dchange3": "Data to search", + "dchange4": "Search", + "dchange5": "Registered Name", + "dchange6": "Service", + "dchange7": "Identifier", + "dchange8": "Actions", + "dchange9": "Data hosted by this node", + "dchange10": "Data name can not be empty!", + "dchange11": "Data not found!", + "dchange12": "Couldn't fetch hosted data list from node", + "dchange13": "This node isn't hosting any data", + "dchange14": "Unfollow", + "dchange15": "Delete", + "dchange16": "Block", + "dchange17": "Unblock", + "dchange18": "Error occurred when trying to block this registered name. Please try again!", + "dchange19": "Error occurred when trying to unfollow this registered name. Please try again!", + "dchange20": "Error occurred when trying to unblock this registered name. Please try again!", + "dchange21": "Error occurred when trying to delete this resource. Please try again!" } } \ No newline at end of file diff --git a/qortal-ui-plugins/plugins/core/qdn/data-management/data-management.src.js b/qortal-ui-plugins/plugins/core/qdn/data-management/data-management.src.js index 97da4d30..e001d085 100644 --- a/qortal-ui-plugins/plugins/core/qdn/data-management/data-management.src.js +++ b/qortal-ui-plugins/plugins/core/qdn/data-management/data-management.src.js @@ -1,6 +1,11 @@ import { LitElement, html, css } from 'lit' import { render } from 'lit/html.js' import { Epml } from '../../../../epml' +import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate' + +registerTranslateConfig({ + loader: lang => fetch(`/language/${lang}.json`).then(res => res.json()) +}) import '@material/mwc-icon' import '@material/mwc-button' @@ -170,27 +175,27 @@ class DataManagement extends LitElement { return html`
-

Data Management

+

${translate("datapage.dchange1")}

-

Search in hosted data by this node

+

${translate("datapage.dchange2")}


- - - { + + + { render(html`${this.renderSearchIdentifier(data.item)}`, root) }}> - { + { render(html`${this.renderSearchDeleteButton(data.item)}`, root); }}> @@ -201,15 +206,15 @@ class DataManagement extends LitElement {

-

Data hosted by this node

+

${translate("datapage.dchange9")}

- - - { + + + { render(html`${this.renderIdentifier(data.item)}`, root) }}> - { + { render(html`${this.renderDeleteButton(data.item)}`, root); }}> @@ -227,10 +232,8 @@ class DataManagement extends LitElement { firstUpdated() { - setInterval(() => { - this.changeTheme(); - }, 100) - + this.changeTheme() + this.changeLanguage() this.showManagement() window.addEventListener('contextmenu', (event) => { @@ -242,6 +245,20 @@ class DataManagement extends LitElement { parentEpml.request('closeCopyTextMenu', null) }) + window.addEventListener('storage', () => { + const checkLanguage = localStorage.getItem('qortalLanguage') + const checkTheme = localStorage.getItem('qortalTheme') + + use(checkLanguage) + + if (checkTheme === 'dark') { + this.theme = 'dark' + } else { + this.theme = 'light' + } + document.querySelector('html').setAttribute('theme', this.theme) + }) + window.onkeyup = (e) => { if (e.keyCode === 27) { parentEpml.request('closeCopyTextMenu', null) @@ -293,6 +310,17 @@ class DataManagement extends LitElement { document.querySelector('html').setAttribute('theme', this.theme); } + changeLanguage() { + const checkLanguage = localStorage.getItem('qortalLanguage') + + if (checkLanguage === null || checkLanguage.length === 0) { + localStorage.setItem('qortalLanguage', 'us') + use('us') + } else { + use(checkLanguage) + } + } + searchListener(e) { if (e.key === 'Enter') { this.doSearch(e); @@ -306,13 +334,15 @@ class DataManagement extends LitElement { async searchResult() { let searchName = this.shadowRoot.getElementById('searchName').value if (searchName.length === 0) { - parentEpml.request('showSnackBar', 'Data Name Can Not Be Empty!') + let err1string = get("datapage.dchange10") + parentEpml.request('showSnackBar', `${err1string}`) } else { let searchDatres = await parentEpml.request('apiCall', { url: `/arbitrary/hosted/resources?includestatus=true&limit=20&offset=0&query=${searchName}&apiKey=${this.getApiKey()}` }) if (this.isEmptyArray(searchDatres)) { - parentEpml.request('showSnackBar', 'Data Not Found!') + let err2string = get("datapage.dchange11") + parentEpml.request('showSnackBar', `${err2string}`) } else { this.searchDatres = searchDatres } @@ -321,10 +351,10 @@ class DataManagement extends LitElement { renderDefaultText() { if (this.datres == null || !Array.isArray(this.datres)) { - return html`
Couldn't fetch hosted data list from node` + return html`
${translate("datapage.dchange12")}` } if (this.isEmptyArray(this.datres)) { - return html`
This node isn't hosting any data`; + return html`
${translate("datapage.dchange13")}`; } return ''; } @@ -346,11 +376,11 @@ class DataManagement extends LitElement { // as it will be re-fetched immediately. In these cases we should show an UNFOLLOW button. if (this.searchFollowedNames.indexOf(name) != -1) { // render unfollow button - return html` this.searchUnfollowName(search)}>remove_from_queue Unfollow` + return html` this.searchUnfollowName(search)}>remove_from_queue ${translate("datapage.dchange14")}` } // render delete button - return html` this.deleteSearchResource(search)} onclick="this.blur();">delete Delete` + return html` this.deleteSearchResource(search)} onclick="this.blur();">delete ${translate("datapage.dchange15")}` } renderSearchBlockUnblockButton(search) { @@ -363,11 +393,11 @@ class DataManagement extends LitElement { if (this.searchBlockedNames.indexOf(name) === -1) { // render block button - return html` this.searchBlockName(search)}>block Block` + return html` this.searchBlockName(search)}>block ${translate("datapage.dchange16")}` } else { // render unblock button - return html` this.searchUnblockName(search)}>radio_button_unchecked Unblock` + return html` this.searchUnblockName(search)}>radio_button_unchecked ${translate("datapage.dchange17")}` } } @@ -395,9 +425,9 @@ class DataManagement extends LitElement { this.searchBlockedNames.push(name) } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to block this registered name. Please try again') + let err3string = get("datapage.dchange18") + parentEpml.request('showSnackBar', `${err3string}`) } - return ret } @@ -422,9 +452,9 @@ class DataManagement extends LitElement { this.searchFollowedNames = this.searchFollowedNames.filter(item => item != name); } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to unfollow this registered name. Please try again') + let err4string = get("datapage.dchange19") + parentEpml.request('showSnackBar', `${err4string}`) } - return ret } @@ -449,9 +479,9 @@ class DataManagement extends LitElement { this.searchBlockedNames = this.searchBlockedNames.filter(item => item != name); } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to unblock this registered name. Please try again') + let err5string = get("datapage.dchange20") + parentEpml.request('showSnackBar', `${err5string}`) } - return ret } @@ -468,9 +498,9 @@ class DataManagement extends LitElement { window.location.reload(); } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to delete this resource. Please try again') + let err6string = get("datapage.dchange21") + parentEpml.request('showSnackBar', `${err6string}`) } - return ret } @@ -491,11 +521,11 @@ class DataManagement extends LitElement { // as it will be re-fetched immediately. In these cases we should show an UNFOLLOW button. if (this.followedNames.indexOf(name) != -1) { // render unfollow button - return html` this.unfollowName(resource)}>remove_from_queue Unfollow` + return html` this.unfollowName(resource)}>remove_from_queue ${translate("datapage.dchange14")}` } // render delete button - return html` this.deleteResource(resource)} onclick="this.blur();">delete Delete` + return html` this.deleteResource(resource)} onclick="this.blur();">delete ${translate("datapage.dchange15")}` } renderBlockUnblockButton(resource) { @@ -508,11 +538,11 @@ class DataManagement extends LitElement { if (this.blockedNames.indexOf(name) === -1) { // render block button - return html` this.blockName(resource)}>block Block` + return html` this.blockName(resource)}>block ${translate("datapage.dchange16")}` } else { // render unblock button - return html` this.unblockName(resource)}>radio_button_unchecked Unblock` + return html` this.unblockName(resource)}>radio_button_unchecked ${translate("datapage.dchange17")}` } } @@ -540,7 +570,8 @@ class DataManagement extends LitElement { this.blockedNames.push(name) } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to block this registered name. Please try again') + let err7string = get("datapage.dchange18") + parentEpml.request('showSnackBar', `${err7string}`) } return ret @@ -567,7 +598,8 @@ class DataManagement extends LitElement { this.followedNames = this.followedNames.filter(item => item != name); } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to unfollow this registered name. Please try again') + let err8string = get("datapage.dchange19") + parentEpml.request('showSnackBar', `${err8string}`) } return ret @@ -594,7 +626,8 @@ class DataManagement extends LitElement { this.blockedNames = this.blockedNames.filter(item => item != name); } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to unblock this registered name. Please try again') + let err9string = get("datapage.dchange20") + parentEpml.request('showSnackBar', `${err7string}`) } return ret @@ -613,7 +646,8 @@ class DataManagement extends LitElement { window.location.reload(); } else { - parentEpml.request('showSnackBar', 'Error occurred when trying to delete this resource. Please try again') + let err10string = get("datapage.dchange21") + parentEpml.request('showSnackBar', `${err10string}`) } return ret