40 lines
860 B
JavaScript
40 lines
860 B
JavaScript
import forEach from 'lodash/forEach'
|
|
|
|
export default function __(key, replace) {
|
|
let translation = Nova.config('translations')[key]
|
|
? Nova.config('translations')[key]
|
|
: key
|
|
|
|
forEach(replace, (value, key) => {
|
|
key = new String(key)
|
|
|
|
if (value === null) {
|
|
console.error(
|
|
`Translation '${translation}' for key '${key}' contains a null replacement.`
|
|
)
|
|
|
|
return
|
|
}
|
|
|
|
value = new String(value)
|
|
|
|
const searches = [
|
|
':' + key,
|
|
':' + key.toUpperCase(),
|
|
':' + key.charAt(0).toUpperCase() + key.slice(1),
|
|
]
|
|
|
|
const replacements = [
|
|
value,
|
|
value.toUpperCase(),
|
|
value.charAt(0).toUpperCase() + value.slice(1),
|
|
]
|
|
|
|
for (let i = searches.length - 1; i >= 0; i--) {
|
|
translation = translation.replace(searches[i], replacements[i])
|
|
}
|
|
})
|
|
|
|
return translation
|
|
}
|