Sziasztok!
Azt szeretném megoldani, hogy nyelv választáskor a tartalomban (node) megjelenített szótár elemek is változzanak az adott nyelvre.
- Feltettem az i18n modult.
- A tartalomtípusoknál a megfelelő típusban beállítottam, hogy a Több nyelv támogatása: engedélyezett.
- A szótárban a fordítás módja: Kifejezések honosítása
- A fordítás menüpontban megtaláltam az adott szótár elemit, "Beépített felület" alatt.
- Létrehoztam a hozzá tartozó fordítást.
Eztán úgy gondolom, hogy ha változtatom a nyelvet, akkor a tartalomban is változnia kéne a nyelvnek. Valamit kihagyok, vagy nem jól csinálok?
A szótár elemeit egy for ciklusban iratom ki, ezzel a változóval:
$field_tax_szolgaltatasok[$db][view]
Drupal verzió:
Fórum:
1. Azt nem tudom, hogy
1. Azt nem tudom, hogy csináltad, de az adott szótár elemeit nem a beépített felület alatt, hanem a Taxonómia alatt kell megtalálnod.
2. Azt sem értem, miért ez a for ciklusos kavarás, de ha saját magad íratod ki és localizáltan akarod a termeket, akkor a i18ntaxonomy_localize_terms($terms, $fields = array('name') függvényt is használnod kell.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
1. És az miért lehet, hogy
1. És az miért lehet, hogy nálam a szótár elemei a beépített felület alatt vannak a felület fordítása menüpontban? Azzal lehet összefüggésben, hogy a szótár mező amit felvettem, Content Taxonomy mező típusú?
2. A szótár elemeit felsorolásszerűen szeretném kiíratni, úgy, hogy minden elem elé egy spec. karaktert tegyek. Pl. gondolatjel. Egyben kiíratásnál (print $field_tax_szolgaltatasok_rendered) ezt nem tudtam megoldani.
Viszont kipróbáltam így kiírni, de így sem a fordított elemek jelennek meg.
Van egy tippem, mi lehet a
Van egy tippem, mi lehet a szívás.
Te lefordítottad a Content Taxonomy mezőket, de a taxonomy->terms azt nem. Ennek az az oka, hogyha a termek létrehozása után állítod be a többnyelvűséget, akkor ezek a stringek még nem léteznek a lefordítandó szövegek listájában, aminek esetedben a Taxonomómia, és nem a Beépített felületen kell megjelenni.
Ilyenkor elmész a admin/build/translate/refresh (és ezt most nem tudom, hogy az alap i18n része, vagy kell hozzá még más is..) és a Szövegcsoport kiválasztásánál kijelölöd a taxonómiát, és frissítesz.
Ekkor be fogja emelni a korábbi stringeket is.
Te most nem a Content taxonomy mezőket írod ki, hanem a rendes taxonómia táblát, és ezért nincs fordítás.
Jah, és egy kötőjel miatt nem érdemes széttúrni a renderelést, simán meg lehet csinálni css-el, vagy akár tpl.php-val is.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Közben meg is adtad a
Közben meg is adtad a megfejtést, köszönöm szépen, megint kisegítettél a bajból. :)
Működik.
A saját kiírásnak még az is oka volt, hogy minden egyes mező fejlécét (címét) más háttérrel szeretném megjeleníteni, és css-ben ezt nem tudtam megoldani, mivel ott csak annyi van, hogy .field-label. Lehet, hogy erre is van megoldás, csak nem jöttem rá.
Létrehoztam egy új szótárat,
Létrehoztam egy új szótárat, új elemekkel, majd csináltam belőle egy Content Taxonomy mezőt, megcsináltam a fordítást és működik. a Taxonómia alatt vannak az elemek.
Akkor már csak az a kérdésem, hogy kerültek a meglévő szótár elemeim a beépített felület alá, és hogy tudnám visszavarázsolni a Taxonómia alá?
Ebben nem vagyok biztos, mert
Ebben nem vagyok biztos, mert Content taxonomyval nem kezeltem több nyelven taxonómiát, de a ct logikájából kiindulva egyszer eltárolódik a ct mezőjében, ez az, ami a beépített felületnél jelentkezik, és ha be van x-elve az érték mentése az alap taxonómia táblába is, akkor lesz a beépített felületen kívül a taxonómia csoportban is benne.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Még azt meg szertném
Még azt meg szertném kérdezni, hogy ezt a függvényt hogy is kell használnom?
i18ntaxonomy_localize_terms($terms, $fields = array('name')
amikor ezzel írom ki: $field_tax_szolgaltatasok[$db][view]
Idáig jutottam, így
Idáig jutottam, így működik:
print i18ntaxonomy_localize_terms( $field_tax_szolgaltatasok[$db][view]) . '
';
Az egyetlen hiba ez a warning:
warning: Invalid argument supplied for foreach() in webpage/html/sites/all/modules/i18n/i18ntaxonomy/i18ntaxonomy.module on line 783.
A 783-as sor: foreach ($terms as $index => $term) {
Mit kéne még megadnom a fenti függvénybe?
Kellene az egész kód, ami a
Kellene az egész kód, ami a kiíratást végzi, ugyanis az i18ntaxonomy_localize_terms a tartalomhoz kapcsolódó termek tömbjén dolgozik. Szóval először fel kell dolgoznod vele a tömböt, majd a lokalizált tömböt kezdeni ciklusban kiíratni/renderelni.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Rászántam magam és
Rászántam magam és megoldottam a _rendered kiíratássál mindent. Így a kód is egyszerűbb lett. :)
De azért kíváncsi vagyok, mi lett volna a megoldás:
Ez a kód, amivel kiírom a szótár elemeit:
$tomb_db = count($field_tax_szolgaltatasok);
if (strlen($field_tax_szolgaltatasok[0][view]) > 0) {
for($db=0;$db<$tomb_db;$db++) {
print '¤ ' . $field_tax_szolgaltatasok[$db][view];
}
}
És a print részt kéne ezzel módosítani:
i18ntaxonomy_localize_terms($terms, $fields = array('name'))