Dropdowns Translation » History » Version 20

Version 19 (ddurieux, 10/18/2010 09:44 AM) → Version 20/33 (walid, 07/17/2011 11:01 AM)

h1. Translate dropdowns Traductiondropdowns

Since GLPI Depuis la 0.78, dropdowns are now objects.
In order to translate theses fields, here are the proposed modifications.
les intitulés sont tous des objets.

Pour pouvoir gérer les traductions de ces champs, je propose un onglet pour les traduire :

h2. A new Une table glpi_dropdowns_lang table: :

<pre>
CREATE TABLE `glpi_dropdowns_lang` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`items_id` int(11) NOT NULL DEFAULT '0',
`itemtype` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`field` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`lang` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`completename` text COLLATE utf8_unicode_ci,
`comment` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
</pre>

Here is an example to translate in french the 'name' field of computer types from 'laptop' to 'portable':

avec un exemple :

<pre>
INSERT INTO `glpi_dropdowns_lang`
(`id`, `items_id`, `itemtype`, `field`, `lang`, `traduction`) VALUES
(1, 10, 'ComputerType', 'name', 'fr_FR', 'Portable');
</pre>

Moyo Là, on traduit le champ name de glpi_computertypes qui est Laptop

MoYo
: how do you manage hierarchical Comment tu fais pour les dropdowns to rebuild the tree hierarchique pour recontruire l&#x27;arborescence ?


David : each tree Chaque éléments de la dropdown item is an object, so it'll get a new 'Translation' tab. I'll need to modify dropdown functions to get translations (if there's one when the translation feature is activated in the general hiérarchique est un objet, donc on aura un onglet de traduction pour chacun. Il faudra que je modifie les fonctions de dropdowns pour aller chercher les traductions (s&#x27;il y en a) lorsque l&#x27;option de traduction est activée dans la configuration. If Si un champs n&#x27;est pas traduit, on prendra la valeur par défaut (c&#x27;est à dire celle comme aujourd&#x27;hui on a field is not translated, then we'll get the default value (ie the one defined in the main dropdown table). dans la table de l&#x27;intitulé)

Moyo MoYo : my ma question was about the porte sur la gestion du completename management, which is processed for tree dropdowns. In this case, do you recommand regenerating it when needed qui est précalculé pour les dropdowns hierarchiques. La il faudrait le recalculer à chaque fois si besoin ?
soin ?


David : yes you're right. The most logical would be to regenerate it when a new langage translation is added or modified. Let's adde a 'completename' field in the 'glpi_dropdown_lang' Ah oui en effet, le plus logique serait de le recalculer quand on ajoute/modifie une langue et de rajouter un champs &quot;completename&quot; dans la table which corresponds to his language.

`glpi_dropdowns_lang` correspondant à sa langue

h2. Add a new configuration Ajout d&#x27;une option d&#x27;activation

* In Menu Dans l&#x27;interface, dans le menu _Accueil > Configuration > General Générale > General config, add a new option to activate/deactive this feature (by default set to no) Configuration générale_
Activation des traductions d&#x27;intitulés : oui/non (avec le non par défaut)


* Add a new field in Ajout d&#x27;un champs dans la table "glpi_configs"
<pre>
`translate_dropdowns` `dropdown_lang` tinyint(1) NOT NULL DEFAULT '0',
</pre>



Donc :
Les champs des tables intitulés auraient serait aurait une valeur définie definie par l'utilisateur (par exemple tous les champs en anglais) et on gère la traduction pour chacun de ces champs en base MySQL. c'est la référence absolue (pour les règles / dictionnaires par exemple) ou si la traduction n'existe pas en russe, il affiche cette valeur.

Un onglet "traduction" permettra de traduire ces champs dans la/les langues que l'on souhaite.

Lors de l'affichage de ces champs, on irait chercher les champs dans la langue de l'utilisateur si l'option est activés dans la configuration.