Недавно я начал использовать фреймворки (CodeIgniter), и после многих исследований все еще есть много сомнений, особенно в отношении многоязычного веб-сайта.Перевести маршруты (URL) для многоязычного сайта в codeigniter
Я пытаюсь «перевести» URL-адрес, например, у меня есть en/home
и fr/home
, но я хотел бы иметь для каждого языка свой собственный перевод как fr/accueil
, pt/inicio
, и так далее ... Так пока все моя система делает, чтобы изменить язык, но URL-адрес (контроллер) остается на том же языке (на английском языке): en/home
, fr/home
, pt/home
вместо fr/accueil
и pt/inicio
Что я должен сделать, чтобы достичь этого своего рода «перевод» или маршрутизация? Лучше ли создавать контроллер для каждого языка и вызывать их отдельно? Я начал это делать, но в какой-то момент я понял, что он чрезвычайно массивный и, вероятно, это не очень хорошая практика. Но мне было проще создать контроллер для каждого языка, но тогда я не знаю, где и в каком файле я должен установить функцию автоматического запуска, чтобы обнаружить/сохранить языковые настройки.
Кроме того, когда я печатаю только язык в моей URL (например, /en
, /fr
) не «перенаправить» к главному контроллеру (дома):
// '/en', '/de', '/fr' and '/nl' URIs -> use default controller
$route['^(en|fr|pt)$'] = $route['default_controller'];
Это не работает для меня, если я тип "/
" после языка: /fr/
работает нормально !, /fr
не работает!
В моем варианте это не имеет значения, если ваш контроллер не совпадает с выбранным в данный момент языком, пользователь не будет просматривать ваш сайт с помощью 'url', он будет просматривать его через« меню »и« ссылки », которые вы предоставили , Это то, что вы должны сделать. Но если вы действительно хотите эту функциональность, вам придется добавлять или вызывать разные контроллеры для разных языков. – tomexsans