1
0
forked from test/crm

fix: added context and fixed replace variable feat

This commit is contained in:
Shariq Ansari 2024-04-15 16:15:57 +05:30
parent 3a6514243d
commit e9ad564fdc

View File

@ -6,21 +6,33 @@ export default function translationPlugin(app) {
if (!window.translatedMessages) fetchTranslations()
}
function translate(message) {
function format(message, replace) {
return message.replace(/{(\d+)}/g, function (match, number) {
return typeof replace[number] != 'undefined' ? replace[number] : match
})
}
function translate(message, replace, context = null) {
let translatedMessages = window.translatedMessages || {}
let translatedMessage = translatedMessages[message] || message
let translatedMessage = ''
if (context) {
let key = `${message}:${context}`
if (translatedMessages[key]) {
translatedMessage = translatedMessages[key]
}
}
if (!translatedMessage) {
translatedMessage = translatedMessages[message] || message
}
const hasPlaceholders = /{\d+}/.test(message)
if (!hasPlaceholders) {
return translatedMessage
}
return {
format: function (...args) {
return translatedMessage.replace(/{(\d+)}/g, function (match, number) {
return typeof args[number] != 'undefined' ? args[number] : match
})
},
}
return format(translatedMessage, replace)
}
function fetchTranslations(lang) {