Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> Wielojęzykowość, Czekam na Wasze propozycje
Ociu
post 1.04.2006, 18:29:19
Post #101





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Witam,
Od jakiegoś czasu piszę duży projekt i doszedłem do wybierania języku. Chciałbym poznać Wasze zdanie jak ma działać taki system wielojęzykowości strony. Pobuszowałem po internecie i oto, co wymyśliłem.
  • Pliki.
    Trzymamy pliki językowe w plikach. Każdy język ma osobny katalog, każdy ma pliki o takiej samej nazwie jak reszta języków, w plikach tablice o takich samych kluczach. Wybieramy odpowiedni język, include odpowiedniego pliku i print.
  • Teksty w bazie danych.
    Tworzymy dwa obiekty. Jeden (może być traktowany jako filter) pobiera dane z bazy danych i przerzuca je do klasy o nazwie np. LangWrapper. Używając magicznych metod __get() pobieramy tekst z klasy i __set() gdy nie ma potrzebnego tekstu należy do stworzyć
  • Open Power Template

Byłbym wdzięczny za propozycje rozwiązań.
Wojtek.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Regz
post 22.10.2015, 07:44:08
Post #102





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.10.2015

Ostrzeżenie: (10%)
X----


Ostatnio napisałem na szybkości coś takiego co do samego wyboru języka, może komuś się przyda wink.gif

  1. $langs_array = ['pl', 'en', 'fr'];
  2. $default_lang = 'pl';
  3.  
  4. if(isset($_SESSION['SESSION_LANG'])):
  5. if(!in_array($_SESSION['SESSION_LANG'], $langs_array)):
  6. $_SESSION['SESSION_LANG'] = $default_lang;
  7. endif;
  8. else:
  9. $input = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
  10.  
  11. $pattern = '/;q=([0-1]{0,1}.\d{0,4})/i';
  12.  
  13. $user_languages = [];
  14.  
  15. foreach(explode(',', $input) as $lang):
  16. $user_languages[] = preg_replace($pattern,'',$lang);
  17. endforeach;
  18.  
  19. unset($input, $pattern, $lang);
  20.  
  21. $selected_language = '';
  22.  
  23. foreach($user_languages as $lang):
  24. if(in_array($lang, $langs_array)):
  25. $selected_language = $lang;
  26. break;
  27. endif;
  28. endforeach;
  29.  
  30. if(empty($selected_language)):
  31. $_SESSION['SESSION_LANG'] = $default_lang;
  32. else:
  33. $_SESSION['SESSION_LANG'] = $selected_language;
  34. endif;
  35.  
  36. unset($user_languages, $selected_language);
  37. endif;
  38.  
  39. $lang = filter_input(INPUT_GET, 'lang');
  40.  
  41. if(!empty($lang)):
  42. if(in_array($lang, $langs_array)):
  43. $_SESSION['SESSION_LANG'] = $lang;
  44. else:
  45. $_SESSION['SESSION_LANG'] = $default_lang;
  46. endif;
  47. endif;
  48.  
  49. include $_SESSION['SESSION_LANG'] . '/index.php';
  50.  
  51. unset($lang);
  52.  


Ten post edytował Regz 22.10.2015, 07:47:50
Go to the top of the page
+Quote Post

Posty w temacie
- Ociu   Wielojęzykowość   1.04.2006, 18:29:19
- - bim2   Wordpress jest najlepszym przykładem. Ja także ni...   2.07.2009, 19:05:16
- - viking   Ewentualnie w PHP 5.3 jest coś takiego http://pl2....   3.07.2009, 06:19:05
- - bim2   Tyle, że na php 5.3 na serwerach troche trzeba poc...   3.07.2009, 10:08:04
- - erix   Dziwisz się? Osobiście np. Fx-a zaktualizuje za mo...   3.07.2009, 12:22:11
- - omeck   Tak, do zalet gettext należy to, że jest lekki, sz...   7.07.2009, 00:52:47
- - Pr0100   CytatTyle, że na php 5.3 na serwerach troche ...   7.07.2009, 02:07:41
|- - omeck   Cytat(Pr0100 @ 7.07.2009, 03:07:41 ) ...   7.07.2009, 11:42:48
- - erix   Cytatdo poleceń systemowych na serwerze... chyba m...   7.07.2009, 22:02:33
|- - omeck   Cytat(erix @ 7.07.2009, 23:02:33 ) Se...   7.07.2009, 23:26:29
- - erix   Jakoś we wszystkich hostingach, z którymi mam do c...   8.07.2009, 11:55:59
- - witul   A ja stosuje podzial na baze i pliki: np w cmsie z...   11.07.2009, 02:13:36
- - jolam   Chciałam się poradzić w jednej sprawie dotyczącej ...   20.08.2009, 10:39:40
- - erix   A przeczytałaś cały wątek?   20.08.2009, 11:53:20
- - rzymek01   W Twoim przypadku 1. sposób wydaje się lepszy, tyl...   20.08.2009, 11:57:10
- - jolam   Oczywiście, że przeczytałam ten wątek, co za pytan...   20.08.2009, 12:01:02
- - GregoryW   Korzystał ktoś kiedyś ze Smarty Multilanguage? Jeś...   17.09.2009, 17:05:59
- - nospor   Pytanko/dylemat: Zaznaczam od razu, że nie chodzi...   7.10.2009, 08:34:01
- - vokiel   Jeszcze nie miałem takiej konieczności, jednak IMH...   7.10.2009, 09:43:27
- - nospor   Rozpisałeś mi tutaj zaawansowany system w DB: akce...   8.10.2009, 10:41:08
- - nasty   A może zastosuj bazę i zrób małego bota co Ci wrzu...   9.10.2009, 02:19:28
- - nospor   juz przepisałem ręcznie   9.10.2009, 19:04:28
- - bim2   Wszyscy się zastanawiają jak robić tłumaczenie, al...   11.10.2009, 20:19:02
- - cojack   Dla statycznych tekstów najlepiej jest użyć gettex...   12.10.2009, 15:45:42
- - bim2   Hmm, ja miast gettext korzystam z własnego sytemu ...   13.10.2009, 14:23:49
- - cojack   Dokładnie, to żadna sztuczka ta wielojęzyczność. M...   13.10.2009, 15:45:56
- - Crozin   @bim2: chyba osobną tabelę łączoną w relacji 1-1 (...   14.10.2009, 14:26:43
- - bim2   No tak. Zależy co masz. Jak mam stronę statyczną ...   14.10.2009, 16:08:10
- - jmail   nie wiem czy ktoś już to pisał :F ja mam różne j...   14.10.2009, 16:18:12
- - bim2   jmail także tak miałem, ale po n serwisach to jest...   14.10.2009, 20:58:38
- - jmail   no jak tam kto uważa. dla mnie to jest wygodne i w...   14.10.2009, 21:05:19
- - marcio   Ok przeczytalem caly watek wywnioskowalem troche z...   22.10.2009, 22:53:05
- - bim2   Ja byłbym nadal za i18n, nawet dla błędów czyli ...   23.10.2009, 20:56:24
- - marcio   Czyli jak i gdzie zapisywac bledy? Bo nie rozumie...   23.10.2009, 22:32:06
- - bim2   Nigdzie. Piszesz błąd jaki wystapił a tłumaczenie ...   24.10.2009, 10:55:48
- - marcio   Wole to trzymac w plikach i zrobic tak jak ja to ...   24.10.2009, 12:44:14
- - bim2   Po 5 zleceniach odechciewa się szukania języków po...   24.10.2009, 13:28:31
- - marcio   Kazdy komponent/plugin bedzie mial katalog errors ...   24.10.2009, 14:01:15
- - bim2   Pomyśl, że chcesz później dodać kolejny język i da...   24.10.2009, 14:22:18
- - marcio   Dam im plik z errors i do tego pliki widokow a dan...   24.10.2009, 15:04:41
- - bim2   Taaak, rozdziel to dla kilku tłumaczy Nie będzie ...   24.10.2009, 15:20:09
- - marcio   Mysle ze przy latwych stronach metoda moze sie spr...   24.10.2009, 15:30:23
- - Crozin   Trochę zeszliście Panowie z tematu... A co do te...   24.10.2009, 15:39:52
- - nowy_pehapowiec   Nie wiem na ile moje pytanie pasuje do reszty post...   12.01.2010, 18:15:56
- - marcio   Co do subdomen czy ogolnie jezyka w url wiem jedno...   12.01.2010, 23:53:28
- - nowy_pehapowiec   Język w ogóle nie musi być widoczny w adresie. Dla...   13.01.2010, 06:06:22
- - bim2   Ja jestem za subdomenami, ale tylko ze względów es...   25.04.2010, 11:50:43
- - Crozin   CytatJęzyk w ogóle nie musi być widoczny w adresie...   25.04.2010, 13:20:35
- - melkorm   Język powinien być w adresie,a moim zdaniem najlep...   25.04.2010, 15:48:40
- - nowy_pehapowiec   A może jednak w ogóle nie uwzględniać języka w adr...   26.04.2010, 09:16:28
- - Riklaunim   Będzie zmienna treść co jest trochę bez sensu. Moż...   26.04.2010, 15:20:25
- - nowy_pehapowiec   Riklaunim treści przecież mogą być różne. W bazie ...   26.04.2010, 15:47:53
|- - Riklaunim   Cytat(nowy_pehapowiec @ 26.04.2010, 16:47...   27.04.2010, 18:09:36
- - nowy_pehapowiec   Tego chciałem się dowiedzieć, czy da się dobrze ta...   27.04.2010, 18:40:58
- - jareeny   według mnie, sprawdzać język przeglądarki można wt...   30.04.2010, 18:38:54
- - kuzdo   Witam, Trochę odgrzebię temat, ale mam problem ze...   10.07.2010, 20:46:25
- - vokiel   @kuzdo Tu nie ma problemu. Masz np taka strukturę ...   10.07.2010, 21:00:15
- - eai   Dlaczego? PrimaryKey to może być para kluczy. ID i...   10.07.2010, 21:01:52
- - soomal   Rozważał ktoś na tych 8 stronach czy w wielu język...   17.10.2010, 00:46:05
- - Dyktus   Wiem, że ostatnia odpowiedź była w zeszłym roku, l...   8.08.2011, 16:36:24
- - nospor   str_replace()   8.08.2011, 16:39:30
- - dreaken   Do maili najlepiej zrobić sobie specjalny systemik...   14.08.2011, 10:19:53
- - dstp   przekopałem cały temat, ale nie znalazłem odpowied...   26.01.2012, 12:23:41
- - Adi32   Witajcie. Przekopałem się przez temat i kilka raz...   15.06.2012, 10:58:36
- - erix   A jak rozwiązujesz tłumaczenie treści z bazy? Tzn....   25.07.2012, 08:46:27
- - Regz   Ostatnio napisałem na szybkości coś takiego co do ...   22.10.2015, 07:44:08
2 Stron V  < 1 2


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.06.2024 - 01:48