Wersje językowe
Strona 1 z 2 12 OstatniOstatni
Wyniki 1 do 10 z 18

Temat: Wersje językowe

  1. #1
    Wyjadacz nexus246 awatar
    Dołączył
    23-09-2005
    Wpisy
    664
    Punkty
    20

    Domyślny Wersje językowe

    Rozwiązanie wykorzystałem na niewielkiej stronie (docelowo szacuję około 20-30 pozycji w menu) z braku gotowca i z niechęci do walk z mambelfiszem który podobno nie działa z Joomlą.

    Na początku templatki piszemy
    Kod PHP:
    session_start();
    //kody języków
    $languages = array("pl","de","en"); 
    //zmienna lang jest ustawiona i odpowiada jednemu z kodów
    if(!empty($_GET['lang']) && in_array($_GET['lang'],$languages))
    {
        
    $_SESSION['lang'] = $_GET['lang']; 
    }
    //ustawienie domyślne za pierwszym razem
    elseif(empty($_SESSION['lang']))

        
    $_SESSION['lang']="pl";

    Do pozycji modułów dodajemy odpowiedni kod języka, czyli dla left wychodzi left_pl,left_en,left_de (3 języki zgodnie z powyższym przykładem)

    Moduły ładujemy tak:
    Kod PHP:
    mosLoadModules('left_'.$_SESSION['lang']); 
    Dla każdego języka tworzymy wg uznania sekcje, kategorie, artykuły, menu.
    Po stworzeniu menu sprawdzamy jaki jest link w serwisie to "strony głównej" wybranego języka i umieszczamy odpowiedni kod w templatce.

    Tak to wyglądało w moim przypadku:
    Kod PHP:
    <img src="<?php echo $mosConfig_live_site?>/templates/mcg/images/lang-<?php echo $_SESSION['lang'];?>.gif"
     align="right" usemap="#lang" border="0" />

    <map name="lang">
    <?php 
     
    switch($_SESSION['lang'])
     {
      case 
    "pl" 
       echo 
    '<area shape="rect" coords="2,4,22,18" href="'.$mosConfig_live_site.'/index.php?option=com_content&amp;task=blogcategory&amp;id=27&amp;lang=de" target="_self">';
       echo 
    '<area shape="rect" coords="23,4,44,18" href="'.$mosConfig_live_site.'/index.php?option=com_content&amp;task=blogcategory&amp;id=28&amp;lang=en" target="_self">';
       break;
      case 
    "de" :
       echo 
    '<area shape="rect" coords="2,4,22,18" href="'.$mosConfig_live_site.'/index.php?lang=pl" target="_self">';
       echo 
    '<area shape="rect" coords="23,4,44,18" href="'.$mosConfig_live_site.'/index.php?option=com_content&amp;task=blogcategory&amp;id=28&amp;lang=en" target="_self">';
       break;
      case 
    "en" :
       echo 
    '<area shape="rect" coords="2,4,22,18" href="'.$mosConfig_live_site.'/index.php?option=com_content&amp;task=blogcategory&amp;id=27&amp;lang=de" target="_self">';
       echo 
    '<area shape="rect" coords="23,4,44,18" href="'.$mosConfig_live_site.'/index.php?lang=pl" target="_self">';
      break;    
     } 
    ?>
    </map>
    Jak widać zależnie od ustawienia zm.sesyjnej lang ładuje się odpowiedni obrazek do którego podpięta jest mapa z likami do pozostałych języków. Język polski jest domyślny więc linkuje do index.php, natomiast angielski i niemiecki do konkretnych podstron.

    Język da się zmienić tylko poprzez przekazanie w linku zmiennej lang.

    Aha:wady
    Konieczność powielania komponentów - np.mam dla każdego języka inny komponent LxMenu.
    Za zaletę uważam możliwość zrobienia całkowicie innego pod względem zawartości serwisu dla różnych języków.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Bywalec
    Dołączył
    22-10-2005
    Wpisy
    109
    Punkty
    12

    Domyślny

    A kodowanie? Przy UTF-8 nie byłoby problemów, ale najnowsza wersja Joomli jest w ISO-2. Czy nie będzie to przeszkadzało w uzyskaniu niemieckich umlautów?

  4. #3
    Wyjadacz nexus246 awatar
    Dołączył
    23-09-2005
    Wpisy
    664
    Punkty
    20

    Domyślny

    Racja, nie pomyślałem o tym.....
    Generalnie kodowanie albo mozna ustawic w templatce albo sie pobiera z pliku jezykowego więc w tym przypadku chyba bezpieczniej byłoby ustawić wszędzie na UTF8.

  5. #4
    Bywalec
    Dołączył
    22-10-2005
    Wpisy
    109
    Punkty
    12

    Domyślny

    A tak wogóle to nie prościej byłoby w trzech podkatalogach zainstalować trzy instancje Joomli? Adres byłby wtedy www.mojadomena.pl/pl/ bądź .../de/ albo też .../en/ ? No chyba że chcesz się pobawić... ;-)

  6. #5
    Wyjadacz nexus246 awatar
    Dołączył
    23-09-2005
    Wpisy
    664
    Punkty
    20

    Domyślny

    Takie rozwiązanie też stosowałem, faktycznie jest prostsze jeśli chodzi o instalacje ale.... Masz wtedy 3 panele administracyjne i p.Krysia się gubi a tak ma wszystko w jednym panelu

    Ja też wolę w jednym, torchę nakładu pracy na początku a potem jest wygodnie.

  7. #6
    Debiutant
    Dołączył
    30-11-2005
    Wpisy
    1
    Punkty
    10

    Domyślny

    Do pozycji modułów dodajemy odpowiedni kod języka, czyli dla left wychodzi left_pl,left_en,left_de (3 języki zgodnie z powyższym przykładem)
    Jak to zrobić? Jak dodać nowe pozycje modułów w Joomla 1.0.4 ???

  8. #7
    Wyjadacz nexus246 awatar
    Dołączył
    23-09-2005
    Wpisy
    664
    Punkty
    20

    Domyślny

    W panelu adm. Site->Template Manager->Module Positions

  9. #8
    Bywalec
    Dołączył
    13-10-2005
    Wpisy
    125
    Punkty
    17

    Domyślny

    A mozesz gdzies pokazac jak to dzial w praktyce

  10. #9
    Wyjadacz nexus246 awatar
    Dołączył
    23-09-2005
    Wpisy
    664
    Punkty
    20

    Domyślny

    spoks, jak w koncu skoncze ta strone to wrzuce adres.... o ile w miedzyczasie nie pojawi sie jakis stable komponent ;)

  11. #10
    Wyjadacz magic awatar
    Dołączył
    19-09-2005
    Wpisy
    679
    Punkty
    39

    Domyślny

    Ostatnia wersja MambelFish'a jest dość stabilna. Jedyny problem to parę niezgodności z Joomla.
    Z tego co wiem, to zostały one pokonane przez zainteresowanych - poprzez drobne poprawki do plików core Joomla. Te poprawki są opublikowane. Zainteresowanym polecam wątki tutaj: http://forum.joomla.org/index.php/board,123.0.html

Strona 1 z 2 12 OstatniOstatni

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •