[TYPO3-UG Italy] struttura db per ex multi lingua

Mauro Lorenzutti mauro.lorenzutti at webformat.com
Fri Jan 27 08:49:36 CET 2012


Salve Eugenio,

Il 26/01/2012 20:34, Eugenio Benvenuti ha scritto:
> Ciao a tutti,
> Sto utilizzando una estensione che non supporta il multi lingua per i
> dati salvati nel database. Vorrei provare a modificarla per ottenere
> questa funzione.
>
> Potete indicarmi come vanno organizzati i dati nel db delle estensioni
> al fine di tradurli a seconda della lingua selezionata?

per aggiungere il supporto multilingua ad un'estensione, devi procedere 
come segue:

1. nel file ext_tables.sql vanno aggiunti i seguenti campi alle tabelle 
da tradurre:
sys_language_uid int(11) DEFAULT '0' NOT NULL,
l18n_parent int(11) DEFAULT '0' NOT NULL,
l18n_diffsource mediumblob NOT NULL,

2. Nel file ext_tables.php, nella sezione "ctrl" del TCA della tabella 
devi aggiungere le seguenti configurazioni:
"languageField" => "sys_language_uid",
"transOrigPointerField" => "l18n_parent",
"transOrigDiffSourceField" => "l18n_diffsource",

3. Nel file tca.php devi poi configurare questi tre nuovi campi:
	'sys_language_uid' => Array (
             'exclude' => 1,
             'label' => 'LLL:EXT:lang/locallang_general.php:LGL.language',
             'config' => Array (
                 'type' => 'select',
                 'foreign_table' => 'sys_language',
                 'foreign_table_where' => 'ORDER BY sys_language.title',
                 'items' => Array(
 
Array('LLL:EXT:lang/locallang_general.php:LGL.allLanguages',-1),
 
Array('LLL:EXT:lang/locallang_general.php:LGL.default_value',0)
                 )
             )
         ),
	'l18n_parent' => Array (
             'displayCond' => 'FIELD:sys_language_uid:>:0',
             'exclude' => 1,
             'label' => 
'LLL:EXT:lang/locallang_general.php:LGL.l18n_parent',
             'config' => Array (
                 'type' => 'select',
                 'items' => Array (
                     Array('', 0),
                 ),
                 'foreign_table' => 'tx_extendedshop_status',
                 'foreign_table_where' => 'AND 
tx_extendedshop_status.pid=###CURRENT_PID### AND 
tx_extendedshop_status.sys_language_uid IN (-1,0)',
             )
         ),
         'l18n_diffsource' => Array (
             'config' => Array (
                 'type' => 'passthrough'
             )
         ),

4. sempre nel file tca.php, devi aggiungere i 3 nuovi campi nella lista 
dei campi da visualizzare in "types" "0" (per esempio):
"types" => Array (
         "0" => Array("showitem" => "sys_language_uid;;;;1-1-1, 
l18n_parent, l18n_diffsource, hidden;;1, .......


Con i passi dal 1 al 4 attivi il supporto al multilingua dei record da 
BE, manca il frontend... E questa è la parte più spinosa: dovresti 
modificare le query di estrazione dei dati dell'estensione (tipicamente 
dentro il file class.extkey_pi1.php per filtrare i record in base alla 
lingua scelta.

Buon lavoro,
-- 
  Mauro Lorenzutti

*** TYPO3 Certified Integrator ***
e-mail:  mauro.lorenzutti at webformat.com
---------------------------------------------------------
WEBFORMAT srl | Corte Europa, 12 | I-33097 SPILIMBERGO PN
      Tel +39-0427-926.389  --  Fax +39-0427-927.653
        info at webformat.com  --  http://www.webformat.com
---------------------------------------------------------


More information about the TYPO3-UG-Italy mailing list