Одним из лучших способов увеличить аудиторию сайта является отображение ресурса на различных языках. Часто это оказывается очень сложной задачей, но при помощи возможностей CakePHP по локализации и интернационализации сделать это намного проще.
Во первых необходимо понять терминологию. Термин локализация относится к адаптации приложения для того, чтобы можно было работать с особыми языковыми (или культурными) требованиями. Интернационализация относится к возможности приложения быть локализованным. Интернационализация и локализация часто сокращаются до i18n и l10n соответственно; 18 и 10 — это количество символов в названии между первой и последней буквой.
Любой контроллер, который использует локализованное содержимое, должен подключать класс утилит CakePHP L10n.
<?php
//Подключение класса L10n:
uses('L10n');
class RecipesController extends AppController {
//...
}
?>
Затем вы должны создать языковой файл, который оперирует строками локализации. Каждый язык содержит набор строк и их идентификаторы. Создание этих файлов создает условия для оперирования содержимым, которое будет переведено на разные языки. Каждый язык должен содержать файл default.po, лежащий в папке с названием аналогичным константе названия языка.
/app/locale/eng/LC_MESSAGES/default.po (Английский) /app/locale/fre/LC_MESSAGES/default.po (Французский) /app/locale/por/LC_MESSAGES/default.po (Португальский)
Папка locale расположена внутри директории app вашего приложения. Три-символ — название локали — названо согласно стандарту ISO 639–2.