在WordPress PHP中添加前导和尾随空格


adding a leading and trailing space in wordpress php

我使用这段代码:

<ul class="login-links">
    <li>
        <a href="/wp-login.php?redirect_to=<?php echo $_SERVER['REQUEST_URI']; ?>" class="simplemodal-login"><?php printf(__("Login"))?></a>
        <span id="space-login-string"><?php printf(__(" or "));?></span>
        <a href="/wp-login.php?action=register" class="simplemodal-register"><?php printf(__("Register"))?></a>
    </li>
</ul>

它是必须由WPML翻译的句子的一部分。
它应该看起来像这样: 登录 或 注册

有谁知道为什么前导和尾随空格被修剪,因此看起来像这样:登录或注册

一定是简单的东西,但是,愚蠢的我,我找不到它。请帮忙。

有两种可能性:

  1. 函数__()可能会自行修剪输出或输入。
  2. 翻译后的字符串中缺少空格。

恕我直言,空格不应该在要翻译的字符串内,因为只有"or"需要翻译,确保插入空格不是翻译人员的工作。

编辑:事实证明,问题是登录,或和注册三个元素向左浮动。这会导致空格被忽略。

要在将三个元素保持在一行中时保留空格,请为所有三个元素提供display: inline;而不是浮动。

您应该参考 I18n for WordPress Developers 文档。使用 printf() 执行此操作的正确方法是:

printf( __( 'LOGIN %d REGISTER.', 'your-text-domain' ), 'or' );

您还可以通过许多其他方法执行此操作,例如使用 _e()__() .