-6ren">
gpt4 book ai didi

javascript - 如何为 cms 使用模板文字?

转载 作者:行者123 更新时间:2023-11-30 09:13:53 25 4
gpt4 key购买 nike

我想用我的“mini-cms”用用户自己的语言问候他们。所有字符串都存储为“文本”——不可能添加反引号。

因此我必须:1日。将我的 cms 字符串转换为模板字符串 ("text ${value}"=> text ${value})第二。将值添加到此模板字符串中

我怎样才能做到这一点?

myFunction (language) {
const name = "Tim";

// call to the cms for translation
// returns "Hi ${name}, how are you?";
const textResponse = getTranslation(language);

// How to convert textResponse into a template string and fill in ${name}
// with "Tim"?
const greetUserInHisLanguage = ????

return greetUserInHisLanguage;
}

最佳答案

模板字符串是一种文字 - 这意味着它们仅在编译步骤中可用(包括 eval 和 friend 的编译,如另一个答案所示,这也警告他们使用)。

模板字符串的流式处理是一个 XY 问题。相反,考虑问题本身,您想通过填充插槽来翻译模板。你可以使用正则表达式来做到这一点,只要你没有在槽中进行计算(就像你可能对模板字符串所做的那样)。您还希望将局部变量更改为对象属性,以便可以通过名称以编程方式访问它们,而无需 eval

       const context = { name: "Tim" };
const textResponse = "Hi ${name}, how are you?";

const greetUserInHisLanguage =
textResponse.replace(/\${(.*?)}/g, (_, name) => context[name]);

console.log(greetUserInHisLanguage);

如果您需要更复杂的东西,请考虑改用现有的模板库,例如 Handlebars。

关于javascript - 如何为 cms 使用模板文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com