fix: added context and fixed replace variable feat
This commit is contained in:
parent
3a6514243d
commit
e9ad564fdc
@ -6,21 +6,33 @@ export default function translationPlugin(app) {
|
|||||||
if (!window.translatedMessages) fetchTranslations()
|
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 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)
|
const hasPlaceholders = /{\d+}/.test(message)
|
||||||
if (!hasPlaceholders) {
|
if (!hasPlaceholders) {
|
||||||
return translatedMessage
|
return translatedMessage
|
||||||
}
|
}
|
||||||
return {
|
|
||||||
format: function (...args) {
|
return format(translatedMessage, replace)
|
||||||
return translatedMessage.replace(/{(\d+)}/g, function (match, number) {
|
|
||||||
return typeof args[number] != 'undefined' ? args[number] : match
|
|
||||||
})
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchTranslations(lang) {
|
function fetchTranslations(lang) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user