Nous avons passé 2 heures avec Ben à réfléchir notamment sur la façon
dont Wikitty doit proposer l'internationalisation.
Voici ce qu'il ressort de cette réflexion qui doit encore aboutir.
La notion de méta-extension devait servir d'appui pour l'i18n. Il
s'avère que cela n'est pas complètement adapté. Nous avons évoqué plutôt
la notion de « variante » d'un wikitty.
Il convient de distinguer, la traduction des noms des champs d'une
extension, d'une part et et la traduction des valeurs, d'autres part.
Pour traduire les noms de champs, la notion de méta-extension est
adaptée pour le stockage. Cela permet d'accéder rapidement, à partir
d'une extension donnée aux traductions des noms des champs. En
particulier, cette méta-extension permettra de préciser si oui ou non,
les valeurs des champs d'une extension peuvent être traduit. (par
exemple, on permettra de traduire les champs "title" et "abstract" de
l'extension "Article" mais il faut interdire la traduction des champs
"login" et "password" de "User" parce que ça n'a pas de sens)
Pour la traduction des valeurs des champs (au niveau de chaque wikitty),
il semble nécessaire d'introduire la notion de variante. Une variante
d'un wikitty est un autre wikitty qui porte les même extensions et a les
même valeurs (à la variante près). Dans notre cas, on aura un wikitty
avec autant de variantes que de langue traduite. Dans l'API, on aura
alors l'impact sur restore et store pour faire par exemple
restore(token, id, "fr")
↑ variante
L'idée est de pouvoir retrouver facilement les variantes d'un wikitty en
ajoutant la variante à l'id en base (par exemple
'<wikitty-id>:<code-de-la-variante>').
Dans solr, il faudra également indexé les variantes d'un wikitty, pour
cela il faudra reporté la variante dans le nom du document indexé.
Ainsi, si on recherche un wikitty dont le champ c a pour valeur "chien",
on devrait pouvoir trouver le wikitty dans sa variante "fr" mais aussi
le wikitty original (dont le champ a pour valeur "dog").
Toutefois, il reste encore à évaluer sérieusement l'impact de
l'introduction de la notion de variante dans Wikitty...
--
Brendan Le Ny <bleny(a)codelutin.com>
Code Lutin