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

如何在WordPress React区块开发中配合超链接使用翻译函数__()

解决方法

场景1:普通文本占位符替换(完全等价PHP sprintf功能)

WordPress 官方的@wordpress/i18n包已经内置了和PHP用法完全一致的sprintf函数,直接导入使用即可:

// 先导入sprintf
import { __, sprintf } from '@wordpress/i18n';

// 用法示例
sprintf(
    __( '你好,我是%s,今年%d岁', 'text-domain' ),
    '张三',
    25
);

对应纯文本替换需求的写法如下:

import { render } from '@wordpress/element';
import { __, sprintf } from '@wordpress/i18n';

export default function Final() {
    return (
        <p>  
            { 
                sprintf( 
                    __( 'The cold never %s anyway.', 'text-domain' ), 
                    'bothered me.' 
                ) 
            } 
        </p>
    )
}

场景2:嵌入JSX元素(比如超链接、按钮等组件)

如果你需要在翻译内容里插入HTML标签或者React组件,不能用普通sprintf(React会转义字符串中的HTML标签,不会渲染成实际元素),这时候需要用@wordpress/element提供的createInterpolateElement函数:

import { render, createInterpolateElement } from '@wordpress/element';
import { __ } from '@wordpress/i18n';

export default function Final() {
    return (
        <p>  
            { 
                createInterpolateElement(
                    // 翻译字符串里用<自定义标签名>做占位符
                    __( 'The cold never <link>bothered me.</link> anyway.', 'text-domain' ),
                    // 第二个参数传占位符和对应组件的映射
                    {
                        link: <a href="https://example.com" />
                    }
                ) 
            } 
        </p>
    )
}

这种写法符合WordPress国际化开发规范,翻译人员可以正常翻译整句文本,不需要关心标签结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:18:01