// 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}}`; }); }; }