如何创建包含可变内容的 Magento 翻译字符串?
How do you create Magento translation strings including variable contents?
在 Magento 中,在模块中执行翻译涉及调用助手并调用其翻译函数,E.G.
Mage::helper("core")->__("This is a string to translate");
但是,我没有在网上找到任何关于翻译包含变量的字符串的资源。根据过去的经验,我知道这通常是通过在字符串中使用令牌来处理的,并使用其他参数定义令牌替换。
例如,GNU gettext 的手册推荐使用格式字符串进行翻译:
sprintf (gettext ("Hello %s!"), username ());
虽然 Yii Framework 具有相似但略有不同的格式:
Yii::t("default", "Hello {username}!", array("username"=>username()));
从Magento的核心文件的快速grep,它看起来像Magento使用C风格的格式字符串,例如在Mage_Adminhtml_Block_Api_User_Edit::getHeaderText中可以找到以下内容:
return Mage::helper('adminhtml')->__("Edit User '%s'", $this->escapeHtml(Mage::registry('api_user')->getUsername()));
但我想进一步确认或建议,因为在线文档非常稀少。
Magento 使用以下语法进行翻译:
Mage::helper('catalog')->__("This is %s text %s", "First String", "Second String");
根据 Markus Harrison 的建议,我正在为格式字符串添加这些文档:
在 Magento 中,在模块中执行翻译涉及调用助手并调用其翻译函数,E.G.
Mage::helper("core")->__("This is a string to translate");
但是,我没有在网上找到任何关于翻译包含变量的字符串的资源。根据过去的经验,我知道这通常是通过在字符串中使用令牌来处理的,并使用其他参数定义令牌替换。
例如,GNU gettext 的手册推荐使用格式字符串进行翻译:
sprintf (gettext ("Hello %s!"), username ());
虽然 Yii Framework 具有相似但略有不同的格式:
Yii::t("default", "Hello {username}!", array("username"=>username()));
从Magento的核心文件的快速grep,它看起来像Magento使用C风格的格式字符串,例如在Mage_Adminhtml_Block_Api_User_Edit::getHeaderText中可以找到以下内容:
return Mage::helper('adminhtml')->__("Edit User '%s'", $this->escapeHtml(Mage::registry('api_user')->getUsername()));
但我想进一步确认或建议,因为在线文档非常稀少。
Magento 使用以下语法进行翻译:
Mage::helper('catalog')->__("This is %s text %s", "First String", "Second String");
根据 Markus Harrison 的建议,我正在为格式字符串添加这些文档: