在Magento中翻译escapeHtml($ message)变量

时间:2015-01-22 22:29:00

标签: php magento translation translate

我在使用magento翻译字符串时遇到问题:

“允许购买的最低数量为%s。” 我尝试了不同的翻译版本,包括%d和*。

所以我尝试在语言文件中翻译字符串,用于Mage_Api以及Mage_Catalog和Mage_CatalogInventory。我之前已经翻译了大量的字符串,但是这个字符串不想被翻译。

所以我想手动翻译字符串,但是我遇到了问题。我找到了以下代码,其中呈现了消息:

<?php if ($messages = $this->getMessages()): ?>
        <?php foreach ($messages as $message): ?>
            <p class="item-msg <?php echo $message['type'] ?>">* <?php
             echo $this->escapeHtml($message['text']) ?></p>
        <?php endforeach; ?>
        <?php endif; ?>

在呈现的HTML中,以下是输出:

<p class="item-msg error">* The minimum quantity allowed for purchase is 6.</p>

所以我想,我必须在escapeHtml函数中翻译一些字符串。该函数的文档不是很有用(link

所以我希望,有人知道这个字符串在哪里,所以我可以手动覆盖它。

由于 帕特里克

1 个答案:

答案 0 :(得分:1)

在您的主题文件夹中创建一个locale/[locale]/translate.csv文件。

示例:app/design/frontend/package/theme/locale/en_US/translate.csv

并粘贴此行:

"Mage_CatalogInventory::The minimum quantity allowed for purchase is %s.","TEST The minimum quantity allowed for purchase is %s."

刷新Translations缓存,您就完成了。如果您仍然返回旧字符串,请检查core_translate表。

修改: 您要查找的字符串在位于Mage_CatalogInventory_Model_Stock_Item

app/code/core/Mage/CatalogInventory/Model/Stock/Item.php类中定义
 if ($this->getMinSaleQty() && $qty < $this->getMinSaleQty()) {
            $result->setHasError(true)
                ->setMessage(
                    Mage::helper('cataloginventory')->__('The minimum quantity allowed for purchase is %s.', $this->getMinSaleQty() * 1)
                )
                ->setErrorCode('qty_min')
                ->setQuoteMessage(Mage::helper('cataloginventory')->__('Some of the products cannot be ordered in requested quantity.'))
                ->setQuoteMessageIndex('qty');
            return $result;
        }