TYPO3/Overwrite translations/ru

Начиная с версии 0.7 расширения для TYPO3, существует возможность переназначать переводы из ядра или других расширений Arcavias посредством настроек TypoScript. Это очень удобно — запросто менять существующий перевод на нужный вам. Для каждого перевода понадобиться языковой ISO код, домен перевода, оригинальная строка и новый перевод, например

plugin.tx_arcavias.settings.i18n.. {  domain = string = trans = }

Замечание: такой способ применим при небольшом изменении переводов. Если же делается полный перевод на новый язык, используйте сайт Transifex для создания новых переводов, которые затем могут быть добавлены в ядро Arcavias. Кроме того, если вы уже создали собственное расширение Arcavias, то можете переназначить перевод из ядра, создав новый файл .po в котором имеются лишь новые переводы. Производительность в обоих случаях значительно лучше, чем при переопределении огромного количества переводов посредством TypoScript.

Требуемая информация

 * ISO language code : для определения языка для перевода, необходим двухбуквенные языковые ISO коды (639-1). Также можно добавить двухбуквенные ISO коды страны для отсылке к специфичным для страны языковым вариантам, вроде "en_GB" британского английского. Можно использовать все языки, размеченные через TypoScript из TYPO3 ID языка, например L=0 в TYPO3 используется для языка по умолчанию, и может быть размечен при помощи указания config.language=en на английский. Обратите внимание, что языковые коды здесь всегда употребляются в нижнем регистре, в то время как необязательные коды стран — всегда в верхнем регистре.


 * number : это последовательная нумерация для отличия разных переводов, добавленных в настройке TypoScript. Если номер повторяется, последний перевод переопределит предыдущий.


 * domain : домен перевода, из которого берётся оригинальная строка. Ядро Arcavias имеет пять доменов переводов: mshop (корневая библиотека с управленцами), controller/frontend (основная бизнес логика для страниц сайта), client/html (страницы сайта, части HTML), controller/extjs (обработка запросов от интерфейса управления со стороны сервера) и client/extjs (интерфейс управления по умолчанию). Для того, чтобы найти домен, к которому относится строка, необходимо взглянуть на файлы .pot из ядра Arcavias и поискать в них требуемые строки.


 * string : отдельная оригинальная строка из исходного кода или .pot файла. Строка должна быть точно как в оригинале (регистр, пробелы и так далее) в файле / .pot.


 * trans : новый перевод оригинальной строки. Это может быть и массив, если необходимы формы единственного и множественного чисел.

Особые переводы
Простейший особый перевод на английский:

plugin.tx_arcavias.settings.i18n.en.0 { domain = client/html string = address trans = Addresses }

Простейший особый перевод на американский английский:

plugin.tx_arcavias.settings.i18n.en_US.0 { domain = client/html string = basket trans = Shopping cart }

Несколько особых переводов на английский:

plugin.tx_arcavias.settings.i18n.en { 0 {    domain = client/html string = basket trans = Basket }  1 {     domain = client/html string = address trans = Address } }

Перевод для нескольких чисел на английский:

plugin.tx_arcavias.settings.i18n.en.0 { domain = client/html string = address trans { 0 = Address 1 = Addresses } }

Переводы во множественном числе
Переводы, включающие одну или несколько множественных форм можно определить, если и оригинальная строка также поддерживает множественные формы. В этом случае исходный код выглядит так

( ' ', ', ' ', );

а методы перевода для множественных чисел могут быть translate, либо dn. Для переназначения переводов множественных чисел, проще всего использовать следующее:

plugin.tx_arcavias.settings.i18n.. {  domain = string = trans { 0 =     =  } }

Индекс "0" всегда используется для единственного числа. Большинство языков имеют лишь одну форму множественного числе, которая в таком случае должна определятся индексом "1". Но некоторые языки используют несколько форм множественного числа, в зависимости от значения, заданного в последнем параметре метода перевода. В этом случае индекс зависит от языка и значения. Для нахождения правильного индекса для языка, необходимо взглянуть на _getPluralIndex метод, соотносящий с индексом для языка на который осуществляется перевод. Пример для русского:

plugin.tx_arcavias.settings.i18n.ru.0 { domain = client/html string = hour trans { 0 = час # one hour 1 = часа # two to four hours 2 = часов # more than four hours } }