react native i18n插值:跨组件trans

想要实现动态插值以及插入元素,如下效果

这个找了蛮久的,官网的例子在我这无效,所以网上找了比较久,没能理解用法。最后是在 github issue 中看到别人的用法,自己理解下实现出来了,所以这里记录下。

例如vue的写法,直接使用插槽:

html 复制代码
     <i18n-t keypath="auth.agreement" tag="p">
        <template #appName>
          {{ $t('app.name') }}
        </template>
        <template #termsService>
          <b> {{ $t('auth.termsService') }} </b>
        </template>
        <template #privacyPolicy>
          <b> {{ $t('auth.privacyPolicy') }} </b>
        </template>
      </i18n-t>

React Native 的写法:

html 复制代码
  <Trans
        values={{
          name: 'ddd',
          count: 22,
        }}
        i18nKey="userMessagesUnread"
        parent={Text}
        components={{
          1: <Text style={{ color: 'red', fontWeight: 'bold' }}></Text>,
          5: <Text style={{ color: 'blue' }}></Text>,
        }}
      ></Trans>

附上官网:https://react.i18next.com/legacy-v9/trans-component

说真的 ,这个官网看了很久没看明白这个 Trans 组件,用法完全不同,不确定是不是版本的问题。

json 复制代码
    "react": "18.3.1",
    "react-dom": "18.3.1",
    "i18next": "^24.2.1",
    "react-i18next": "^15.4.0",
相关推荐
小蜜蜂嗡嗡1 小时前
flutter项目迁移空安全
javascript·安全·flutter
江城开朗的豌豆2 小时前
JavaScript篇:a==0 && a==1 居然能成立?揭秘JS中的"魔法"比较
前端·javascript·面试
江城开朗的豌豆2 小时前
JavaScript篇:setTimeout遇上for循环:为什么总是输出5?如何正确输出0-4?
前端·javascript·面试
惜.己2 小时前
MySql(十一)
java·javascript·数据库
天涯学馆3 小时前
TypeScript 在大型项目中的应用:从理论到实践的全面指南
前端·javascript·面试
北京小伙_盼4 小时前
开源项目分享:123 网盘 SDK - npm包已发布
前端·javascript·npm
骆驼Lara4 小时前
Vue3.5 企业级管理系统实战(二十一):菜单权限
前端·javascript·vue.js
Mintopia5 小时前
Three.js 后处理效果:给你的 3D 世界加一层 “魔法滤镜”
前端·javascript·three.js
Jackson__5 小时前
深入思考 iframe 与微前端的区别
前端·javascript·面试
Mintopia5 小时前
当像素学会跳光影圆舞曲:全局光照的奇妙冒险
前端·javascript·计算机图形学