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 #1





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
Zeman
post 4.04.2007, 11:11:42
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

Ostrzeżenie: (0%)
-----


Cytat(Diabl0 @ 4.04.2007, 02:17:23 ) *
...
id | date | title_pl | title_en | content_pl | content_en
...
Użycie w kodzie dość banalne:
$SQL = 'SELECT title_' . $_USER['lang'] . ', content_'' . $_USER['lang'] itd
...
Natomiast w przypadku projektów wielojęzykowych mam zawsze dylemat jak konstruować bazę danych.


Takie podejście może być trochę męczące przy pisaniu zapytań. Ponadto nie bardzo daje możliwość utworzenia różnych danych dla różnych języków, mam na myśli przykładowo, że sklep oferuje w wersji polskiej pewną ilość produktów, w wersji angielskiej może niektórych produktów nie chcieć proponować. Jeszcze bardziej gdy wyobrazimy sobie produkty w sklepie i komentarze klientów, jakby nie patrzeć, nie możemy kazać komentować we wszystkich językach naraz winksmiley.jpg

Osobiście preferuję nazwy tabel products_pl, products_eng, products_de, ....
i oczywiście 'SELECT id, title, .. FROM products_'.$lang.' ...'


Jeśli klient jednak przewiduje że każdy rekord będzie miał odzwierciedlenia we wszystkich językach, to niby można się pokusić o sposób id | date | title_pl | title_en | content_pl | content_en, choć osobiście pewnie bym zastosował coś innego, co to jeszcze nie wiem, bo nie miałem przypadku żeby każdy rekord miał być we wszystkich językach. Można niby tabelę "mapującą" products: products_pl_id, products_en_id, ...


--------------------
www.web2biz.pl | trochę o web-usability
Go to the top of the page
+Quote Post

Posty w temacie
- Ociu   Wielojęzykowość   1.04.2006, 18:29:19
- - pEbE   Myślę ze dobrym rozwiązaniem są pliki. Stosuje sie...   1.04.2006, 20:31:20
- - Strzałek   jeżeli w projekcie masz zamiar używać OPT, to ja n...   2.04.2006, 09:19:58
- - sf   Smarty: {config_load file="text.conf" se...   2.04.2006, 09:59:36
- - NuLL   Ja korzystam z modifiera SMARTY [HTML] pobierz, pl...   7.04.2006, 00:59:47
- - TomASS   A ja się bawię "słownikiem" - mam plik l...   7.04.2006, 07:27:19
- - eMartio   Ja z kolei napisałem sobie plugin do Smartego. Tem...   7.04.2006, 10:15:48
- - Vengeance   I ma taką wadę, że języki są różne i różną mają gr...   9.04.2006, 17:09:41
- - Fipaj   http://developer.gnome.org/projects/gtp/tr...-gnom...   9.04.2006, 18:36:07
- - 3rdeye   Cytat(TomASS @ 2006-04-07 06:27:19)A ja się b...   12.04.2006, 15:10:53
- - splatch   Ja ze swojej strony mogę polecić draft i18n z Moja...   12.04.2006, 19:49:35
- - yavaho   Ja mam strony wielojezykowe zrobione na podstawie ...   12.04.2006, 20:15:15
- - Ace   Ja osobiscie korzystam z plikow ini. Plik jezykowy...   13.04.2006, 08:45:23
- - dtb   ja wczytuje zawartosc pliku ini dla wybranego jezy...   13.04.2006, 14:54:21
- - krzemian   Moim zdaniem prawda znowu leży po środku - wydaje ...   16.04.2006, 13:53:05
- - NoiseMc   Cytat(krzemian @ 2006-04-16 12:53:05)Wydaje m...   16.04.2006, 15:33:53
- - krzemian   Teraz tak myślę i doszedłem do wniosku, że twoj po...   16.04.2006, 17:07:31
- - Jabol   A co wy na to (suma kilku pomysłów):[PHP] pobierz,...   16.04.2006, 21:23:09
- - Bora   Cytat(Jabol @ 2006-04-16 21:23:09)A plik tran...   17.04.2006, 14:11:06
- - Fipaj   A co, jeśli w tłumaczonym tekście wystąpi znak ...   17.04.2006, 14:24:45
- - Ociu   Jabol: Muszę się zgodzić z Borą, wygląd pliku jest...   17.04.2006, 15:28:25
- - sf   Cytat(Fipaj @ 2006-04-17 14:24:45)A co, jeśli...   18.04.2006, 17:56:26
- - Jabol   Cytat(Fipaj @ 2006-04-17 14:24:45)A co, jeśli...   18.04.2006, 18:01:58
- - Prph   Witam, Kilka dni temu pisalem klase opbsugujaca j...   26.04.2006, 11:57:49
- - Neotion   Przepraszam będe pisał bez shifta bo siedze w szko...   27.04.2006, 07:20:49
- - Bastion   takie wlasnie (podobne) rozwiaznie jest w klasie B...   27.04.2006, 07:35:10
- - sadu   moze pomoze: http://www.tutorialized.com/tutorial...   27.04.2006, 10:47:56
- - Seth   Odkopuje temat bo zastanawiam sie nad tym w jaki s...   5.05.2006, 13:20:27
- - splatch   Bardzo przydatny temat dla wszystkich którzy odwie...   5.05.2006, 21:36:48
- - AveNET   Mam taką tablicę [PHP] pobierz, plaintext <?php...   20.05.2006, 09:54:11
- - DeyV   Cytat(Seth @ 2006-05-05 13:20:27)Ogolnie chod...   20.05.2006, 21:20:50
- - g00fy   a co powiedzie o languagefactory::GetLang() a pozn...   1.06.2006, 20:23:06
- - nasty_psycho   Moim zdaniem, (ja tak zrobilem w moim programie kt...   4.06.2006, 19:22:50
- - DooBLER   Witam Odgrzeję kotleta... Piszę średniej wielkoś...   3.12.2006, 09:13:15
- - NuLL   http://forum.php.pl/index.php?showtopic=42371...   3.12.2006, 12:55:27
- - cicik   Można też skorzystać z TMX, zunifikowany opis XMLo...   3.12.2006, 17:03:29
- - Sh4dow   Nie wiem czy ktoś wogóle o tym słysza...   4.12.2006, 10:55:20
- - DeyV   Właśnie o gettext była mowa, gdy wspominaliśmy o B...   7.12.2006, 23:18:16
- - pawkow   Problem multijęzykowości rozwiązałem w prosty spos...   21.03.2007, 20:27:11
|- - mike_mech   Cytat(pawkow @ 21.03.2007, 20:27:11 )...   21.03.2007, 20:30:23
- - pawkow   musiałbyś poprawić tylko jeden plik, czy się mylę ...   21.03.2007, 21:16:19
- - Zeman   Korzystam z autorskiego edytora i 2 pluginów multi...   3.04.2007, 21:34:22
- - Diabl0   Widzę że prawie każdy skupił się tylko na jednej (...   4.04.2007, 01:17:23
- - Sedziwoj   Czy mi się wydaje czy to jest jeden 'artykuł...   4.04.2007, 01:31:24
- - Athlan   Moim zdaniem baza danych w zupełności od...   4.04.2007, 07:05:59
|- - Sedziwoj   Cytat(Athlan @ 4.04.2007, 08:05:59 ) ...   4.04.2007, 10:02:09
- - Zeman   Cytat(Diabl0 @ 4.04.2007, 02:17:23 ) ...   4.04.2007, 11:11:42
- - Kayne   Hm... Jest trochę prostsze rozwiązanie, z którego...   4.04.2007, 14:29:46
- - bela   rozwiazanie powyzej jest fajne, ale ma jedna wade:...   4.04.2007, 16:52:29
|- - faster   Cytat(bela @ 4.04.2007, 17:52:29 ) ro...   30.04.2007, 00:15:28
- - Kayne   No, powtarzają się, ale jest to bardzo łatwe do za...   6.04.2007, 11:48:54
- - empathon   Ja podobnie jak ~bela używam symfony i uważam tamt...   9.04.2007, 16:01:43
- - bela   jezeli ktos sie zdecyduje na symfony, to radze pob...   9.04.2007, 19:52:04
- - cicik   Od jakiegoś czasu zastanawiam się na wielojęzykowo...   12.04.2007, 21:45:21
- - Siner   Ostatnio zastanawiam się nad wyglądem linków wielo...   13.05.2007, 16:19:31
- - Nitryt14   Mam podobny problem jezykowy przy tworzeniu strony...   13.05.2007, 17:23:59
- - kubarek   moja idea: [PHP] pobierz, plaintext <?phpclass ...   13.05.2007, 20:02:42
- - eai   Mój sposób wygląda tak: Plik Global_Lang.php: [PHP...   14.05.2007, 09:41:24
- - Sedziwoj   A mnie tak ciągle zastanawia, dlaczego artykuły/ne...   14.05.2007, 09:51:22
- - siemakuba   Pojawił się w tym wątku pomysł, aby trzymać dane z...   14.05.2007, 15:17:27
- - Sedziwoj   Ja bym szybciej jedną tabele `article` i w...   14.05.2007, 19:39:55
- - siemakuba   @Sedziwoj - masz oczywiście rację, zdaje się, że t...   15.05.2007, 09:56:56
- - Black-Berry   Dawno nie pisałem na forum dlatego pozdrawiam i wi...   24.12.2007, 00:23:58
- - Nattfarinn   A ja się zastanawiam nad sensowności...   27.12.2007, 11:18:32
- - acztery   ja stosuję metodę zapisu do bazy każdy element ma ...   4.02.2008, 21:53:48
- - Strzałek   W Doctrine jest plugin do i18n. Wielojęzykowość st...   1.03.2008, 12:07:43
- - Sh4dow   a jak w tym doctrine wyglada to tłumacznie ? Osobn...   4.03.2008, 10:43:03
- - Strzałek   Przykład z dokumentacji doctrine: news: id |...   14.03.2008, 13:08:25
- - lusiek   (sorry za odkop) Nie można po prostu użyć prefixó...   22.05.2008, 09:10:58
|- - empathon   Cytat(lusiek @ 22.05.2008, 10:10:58 )...   22.05.2008, 12:00:40
- - radex_p   Mam jeden prosty i sprawdzony sposób. [PHP] pobie...   23.05.2008, 17:52:07
- - Sedziwoj   @radex_p Co innego tłumaczenie statycznych rzeczy,...   23.05.2008, 19:10:41
- - radex_p   Co masz na myśli? Te tablice z tłumaczen...   23.05.2008, 19:52:53
- - Crozin   @radex_p - myślę, że chodziło o np. artykuł dodawa...   23.05.2008, 21:01:49
- - radex_p   aaaaa..... Teraz już rozumiem   24.05.2008, 08:40:48
- - Sedziwoj   Dokładnie, bo można rozgraniczyć na dwa rodzaje, j...   24.05.2008, 10:25:24
- - joohn   Obecnie korzystam z Symfony i podoba mi sie jak to...   29.05.2008, 11:32:28
- - Sedziwoj   @joohn Wada, to że wszystkie teksty są wrzucone do...   29.05.2008, 14:18:48
- - rzymek01   Witam! Podsumowując, moim zdaniem optymalnym ...   29.05.2008, 20:01:46
- - Sedziwoj   @rzymek01 Jak masz kolumnę lang, to niech to będzi...   30.05.2008, 08:44:00
- - rzymek01   racja, mój błąd nie chciałem już mieszać, bo na ...   30.05.2008, 13:39:42
- - Blodo   Kolejny odkop no ale.. Ja uzywam dwoch tabel: jed...   6.07.2008, 05:56:10
- - Sedziwoj   @Blodo Może coś w tym stylu: [SQL] pobierz, plaint...   7.07.2008, 08:00:55
- - Blodo   Hmm, dobry pomysl. Co prawda trzeba w php potem sp...   7.07.2008, 23:24:09
|- - Sedziwoj   Cytat(Blodo @ 8.07.2008, 00:24:09 ) H...   7.07.2008, 23:58:30
- - Albitos   Wybaczcie, że odgrzewam temat. Baardzo d...   19.08.2008, 15:17:06
- - tomek_swat   mam pytanie jak sobie radzicie z wersją językową p...   12.10.2008, 20:13:47
- - Crozin   Ale w jakim celu tłumaczyć wyjątki? One są raczej ...   12.10.2008, 21:15:54
- - tomek_swat   załóżmy, że mam klasę Config, która jest Singleton...   13.10.2008, 11:43:50
- - Sedziwoj   Nie zawsze wyjątki są najlepsze, powinieneś sprawd...   13.10.2008, 15:23:27
- - test_next   Witam, tak pobieżnie przeglądając odpowiedzi nie ...   2.07.2009, 10:12:06
- - erix   Mało przenośne. Co w sytuacji, gdy np. stała konfi...   2.07.2009, 10:27:14
- - test_next   tak tylko aplikacja ma być przenośna, a gettext ni...   2.07.2009, 11:12:29
- - viking   To zainteresuj się Zend Framework (i zanim napisze...   2.07.2009, 11:23:21
- - test_next   To include GNU gettext support in your PHP build y...   2.07.2009, 11:51:36
|- - viking   Cytat(test_next @ 2.07.2009, 12:51:36...   2.07.2009, 11:56:40
- - bim2   Nie miałem siły przeglądać całego watku, ale moim ...   2.07.2009, 11:54:13
- - test_next   viking: ok, ale aplikacja jest dosyć rozbudowana i...   2.07.2009, 12:02:54
- - Crozin   Zapewne da się ten komponent "wyciąć" z ...   2.07.2009, 12:56:10
- - erix   Cytattak tylko aplikacja ma być przenośna, a gette...   2.07.2009, 14:18:37
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: 16.06.2024 - 11:06