Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] Wersje językowe strony, Jak elegancko zaprojektować
pitbull82
post 5.03.2005, 19:20:21
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Witam

Na stronie, nad którą obecnie pracuję, chciałbym umieścić 2 wersje językowe. Oczywiście samo zrobienie ot tak tego, to żaden problem, pytanie tylko jak zrobić to elegancko smile.gif

Dodam, że chciałbym, aby również tagi alt i title były w razie czego w angielskiej wersji językowej.

Ma ktoś pomysł jak to elegancko zrealizować?

O szablonach nie wiem nic, ale może to trzeba jakoś na tej zasadzie realizować? np. dać alt="{opis1}" i później to przetwarzać w zależności od wybranej wersji językowej ? Pytanie tylko czy powinno się to robić za każdym razem czy może raz a może jeszcze jakoś inaczej?

Czekam na Wasze pomysły i opinie smile.gif


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 5.03.2005, 19:26:44
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Najprościej to możesz includować dokument z sekcją head i ptoblem rozwiązany
Co do altów, to juz chyba gorzej.
Może jakiś skrypt wykrywający jaki plik jest includowany w headzie i odpalający odpowiednie zmienne znacznikach alt

Aha, rzy przełączaniu wersji po prostu wysyłasz via post lub get zmienną dla instrukcji warunkowej zawartej na poczatku dokumentu (tej ładującej wersję językową)

Ten post edytował Cysiaczek 5.03.2005, 19:28:52


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
bela
post 5.03.2005, 19:35:56
Post #3


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Najprościej tak,

Dajesz w URLu index.php?foo=bat&lang=pl

I załączasz templaty w wersji pl, jesli pobierasz coś z bazy to robisz
  1. SELECT *
  2. FROM foo WHERE lang='pl'

Potem wrzucasz to do szablonów i voila winksmiley.jpg

Mi taki mechanizm w nowej wersji strony OPB zajął ok 50 linijek, wraz z podzialem na mvc winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Spirit86
post 6.03.2005, 19:19:54
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


o jejku, przypatrz się np. PHPBB, czy czemuś co zawier funkcje językowe :].
Tworzysz plik polish.php
i tam deklarujesz stałe, tj. title, name itp.

strona główna:
  1. <?php
  2.  
  3. echo '<title>'.title.'</title>';
  4.  
  5. ?>

reszty domyśl się sam :]


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
Najki
post 6.03.2005, 20:48:32
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Podobno najszybciej działa coś takiego, jeśli oprzesz te dane na zwykłych tablicach (przynajmniej tak twierdzili developerzy frameworka Seagull na konferencji PHPcon 2004 w Poznaniu). Takie wieeelkieee tablice smile.gif.


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 6.03.2005, 23:14:07
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@Najki ma racje!!!

Tworzysz sobie katalog np "lang" i umieszczasz pliczki z wersjami jezyków i co do tego to dajesz jeszcze w odpowiednim kodowaniu. W pliku tym zawiera sie bardzo duza tablica w ktorej "siedza" teksty do odpowiednich czesci na stronie, wszystko co jest statyczne na stronie. Jesli serwis jest oparty na smarty a jeszcze lepiej jak spelnia MVC to jeszcze latwiej poprostu zaciagasz odpowiedni pliczek.

@bela_666 z tym bym sie tak kłócił bo tak naprawde wiekszosc projektów opartych jest na takiej wlasnie zasadzie jak powyzej opisalem, przykład phpMyAdmin.

Na bazie danych mozna robic ale wtedy przy zalozeniu ze osoby tłumaczące maja dostep do specjalnego panelu tlumaczeń.

Jak powiedział Najki
Cytat
przynajmniej tak twierdzili developerzy frameworka Seagull na konferencji PHPcon 2004 w Poznaniu
i z tym sie zgadzam.


--------------------
Go to the top of the page
+Quote Post
bela
post 6.03.2005, 23:18:42
Post #7


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


@SongoQ co do wybierania z bazy, ja mysle o artykułach, newsach etc
i z czym byś się nie zgodził ?


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 6.03.2005, 23:28:39
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@bela_666 Tak oczywiscie z tym sie zgadzam, bo nie ma innej mozliwości.

Chodziło mi o elementy (teksty) statyczne na www.


--------------------
Go to the top of the page
+Quote Post
bregovic
post 7.03.2005, 00:08:52
Post #9





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Jak się używa smarty - to 'elementy statyczne' najlepiej ustawiać w configach - i je dynamicznie includować w templacie, np decydując na podstawie zmiennej GET.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
SongoQ
post 7.03.2005, 00:16:47
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@bregovic "Element statyczny" tutaj przyjołem tekst który nie ulega znianie (czyli nie "siedzi" w bazie danych) i wyłącznie zalezy od wersji jezykowej strony.


--------------------
Go to the top of the page
+Quote Post
Puciek
post 7.03.2005, 07:48:19
Post #11


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Ja zaproponuje wykorzytsanie odrazu smarty i podstawianie danych z tabelek wlasnie


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
hawk
post 7.03.2005, 17:25:00
Post #12





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


A ma ktos doswiadczenie np. z gettext?
Go to the top of the page
+Quote Post
_Mateo
post 7.03.2005, 21:02:54
Post #13





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.03.2005
Skąd: Jaworzno

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


Witam!
ja ostatnio też cos takiegio miałem, ale rozwiązałem to na wyrażeniu warunkowym:

  1. <?php
  2. if($jezyk_strony =='pl') {
  3. echo &#092;"Witaj!\"; }
  4. elseif ($jezyk_strony =='eng') {
  5. echo &#092;"Hello\"; }
  6. ?>


oczywiście wcześniej jest wyciąganie danych z bazy itp...

Pozdrawiam, Mateo


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 7.03.2005, 21:17:15
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@_Mateo troche Twoja metoda jest nie korzystna dla programisty. Wyobraz sobie taka sytuacje ze aplikacja musi dzialac w kilku jezykach ktorych programista nawet nie zna "Witaj świecie" wtedy 1 pliczek z tlumaczeniem jest wysylany osobie tłumaczącej i dostajesz gotowy pliczek z tablica, kopiujesz go do projektu i juz masz odpowiednia obslugę jezyka. To co ty napisałes mija sie całkowicie z celem.

Chyba nie chciałbys wysyłac kodu tłumaczowi??


--------------------
Go to the top of the page
+Quote Post
_Mateo
post 7.03.2005, 21:49:06
Post #15





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.03.2005
Skąd: Jaworzno

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


@ SongoQ: w sumie tez fakt, tylko że zależy do czego to wykorzystać... do moich projektów typu Licznik idiotów itp w zupełności to wystarcza smile.gif Wiem, że jest sporo innych sposobów, ale ten jest akurat najprostrzy a mi efekt jaki daje w zupełności wystarcza smile.gif jeśli by wykorzystać np smarty, to faktycznie byłoby to lepsze smile.gif tylko ze tutaj juz nie pomogę sad.gif


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 7.03.2005, 22:02:14
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@_Mateo rozumiem Twoje podejscie, najprostsze rozwiazanie. W sumie w tym co podales no to moj przyklad troche mija sie z celem.

Ale jak sie projektuje aplikacje i jest mowa o obdludze wielu jezyków to naprawde najwazniejsze jest dla Ciebie aby tlumaczenie przeszlo sprawnie i osoba ktora to robi mogla latwo to zrealizowac. Zadko sie zdaza ze na jakis "dziwny" jezyk tlumaczy programista.


--------------------
Go to the top of the page
+Quote Post
pitbull82
post 7.03.2005, 22:06:42
Post #17





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Na tej stronce nie będzie ani dużo rzeczy, ani nie będzie ona skomplikowana. Chodziło mi tylko właśnie o poznanie sposobu podejścia do sprawy. Rozumiem, że warto by było się zainteresować SMARTY. Ciekawe tylko "z czym to się je" winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 7.03.2005, 22:22:43
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


http://smarty.php.net/

Na poczatku wyglada strasznie ale zobaczysz pozniej.


--------------------
Go to the top of the page
+Quote Post
hwao
post 8.03.2005, 12:51:13
Post #19


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




O ile dobrze pamietam to OPT ma wsparcie dla jezykow (jazeli to to w najbluzszych wersjach bedzie).
Ja sam to robie troche inaczej mam dane zachowane odnosnie kazdego modlu i jak cos trzeba to zalatowuwuje te dane wysylam do widoku (np smary albo cokolwiek innego) a on sobie juz wybiera co i jak.
Go to the top of the page
+Quote Post
krzemian
post 23.03.2005, 12:42:30
Post #20





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.01.2004
Skąd: Świętochłowice

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


Trochę odgrzewam topic, ale może ktoś jeszcze czeka:)

Moje zdanie - zrobić to tak jak jest w PHPBB, czyli na tablicach. Tam jak chcesz mieć kolejną wersję językową, to ściągasz odpowiednie pliki i wszystko jest spisane w tablicach ($lang, $faq), pliki mają te same nazwy, ale są w osobnych folderach (lang_pl, lang_en bodajże) i skrypt po prostu inkluduje pliki z odpowiedniego folderu. Prosty i dobry sposób, a co najważniejsze - przenośny.


--------------------
“Twój czas jest ograniczony, więc nie marnuj go żyjąc tak jak inni. Nie daj się znaleźć w potrzasku przez dogmaty, którymi żyją. Nie ulegaj opiniom, które zagłuszą twój wewnętrzny głos. I najważniejsze, miej odwagę pójść za twoim sercem i intuicją. Wszystko inne jest mniej ważne.”
Steve Jobs
Go to the top of the page
+Quote Post

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: 22.05.2025 - 03:55