You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在next.js+next-i18n项目中修改JSON翻译文件指定字符的颜色?

解决next-i18n翻译内容指定字符着色的方案

推荐方案:使用next-i18next内置<Trans>组件(无安全风险,适配多语言逻辑)

  • 第一步:调整翻译JSON文件,将需要着色的文本片段用自定义占位标签包裹
{
  "test": "Hi, <highlight>this string value will change</highlight>. Thank you"
}
  • 第二步:组件中替换原t()调用,改用<Trans>组件,绑定占位标签对应的带样式元素
import { Trans } from 'next-i18next';

// 组件逻辑内直接使用
function YourComponent() {
  return (
    <Trans 
      i18nKey="test"
      components={{
        // 自定义highlight标签对应的渲染元素,可任意设置样式
        highlight: <span style={{ color: '#f5222d', fontWeight: 600 }} />
      }}
    />
  )
}

备选方案:内嵌HTML标签 + 原生渲染(仅适用于翻译内容完全可控的场景,存在XSS注入风险)

  • 第一步:翻译JSON内直接写入带样式的HTML标签
{
  "test": "Hi, <span style='color: #f5222d; font-weight: 600;'>this string value will change</span>. Thank you"
}
  • 第二步:调用t()方法后通过dangerouslySetInnerHTML属性渲染
<div dangerouslySetInnerHTML={{ __html: t('test') }} />

内容的提问来源于stack exchange,提问作者Jundev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:18:02