|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 5 ![]() |
Bonjour à tous,
ma société déploie son SI sur ses filiales à l'étranger. (Oracle 10g) Un nouveau besoin apparaît: ==> permettre aux utilisateurs d'afficher des données (exemple: devis, libellés de produit) dans une autre langue. Cela ne concerne qu'un nombre restreint de données dans la base de données. Ces données seront traduites par les utilisateurs eux-mêmes dans un nouveau module du SI. Les problématiques sont donc: Ex: FRA, ITA, ENG, TUR, ESP obligatoire. CHI peut-être. Faut-il par ex remplacer les VARCHAR2 par des NVARCHAR2 ? -2 solutions identifiées à ce jour: a. ajouter, pour les colonnes à traduire, autant de colonnes que de langues à gerer. Ex: TABLE1.LIBELLE_FRA, LIBELLE_ENG, LIBELLE_TUR, LIBELLE_CHI,... b. gerer les traductions dans des tables dédiés. Ex: TABLE1_TRAD( CODE_LANG, LIBELLE) Dans les 2 cas que faire de TABLE1.LIBELLE ? Solution: ne pas supprimer TABLE1.LIBELLE ! Mais du coup il faut d'assurer de la cohérence de TABLE1.LIBELLE avec les autres données. (trigger ? contraintes d'intégrité ?) Je n'ai par exemple pas envie que les développeurs soient obligés, pour afficher des données, de faire dans leurs requêtes SQL des DECODE(CODE_LANG,'FRA',LIBELLE_FRA,'TUR',LIBELLE_TUR,...) ou bien des jointures entre TABLE1 et TABLE1_TRAD. Je voudrais "leur cacher" les traductions. Exemples d'utilisation "simple" souhaitée: Code :
Code :
-SELECT GetTraduction('TUR',LIBELLE) FROM TABLE1; Merci d'avance Patrick. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Consultant en Business Intelligence Inscription : juillet 2008 Messages : 950 ![]() |
( vu en formation ) Si tu prends en CHARACTERSET de l'unicode ( UTF16 pour être tranquille ) ta base est internationale, il n'y a plus besoin de NVARCHAR2. Sinon en effet tu dois avoir des colonnes de ce type.
A ce que j'ai connu dans les tables de libellé tu as une colonne supplémentaire pour la langue, des vues suivant la langue et des users/synonymes qui vont bien sur les vues de la langue concernée. Je ne sais pas si Oracle propose un mode natif d'internationalisation, ou alors il faut plusieurs instances ? |
|
00
|
|
|
#3 | ||||
|
Membre Expert
![]() Philippe CHIRCOPChef de projet Inscription : juin 2007 Messages : 1 109 ![]() |
J'ai une appli multi_langue sous ORAcle 11g/Oracle forms
Pour la traduction des libellés, j 'ai une table contenant
Dans mes requêtes, lorsque j'ai besoin d'un libellé traduit, je fait appel a une fonction TRADUIT_LIBELLE (nom_table,valeur_code,code_langue) qui me renvoie le libellé traduit s'il existe ex Code :
Code :
__________________
Garuda गरूड Brahmâ la Guerre et Vishnu la Paix Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010 |
||||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 5 ![]() |
OK. Merci pour ces éléments.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com