Szótár elemeinek fordítása

KaoszNagymaester képe

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]

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
szantog képe

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.

0
0

----
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.

KaoszNagymaester képe

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.

0
0
szantog képe

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.

0
0

----
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.

KaoszNagymaester képe

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á.

0
0
KaoszNagymaester képe

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á?

0
0
szantog képe

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.

0
0

----
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.

KaoszNagymaester képe

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]

0
0
KaoszNagymaester képe

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?

0
0
szantog képe

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.

0
0

----
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.

KaoszNagymaester képe

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'))

0
0