Tartalomfordítás automatikusan kitöltött mezőkkel (i18n)

makgab képe

Hi!

Egy tartalmat (saját node type) ha többnyelvűsíteni (i18n) szeretne a felhasználó, akkor megoldható, hogy bizonyos mezők automatikusan feltöltődjenek fordításkor?
Konkrétan pl. van egy akarmi "node type", amit a felhasználó többnyelvűsít. Megvan a magyar változat és elkészíti az angol változatot, de 1-2 mezőt meg kell hagyni a magyarból egy az egyben, ill. kalkulálni:
Magyar:
-------
title: Akarmi #1 magyar
body: Leírás...
ár: 100 HUF
súly: 1 kg

Angol változat készítésére klikkelne, akkor:
title: ____________
body: ____________
ár: 0,5 USD
súly: 1 kg

Alapból ugye pl. az angol változat készítésekor minden mező üres.

G.

Drupal verzió: 
drifter képe

Az i18n csomag részét képezi az i18nsync modul. Ha bekapcsolod, a tartalom típus beállításainál megadhatod hogy melyik mezőket szinkronizálja a fordításnál (esetedben pl. a súly, vagy termékképek stb.), és akkor ezek egységesen lesznek kezelve (ha pl. a magyarnál módosítod 2 kg-ra, az angolnál is 2kg lesz).

A kalkulálgatós rész bonyolultabb, főleg ha aktuális árfolyamokból is kell dolgoznod, erre most nem tudok kész megoldást.

0
0
makgab képe

Megvan, igaz, de csak ezeket írja:

Synchronize translations
-----------------------------
"Select which fields to synchronize for all translations of this content type.
Standard node fields."
Szerző
Állapot
Promote
Moderate
Sticky
Revision (Create also new revision for translations)
Book outline (with the translated parent)
Taxonomy terms
Hozzászólás-beküldési beállítások
Csatolmányok

A saját modulból definiált mezőkre akkor nem vonatkozik?

G.

0
0
drifter képe

CCK mezőket alapból kezel, ha saját mezőket hoztál létre kódból, azt neked kell kezelni.

0
0
makgab képe

nekem kell leprogramozni. :)

A hook_nodapi()-ban kellene lekezelni v. hol?

<?php
...
switch ($op) {
case: 'prepare translation':
      ...
      break;
}
...
?>

G.

0
0
makgab képe

Pl.:

<?php
...
function mymodule_nodeapi(&$node, $op, $teaser, $page) {
    switch ($op) {
	// ...
	case 'prepare translation':
	// Copy all fields
	mymodule_prepare_translation($node, $node->translation_source);
	break;
    }
}
...
function mymodule_prepare_translation($node, $source) {
	$node->size = $source->size;
	$node->weight = $source->weight;
	// stb...
}
...
?>

Működik is.
Remélem elég drupalos. :)

G.

0
0