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

如何在react-i18next的Trans组件中正确使用 非换行空格?

解决Trans组件中非换行空格( )生效的问题

方案1:直接使用Unicode非换行空格

把翻译文案里的 替换成Unicode非换行空格(U+00A0),这个字符本身自带非换行属性,Trans组件会直接识别并正确渲染。输入方式:

  • Windows:Alt+0160(需开启数字小键盘)
  • Mac:Option+Space

方案2:自定义组件处理

在renderedTags中新增一个专门处理非换行空格的组件:

renderedTags = {
  br: <br />,
  b: <b />,
  strong: <strong />,
  i: <i />,
  p: <p />,
  a: <a />,
  span: <span />,
  nbsp: <span style={{ whiteSpace: 'nowrap' }}>&nbsp;</span>, // 新增非换行空格组件
};

同时修改翻译文案,把&amp;nbsp;替换为<nbsp>标签:

Oops. The link no longer works for some<nbsp>reason

Trans组件会自动用你定义的nbsp组件渲染,实现非换行效果。

方案3:通过i18n后置处理器替换

在i18next初始化时添加后置处理器,自动把&amp;nbsp;替换为Unicode非换行空格:

i18next.init({
  // 你的其他配置项
  postProcess: ['replaceNbsp'],
});

// 添加后置处理器逻辑
i18next.addPostProcessor('replaceNbsp', (translatedValue) => {
  return translatedValue.replace(/&amp;nbsp;/g, '\u00A0');
});

这样所有翻译文本里的&amp;nbsp;都会被自动转换,无需修改文案或组件配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:37:22