Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]CodeIgniter i Multi-Language
Forum PHP.pl > Forum > Przedszkole
in5ane
Cześć, dodaję do skryptu napisanego w CodeIgniter wielojęzyczność. Zrobiłem takie routy:
  1. $route['(\w{2})/(.*)'] = '$2';
  2. $route['(\w{2})'] = $route['default_controller'];

I chciałbym dodać, że jak ktoś wpisuje url bez języka, np. nazwa.com, to żeby dodało automatycznie nazwa.com/pl. Macie jakieś pomysły? Czy to w tych routach robić czy w htaccess?
webmaniak
Robisz to w czystym CI? tzn. nie żaden cms? Do CI polecam polskie forum ... CI. Ale tak w ogóle czemu chcesz żeby to tak działało? Przecież można zrobić żeby bez wpisywania domyślnym krajem było pl.
in5ane
No i tak mam zrobione, że bez wpisywania domyślnym krajem jest PL, ale ja chce żeby dodało mi to "pl" do URL'a.
markonix
Ja to zrobiłem w MY_Controller (extends CI_Controller) - konstruktorze.

  1. /* Lang from URL */
  2. $this->active_lang = $this->uri->segment('1');
  3.  
  4. /* Lang is unsupported or not in url so make redirect */
  5. if (!in_array($this->uri->segment('1'), array_keys($this->lang_array)))
  6. {
  7.  
  8. if (in_array(get_cookie($this->cookie_lang_name), array_keys($this->lang_array)))
  9. {
  10. redirect(get_cookie($this->cookie_lang_name) .'/' . full_url_string());
  11. }
  12. else
  13. {
  14. /* Geolocalization */
  15. $this->load->helper('geo_location');
  16. $country_code = strtolower(get_geolocation());
  17.  
  18. if (in_array($country_code, array_keys($this->lang_array)))
  19. {
  20. redirect($country_code .'/' . full_url_string());
  21. }
  22. else
  23. {
  24. redirect($this->default_lang. '/' . full_url_string());
  25. }
  26.  
  27. }
  28. exit();
  29.  
  30. }


Oczywiście ustawiam też ciasteczko itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.