feat: fetch translations

This commit is contained in:
Jannat Patel
2023-12-08 15:04:41 +05:30
parent 11079dae00
commit 25f24b98c6
4 changed files with 73 additions and 79 deletions

View File

@@ -1,22 +1,22 @@
import { createResource } from 'frappe-ui'
export default function translationPlugin(app) {
app.config.globalProperties.__ = translate
// fetch translations
if (!window.translatedMessages)
fetchTranslations().then((translations) => {
window.translatedMessages = translations
})
console.log(window.translatedMessages)
if (!window.translatedMessages) fetchTranslations()
}
async function translate(message) {
function translate(message) {
let lang = window.lang || 'hi'
let translatedMessage = /* window.translatedMessages[message] || */ message
let translatedMessages = window.translatedMessages || {
'All Courses': 'सभी पाठ्यक्रम',
Live: 'लाइव',
}
let translatedMessage = translatedMessages[message] || message
const hasPlaceholders = /{\d+}/.test(message)
console.log(translatedMessage)
console.log(hasPlaceholders)
if (!hasPlaceholders) {
console.log(translatedMessage)
return translatedMessage
}
return {
@@ -24,9 +24,6 @@ async function translate(message) {
return translatedMessage.replace(
/{(\d+)}/g,
function (match, number) {
console.log(match, number)
console.log(args[number])
return typeof args[number] != 'undefined'
? args[number]
: match
@@ -36,18 +33,15 @@ async function translate(message) {
}
}
async function fetchTranslations() {
let lang = window.lang || 'hi'
let translations = await createResource({
function fetchTranslations(lang) {
console.log('called')
createResource({
url: 'lms.lms.api.get_translations',
cache: 'translations',
auto: true,
transform: (data) => {
console.log(data)
window.translatedMessages = data.message
},
})
let translatedMessages = {}
console.log(translations.data)
translations.forEach((translation) => {
translatedMessages[translation.source_text] =
translation.translated_text
})
window.translatedMessages = translatedMessages
}