Answers:
除了translate.csv
非便携式内联翻译之外,还有另一种方法。我是这样的
每个模块支持多个翻译文件。
如果将其添加到config.xml
:
<translate>
<modules>
<[Namespace]_[Module]>
<files>
<default>[Namespace]_[Module].csv</default>
<alternative>[Namespace]_[Module]_version2.csv</alternative>
</files>
</[Namespace]_[Module]>
</modules>
</translate>
这两个文件[Namespace]_[Module].csv
和[Namespace]_[Module]_version2.csv
将被加载翻译。
它们将按照声明的顺序进行处理。
因此,如果您需要例如在Mage_Sales.csv
不编辑文件的情况下添加/修改某些内容,只需创建一个模块,即可将另一个文件添加到翻译文件列表中。
像这样:
app/code/local/Easylife/Sales/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Sales>
<version>0.0.1</version>
</Easylife_Sales>
</modules>
<frontend>
<translate>
<modules>
<Mage_Sales>
<files>
<alternative>Easylife_Sales.csv</alternative>
</files>
</Mage_Sales>
</modules>
</translate>
</frontend>
<adminhtml>
<translate>
<modules>
<Mage_Sales>
<files>
<alternative>Easylife_Sales.csv</alternative>
</files>
</Mage_Sales>
</modules>
</translate>
</adminhtml>
</config>
并确保您使模块依赖Mage_Sales
。
您还可以创建一个“一刀切”的模块来管理翻译。只需为您需要的任何模块添加备用翻译文件,并确保此新模块依赖于所有模块。
app/locale/**/Easylife_Sales.csv
这个文件吗?我假设只要您知道文件系统的目录分隔符,它也将允许子文件夹?
位于的CSV文件app/locale
应被视为核心文件,不得修改。我发现添加自定义翻译的最佳方法是将其放入app/design/frontend/{package}/{theme}/locale/{locale}/translate.csv
请注意,您也可以在translate.csv
文件中使用"Mage_Adminhtml::Sales","Sales"
而不是来使用模块名称"Sales","Sales"
。这也使您可以使用针对特定主题定制的翻译。
app/locale/
,我如何告诉它从中加载它app/design/frontend/{package}/{theme}/locale/
?在这里看到我的问题:stackoverflow.com/questions/26554195/…–
在SemExpert,我们正是这样做的。我们有自己的es_AR翻译包(带有CSV文件和电子邮件模板),然后所有翻译都可以通过translation.csv或内联翻译功能(在极少数最终用户的情况下)完成。
由于Magento升级,我们不会(暂时)冒着丢失翻译文件的风险,因为它们不太可能开箱即用地支持es_AR,但是我们确实遭受Magento对其字符串进行细微更改(例如在处添加“。”)的困扰。句子的结尾)使英语字符串在您最不希望出现时出现。
我已经开始开发一个小的模块来监视翻译字符串,无论何时发布新的Mage版本,我们都会使用该模块。您可以在这里找到它:https : //github.com/barbazul/SemExpert_TranslationDoctor