我使用这段代码:
<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翻译的句子的一部分 它应该如下所示:登录或注册
有谁知道为什么修剪前导和尾随空格,因此看起来像这样:LOGINORREGISTER
它必须是简单的东西,但是,愚蠢的我,我找不到它。请帮忙。
答案 0 :(得分:2)
有两种可能性:
__()
可能会自行修剪输出或输入。恕我直言,这些空格不应该在要翻译的字符串内,因为只有“或”需要翻译并确保插入空格不是翻译工作。
编辑:事实证明,问题是左边有三个要素Login,or和Register。这会导致忽略空格。
要保留空格,同时将三个元素保持在一行中,请为浮动提供所有三个元素display: inline;
,而不是。
答案 1 :(得分:1)
您应该参考I18n for WordPress Developers docs。使用printf()
执行此操作的正确方法是:
printf( __( 'LOGIN %d REGISTER.', 'your-text-domain' ), 'or' );
您还可以使用许多其他方法,例如使用_e()
或__()
。