28 lines
602 B
TypeScript
28 lines
602 B
TypeScript
export function t(key: string, parameters = Object.create(null)): string {
|
|
const segments = key.split('.')
|
|
let temp = blessing.i18n as {
|
|
[k: string]: string | { [k: string]: string }
|
|
}
|
|
let result = ''
|
|
|
|
for (const segment of segments) {
|
|
if (!temp[segment]) {
|
|
return key
|
|
}
|
|
const middle = temp[segment]
|
|
if (typeof middle === 'string') {
|
|
result = middle
|
|
} else {
|
|
temp = middle
|
|
}
|
|
}
|
|
|
|
Object.keys(parameters).forEach(
|
|
(slot) => (result = result.replace(`:${slot}`, parameters[slot])),
|
|
)
|
|
|
|
return result
|
|
}
|
|
|
|
Object.assign(window, { trans: t })
|