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()
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user