Klasa Language
Klasa Language dostarcza funkcji do ładowania plików językowych i zwracania z nich określonych linii tekstu w celach internacjonalizacji.
W Twojej instalacji CodeIgnitera, w folderze system, znajdziesz katalog language, który zawiera zestaw plików językowych. Jeśli potrzebujesz, możesz stworzyć swoje własne pliki aby wyświetlać komunikaty błędów lub inne wiadomości w innych językach.
Pliki językowe są zazwyczaj przechowywane w folderze system/language. Można też stworzyć folder language wewnątrz katalogu application i tam przechowywać pliki językowe. CodeIgniter najpierw będzie sprawdzał folder application/language. Jeśli ten folder nie istnieje lub dany plik językowy się tam nie znajduje, CI zacznie sprawdzać globalny folder system/language.
Uwaga: Każdy z języków powinien być przechowywany w swoim własnym folderze. Dla przykładu, angielskie pliki językowe są przechowywane w: system/language/english
Tworzenie plików językowych
Pliki językowe muszą mieć w nazwie _lang.php jako rozszerzenie. Dla przykładu, powiedzmy że chcesz stworzyć plik zawierający komunikaty błędu. Możesz go nazwać: error_lang.php
Wewnątrz pliku, każda linijka tekstu musi zostać przypisana do tablicy o nazwie $lang, w ten sposób:
$lang['language_key'] = "The actual message to be shown";
Uwaga: Dobrą zasadą jest używanie wspólnego prefiksu dla wszystkich wiadomości w danym pliku, w ten sposób unikamy możliwości wystąpienia kolizji nazw, które mogłyby nastąpić po wczytaniu innych plików językowych. Dla przykładu, jeśli tworzysz komunikaty błędu, możesz je poprzedzić ciągiem error_
$lang['error_email_missing'] = "You must submit an email address";
$lang['error_url_missing'] = "You must submit a URL";
$lang['error_username_missing'] = "You must submit a username";
Ładowanie plików językowych
W celu pobrania linii tekstu, należy najpierw załadować plik językowy. Ładowanie plików językowych odbywa się za pomocą następującego kodu:
$this->lang->load('filename', 'language');
Gdzie filename jest nazwą pliku, ktory chciałbyś załadować (bez rozszerzenia), a language określa wybraną wersję językową (np. english). Jeśli nie podasz drugiego parametru, zostanie wykorzystany domyślny język ustawiony w pliku application/config/config.php.
Pobieranie linii tekstu
Kiedy załadujesz już plik językowy, możesz odwołać się do każdej linii tekstu, za pomocą tej funkcji:
$this->lang->line('language_key');
Gdzie language_key jest kluczem tablicy, który odwołuje się do linii tekstu, którą chciałbyć pokazać.
Uwaga: Ta funkcja tylko zwraca linię tekstu - nie wyświetla jej za Ciebie.
Używanie linii tekstu w etykietach folmularza
Ta funkcja została przeniesiona do funkcji lang() helpera Language.
Automatyczne ładowanie języków
Jeśli uznasz, że potrzebujesz danego języka globalnie, w obrębie całej aplikacji, możesz nakazać aby CodeIgniter ładował ten język podczas inicjalizacji systemu. Możesz to zrobić poprzez otworzenie pliku application/config/autoload.php i dodanie języka/ów do tablicy automatycznego ładowania.