Dropdowns Translation » History » Version 13

tsmr, 08/26/2010 09:09 AM

1 1 ddurieux
h1. Traductiondropdowns
2 1 ddurieux
3 1 ddurieux
Depuis la 0.78, les intitulés sont tous des objets.
4 1 ddurieux
5 1 ddurieux
Pour pouvoir gérer les traductions de ces champs, je propose un onglet pour les traduire : 
6 1 ddurieux
7 1 ddurieux
8 1 ddurieux
Une table glpi_dropdowns_lang : 
9 1 ddurieux
10 1 ddurieux
<pre>
11 1 ddurieux
CREATE TABLE `glpi_dropdowns_lang` (
12 1 ddurieux
   `id` int(11) NOT NULL AUTO_INCREMENT,
13 4 ddurieux
   `items_id` int(11) NOT NULL DEFAULT '0',
14 1 ddurieux
   `itemtype` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
15 1 ddurieux
   `field` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
16 1 ddurieux
   `lang` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
17 1 ddurieux
   `traduction` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
18 1 ddurieux
   PRIMARY KEY (`id`)
19 1 ddurieux
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
20 1 ddurieux
</pre>
21 1 ddurieux
22 1 ddurieux
avec un exemple : 
23 1 ddurieux
24 1 ddurieux
<pre>
25 1 ddurieux
INSERT INTO `glpi_dropdowns_lang` 
26 4 ddurieux
(`id`, `items_id`, `itemtype`, `field`, `lang`, `traduction`) VALUES
27 4 ddurieux
(1, 10, 'ComputerType', 'name', 'fr_FR', 'Portable');
28 1 ddurieux
</pre>
29 1 ddurieux
30 1 ddurieux
Là, on traduit le champ name de glpi_computertypes qui est Laptop
31 1 ddurieux
32 1 ddurieux
33 1 ddurieux
Donc : 
34 2 ddurieux
Les champs des tables intitulés serait aurait une valeur 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.
35 1 ddurieux
36 1 ddurieux
Un onglet "traduction" permettra de traduire ces champs dans la/les langues que l'on souhaite.
37 1 ddurieux
38 1 ddurieux
Lors de l'affichage de ces champs, on irait chercher les champs dans la langue de l'utilisateur.
39 1 ddurieux
40 1 ddurieux
MoYo : je ne comprend pas tout. C'est pour traduire le contenu d'un dropdown ? Mais tu n'as aucune référence dans ta table de l'id de l'élément. Quel intérêt du champ name ? Comment tu fais pour les dropdowns hierarchique pour recontruire l'arborescence ?
41 4 ddurieux
42 4 ddurieux
David : oups j'ai oublié le items_id 
43 5 moyo
44 5 moyo
MoYo : après sur le fond je pense que c'est vraiment une usine à gaz pour un besoin vraiment minime... 
45 6 ddurieux
46 7 moyo
David : le besoin est requis pour les societe multilangue (utilisation de GLPI dans plusieurs pays (c'est la multi-entité qui veut ca :p)*
47 7 moyo
48 7 moyo
MoYo : c'est une discussion qui a déjà eut lieu un certain nombre de fois. Une société multi-entité / multi-langue défini une langue de travail. C'est vrai pour les grands groupes par exemple. Ils ne gèrent pas plusieurs langues. Il n'y a que l'union européenne pour galérer avec des services de traductions démentiels...
49 8 ddurieux
50 8 ddurieux
David : donc tu penses que ca ne vaut pas le coup de coder ça dans le coeur (complexité / besoin)?
51 9 moyo
52 9 moyo
MoYo : c'est ce qui est ressortir des discussions la dernière fois que cette problématique a été abordée. A voir ce qu'en pense les autres.
53 10 walid
54 10 walid
Walid : le besoin existe effectivement. J'ai peur que ça fasse une grosse usine à gaz pour traiter 1% des utilisateurs...
55 11 walid
  * il te faut une option pour dire si tu actives ou pas la gestion multilingue des dropdowns, car ça va être consommateurs en requêtes en base
56 11 walid
  * par défaut l'option devrait-être désactivée
57 12 ddurieux
58 12 ddurieux
David : Ca me semble une bonne solution (options et désactivé par defaut). De toute façon pour gérer ca, on est obligé de faire un patch coeur, il n'est pas possible de faire un plugin pour gérer ça.
59 13 tsmr
60 13 tsmr
Tsmr : Pour ma part, je penses qu'il faudrait au moins permettre la modification des dropdowns fixes type impact / urgence / Priorité. Ne pas pouvoir ajouter / supprimer, mais au moins modifier les intitulés pour les passer dans une autre langue si besoin.