Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmiana języka na stronie
Weles
post 23.09.2011, 17:35:07
Post #1





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 7.07.2011

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


Witam.
Napisałem stronę na której każdy link wygląda następująco:

http://mojanazwa.pl/?strona=index.php

I każde słówko jest zawarte w katalogu:
./lang/danyjezyk.php
Np.
./lang/polski.php

A w plikach jest implementowane poprzez:

<?php echo $lang['jakis_tam_element']; ?>

I tutaj pada moje pytanie, nie mam żadnych pomysłów ani nic na to jak można by zrobić aby wybierać sobie na stronie dany język.

Dziękuję z góry za pomoc,
Pozdrawiam.
Go to the top of the page
+Quote Post
potreb
post 23.09.2011, 17:42:25
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Albo pobierasz z get język czyli jak masz url index.php?jezyk=pl albo zapamietujesz w sesji i poibierasz je po odświeżeniu,.

Ten post edytował potreb 23.09.2011, 17:44:12


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

Go to the top of the page
+Quote Post
Weles
post 23.09.2011, 17:50:41
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 7.07.2011

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


Pisałem już jak wygląda mój link, nie index.php samo, tylko index.php?page=rejestracja.php, każdy kod strony mam w mysql i GET mi je odczytuje.
Co do sesji, nie rozumiem o co chodzi? Tzn. że jak?
Go to the top of the page
+Quote Post
Daiquiri
post 23.09.2011, 17:53:05
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Najprościej, stawiasz warunki if $_SESSION['lang'] == "PL" podpinaj plik lang/polski.php jak "DE" to podpinaj plik lang/niemiecki.php itd.
Go to the top of the page
+Quote Post
!*!
post 23.09.2011, 18:01:11
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(Weles @ 23.09.2011, 18:50:41 ) *
Pisałem już jak wygląda mój link, nie index.php samo, tylko index.php?page=rejestracja.php, każdy kod strony mam w mysql i GET mi je odczytuje.


A co to ma do rzeczy? lang=pl to tylko kolejny parametr w adresie. Trzymanie informacji o języku w sesji jest mało przyjazne dla wyszukiwarek.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
mikiz65
post 23.09.2011, 22:31:16
Post #6





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 7.09.2011

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


O ile rozumiem, to chodzi ci o to, żeby po naciśnięciu na jakiś botton załadować odpowiedni plik.

<input type="submit" name="polski" value="POLSKI">
<input type="submit" name="niemiecki" value="NIEMIECKI">
itd...
  1. if(isset($_POST['polski']))
  2. {
  3. <meta http-equiv="refresh" content="0; URL=polski.php?>& zmienne">
  4. <?php
  5. }
  6. if(isset($_POST['niemiecki']))
  7. {
  8. <meta http-equiv="refresh" content="0; URL=niemiecki.php?>& zmienne">
  9. <?php
  10. }
Powód edycji: [strife]: [strife]: Dodanie kolorowania składni :)
Go to the top of the page
+Quote Post
strife
post 23.09.2011, 22:37:27
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


@mikiz65 - tylko lepszą praktyką jeśli już było by robienie przekierowania poprzez php, mam na myśli użycia odpowiedniego nagłówka jak (nie pamiętam dokładnie, ale chyba stosowało się nagłowek 302 w takich przypadkach hm):

  1. header("Location: niemiecki.php")


Dodatkowo jeżeli chodzi o wersję językowe to praktyka jest taka, że lepiej jest zrobić wersję językowe na podstawie adresu URL (jak napisał ktoś wyżej jest to lepsze dla wyszukiwarek)

np.
- site.com/pl/jakis-artykul
- site.com/en/some-article
itd.

A technicznie sprawa jest prosta, zmienne superglobalne w php $_GET i po krzyku.


--------------------
Go to the top of the page
+Quote Post
!*!
post 24.09.2011, 10:17:30
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Plus tzw. "przyjazne linki", aby właśnie wyglądało to tak:

Cytat
- site.com/pl/jakis-artykul
- site.com/en/some-article


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Weles
post 24.09.2011, 21:44:31
Post #9





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 7.07.2011

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


Najlepiej to wolałbym żeby język sam się dobierał do języka przeglądarki, i nie był na GET'ach, POST'ach, SES'jach czy nie wiadomo jeszcze czym..
Mam przeglądarkę po angielsku - Wczytuje mi się język po angielsku.
Jeśli nie ma języka mojej przeglądarki, to wczytuje mi domyślny, np. Angielski
A jeśli sam dobrowolnie chcę sobie zmienić język, to wybieram z listy dany język.
Tylko nie ogarniam jak to zrobić :|
Na Get'ach też by mogło być, ale nie wyobrażam sobie tego w 2x zmiennych w adresie, jak to zrobić że po kliku w daną zakładkę która ma już ustanowiony link np index.php?page=rejestracja żeby dodało język którego aktualnie używam, np. index.php?page=rejestracja&lang=pl
Go to the top of the page
+Quote Post
Potter125
post 24.09.2011, 22:24:12
Post #10





Grupa: Zarejestrowani
Postów: 35
Pomógł: 7
Dołączył: 18.02.2007

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


Tylko że z przeglądarką wygląda to ciut inaczej - jest to aplikacja okienkowa, która może korzystać z windows api i tam sobie pobierać różne lokalizację ze zmiennych systemowych.

Jeśli chodzi o twój problem, to ... najprostszym rozwiązaniem są sesje. W sesji trzymasz ID języka i później na podstawie tego manewrujesz sobie i nie musisz się martwić że po drodze możesz zgubić parametr w GET.

A jeśli sobie czegoś nie wyobrażasz/nie chcesz się nauczyć, to daj sobie spokój. Nikt Ci nie będzie pisał za darmo gotowca, bo Ty nie chcesz się nauczyć a chcesz sobie coś tam dopisać.

Go to the top of the page
+Quote Post
Weles
post 24.09.2011, 22:34:06
Post #11





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 7.07.2011

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


@UP:
Po 1. Nigdzie nie pisałem że proszę o gotowy skrypt tylko o POMYSŁ.
Po 2. To jak wyjaśnisz ten skrypt:

<script type="text/javascript">
<!--
if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;

if (language.indexOf('pl') > -1) document.location.href = 'pl';
else
document.location.href = 'en';
-->
</script>

Po 3. Teraz głównie chodzi mi o to jak zlokalizować czyiś język, bo skąd niby sesja będzie wiedzieć jaki język komuś pobrać z folderu?
Go to the top of the page
+Quote Post
potreb
post 24.09.2011, 22:39:34
Post #12





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


http://myphpsource.blogspot.com/2010/01/ph...r-language.html

Czasami warto poszukać


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

Go to the top of the page
+Quote Post
Weles
post 24.09.2011, 23:05:18
Post #13





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 7.07.2011

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


@UP:
Niezwykle mi pomogłeś!
Dzięki ci wielkie! smile.gif
Temat do zamknięcia.
Pozdrawiam.

@EDIT:
I żeby nie było, szukałem tego w necie jakiś czas czy się da w php i bez skutku, może źle pytałem google'a czy nie wiem.
Inaczej bym nie pytał bez szukania ;-)

Ten post edytował Weles 24.09.2011, 23:06:14
Go to the top of the page
+Quote Post

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: 28.04.2024 - 04:49