【问题标题】:Is there any way to hide html tags while echoing string with 'gettext'?有没有办法在用'gettext'回显字符串时隐藏html标签?
【发布时间】:2023-03-16 11:56:01
【问题描述】:

不知道有没有办法在用php gettext函数回显字符串时隐藏html标签。

这就是我得到的,我想在将它们放入 .po 文件之前从字符串中去除 html 标签。

<?=_('You must be logged in to add a link.<br />
If you already have a account, 
<a href="#" name="Log In">click here</a> to log in or 
<a href="#" name="Register">join us</a> now!'); ?>

这会将字符串放入 .po 文件,如下所示:

You must be logged in to add a link.<br />  If you already have a account, <a href="#" name="Log In">click here</a> to log in or <a href="#" name="Register">join us</a> now!

我的网站的翻译将是公开可编辑的(使用 Pootle)所以我想知道有什么方法可以隐藏 html 标记而不是公开的吗?有没有这样的:

You must be logged in to add a link. If you already have a account, click here to log in or join us now!

【问题讨论】:

  • 如果您将 html 存储在一个变量中,并在必要时从中获取 strip_tags() - 行不通?

标签: php internationalization translation gettext


【解决方案1】:

没有真正的方法可以隐藏它们并能够在翻译后重新插入它们,您可以使用字符位置图,但在翻译后,html标签的字符长度会发生变化。

如果您绝对想避免使用 html 标记,您可以做的是留下中断并在翻译器需要时将它们转换为新行,然后对 html 标记内的文本使用单独的翻译;

<?=_('You must be logged in to add a link.<br /> If you already have a account,') ?>
<a href="#" name="Log In"><?= _('click here') ?></a> <?= _('to log in or') ?>

'); ?>

【讨论】:

    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2020-03-11
    • 2018-12-07
    • 2021-07-08
    • 1970-01-01
    相关资源
    最近更新 更多