feat: add core i18n runtime and catalogs
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { interpolateMessage } from "./format";
|
||||
import type { TranslationValues } from "./types";
|
||||
|
||||
export type Translator = {
|
||||
locale: string;
|
||||
messages: Record<string, string>;
|
||||
t: (key: string, values?: TranslationValues) => string;
|
||||
};
|
||||
|
||||
export function createTranslatorFromMessages(
|
||||
locale: string,
|
||||
messages: Record<string, string>,
|
||||
): Translator {
|
||||
return {
|
||||
locale,
|
||||
messages,
|
||||
t(key, values) {
|
||||
const message = messages[key] ?? key;
|
||||
return interpolateMessage(message, values, locale);
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user