![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) ![]() ![]() |
Ostatni temat jaki przeczytałem to ten:
http://forum.php.pl/index.php?showtopic=143153 A kilka już przeszukałem (wraz z sub-tematami) jednak nie znalazłem nic co spełni mój problem (bądź za słabo JS umiem bo nadal jestem w nauce podstaw). Chce zmieniać język strony zależnie od wybranego: Jednak nie wiem jak zrobić funkcję JS która by pobierała obecny adres, i jeśli niema lang to doda domyślny czyli ?lang=en. A jeśli jest to zamieni na wybrany, proszę o wskazówki (zastosuję switch). Ten post edytował ZaXaZ 6.09.2014, 17:12:20 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Chcesz aby podczas nawigacji po stronie cały czas trzymać w URL język?
Może lepiej przechować w ciastku lub sesji. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) ![]() ![]() |
Chcesz aby podczas nawigacji po stronie cały czas trzymać w URL język? Może lepiej przechować w ciastku lub sesji. Z jednej strony oczywiscie ciastka lepsze ale z drugiej jak ktoś komuś poda link to będzie musiał(a) sam(a) zmienić.. Ewentualnie ciastka dodam kiedyś jak już bym bardziej umiał js itp, ale bardzo ważne żeby był parametr lang w linku tak jak wyżej opisałem. Ten post edytował ZaXaZ 6.09.2014, 17:20:58 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem.
Ale w przypadku bez wersji językowej w URL możesz po prostu ustawiać język domyślny strony. Ewentualnie rozwiązaniem jest badanie $_SERVER['HTTP_ACCEPT_LANGUAGE'] i wedle tego ustawianie języka, kiedy nie jest jawnie podany. |
|
|
![]()
Post
#5
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chcesz aby podczas nawigacji po stronie cały czas trzymać w URL język? Ma to niebanalne znaczenie z punktu widzenia SEO i użyteczności. Ale w przypadku bez wersji językowej w URL możesz po prostu ustawiać język domyślny strony. Ewentualnie rozwiązaniem jest badanie $_SERVER['HTTP_ACCEPT_LANGUAGE'] i wedle tego ustawianie języka, kiedy nie jest jawnie podany. Lepiej język domyślny niech będzie w URLu. Co w przypadku robotów indeksujących? Ma zaindeksować tylko jeden język? @OP Ale dlaczego Ty sobie tego nie sprawdzisz po stronie backendu? To jest jakiś CMS czy coś własnego? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ma to niebanalne znaczenie z punktu widzenia SEO i użyteczności. Tak, ale nie w takiej postaci, tzn. parametru w URL. Zalecane przez Google sposoby to: trzymanie podstron pod osobnymi domenami narodowymi, subdomeny językowe, albo trzymanie w ścieżce URL, np.: domena.pl/en/ No i rzecz ważna, meta language. Lepiej język domyślny niech będzie w URLu. Co w przypadku robotów indeksujących? Ma zaindeksować tylko jeden język? I tak gdzieś na stronie, jak domniemam, będzie przełącznik języków. |
|
|
![]()
Post
#7
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale nie w takiej postaci, tzn. parametru w URL. Zalecane przez Google sposoby to: trzymanie podstron pod osobnymi domenami narodowymi, subdomeny językowe, albo trzymanie w ścieżce URL, np.: domena.pl/en/ Te /en/ z URL to jest właśnie jego parametr i mnie właśnie o to chodziło. Ja nie mówiłem o $_GET (bo z tym Ci się to zapewne pomyliło). I tak gdzieś na stronie, jak domniemam, będzie przełącznik języków. A jak nie? I w dodatku zapomni ustawić link: ? Jeśli różne wersje językowa mają korzystać z tej samej domeny, to zdecydowanie lepiej jest trzymać język w URLu niż jakieś dziwne wynalazki jakie zaproponowałeś (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Te /en/ z URL to jest właśnie jego parametr i mnie właśnie o to chodziło. Ja nie mówiłem o $_GET (bo z tym Ci się to zapewne pomyliło). Nie pomyliło mi się. Przykład kolegi ZaXaZ'a dotyczy parametru w query string. (Gwoli ścisłości /en/ również może się znaleźć w $_GET) A jak nie? Nie za bardzo wyobrażam sobie taką sytuację. Jakby wtedy wyglądała budowa wewnętrznych linków, zawsze z domyślnym językiem w URL? Jak się wtedy dostać na stronę z innym językiem, tylko z linków propagowanych poza stroną? Jeśli różne wersje językowa mają korzystać z tej samej domeny, to zdecydowanie lepiej jest trzymać język w URLu niż jakieś dziwne wynalazki jakie zaproponowałeś (IMG:style_emoticons/default/wink.gif) Proponuję Ci się zapoznać z wytycznymi Google: https://support.google.com/webmasters/answer/182192?hl=en#1 Ten post edytował trueblue 6.09.2014, 18:31:00 |
|
|
![]()
Post
#9
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie pomyliło mi się. Przykład kolegi ZaXaZ'a dotyczy parametru w query string. (Gwoli ścisłości /en/ również może się znaleźć w $_GET) Tylko, że ja nie o tym mówiłem (a przy okazji źle się wyraziłem). Nie parametr, tylko katalog w URLu, segment, part, whatever (IMG:style_emoticons/default/smile.gif) Nie za bardzo wyobrażam sobie taką sytuację. Jakby wtedy wyglądała budowa wewnętrznych linków, zawsze z domyślnym językiem w URL? Jak się wtedy dostać na stronę z innym językiem, tylko z linków propagowanych poza stroną? Nie wiem, to w ogóle jest abstrakcja. Proponuję Ci się zapoznać z wytycznymi Google: https://support.google.com/webmasters/answer/182192?hl=en#1 Ja to doskonale znam, a wszystko zaczęło się od Twojej głupotki: Chcesz aby podczas nawigacji po stronie cały czas trzymać w URL język? Może lepiej przechować w ciastku lub sesji. A zastosowanie /en/ jest o wiele lepsze niż te Twoje sesne niż ciastko w przypadku tej samej domeny (jeśli nie chce z jakichś powodów subdomen osobnych - ja np. osobiście wolę trzymać język jako katalog w url: /en/, /it/, /de/). |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 6 Dołączył: 19.12.2010 Skąd: Krzyżanowice Ostrzeżenie: (0%) ![]() ![]() |
Może nie na temat, a może się przyda: ja obsługuję 2 języki tak, że mam zarejestrowane 2 domeny, aplikacja przygotowuje treść w zależności od SERVER_NAME korzystając z translatora Zend.
Czasem nazwa domeny nie jest uniwersalna i może Niemcy nie chcą mieć /cars/de? Ten post edytował Janusz1200 6.09.2014, 19:07:13 |
|
|
![]()
Post
#11
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale jakby nie było, ta moja wypowiedź nie jest zbyt mądra. Tak jak moje użycie parametr zamiast katalog, part (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 6 Dołączył: 19.12.2010 Skąd: Krzyżanowice Ostrzeżenie: (0%) ![]() ![]() |
@Pedro, co to jest slug?
Ja mam tak (aplikację piszę po, powiedzmy (IMG:style_emoticons/default/smile.gif) , angielsku, a klient widzi ją po hiszpańsku albo portugalsku, zależnie od domeny: <h2><?php echo $this->translate('Our recommendation for your project');?></h2> Z tym /cars/de, to chodziło mi o adres strony, żeby Niemiec nie pisał: http://best_cars/de tylko http://wunder_autos/ a Anglik: http://best_cars/ Nie widzę żadnych problemów z 2 domenami [google chyba też nie, ale mogę się mylić], daj nam tylko wielu klientów... |
|
|
![]()
Post
#15
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Pedro, co to jest slug? http://en.wikipedia.org/wiki/Semantic_URL Ja mam tak (aplikację piszę po, powiedzmy (IMG:style_emoticons/default/smile.gif) , angielsku, a klient widzi ją po hiszpańsku albo portugalsku, zależnie od domeny: <h2><?php echo $this->translate('Our recommendation for your project');?></h2> Z tym /cars/de, to chodziło mi o adres strony, żeby Niemiec nie pisał: http://best_cars/de tylko http://wunder_autos/ a Anglik: http://best_cars/ Nie widzę żadnych problemów z 2 domenami [google chyba też nie, ale mogę się mylić], daj nam tylko wielu klientów... Dwie domeny mogą być problematyczne w kwestii orgainzacji (domeny, certifikaty - wszystko jest zdublowane) - tylko tyle. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 6 Dołączył: 19.12.2010 Skąd: Krzyżanowice Ostrzeżenie: (0%) ![]() ![]() |
@Pedro, thx
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) ![]() ![]() |
Cytat(pedro84) Ale dlaczego Ty sobie tego nie sprawdzisz po stronie backendu? To jest jakiś CMS czy coś własnego? Będzie ale chce zredukować obciążenie servera jak tylko się da. Czyli co sie da w JS reszta jak sie nieda lub niema ktos js to w <noscript> Strona da się krótko opisać: (60% strony... Według mnie) to bedzie strona główna zawierająca newsy z gry dla której chce napisać stronę fanowską, reszta to będzie opis itemów, EQ i potworów i jakieś urozmaicenie typu shotbox. Bardzo bym chciał rankingi graczy ale chyba ciężko o API a jak ktoś taki jak ja ma konkurować z kilkoma stronami fanowskimi i to z różnych krajów to (...) nic więcej mi się nie chce. Ani nie mam pomysłu, i nie wiem jak daleko podołam, to co wymieniłem dam radę. Ps. Fajnie jakby ktoś miał pomysł do tej strony bazując na wymienionych informacjach czego być może brak (IMG:style_emoticons/default/wink.gif) . Ważne: strona będzie na darmowym serverze, nawet jakby było mnie stać (a mnie nie stać) to nie ma co chyba inwestować w projekty na których tylko się wypromuje a nic nie zarobie poza cennym doświadczeniem przy tworzeniu strony. Cytat(trueblue) Zalecane przez Google sposoby to: trzymanie podstron pod osobnymi domenami narodowymi, subdomeny językowe, albo trzymanie w ścieżce URL, np.: domena.pl/en/ No i rzecz ważna, meta language. (...) I tak gdzieś na stronie, jak domniemam, będzie przełącznik języków. Strona będzie domyślnie odpalana w języku angielskim tak samo z meta-tagiem, choć ja piszę w html 5 i robię poprostu '<html lang="en">' mam nadzieję że to znaczy to samo co tagi meta. Na stronie będzie możliwość zmiany sposobem tym co pokazałem na samej górze, przez co otworzyłem ten temat. Nie mam kompletnie "takiego większego" doswiadczenia w stronach internetowych więc nie wiem co zrobić ale to co opisałem chyba dobre będzie. A folderów nie będzie raczej tak jak "google zaleca" będzie poprostu index.php i katalog /lang/ zawierający odpowiednie tłumaczenia do najczęściej używanych rzeczy typu "menu", "kontakt" itd większe teksty będą w bazie. ----- Konutnuując pytanie, kod JS do zmiany języka z strony którą się inspiruje wygląda tak:
I html Tylko jeszcze nie doszedlem w nauce do window.location ani petli z jakims "in" wiec pytam sie forum bo moze da sie jakos banalniej po stronie przegladarki. Pomijam już te wyjątki try-catch, w tym kodzie wogole ich nie rozumiem ale to pewnie kwestia kilku rodzialow kursu do przodu. Ten post edytował ZaXaZ 7.09.2014, 02:23:58 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W kodzie brakuje jeszcze funkcji GetParameter.
Jeśli potrzebujesz wyłuskać i zmienić jeden parametr, to chyba tak będzie prościej:
Nie jest to doskonałe rozwiązanie, bo np. przy braku lang w URL nie uwzględnia możliwości istnienia hashu (#), ale wydaje mi się, że w Twoim przypadku sprawdzi się bez problemów. Ten post edytował trueblue 7.09.2014, 07:51:47 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) ![]() ![]() |
W kodzie brakuje jeszcze funkcji GetParameter. Jeśli potrzebujesz wyłuskać i zmienić jeden parametr, to chyba tak będzie prościej:
Nie jest to doskonałe rozwiązanie, bo np. przy braku lang w URL nie uwzględnia możliwości istnienia hashu (#), ale wydaje mi się, że w Twoim przypadku sprawdzi się bez problemów. Dzięki, działa. A jak zrobić żeby zmieniło jeszcze docelowy <option> na wybrany sam pokominuje jako praktyki. Poducze się jeszcze do końca JS i spróbuje na podstawie twojego + tamtego kodu napisać jedna funkcje, Co bym przyokazji obalił problem z #. a tamta funkcja wyglada tak:
A jak można przechować ?lang=xx lub &lang=xx przechodząc pod inny odnośnik na naszej stronie? Ten post edytował ZaXaZ 7.09.2014, 09:58:13 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Powinieneś to robić po stronie PHP, tzn. generować odpowiednie linki uwzględniając zawartość $_GET['lang'] lub jej brak.
Zresztą podobnie można postąpić z wybranym językiem w liście (wdrukować "selected" na podstawie powyższej zmiennej). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 03:08 |