Как направих многоезичието на Codeigniter
Решение
Като цяло с времето и по-подробното проучване на тази рамка стигнах до извода -трябва да се направи многоезичност в рутера.
Как работи многоезичността
Логиката на многоезичието е болезнено проста. Една функция в актуализирания MY_Router.php, която ще добави към началото на всички правила, са езиците на сайта. След като функцията се изпълни, CodeIgniter 3 ще работи с новия списък с маршрути. Така ще стане :)
Но първо, нека създадем файл с настройки, където ще съхраняваме наличните езици на сайта и ще зададем езика по подразбиранеconfig/localize_config.php
Ние се ангажираме да разширим стандартния system/core/Router.php.
Разширете CI_Router (MX_Router)
Създайте файлMY_Router.phpв директорияapplication/coreАко използвате HMVC, първо трябва да заредите Router.php В началото на MY_Router.php добавете следния блок от код
2) След това създаваме разширение на класа CI_Router или ако с HMVC MX_Router
3) И сега забавната част. Трябва да разширим стандартната функция CI_Router ->_set_routing. Може би тази функция ще се променя от версия на версия от разработчиците на CI, съветвам ви просто да разберете тези редове, така че след всяка актуализация на рамката вашият файл MY_Routing да бъде актуален. Освен това трябва да добавите само 1 ред.
И така, нека започнем, копирайте функцията (метода)_set_routingотsystem/core/Router.phpи я поставете в нашия създаден клас MY_Routing. намерете редовете, след които функцията е заредила routes.php
и включете в този раздел от код нашия ред за промяна на получените рутери.
4) А ето и самата функция, която ще преработи нашите правила за разбиране на различни езици.
Сега вашият сайтще разбере връзките yoursite.com/by, yoursite.com/en или yoursite.com (използвайки езика по подразбиране).
Винаги имате възможност да получите избрания език (от, ru. kz), като използвате описаната по-долу променлива във вашите контролери или модели.
След това зависи от вашето въображение как да работите с user_lang :) вече имате всичко необходимо.
Готова версия на bitbucket.org
Hardcore conf в C++. Каним само професионалисти.