Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Mapowanie linków dla wielu języków
snipe
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

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


Witam,

Jestem w tracie przygotowywania strony wielojęzycznej. Niestety stanąłem na wydaje się dość prozaicznym problemie, mianowicie w gotowych szablonach Smarty mam linki które są standardowo w języku angielskim i muszą być zmapowane na język polski, niemiecki, etc. W routingu mam przygotowane regexpy np.

  1. ...
  2. 'url' => array(
  3. 'pl' => '^wiadomosci/pokaz/([0-9]+)/?$',
  4. 'en' => '^news/show/([0-9]+)/?$',
  5. ),
  6. 'controller' => 'news',
  7. 'action' => 'show_news',
  8. 'params' => 'id=$1',
  9. ),
  10. ...


I moje pytanie brzmi jak najprościej można przepisać linki z jednego formatu na drugi, czyli w podanym przypadku np. z news/show/123 => wiadomosci/pokaz/123

Oczywiście linki mogą być różne i nie koniecznie z parametrem na końcu winksmiley.jpg Może da się jakoś podmienić wartości w regexpie względem ich występowania, np. zamiast tego ([0-9]+) chciałbym 123.

Pomóżcie bo główkuję nad tym już 3 dzień tongue.gif


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Najłatwiej jest gdy mechanizm routingu pozwala na mapowanie adresów w obie strony, tj.: odczytać parametry żądania i przerobić je na odpowiednie dla skryptu dane (to co już masz) oraz na podstawie danych utworzyć odpowiedni link.

W użyciu może to wyglądać jakoś tak:
  1. $router->generate('show_news', array('id' => 123)); // /wiadomosci/pokaz/123/
Jest to bardzo proste do wykonania tylko w tworzonych wyrażeniach musisz używać "nazywach podsekcji", czyli nie ...pokaz/(\d+)/, a ...pokaz/(?<id>\d+)/.
Go to the top of the page
+Quote Post
snipe
post
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

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


Okej, załóżmy że wykorzystam nazwane podsekcje winksmiley.jpg jak mogę podmienić ich wartość ? Jakiś przykład kodziku? smile.gif


--------------------
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 Aktualny czas: 21.08.2025 - 23:06