Как правильный способ добавить специфичные для темы переводы новых строк?

magento.stackexchange https://magento.stackexchange.com/questions/5126

Вопрос

Мы создаем новый шаблон и у нас есть новый текст, который еще нигде не определен.

Если они будут определены, прежде чем мы добавим немного

"Mage_TheModule::Foo";"Fuh"

в translate.csv в теме.

Как хороший способ справиться с новыми переводами?

Они будут добавлены только к translate.csv Ясно без кода модуля?

Или это лучше / требуется для создания собственного модуля только для переводов?

Это было полезно?

Решение

Лучшая практика зависит от предполагаемого использования темы: это тема, которая будет распространяться и использовать повторно, или это тема, специфичная для проекта?

1. Распределенная тема, предназначенная для повторного использования

Избегать использования translate.csv вообще в этом случае. Как только конечный пользователь добавляет свой собственный translate.csv К его детской теме это отменит вашу (обычный их запасной механизм применяется). Им нужно будет скопировать все из исходного файла и отслеживать изменения.

Вместо этого используйте тематический модуль. Большинство тем поставляются с одним или несколькими модулями, которые содержат в основном конкретные темы блоки, а также с новыми переводами. Затем используйте Mage::helper('yourtheme')->__('your string') для переводов и:

  1. Вы в безопасности от конфликтов со сторонними модулями
  2. Пользователи могут переопределить этот конкретный перевод с помощью Your_Theme::your string в их translate.csv

2. Тема конкретной проекта

Для переводов в теме, конкретной проекта, translate.csv был изобретен, поэтому я бы использовал это.

Вы должны знать, что объем модуля не подключен напрямую с существующими переводами в соответствующих файлах CSV. Таким образом, вы можете использовать существующую область перевода без добавления нового модуля или модуля CSV -модуля.

Например, если я добавляю пользовательские переводы, то есть используется на странице продукта внутри Mage_Catalog Блок, перевод выглядит так:

"Mage_Catalog::New translation","New translation"

Подробнее о том, как выяснить объем конкретного перевода здесь: Переводы и иерахи

(или вы можете использовать мой Переводчики расширение)

Другие советы

Мой предпочтительный метод - особенно если вам нужны специфичные для модуля переводы или вы хотите распространять модуль - создать специфичные для модуля файлы CSV (определяемые в config.xml вашего модуля) и бросить их в app/localeСоответствующие каталоги перевода. Ваша «тема» выяснит, какой из них использовать из -за настройки языка локали.

Если это специфично для темы, не Используйте код модуля в translate.csv. я лично нет как translate.csv вообще - но я предпочитаю его встроенный перевод - и.

Translate.csv должен быть для конечных пользователей вашего продукта, которые должны вносить настройки (например, сумка для покупок против корзины) на вашу тему.

Редактировать: два года спустя, чтобы исправить старую веру, которую я когда -то придерживался.

Если они конкретны темы, вы должны добавить их в translate.csv.
Если ваш сайт находится только на английском языке, вы даже можете игнорировать перевод.
Если ваш сайт находится на другом языке, а тексты имеют значение в зависимости от одного или нескольких модулей, вы должны добавить эти тексты в файл перевода этого конкретного модуля. (Но не изменяйте английские файлы).
Я обычно использую второй подход, потому что на следующем «подъеме лица» веб -сайта мне не нужно дублировать translate.csv Файл темы.
Вы также можете создать отдельное расширение, которое будет обрабатывать только текстовый перевод, но если вы это сделаете Mage::helper('myhelper')->__('Some text'). Анкет Это нормально для внутреннего использования, но если вы хотите повторно использовать шаблоны, вам придется перенести расширение также с одного проекта на другой.

Ваш вопрос риторичен и смутный одновременно.

Мой подход точно так же, как вы описали в своем вопросе. Если переводы не специфичны для модуля, установите это ясно "text":"text" в translate.csv вашей темы. Он исключит зависимости модуля, а также сделает вашу тему повторной распределением с переводами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top