wielojęzyczność, przechowywanie tekstu

0

Mam w bazie MySQL tabelkę "languages" zrobiłem kolumny 'tekst_PL' oraz 'tekst_EN' skrypt to obsługi języków wykorzystałem z tego tutka: http://www.webtips.pl/topic/33729-php-wielojezyczna-strona-w-php/
Więc tak: jak prawidłowo pobierać tekst z bazy? Na stronie wywołuję w odpowiednim miejscu

Lang::line('test123')

W plikach pl.php/en.php odnosząc się dodam przykładowo

$lang['test123'] = ...

i tutaj właśnie nie wiem jak wczytać. Teoretycznie mam w połączeniu bazy zmienną: $cfg = mysql_fetch_array(mysql_query("SELECT * FROM languages"));

 lecz poprzez <code class="php">echo $cfg['tekst_PL'];

jej nie przypiszę do zmiennej $lang bo oczywiście rzuca syntaxami. Nie wiem czy udało mi się w miarę jasno przedstawić sytuację, ale ogólnie nie wiem jak to wyświetlić...
//
Jeszcze takie pomniejsze pytanie: zwykle chyba wszystkie serwisy przetrzymują teksty w bazie, lecz to powoduje mnóstwo zapytań, a przy mniejszych stronach z ograniczeniem serwerowym będzie się sypać, poza bazą warto gdzieś indziej trzymać teksty? txt, xml?

0

Trzymaj jezyki w plikach .php, jest to latwy i sprawdzony sposob :)

1

Zamordujesz bazę jak się będziesz odpytywał o teksty w SQLu.

Widziałeś gdzieś już takie rozwiązanie?

AFAIR w Drupal, phpBB, ZenCart teksty są trzymane w *.PHP (w phpBB było to słabo zrobione i prowadziło do włamań).

Jeśli używasz jakiegoś rozsądnego frameworka to mechanizm powinien już być.
Jesli robisz swój własny framework / skrypt - to weź przykład z tutoriala lub jakiegoś gotowego dużego skryptu.

Jeden ze standardów przenoszenia plików z tekstami to *.po:

I funkcja / program gettext:

Tu masz listę rozwiązań:
http://stackoverflow.com/questions/450687/programming-multi-language-php-applications

0

właśnie buduję swój skrypt, nie jest może jakoś skomplikowany, ale będę go rozwijał, przynajmniej się uczę i wtedy wiem jaki kod do czego służy ;)
Jak się ma do tego bezpieczeństwo?

0

Błędy bezpieczeństwa mogą być różne - jak to w PHP.

To co widziałem to brak mechanizmu typu IN_PHPBB:
http://www.exploitsdownload.com/search/exploit%20phpbb/7

To się przyda:
http://www.gnucitizen.org/static/blog/2008/04/php-code-analysis-real-world-examples.pdf

0

Trochę nie rozumiem tych wszystkich kombinacji z zabezpieczeniem ... Po co ?
Jak w oddzielnym pliku o rozszerzeniu PHP utworzy tablicę z elementami klucz => wartość to będzie to całkiem sprawne.

Kto miałby się "włamywać" i po co? Żeby pobrać wszystkie napisy - ma na stronie ?

Więcej roboty dla komputera z przetworzeniem zabezpieczeń niż z pobraniem tablicy (nawet bardzo dużej).

A tak w ogóle to teoretycznie masz jeszcze XML do dyspozycji. Baza danych to głupota, bo są dwie opcje:

  1. Wielokrotne zapytania (za długo i zbyt niebezpieczne)
  2. Pobranie wszystkiego na raz -> plik .php jest szybszym rozwiązaniem, bo nie trzeba obrabiać tego za każdym razem.

Pozdrawiam

0
vpiotr napisał(a):

To co widziałem to brak mechanizmu typu IN_PHPBB

Który jest głupotą i protezą na debilnych administratorów stawiających owe skrypty. Do katalogów z internalsami po prostu nie powinno być dostępu z poziomu serwera WWW.

0

A tym bardziej jak ktoś tworzy stronę, która w jakikolwiek sposób ma być zabezpieczana to nie stawia jej na tzw. dupnym hostingu. Nawet webd.pl ma zabezpieczenia i .htaccess mimo że to kosztuje jakieś 3.99zł za miesiąc.

0

ok, dzięki za odpowiedzi, póki co zdecyduję się chyba na teksty w plikach XML oddzielnych dla każdego języka. Jak ogarnę te skrypty, o których pisze @vpiotr to za jakiś czas sobie przebuduję ;)

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