Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%)
|
Witam serdecznie,
Mam pewien problem nie wiem jak to rozwiązać. Otóż zrobiłem sobie tłumaczenie strony i chciałbym aby uzytkownik miał możliwość wyboru języka ( to normalne ) język ustawiam sobie za pomocą $this->getUser()->setCulture('en'); aby go zmienić muszę oczywiście podmienić en na inny, ale po tym muszę wyczyścić pamięć. Jak teraz zrobić tak by po kliknięciu użytkownik widział ten język który chce widzieć? W sumie to problemem dla mnie jest czyszczenie sama akcja(kliknięcie ) i powrót są oczywiste. Ten post edytował Micchaleq 14.02.2012, 10:39:19 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 20.03.2007 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Ja to rozwiązałem w taki sposób. W app.yml mam zdefiniowane języki:
Flagi na froncie pokazuję korzystając z komponentu:
Podam Ci jeszcze routing.yml
A widokiem się pobaw (IMG:style_emoticons/default/wink.gif) . |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%)
|
Dzięki za szybką odpowiedz.
Czy mógłbyś jeszcze do swojego komponentu dopisać komentaże co robi która linijka bo nie do końca wszystkie te instrukcje rozumiem. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 20.03.2007 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Zapoznaj się:
Changing the Culture for a User Pobaw się trochę. Jeśli Ci nie wyjdzie to napisz z czym masz problem - wtedy postaram się pomóc. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%)
|
Ok konkretne pytanie:
Dlaczego takie coś mi nie działa ? Czy da się to tak zapisać jak niżej? ( czyszcze cache i ustawiam język ? )
w layout mam
PS: Jeszcze jedno pytanko bo zauważyłem, że ustawiająć w executeIndex culture nie muszę czyścić zadnego cache. Więc czy wystarczy przez te execute/english przekazać do adresu en i odczytać go w indexie? i czy to zadziała na wszystkie strony. Ponieważ nie chce sobie utrudniać jak na razie i chce by dowolnie ( bez względu na jakiej podstronie znajduje się użytkownik ) mogl wybrać jezyk i przerzuciło go na strone główną. Dobra na pytania powyżej odpowiedziałem sobie sam teraz ostatnie pytanie: Czy da się jakoś zautomatyzować dodawanie tego języka w adresie w prosty sposób? tzn aktualnie każdy moduł musiałbym sobie wywoływać z echo url_for(przykladowy/edit?lang= . $lang . &slug = . $id) pzy czym w kazdym module bede musiał dodawać :
Ten post edytował Micchaleq 14.02.2012, 13:30:41 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 7 Dołączył: 6.09.2011 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Nigdy się z tłumaczeniem nie bawiłem... ale może da się przechowywać język w cookie... (IMG:style_emoticons/default/smile.gif) Potem napisz sobie filtr, który będzie ustawiał język i tyle:)
Ten post edytował Valantir 14.02.2012, 15:59:48 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%)
|
Witam,
niestety nie pisałem jeszcze takich filtrów. Czy możesz po krótce napisać mi co i jak albo jakiś link do artykulu bo to co znajduje nie wiele mi wyjaśnia. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 7 Dołączył: 6.09.2011 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Pliki umieszczasz w:
nazwa_aplikacji->config->filters.yml Kod rendering: ~ remember_me: class: sfGuardRememberMeFilter security: ~ nazwa_filtra_jaka_chcesz_wstawic: class: klasa_filtra # insert your own filters here cache: ~ execution: ~ nazwa_aplikacji->lib->twoja_nazwa_pliku_zawierajacego_klase Kod <?php class nazwa_filtra extends sfFilter { public function execute ($filterChain) { //Treść filtra czyli w Twoim wypadku tworzenie sesji jeżeli takowa nie istnieje i jej ustawienie. } } ?> Oczywiście mówię-nie pracowałem nigdy z tłumaczeniami więc... to tylko propozycja:) |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 14:45 |