[Specyfikacja] Wersje jezykowe

0

Ustalisliym juz, ze system powinien obslugiwac kilka wersji jezykowych. Komunikaty jezykowe proponuje przechowywac w tablicy asocjacyjnej w katalogach:

lang/pl/lang.php
lang/en/lang.php

Plik lang.php powinien przechowywac tablice asocjacyjna z komunikatami jezykowymi. W przypadku duzej ilosci danych, komunikaty mozna rozbic na kilka plikow:

lang/pl/lang.php -- plik glowny
lang/pl/users.php -- komunikaty zwiazane z obsluga uzytkownika
lang/pl/view.php -- komunikaty zwiazane z wyswietlaniem hasla

Taki podzial mozna jednak ustanowic pozniej, jak zobaczymy jak duza bedzie tablica z komunikatami.

  1. Uzytkownik powinien moc wybrac jezyk nie bedac zalogowany
  2. Dane dotyczace jezyka powinny byc ustawiane w profilu

Jezeli chodzi o punkt 2. to sprawa jest prosta - ustawienia jezyka znajduja sie w bazie danych.

Jezeli chodzi o punkt 1. to najlepszym rozwiazaniem bedzie wysylanie na komputer usera, ciasteczka - np. o nazwie "rr_lang" ktore zawierac bedzie informacje o jezyku.

Teraz pozostaje tylko w odpowiednim mejscu programu, dolaczyc plik jezykowy lang.php dzieki czemu tablica $lang bedzie dostepna dla pozostalych plikow. Mysle, ze odpowiednim do tego miejscem, bedzie plik session.php, gdzie nastepuje odczyt ciastek i sprawdzenie, czy user jest zalogowany. I wtedy:

  1. Sprawdzamy, czy dostepne jest ciacho "rr_lang". Jezeli tak - przechodzimy do punktu 2.; jezeli nie - idziemy do punktu 3.
  2. Jezeli ciacho jest dostepne - wczytujemy odpowiedni plik lang.php, przechodzimy do punktu 3.
  3. Sprawdzamy czy dostepne jest ciacho "rr_data", ktore zawiera informacje o zalogowanym uzytkowniku. Jezeli tak - przechodzimy do punktu 4.; jezeli nie - uznajemy, ze domyslnym jezykiem jest polski i wczytujemy plik lang.php.
  4. Na podstawie informacji zawartych w ciasteczku, z bazy danych odczytujemy informacje na temat uzytkownika i ustawienia jego jezyka. Na tej podstawie wczytujemy odpowiedni plik lang.php.

Z tego wzgledu tablica $lang nie bedzie dostepna na nizszych szczeglach aplikacji - np. w klasie DB. Jezeli w klasie DB wystapi blad - np. logowania to proponuje wyswietlic komuniakt w jezyku angielskim, nie korzystajac z tablicy $lang.

Jakies uwagi?

0

Ja proponuję komunikaty o błędach wyświetlać zarówno po polsku, jak i po angielsku. Ludzie zza granicy stanowią maleńki odsetek 4p, więc po co dla wygody 1% użytkowników "męczyć" pozostałe 99?

0
misiekf napisał(a)

4p
Ale tu chodzi o RR a nie o Coyote, na którym chodzi 4p.

1 użytkowników online, w tym zalogowanych: 0, gości: 1