首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >preg_replace和gettext问题

preg_replace和gettext问题
EN

Stack Overflow用户
提问于 2011-02-22 01:45:16
回答 2查看 192关注 0票数 1

我的项目包含带有HTML的模板。为了简化本地化,我在所有我想要翻译的HTML模板中添加了前缀和后缀。因为我不能在HTML中使用_(),所以我在显示模板之前做了一次替换:

代码语言:javascript
复制
preg_replace("%\<t\>([a-zA-Z0-9\.\\s)]*)\</t\>%is",_("$1"),$template);

我用我的tr()翻译函数替换了_(),显然它被击中了,我猜就是找不到翻译。

当我使用print _('same text');时,它会正确显示。

代码语言:javascript
复制
preg_replace("%\<t\>([a-zA-Z0-9\.\\s)]*)\</t\>%is",_("hello"),$template);

所以我猜在像这样使用preg_replace的时候,在定位翻译时会有一些问题。

我不是在寻找存储数据的替代方案,我是在寻找这个问题的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-22 01:48:56

使用preg_replace_callback/e (eval --它听起来像邪恶是有原因的!)preg_replace的修饰符。

票数 2
EN

Stack Overflow用户

发布于 2011-02-22 01:57:39

如果您在preg_replace触发之前调用gettext函数,则需要允许PCRE库为您调用该函数,如果您使用的是PHP5+,请尝试执行以下操作:

代码语言:javascript
复制
preg_replace_callback("%\<t\>([a-zA-Z0-9\.\\s)]*)\</t\>%is",function($matches){
    return $matches[1];
},$template);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5069321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档