Комментарии

Языковые замещения: добавление перевода в замещение
( 0 Голосов )

В версии Joomla 1.6 внедрено новое удобное средство для специальной настройки текста, отображаемого в пользовательском интерфейсе веб-сайта. В частности, для размещения файлов языковой поддержки предоставляются две новые папки: language/overrides в пользовательской части и administrator/language/overrides в административной части.

Обратимся к конкретному примеру. Если заглянуть в файл языковой поддержки administrator/language/en-GB/en-GB.ini, то в нем можно обнаружить следующую текстовую строку:

JACTION_EDIT="Edit"

Языковой ключ JACTION EDIT используется в правах доступа системы ACL, например, по команде Global Configuration^Permissions (Глобальная настройка^Полномочия), для отображения права на редактирование (Edit).

Мы можем переопределить любой языковой ключ в административной части, создав файл замещения под соответствующим именем и введя в него какие угодно языковые ключи. Для именования такого файла приняты следующие условные обозначения: хх-ХХ. override.ini, где хх-ХХ — требуемое обозначение языка. Так, файл поддержки исходно принятого в Joomla британского английского языка называется en-GB. override.ini.

Попробуйте, например, создать файл administrator/language/overrides/en-GB. override.ini и ввести в него следующую текстовую строку:

JACTION_EDIT="Update"

Аналогичным способом можно также устранить недостаток в альтернативном пункте меню выбора регистрационной формы пользователя. Напомним, что в файле компоновки этой формы были изменены строки кода, выделенные ниже полужирным.

В трех местах этого фрагмента кода текст отображается только на английском языке. Но в практике разработки программ для Joomla такое жесткое программирование отображаемого текста не приветствуется, поскольку у Joomla немало иноязычных пользователей. В Joomla имеется удобное средство, называемое языком отладки (Debug Language) и помогающее проверять наличие перевода всех текстовых строк на избранный язык мира. Если выбрать команду меню Global Configuration ^System (Глобальная настройка^ Система), то в области Debug Settings (Параметры отладки) появившегося экрана можно обнаружить параметры выбора режимов Debug System (Система отладки) и Debug Language (Язык отладки).

Режим Debug System полезен для выявления неполадок в базе данных посредством запросов к ней, что и будет продемонстрировано в статьях ранее. А в режиме Debug Language мы можем видеть, переведены ли текстовые строки. Если включить режим Debug Language, установив кнопку-переключатель в положение Yes, а затем отобразить альтернативный пункт меню выбора регистрационной формы пользователя.

Все переведенные текстовые строки предваряются и завершаются двумя знаками звездочки (**). Обратите внимание на то, что три ранее введенные строки ("Terms of Service", "I Agree ..." и "I Am ...") не обозначены знаками **. Это означает, что они не могут быть переведены. Но используя файлы языковых замещений, можно без особого труда локализовать замещение компоновки на многие языки мира. Для этого достаточно заменить конкретную текстовую строку вызовом метода JText:: _ ('КЛЮЧ_ТРЕБУЕМОГО_ТЕКСТА') в коде, как выделено полужирным ниже.

В качестве аргумента метода JText:: _ () указывается так называемый языковой ключ. Значение этого ключа обнаруживается средствами Joomla в одном из загруженных файлов языковой поддержки с расширением . ini и затем возвращается из данного метода.

Для языковых ключей установлены следующие правила. Во-первых, они не могут содержать пробелы и ряд зарезервированных слов (null, yes, no, true, false, on, off и none), поскольку для обработки файлов языковой поддержки в Joomla применяется функция parse_ini_file () языка РНР. И во-вторых, каждый языковой ключ должен быть уникальным, иначе может быть неумышленно изменено не то текстовое значение, которое предполагалось изначально. Обеспечить уникальность языкового ключа проще всего, включив имя расширения в его состав. Но поскольку в рассматриваемом здесь примере мы не пользуемся расширением, то вместо него мы указали в первой части каждого ключа имя нашего шаблона, обеспечив тем самым уникальность ключа в пределах шаблона. Это еще один пример использования простого пространства имен для создания уникального имени.

Значения языковых ключей должны быть заключены в двойные кавычки. Если же требуется заключить в двойные кавычки текстовую строку на избранном языке мира, то вместо двойных кавычек можно ввести " или _QQ_. Соответствующие примеры такого оформления текстовых сток можно найти в базовых файлах языковой поддержки Joomla.

А теперь рассмотрим видоизмененную нами регистрационную форму пользователя, приведенную на рис. 4.29. Как видите, значения ключей заключены в двойные вопросительные знаки (??). Это означает, что методу JText: :_() не удалось найти переданные ему ключи в файле языковой поддержки. Но именно это нам и требуется, поскольку указывает на однозначность ключей и их отсутствие во всех загруженных файлах языковой поддержки.

Итак, нам осталось лишь создать файл языкового замещения, введя в него новые языковые ключи. А поскольку данная регистрационная форма отображается в пользовательской части, то нам нужно создать файл замещения для британского английского языка (en-GB) именно в этой части веб-сайта. Этот файл будет полностью называться language/overrides/en-GB. override. ini и содержать следующее:

; Пример файла языкового замещения в пользовательской части веб-сайта
; Ключи для файла компоновки templates/beez_20_copy/html/com_users/registration/approval.php
BEEZ_20_COPY_TERMS_OF_SERVICE="Terms of Service"
BEEZ_20_COPY_AGE="I am at least 18 years old."
BEEZ_20_COPY_AGREE="I agree to the terms of service for this site."

Если теперь отобразить регистрационную форму пользователя, то весь ее текст, в том числе и введенный нами ранее, будет обрамлен двойными вопросительными знаками, указывающими на то, что текст данной формы переведен на избранный язык мира, а по существу, взят из файла языковой поддержки. Выше показана видоизмененная часть регистрационной формы пользователя с текстом на британском английском языке.

Языковыми замещениями можно пользоваться с двумя целями.

  • Изменить текст для имеющегося языкового ключа.
  • Предоставить переведенный текст для языкового замещения.

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

В версии Joomla 2.5 появилась возможность создавать и редактировать языковые замещения во вкладке Overrides (Замещения) диспетчера языков, доступного по команде меню Extensions^Language Manager (Расширения^ Диспетчер языков) в административной части. Это делается точно так же, как и продемонстрировано выше вручную.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код