| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // import translations from "./zh";
- //
- // export default function customTranslate(template, replacements) {
- // replacements = replacements || {};
- //
- // // Translate
- // template = translations[template] || template;
- //
- // // Replace
- // return template.replace(/{([^}]+)}/g, function(_, key) {
- // let str = replacements[key];
- // if (
- // translations[replacements[key]] !== null &&
- // translations[replacements[key]] !== "undefined"
- // ) {
- // // eslint-disable-next-line no-mixed-spaces-and-tabs
- // str = translations[replacements[key]];
- // // eslint-disable-next-line no-mixed-spaces-and-tabs
- // }
- // return str || "{" + key + "}";
- // });
- // }
- export default function customTranslate(translations) {
- return function (template, replacements) {
- replacements = replacements || {};
- // 将模板和翻译字典的键统一转换为小写进行匹配
- const lowerTemplate = template.toLowerCase();
- const translation = Object.keys(translations).find(key => key.toLowerCase() === lowerTemplate);
- // 如果找到匹配的翻译,使用翻译后的模板
- if (translation) {
- template = translations[translation];
- }
- // 替换模板中的占位符
- return template.replace(/{([^}]+)}/g, function (_, key) {
- // 如果替换值存在,返回替换值;否则返回原始占位符
- return replacements[key] !== undefined ? replacements[key] : `{${key}}`;
- });
- };
- }
|