Со временем основная команда Magento добавила все больше и больше языковых пакетов по умолчанию в
app/locale
папки. Есть ли канонический способ управлять своими собственными файлами перевода, чтобы они не мешали будущим обновлениям системы? т.е. я хочу изменить некоторые метки в Magento, поэтому я редактирую
app/locale/en_US/Mage_Sales.csv
непосредственно. Если мы обновим Magento, мои изменения будут уничтожены. Достаточно ли для этого функции локали темы? (это обрабатывает специфичные для модуля файлы, или просто translate.csv
). Или лучше переписать модели перевода для загрузки файлов из другого места? Или что-то другое?
module
localisation
Алан Сторм
источник
источник
Кроме
translate.csv
непереносимого встроенного перевода есть другой способ. Я делаю это так.Каждый модуль поддерживает более одного файла перевода.
Если вы добавите это в
config.xml
:оба файла
[Namespace]_[Module].csv
и[Namespace]_[Module]_version2.csv
будут загружены для перевода.и они будут обработаны в порядке, в котором они объявлены.
Так что если вам нужно, например, добавить / изменить что-то в
Mage_Sales.csv
файле не редактировать, просто создайте модуль, который добавляет другой файл в список файлов перевода.Что-то вроде этого:
app/code/local/Easylife/Sales/etc/config.xml
и убедитесь, что модуль зависит от
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/…Вы можете редактировать / создавать дизайн / тему "translate.csv". Переопределить перевод из "module-translation-file". например "Mage_Catalog.csv":
Таким образом, Правило это «Пространство имен модулей :: строка для перевода», «переведенная строка». Я думаю, что это последнее правило рабочего процесса перевода Magento.
источник
В SemExpert мы делаем именно это. У нас есть собственный пакет перевода es_AR (с файлами CSV и шаблонами электронной почты), а затем все настройки выполняются либо с помощью translate.csv, либо с помощью встроенной функции перевода (в очень редких случаях для конечных пользователей).
Мы не рискуем (на данный момент) потерять файлы перевода из-за обновления Magento, поскольку маловероятно, что они когда-либо будут поддерживать es_AR из коробки, но мы страдаем от того, что Magento вносит небольшие изменения в свои строки (например, добавляя «.» В конец предложения), которые заставляют английские строки появляться, когда вы ожидаете их меньше всего.
Я начал разработку небольшого модуля для мониторинга строк перевода, который мы используем каждый раз, когда выходит новая версия Mage. Вы можете найти его здесь: https://github.com/barbazul/SemExpert_TranslationDoctor
источник