I18 modul header váltása

kivancsi47 képe

Sziasztok!

I18-al és Garland sminkkel küzdök. Van arra lehetőség hogy nyelv váltáskor a header is változzon?

Mondjuk alapból olyan a smink hogy oldalváltáskor ugrik a header csak én mindössze egy jpg képet tettem a megfelelő könyvtárba, tehát valahogy csak meglehetne oldani hogy nyelv váltáskor is ugorjon a header képe és az oldal címe.

Az emberben felmerül a kérdés hogy vajon nincs-e véletlenül valaki akihez elsétálhatnék laptoppal a kezemben és rám szánna mondjuk egy órát hogy ne a fórumot fárasszam butábbnál butább kérdésekkel. Természetesen nem lennék hálátlan....:)

5.08 as Drupálon futna a dolog.

Köszi

Drupal verzió: 
crt képe

Szia.

A kulcsszó a Multilingual variables. A settings.php fájlban beállítasz egy ilyen változót:

$conf['i18n_variables'] = array(
  // Site configuration
  'site_name',
  'site_slogan',
  'site_mission',
  'site_offline_message',
  // 'site_404',
  // 'site_403',
  // Theme settings. This is an 'all or nothing' for each theme
  // This is for 'garland' theme, for other theme it would be 'theme_[themename]_settings'
  // 'theme_garland_settings',
  'theme_sminkem_settings',
  'theme_settings',
  'logo_path',
  );

Ezek után az ebben a tömbben megadott változókat külön-külön be tudod állítani minden nyelvre, pl. a sminkek beállításainál a logó útvonalát, illetve a webhely beállításainál a nevet, missziót, stb.

Miért nem 5.12?

Üdv: Zoli

0
0
kivancsi47 képe

Az alábbi bekezdést olvastam a I18 install.txt állományban:

$conf['i18n_languages'] = array(
'site_default' => 'en', // Default language
'name' => array('es' => "Spanish", 'en' => 'English'), // English names for languages
'native' => array('es' => "Español", 'en' => 'English'), // Native names
'enabled' => array('es' => TRUE, 'en' => TRUE), // Languages enabled
// 'rtl' => array('es' => TRUE), // This only if Spanish were an RTL language, which is not
);

Utána a következő kódot illesztettem a settings.php be.:

$conf['i18n_variables']= array(
'site_name' => array('en' => "angol", 'hu' => 'magyar'),
'theme_default' => 'minnelli',
'anonymous' => 'Visitor',
);

És mégsem megy, csak hibaüzenetet kapok....

warning: Illegal offset type in isset or empty in /srv/hosts/www.labortechnika.hu/teszt/modules/i18n/i18n.module on line 1045.

Ha az angolul szót dupla macskaköröm helyett szimplába teszem, akkor is.

Üdv

0
0
aboros képe

egy $language nevű globálisban van az éppen aktuális nyelv kódja. (string)

a page.tpl.php -ban, ahol a header van, oda bele kéne nyomni még ezt a kódot is valahogyan.
kb így:

<?php global $language; ?>
<div id="header-<?php print $language; ?>">
...
...
</div>

ezután css -ből például így célozhatod a magyar fejlécedet:

#header-hu {
}

nem emlékszem pontosan, hogy tényleg így hívják e ezt a változót, de az 5.x - 6.x sminkek különbségénél azt írja:

The $language variable accessible to PHPTemplate themes is now not only a simple string holding the language code of the current page viewed, but an object representing...

ebből én arra következtetek, hogy 5.x -ben is $language -nek hívják, csak nem objektum, hanem string.

0
0

-
clear: both;

crt képe

Ezzel az oldal címe nem fog megváltozni, csak a háttere. Szerintem elég jó dolog a multilingual variables, pont erre van kitalálva.

Üdv: Zoli

0
0
kivancsi47 képe

>Ezzel az oldal címe nem fog megváltozni, csak a háttere. Szerintem elég jó dolog a multilingual >variables, pont erre van kitalálva.

Valóban jó dolog csak nem működik vagy lehet hogy nekem nem sikerül használnom.....

A másik megoldás sem működik mivel 5-ös Drupálban állitólag nincs languages változó.....

Üdv

0
0
crt képe

Amíg nem írod le, hogy pontosan mi nem működik, nem hiszem, hogy tudnánk segíteni. Ha belerakod a settings.php fájlba a kiegészítést, akkor az ott felsorolt beviteli mezők mellett megjelenik a "This is a multilingual variable." felirat? Ha igen, akkor nyelvet váltasz és beírod az ahhoz a nyelvhez tartozó szöveget.

A másik megoldás esetén nem $languages, hanem $language a változó neve.

Üdv: Zoli

0
0
kivancsi47 képe

>Ha belerakod a settings.php fájlba a kiegészítést, akkor az ott felsorolt beviteli mezők mellett >megjelenik a "This is a multilingual variable." felirat? Ha igen, akkor nyelvet váltasz és beírod az >ahhoz a nyelvhez tartozó szöveget.

Már megy. Túl egyszerű volt a megoldás.

Üdv

0
0
kivancsi47 képe

Sziasztok!

Elszóltam hogy túl egyszerű.....

Tehát 5 ös drupálban addig ment a dolog hogy csak az hiányzott hogy azonnal váltson tartalmat is amikor a nyelv választó zászlócskára kattintok.....

Pedig az Interface language depends on content van kihjelölve.

A $language valahogy nem sikerült elővarázsolni, viszont találtam egy i18n_get_lang() fügvényt ami bevált.

Valahogy így használtam:

    $current = i18n_get_lang();

 if ($current=="hu") :

Gondoltam, nem borzolom a magam és mások idegrendszerét, ezért telepítettem a 6.6-os drupált.

Itt is jól elvoltam a fentebbi fügvényemmel, szuperül működött minden Mozillában, csak hát elindítottam az Explorert..... 6-ost is és 7-est is......

És nem működik se a fentebbi fügvény, se a Multilingual variables.

Egyébként Marinelli sminket kalapálok.....

Üdv

0
0
Geva képe

köszönöm, köszönöm, köszönöm :-)
nekem a logo cseréjét kellett megoldanom a nyelv-váltásnál, mivel a logoban van a site neve és sloganja is, így nyelvenként más logo kell.
aboros javaslata hozta a legegyszerűbb megoldást, leírom a részleteket, hátha valakit kisegít még hasonló feladat megoldásában:

- a page.tpl.php (drupal 6.x)-ba az alábbi kódot tettem:

<div class="logo<?php print $language->language; ?>"> 
<a href="<?php print $front_page ?>" title="<?php print t('Your slogan goes here!') ?>"> <img src="<?php print $front_page ?>sites/all/themes/..../images/space.gif" alt="<?php print t('Your slogan goes here!') ?>" border="0" width="460px" height="140px" /></a>
</div> <!-- logo -->

- tehát egy olyan div-t irattam a logo számára, amelynek a neve vagy logohu vagy logoen pl. magyar vagy angol nyelv esetén. A $language változó object ezért van a kódban a $language->language

a css-ben megformáztam mind a logohu-t mindpedig a logoen-t:

.logohu {
	background: transparent url('images/logo-hu.png') no-repeat left top;
	height:140px;
	width:460px;
}
.logoen {
	background: transparent url('images/logo-en.png') no-repeat left top;
	height:140px;
	width:460px;
}

- a page.tpl.php-ban egy üres gif képet iratok ki azért, hogy az egér rámozgatásakor meg tudjam jeleníteni a honlap slogenjét, s ez a kép van linkként beállítva. A Your slogan goes here! szöveg természetesen belekerül a fordításba,

köszönöm a segítséget

0
0
pp képe

Miért nem a $site_slongan változó értékét íratod ide(Your slogan...)?

pp

0
0