我正在尝试从Magento 1.5.x安装翻译一些字符串,当有双引号时它工作得很好,但我不能正确转义单引号。
"Hello, <strong>\'.Mage::getSingleton(\'customer/session\')->getCustomer()->getName().\'!</strong>","Hello, <strong>\'.Mage::getSingleton(\'customer/session\')->getCustomer()->getName().\'!</strong>","Olá, <strong>\'.Mage::getSingleton(\'customer/session\')->getCustomer()->getName().\'!</strong>"
"<button class=""form-button"" onclick=""setLocation(\'%s\')"" type=""button""><span>Login or Register</span></button>","<button class=""form-button"" onclick=""setLocation(\'%s\')"" type=""button""><span>Login ou Cadastro</span></button>"我按原样尝试了原始字符串,并使用反斜杠进行了转义。我尝试过用反斜杠和双单引号对翻译后的字符串进行转义。
我试着搜索magento论坛,但只有两个人发表了关于这个问题的帖子,没有得到任何回复。
发布于 2011-10-04 00:38:59
事实证明,PHP中字符串的输出方式与Magento的翻译引擎不兼容。修复包括PHP文件的更改,而不是转换文件的语法更改。PHP文件现在显示为:
echo $this->__('Hello') . ', <strong>'.Mage::getSingleton('customer/session')->getCustomer()->getName().'!</strong>';
echo ('<button class="form-button" onclick="setLocation(\'' . $this->getUrl('customer/account/login') . '\')" type="button"><span>') . $this->__('Login or Register') . '</span></button>';而不是将所有内容都放在一个echo $this->__('String to be translated . phpcode. String to be translated . phpcode . etc . etc')中
发布于 2012-12-31 10:33:56
在.phtml文件中使用反斜杠对单引号进行转义时,需要从.csv文件中的转换字符串中删除反斜杠。
示例:
<?php echo $this->__('Click <a href="%s" onclick="this.target=\'_blank\'">here to print</a> a copy of your order confirmation.', $this->getPrintUrl())应在.csv文件中:
"Click <a href=""%s"" onclick=""this.target='_blank'"">here to print</a> a copy of your order confirmation.", "Click <a href=""%s"" onclick=""this.target='_blank'"">here to print</a> a copy of your order confirmation."没有反斜杠,否则字符串将不会被翻译。像往常一样,.csv中的双引号必须用另一个双引号进行转义。
Magento 1.7.0.2中的一些.csv转换文件在单引号之前仍然有这些反斜杠,这是一个需要修复的小错误。
发布于 2012-03-16 19:22:16
尝尝这个
另一种选择是将错误消息放在双引号中,如下所示
__(“请指定产品的选项。”);
在翻译文件中,你可以通过简单的这样做
列一|列两
请指定产品的选项。|该文件的翻译
从翻译文件和代码中删除\,使其成为双引号而不是单引号。
https://stackoverflow.com/questions/7605424
复制相似问题