![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Otóż chcę zrobić stronkę w języku PL i niemieckim. I mam pytanie - jakby to zrobić, żeby były flagi i po kliknięciu na flagę przestawiał sie język.
Teksty na stronie będą modyfikowane - coś a'la mały CMS. Dajcie jakieś sugestie jak się do tego zabrać. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Użyj sesji, na początku indexu zainicjuj zmienną sesyjną 'lang':
Na stronie umieść link, na którego kliknięcie będzie zmieniało wersję językową:
Stwórz sobie pliki dla wersji językowych w postaci np:
A wszędzie na stronie zamiast pisać tekst, umieszczaj zmienną
Możesz też inaczej, np. mieć dwa pliki z dwoma wersjami słów:
a potem tylko includować właściwy plik na podstawie zmiennej $_SESSION['lang'] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, w sobotę coś zacznę już (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dodam tylko, że oprócz stałych części strony jak menu czy stopka, będą też "dynamiczne" tzn. zmieniająca sie oferta firmy itp. Więc będę jeszcze musiał jakoś to zrobić w bazie danych. Jakieś sugestie? Ten post edytował robos85 16.11.2007, 01:53:28 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
To bardzo ogólne o co pytasz więc ogólna odpowiedź jest taka:
Zaprojektuj odpowiednio bazę danych, zrób panel administracyjny, w którym pracownicy będą mogli sobie zmieniać ofertę np. w jakimś wyswigowym edytorze, a na stronie wyświetlaj ofertę pobraną z bazy... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Stwórz sobie pliki dla wersji językowych w postaci np:
A wszędzie na stronie zamiast pisać tekst, umieszczaj zmienną
a dokładniej z tymi plikami? trzeba je jakoś includować albo określić? np chciałbym dla każdej podstrony osobny plik w j. polskim i osobny plik w j. niemieckim. Jak takie coś stworzyć? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie rób osobnych plików dla każdej podstrony.
Rozwiązania, które podałem zakładają jeden albo dwa pliki w pierwszej wersji oraz dwa pliki w drugiej wersji. Załóżmy, że wybierzesz pierwszą wersję z jednym plikiem: Zrób plik lang.php:
Następnie musisz ten plik includować gdzieś na stronie, zanim cokolwiek wyświelisz z niego. A więc plik index może wyglądać tak:
Oczywiście przykład bez sensu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zmienną lang ustawiasz tak jak opisałem w poprzednim poście. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
mam taki błąd:
Fatal error: Cannot use string offset as an array in C:Program FilesVertrigoServwww2jlang.php on line 3
linia 3 to: $lang['powitanie']['pl'] = "Witaj"; błąd po kliknięciu w linka zmiany języka. adres w przeglądarce: http://localhost/2j/?lang=de Ten post edytował robos85 16.11.2007, 02:16:14 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pokaż swój kod.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
index.php
lang.php
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiście, to powoduje błąd... zmodyfikowalem trochę kod:
To tylko szkic, prosiłeś o sugestie, musisz to rozwinąć jeżeli chcesz zastosować na stronie, ale chyba jest to w miarę jasne... |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
dzięki, może ktoś podpowie mi jak zrobić, żeby zmienna sesyjna nie była widoczna w url (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
może połączyć ciasteczka z tym ? Ten post edytował robos85 16.11.2007, 02:54:18 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zmienna jezykowa w sesji? A jak wyslesz komus linka do niemieckiej wersju artykulu? Zakladajac ze uzytkownik nie wie ze do url nalezy dokleic ?lang=de
... a jak Google znajdzie wszystkie niemieckojezyczne artykuly? Takie rzeczy powinno sie przekazywac w url za kazdym razem. Ten post edytował NoiseMc 16.11.2007, 05:06:25 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 198 Pomógł: 3 Dołączył: 27.02.2007 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
NoiseMc mógłbyś wtedy pomoc jak wykonać to przekazanie w url ? napewno kolega który zakładał posta też jest ciekaw jak to wygląda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Brak identyfikatora sesji w URI:
2. Sesja na cookies:
mógłbyś mi to jeszcze ciut naświetlić? Znaczy - ciut więcej wytłumaczyć czemu ma to służyć. OT...... NoiseMc - twoja lokacja: Boston, MA kojarzy mi się z tą reklamą gdzie Kolonko reklamuje ubezpieczycieli samochodów (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) to przekazanie w url działa z tego skryptu wyżej u mnie normalnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował robos85 16.11.2007, 09:02:56 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
NoiseMc mógłbyś wtedy pomoc jak wykonać to przekazanie w url ? napewno kolega który zakładał posta też jest ciekaw jak to wygląda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Na przyklad http://www.example.com/showarticles.php?lang=de a w kodzie odpada wtedy tylko ustawianie zmiennych sesyjnych. Co do Maxa Kolonko nie widzialem tej reklamy ale slyszalem ze reklamowal slynna amerykanska firme ubezpieczeniowa ktorej nikt w usa nie zna (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze w sesji mozna index jezyka trzymac, ale co do tablicy z tlumaczeniami to jest troche malo optymalne przy wiekszych stronach, a po co uczyc sie nie do konca wydajnych metod. Proponuje poczytac o gettext, istnieje rozszerzenie php do tego, Chyba Bastion pisal klase Babel do obslugi tego. Jesli chodzi o szablony to na stronie smarty mozna było znalesc plugin nazwany smarty_block_t obslugujacy gettexta. To tak jako alternatywa dla tych tablic z tlumaczeniami, No bo jesli bedziesz mial 2 jezyki to jeszcze przejdzie ale przy 6 jezykach wielu stronach standardowe 8 MB dla php moze okazac sie za małe.
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%) ![]() ![]() |
zamiast
lepiej zrobic sobie funkcje
I co będzie jak ktos wpisze taki url: "..../?lang=dupa" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
zacząłem ten temat właśnie po to, aby poznać jakąś optymalną metosę na zrobienie tego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
więc co byście polecili w końcu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) co do przekazywania w url - jak zrobić, aby działało to na podobnej zasadzie, ale nie było widoczne w url to lang ..... Ten post edytował robos85 16.11.2007, 20:42:26 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ja robie katalog langs/ i tam trzymam pliki z jezykami: pl.lang.php, en.lang.php, de.lang.php itd. Potem przy pomocy wyzej wymienionych sesji includuje odpowiedni plik. Zawartosci pliku mozna tworzyc na rozne sposoby:
albo
Dzieki takiemu czemus nie trzeba bawic sie w budowanie dlugich zmiennych jak to bylo wyzej napisane.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.10.2025 - 02:32 |