Changeset 506
- Timestamp:
- 12/03/06 20:03:39 (2 years ago)
- Files:
-
- traduc/trunk/manuel/charset.xml (modified) (33 diffs)
- traduc/trunk/manuel/client-auth.xml (modified) (9 diffs)
- traduc/trunk/manuel/external-projects.xml (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/manuel/charset.xml
r490 r506 6 6 7 7 <para> 8 Ce chapitre décrit les fonctionnalités disponibles pour la localisation9 d u point de vue de l'administrateur.10 <productname>PostgreSQL</productname> supporte la localisation en utilisant11 d eux approches :8 Ce chapitre décrit, du point de vue de l'administrateur, les fonctionnalités 9 de localisation disponibles. 10 <productname>PostgreSQL</productname> fournit deux approches 11 différentes pour la gestion de la localisation : 12 12 13 13 <itemizedlist> 14 14 <listitem> 15 15 <para> 16 Utiliser les fonctionnalités de localedu système d'exploitation pour17 donner un ordonnancement de tri, formatage de chiffre, des messages18 traduits et autres aspects spécifiques à la locale .16 l'utilisation des fonctionnalités de locales du système d'exploitation pour 17 l'ordonnancement du tri, le formatage des chiffres, les messages 18 traduits et autres aspects spécifiques à la locale ; 19 19 </para> 20 20 </listitem> … … 22 22 <listitem> 23 23 <para> 24 Donner un certain nombre de jeu de caractères différents définis dans le24 la fourniture d'un certain nombre d'encodages différents définis dans le 25 25 serveur <productname>PostgreSQL</productname>, y compris 26 des jeux de caractères multi-bit pour permettre de stocker du texte dans27 t outes sortes de langues et offrir la traduction de jeu de caractère26 les jeux de caractères multi-octets, pour permettre le stockage de 27 texte dans toutes les langues et fournir la traduction de l'encodage 28 28 entre serveur et client. 29 29 </para> … … 34 34 35 35 <sect1 id="locale"> 36 <title>Support de locale</title>36 <title>Support des locales</title> 37 37 38 38 <indexterm zone="locale"><primary>locale</primary></indexterm> 39 39 40 40 <para> 41 Le support de <firstterm>locale</firstterm> fait référence à une application42 respectant les préférences culturelles en ce qui concerne les alphabets,43 le tri, leformat des nombres, etc. <productname>PostgreSQL</productname> utilise44 les possibilités du standard ISO C et de la locale <acronym>POSIX</acronym>45 fourni par le système d'exploitationserveur. Pour plus d'informations,46 consulte z la documentation de votre serveur.41 Le support des <firstterm>locales</firstterm> fait référence à une application 42 respectant les préférences culturelles au regard des alphabets, 43 du tri, du format des nombres, etc. <productname>PostgreSQL</productname> utilise 44 les possibilités offerte par C et <acronym>POSIX</acronym> du standard 45 ISO fournies par le système d'exploitation du serveur. Pour plus d'informations, 46 consulter la documentation du système. 47 47 </para> 48 48 … … 51 51 52 52 <para> 53 Le support de localeest automatiquement initialisé lorsqu'un cluster de53 Le support des locales est automatiquement initialisé lorsqu'un cluster de 54 54 base de données est créé avec <command>initdb</command>. 55 <command>initdb</command> va initialiser le cluster avec la valeur de56 locale de son environnement d'exécution par défaut. Donc, si votre57 système est déjà paramétré pour utiliser la locale que vous voulez dans58 votre cluster, vous n'avez rien d'autre à faire. Si vous voulez utiliser59 une locale différente (ou si vous n'êtes pas sûr de la locale qu'utilise60 votre système), vous pouvez dire à <command>initdb</command> exactement61 quel locale utiliser en spécifiant l'option <option>--locale</option>.55 <command>initdb</command> initialise le cluster avec la valeur des 56 locales de son environnement d'exécution par défaut. Si le système est 57 déjà paramétré pour utiliser la locale souhaité pour le cluster, il n'y 58 a donc rien d'autre à faire. Si une locale différente est souhaitée (ou 59 que celle utilisée par le serveur n'est pas connue avec certitude), il 60 est possible d'indiquer à <command>initdb</command> la locale à 61 utiliser en utilisant l'option <option>--locale</option>. 62 62 Par exemple : 63 63 <screen>initdb --locale=sv_SE</screen> … … 65 65 66 66 <para> 67 Cette exemple met la locale ensuédois (<literal>sv</literal>) tel que parlé en68 Suède (<literal>SE</literal>). D'autres possibilités pourraient être69 <literal>en_US</literal> (l'anglais américain) et <literal>fr_CA</literal> (français70 canadien). Si plus d'un jeu de caractères peuvent être utiles pour une71 locale, alors la spécification ressemble à ceci :72 <literal>cs_CZ.ISO8859-2</literal>. Quels locales sont disponibles sous quels73 noms dépend de l'éditeur de votre système d'exploitation et de ce qui est74 installé (sur la plupart des systèmes, la commande <literal>locale -a</literal>75 fournira une liste delocales disponibles).76 </para> 77 78 <para> 79 De façon occasionnelle, il estutile de mélanger les règles de plusieurs80 locales, i.e. utiliser les règles de tri anglais maisdes messages en81 espagnol. Pour permettre ceci, des sous-catégories de locales existent82 qui ne contrôlent qu'un certain aspectdes règles de localisation :67 Cette exemple positionne la locale au suédois (<literal>sv</literal>) tel que parlé en 68 Suède (<literal>SE</literal>). Parmi les autres possibilités, on peut 69 envisager <literal>en_US</literal> (l'anglais américain) ou 70 <literal>fr_CA</literal> (français canadien). Si plusieurs encodages 71 s'avèrent utiles pour une même locale, alors la spécification peut 72 ressembler à : <literal>cs_CZ.ISO8859-2</literal>. Les locales 73 disponibles et leur nom dépendent de l'éditeur du système d'exploitation 74 et de ce qui est installé (sur la plupart des systèmes, la commande 75 <literal>locale -a</literal> fournit la liste des locales disponibles). 76 </para> 77 78 <para> 79 Il est parfois utile de mélanger les règles de plusieurs 80 locales, par exemple d'utiliser les règles de tri anglais avec des messages en 81 espagnol. Pour cela, des sous-catégories de locales existent 82 qui ne contrôlent qu'un aspect particulier des règles de localisation : 83 83 84 84 <informaltable> … … 98 98 <row> 99 99 <entry><envar>LC_MESSAGES</envar></entry> 100 <entry>Lang age des messages</entry>100 <entry>Langue des messages</entry> 101 101 </row> 102 102 <row> 103 103 <entry><envar>LC_MONETARY</envar></entry> 104 <entry>Formatage des montants de monnaie</entry>104 <entry>Formatage des valeurs monétaires</entry> 105 105 </row> 106 106 <row> … … 118 118 Les noms des catégories se traduisent en noms d'options 119 119 <command>initdb</command> pour surcharger le choix de locale 120 pour une catégorie donnée. Par exemple, pour mettre la locale en121 français canadien tout en utilisant les règles américaines pour le122 formatage de monnaie, utilisez120 pour une catégorie donnée. Par exemple, pour utiliser la locale 121 français canadien avec des règles américaines pour le 122 formatage monétaire, on utilise 123 123 <literal>initdb --locale=fr_CA --lc-monetary=en_US</literal>. 124 124 </para> 125 125 126 126 <para> 127 Si vous voulez que le système se comporte comme s'il n'avait pas de128 support de locale, utilisezles locales spéciales <literal>C</literal> ou127 Pour bénéficier d'un système qui se comporte comme s'il ne disposait pas du 128 support des locales, on utilise les locales spéciales <literal>C</literal> ou 129 129 <literal>POSIX</literal>. 130 130 </para> 131 131 132 132 <para> 133 La nature de ces catégories de locales est que leur valeur doit être 134 fixe pour la durée de vie d'un cluster de base de données. 135 C'est-à-dire qu'une fois <command>initdb</command> lancée, on ne peut 136 plus les changer. 137 <literal>LC_COLLATE</literal> et <literal>LC_CTYPE</literal> sont ces 138 catégories. Ils affectent l'ordre de tri des index, donc ils doivent 139 rester fixes ou les index sur les colonnes de texte deviendront 140 corrompus. 141 <productname>PostgreSQL</productname> applique ceci en enregistrant 142 les valeurs de <envar>LC_COLLATE</envar> et <envar>LC_CTYPE</envar> qui sont vus 143 par <command>initdb</command>. Le serveur adopte automatiquement ces deux 144 valeurs lorsqu'il est exécuté. 145 </para> 146 147 <para> 148 Les autres catégories de locale peuvent être changées comme désiré lorsque 149 le serveur est lancé en fixant les variables d'environnement qui ont le 150 même nom que les catégories de locale (voir la <xref 151 linkend="runtime-config-client-format"/> pour plus de détails). Les 152 valeurs par défaut choisies par <command>initdb</command> sont en fait 153 seulement écrites dans le fichier de configuration 154 <filename>postgresql.conf</filename> pour servir de valeur par défaut 155 quand le serveur est lancé. Si vous effacez ces déclarations de 156 <filename>postgresql.conf</filename>, alors le serveur 157 héritera des paramètres de son environnement d'exécution. 158 </para> 159 160 <para> 161 Notez que le comportement de locale du serveur est déterminé par les 162 variables d'environnement vues par le serveur, pas l'environnement d'un 163 client quelconque. Alors, faites attention de configurer les bons 164 paramètres de locale avant de lancer le serveur. Une conséquence de ceci 165 est que, si le client et le serveur ont des locales différentes, les 166 messages apparaîtront dans des langues différentes suivant d'où ils 167 viennent. 133 La nature de certaines catégories de locales oblige à les fixer pour la 134 durée de vie d'un cluster. C'est-à-dire qu'une fois 135 qu'<command>initdb</command> à été lancé, elle ne peuvent plus être 136 modifiées. 137 <literal>LC_COLLATE</literal> et <literal>LC_CTYPE</literal> sont de 138 cette catégorie. Elles affectent l'ordre de tri des index et doivent donc 139 rester inchangées, les index sur les colonnes de texte risquant d'être 140 corrompus dans le cas contraire. <productname>PostgreSQL</productname> 141 s'en assure en enregistrant les valeurs de <envar>LC_COLLATE</envar> et 142 <envar>LC_CTYPE</envar> vues par <command>initdb</command>. Le serveur 143 adopte automatiquement ces deux valeurs au démarrage. 144 </para> 145 146 <para> 147 Les autres catégories de locale peuvent être modifiées au démarrage du 148 serveur en fixant les variables d'environnement de même nom (voir la 149 <xref linkend="runtime-config-client-format"/> pour de plus amples 150 détails). Les valeurs par défaut choisies par 151 <command>initdb</command> sont en fait écrites dans le fichier de 152 configuration <filename>postgresql.conf</filename> pour servir de 153 valeurs par défaut au démarrage du serveur. Si ces déclarations sont 154 supprimées du fichier <filename>postgresql.conf</filename>, le serveur 155 hérite des paramètres de son environnement d'exécution. 156 </para> 157 158 <para> 159 Le comportement des locales du serveur est déterminé par les 160 variables d'environnement vues par le serveur, pas celles de 161 l'environnement d'un quelconque client. Il est donc important de 162 configurer les bons paramètres de locales avant le démarrage du serveur. 163 Cela a pour conséquence que, si les locales du client et du serveur 164 diffèrent, les messages peuvent apparaître dans des langues différentes 165 en fonction de leur provenance. 168 166 </para> 169 167 170 168 <note> 171 169 <para> 172 Lorsqu'on parle d'hériter la locale de l'environnement d'exécution, ceci 173 veut dire la chose suivante sur la plupart des systèmes 174 d'exploitation : pour une catégorie de locale donnée, disons 175 l'ordonnancement, les variables d'environnement suivantes sont 176 consultées dans cet ordre jusqu'à ce qu'on en trouve une de fixée : 177 <envar>LC_ALL</envar>, <envar>LC_COLLATE</envar> (la variable 178 correspondante à la catégorie respective), <envar>LANG</envar>. Si aucune 179 de ces variables n'est fixée, alors on utilise la locale par défaut, 180 <literal>C</literal>. 170 Hériter la locale de l'environnement d'exécution signifie, sur la 171 plupart des systèmes d'exploitation, la chose suivante : 172 pour une catégorie de locales donnée, l'ordonnancement par exemple, 173 les variables d'environnement <envar>LC_ALL</envar>, 174 <envar>LC_COLLATE</envar> (la variable qui correspond à la catégorie) 175 et <envar>LANG</envar> sont consultées dans cet ordre jusqu'à en 176 trouver une qui est fixée. Si aucune de ces variables n'est fixée, 177 c'est la locale par défaut, <literal>C</literal>, qui est utilisée. 181 178 </para> 182 179 … … 184 181 Certaines bibliothèques de localisation regardent aussi la variable 185 182 d'environnement <envar>LANGUAGE</envar> qui surcharge tout autre 186 paramètre pour le besoin de fixer la langue des messages. Si vous 187 doutez, lisez la documentation de votre système d'exploitation, 188 en particulier la documentation à propos de 189 <application>gettext</application>, pour plus d'information. 183 paramètre pour fixer la langue des messages. En cas de doute, 184 lire la documentation du système d'exploitation, 185 en particulier la partie concernant <application>gettext</application>. 190 186 </para> 191 187 </note> … … 193 189 <para> 194 190 Pour permettre la traduction des messages dans la langue préférée de 195 l'utilisateur, <acronym>NLS</acronym> doit êtreactivé pendant la196 compilation. Ce choix est indépendant d 'autre support de locale.191 l'utilisateur, <acronym>NLS</acronym> doit avoir été activé pendant la 192 compilation. Ce choix est indépendant des autres supports de locales. 197 193 </para> 198 194 </sect2> … … 208 204 <listitem> 209 205 <para> 210 Ordre de tri dans les requêtes utilisant <literal>ORDER BY</literal> sur des211 données de type texte 212 <indexterm><primary>ORDER BY</primary><secondary>et l es locales</secondary></indexterm>206 l'ordre de tri dans les requêtes utilisant <literal>ORDER BY</literal> sur des 207 données de type texte ; 208 <indexterm><primary>ORDER BY</primary><secondary>et locales</secondary></indexterm> 213 209 </para> 214 210 </listitem> … … 216 212 <listitem> 217 213 <para> 218 La possibilité d'utiliser des index avec les clauses <literal>LIKE</literal> 219 <indexterm><primary>LIKE</primary><secondary>et les locales</secondary></indexterm> 214 la possibilité d'utiliser des index avec les clauses 215 <literal>LIKE</literal> ; 216 <indexterm><primary>LIKE</primary><secondary>et locales</secondary></indexterm> 220 217 </para> 221 218 </listitem> … … 223 220 <listitem> 224 221 <para> 225 Les fonctions <function>upper</function>, <function>lower</function> et 226 <function>initcap</function> 227 <indexterm><primary>upper</primary><secondary>et les locales</secondary></indexterm> 228 <indexterm><primary>lower</primary><secondary>et les locales</secondary></indexterm> 222 les fonctions <function>upper</function>, <function>lower</function> et 223 <function>initcap</function> ; 224 <indexterm><primary>upper</primary><secondary>et locales</secondary></indexterm> 225 <indexterm><primary>lower</primary><secondary>et locales</secondary></indexterm> 226 <indexterm><primary>initcap</primary><secondary>et locales</secondary></indexterm> 229 227 </para> 230 228 </listitem> … … 232 230 <listitem> 233 231 <para> 234 La famille de fonctions <function>to_char</function>235 <indexterm><primary>to_char</primary><secondary>et l es locales</secondary></indexterm>232 la famille de fonctions <function>to_char</function>. 233 <indexterm><primary>to_char</primary><secondary>et locales</secondary></indexterm> 236 234 </para> 237 235 </listitem> … … 240 238 241 239 <para> 242 L'inconvénient d'utiliser le support de locale autres que <literal>C</literal> ou 243 <literal>POSIX</literal> dans <productname>PostgreSQL</productname> est son impact sur les 244 performances. Il ralentit la gestion des caractères et empêche 245 l'utilisation des index ordinaires par <literal>LIKE</literal>. Pour cette 246 raison, utilisez les locales seulement si vous en avez besoin. 247 </para> 248 249 <para> 250 Comme contournement pour que <productname>PostgreSQL</productname> puisse utiliser 251 des index avec les clauses <literal>LIKE</literal> et une locale autre que C, 252 plusieurs classes d'opérateurs personnalisés existent. Elles permettent 253 la création d'un index qui fait une comparaison stricte, caractère par 254 caractère, ignorant les règles de comparaison des locales. Référez-vous à 240 Le support de locale autres que <literal>C</literal> ou 241 <literal>POSIX</literal> dans <productname>PostgreSQL</productname> a 242 pour inconvénient son impact sur les performances. Il ralentit la gestion 243 des caractères et empêche l'utilisation des index ordinaires par 244 <literal>LIKE</literal>. Pour cette raison, il est préférable de 245 n'utiliser les locales qu'en cas de réel besoin. 246 </para> 247 248 <para> 249 Toutefois, pour permettre à <productname>PostgreSQL</productname> d'utiliser 250 des index avec les clauses <literal>LIKE</literal> et une locale 251 différente de <literal>C</literal>, il existe plusieurs classes 252 d'opérateurs personnalisées. Elles permettent 253 la création d'un index qui réalise une stricte comparaison caractère par 254 caractère, ignorant les règles de comparaison des locales. Se référer à 255 255 la <xref linkend="indexes-opclass"/> pour plus d'informations. 256 256 </para> … … 261 261 262 262 <para> 263 Si le support de locale ne fonctionne pas malgré l'explicationci-dessus,264 vérifiez que le support de locale de votresystème d'exploitation est265 correctement configuré. Pour vérifier quelles locales sontinstallées sur266 votre système, vous pouvez utiliser la commande <literal>locale267 -a</literal> si votre système d'exploitation la fournit.268 </para> 269 270 <para> 271 Vérifiez que <productname>PostgreSQL</productname> utilise vraiment la272 locale que vous supposez. Les paramètres <envar>LC_COLLATE</envar> et273 <envar>LC_CTYPE</envar> sont déterminés lors de <command>initdb</command>263 Si le support de locale ne fonctionne pas au regard des explications ci-dessus, 264 il faut vérifier que le support des locales du système d'exploitation est 265 correctement configuré. Pour vérifier les locales installées sur 266 le système, on peut utiliser la commande <literal>locale -a</literal>, 267 si elle est fournie avec le système d'exploitation. 268 </para> 269 270 <para> 271 Il faut vérifier que <productname>PostgreSQL</productname> utilise 272 effectivement la locale supposée. Les paramètres <envar>LC_COLLATE</envar> et 273 <envar>LC_CTYPE</envar> sont déterminés lors de l'<command>initdb</command> 274 274 et ne peuvent pas être modifiés sans répéter <command>initdb</command>. 275 275 D'autres paramètres de locale, y compris <envar>LC_MESSAGES</envar> et 276 276 <envar>LC_MONETARY</envar>, sont déterminés initialement par 277 277 l'environnement dans lequel le serveur est lancé mais peuvent être 278 modifiés pendant l'exécution. Vous pouvez vérifier les paramétrages 279 de la locale active en 280 utilisant la commande <command>SHOW</command>. 281 </para> 282 283 <para> 284 Le répertoire <filename>src/test/locale</filename> dans la distribution 285 du source contient une série de tests pour le support de locale dans 278 modifiés pendant l'exécution. Pour vérifier les paramétrages 279 de la locale active on utilise la commande <command>SHOW</command>. 280 </para> 281 282 <para> 283 Le répertoire <filename>src/test/locale</filename> de la distribution 284 source contient une série de tests pour le support des locales dans 286 285 <productname>PostgreSQL</productname>. 287 286 </para> 288 287 289 288 <para> 290 Les applications clientes qui gèrent les erreurs côté serveur en291 analysant le texte292 du message d'erreur auront, bien sûr, des problèmes lorsque les messages293 sont dans une languedifférente. Les auteurs de telles applications sont289 Les applications clientes qui gèrent les erreurs en provenance du 290 serveur par l'analyse du texte du message d'erreur vont certainement 291 éprouver des difficultés lorsque les messages du serveur sont dans une langue 292 différente. Les auteurs de telles applications sont 294 293 invités à utiliser le schéma de code d'erreur à la place. 295 294 </para> 296 295 297 296 <para> 298 Maintenir des catalogues de traductions de messages requiert les297 Le maintien de catalogues de traductions de messages nécessitent les 299 298 efforts permanents de beaucoup de volontaires qui souhaitent voir 300 <productname>PostgreSQL</productname> bien interpréter leur langue 301 préférée. Si des messages dans votre langue ne sont pas disponibles ou 302 pas complètement 303 traduits, votre aide serait très appréciée. Si vous voulez aider, 304 consultez le <xref linkend="nls"/> ou écrivez à la liste de diffusion des 305 développeurs. 299 <productname>PostgreSQL</productname> parler correctement leur langue 300 préférée. Si certains messages dans une langue ne sont pas disponibles ou 301 pas complètement traduits, toute aide est la bienvenue. Pour apporter 302 son aide à ce projet, consulter le <xref linkend="nls"/> ou écrire à 303 la liste de diffusion des développeurs. 306 304 </para> 307 305 </sect2> … … 316 314 <para> 317 315 Le support des jeux de caractères dans <productname>PostgreSQL</productname> 318 vous permet de rentrer du texte dans plusieurs jeux de caractères, dont 319 des jeux de caractères à un octet tels que la série ISO 8859 et 320 des jeux de caractères multi-octets tel que <acronym>EUC</acronym> 321 (Extended Unix Code), UTF-8 et le code interne de Mule. Tous les jeux de 322 caractères supportés peuvent être utilisés de façon transparente par les 323 clients mais certains ne sont pas supportés au sein du serveur (c'est-à-dire 324 comme jeu de caractères du serveur). 325 Le jeu de caractères par défaut est sélectionné pendant l'initialisation de 326 votre cluster de base de données <productname>PostgreSQL</productname> 327 avec <command>initdb</command>. Le choix peut être outrepassé lors de la 328 création de la base, vous pouvez donc avoir des bases avec des jeux de 329 caractères différents. 316 permet d'insérer du texte dans différents jeux de caractères, dont 317 ceux mono-octet tels que la série ISO 8859 et ceux multi-octets tels que 318 <acronym>EUC</acronym> (Extended Unix Code), UTF-8 ou le codage interne Mule. 319 Tous les jeux de caractères supportés peuvent être utilisés de façon 320 transparente par les clients mais certains ne sont pas supportés par le 321 serveur (c'est-à-dire comme encodage du serveur). 322 Le jeu de caractères par défaut est sélectionné pendant l'initialisation 323 du cluster de base de données avec <command>initdb</command>. Ce choix peut 324 être surchargé à la création de la base. Il est donc possible de disposer 325 de bases utilisant chacune un jeu de caractères différent. 330 326 </para> 331 327 … … 334 330 335 331 <para> 336 Le <xref linkend="charset-table"/> montre les jeux de caractères disponibles337 à l'utilisation dans<productname>PostgreSQL</productname>.332 Le <xref linkend="charset-table"/> montre les jeux de caractères 333 utilisables avec <productname>PostgreSQL</productname>. 338 334 </para> 339 335 … … 678 674 679 675 <para> 680 Toutes les <acronym>API</acronym> ne supportent pas les jeux de caractères de 681 la liste. Par exemple, le pilote JDBC de <productname>PostgreSQL</productname> 682 ne supporte pas <literal>MULE_INTERNAL</literal>, <literal>LATIN6</literal>, 683 <literal>LATIN8</literal> et <literal>LATIN10</literal>. 676 Toutes les <acronym>API</acronym> ne supportent pas tous les jeux de caractères de 677 la liste. Le pilote JDBC de <productname>PostgreSQL</productname>, par 678 exemple, ne supporte pas <literal>MULE_INTERNAL</literal>, 679 <literal>LATIN6</literal>, <literal>LATIN8</literal> et 680 <literal>LATIN10</literal>. 684 681 </para> 685 682 686 683 <para> 687 La valeur<literal>SQL_ASCII</literal> se comporte de façon considérablement688 différente des autres valeurs. Quand l 'ensemblede caractères du684 <literal>SQL_ASCII</literal> se comporte de façon considérablement 685 différente des autres valeurs. Quand le jeu de caractères du 689 686 serveur est <literal>SQL_ASCII</literal>, le serveur interprète les valeurs 690 687 des octets 0-127 suivant le standard ASCII alors que les valeurs 691 688 d'octets 128-255 sont considérées comme des caractères non interprétés. 692 Aucune conversion de codage ne sera effectuée avec 693 <literal>SQL_ASCII</literal>. Du coup, cette valeur n'est pas tellement 694 la déclaration qu'un codage spécifique est utilisé, mais plutôt de 695 l'ignorance du codage. Dans la plupart des cas, si vous travaillez avec 696 des données non ASCII, il est déconseillé d'utiliser la valeur 697 <literal>SQL_ASCII</literal> car <productname>PostgreSQL</productname> sera 698 incapable de vous aider dans la conversion ou la validation des 699 caractères non ASCII. 689 Aucune conversion de codage n'est effectuée avec 690 <literal>SQL_ASCII</literal>. De ce fait, cette valeur ne déclare par 691 tant un encodage spécifique que l'ignorance de l'encodage. Dans la 692 plupart des cas, si des données non ASCII doivent être traitées, il est 693 déconseillé d'utiliser la valeur <literal>SQL_ASCII</literal> car 694 <productname>PostgreSQL</productname> est alors 695 incapable de convertir ou de valider les caractères non ASCII. 700 696 </para> 701 697 </sect2> … … 706 702 <para> 707 703 <command>initdb</command> définit le jeu de caractères par défaut 708 pour un cluster <productname>PostgreSQL</productname>. Par exemple,704 pour un cluster. Par exemple, 709 705 710 706 <screen>initdb -E EUC_JP</screen> 711 707 712 paramètre le jeu de caractères ( codage) à713 <literal>EUC_JP</literal> (Extended Unix Code for Japanese). Vous714 pouvez utiliser l'option <option>--encoding</option> au lieu de715 <option>-E</option> si vous préférez saisir les noms d'options longs.716 Si aucune option<option>-E</option> ou <option>--encoding</option> n'est717 donnée, <command>initdb</command> tente de déterminer l e codage approprié à718 utiliser suivant la locale spécifiée oupar défaut.708 paramètre le jeu de caractères (encodage) à 709 <literal>EUC_JP</literal> (Extended Unix Code for Japanese). 710 L'option <option>--encoding</option> peut aussi être utilisée à la 711 place de <option>-E</option> (options longues). Si aucune option 712 <option>-E</option> ou <option>--encoding</option> n'est 713 donnée, <command>initdb</command> tente de déterminer l'encodage approprié 714 en fonction de la locale indiquée ou de celle par défaut. 719 715 </para> 720 716 721 717 <para> 722 Vous pouvezcréer une base de données avec un jeu de caractère718 Il est possible de créer une base de données avec un jeu de caractère 723 719 différent : 724 720 725 721 <screen>createdb -E EUC_KR korean</screen> 726 722 727 Ceci va créerune base de données appelée <literal>korean</literal> qui728 utilise ra le jeu de caractère<literal>EUC_KR</literal>. Un autre moyen de729 réaliser ce ci est d'utiliser cette commande SQL :723 Ceci crée une base de données appelée <literal>korean</literal> qui 724 utilise le jeu de caractères <literal>EUC_KR</literal>. Un autre moyen de 725 réaliser cela est d'utiliser la commande SQL suivante : 730 726 731 727 <programlisting>CREATE DATABASE korean WITH ENCODING 'EUC_KR';</programlisting> 732 728 733 L e codage pour unebase de données est conservé dans le catalogue système734 <literal>pg_database</literal>. Vous pouvez voir ceci en utilisant735 l'option <option>-l</option> ou la commande <command>\l</command> de729 L'encodage de la base de données est conservé dans le catalogue système 730 <literal>pg_database</literal>. Cela est visible à l'aide de 731 l'option <option>-l</option> ou de la commande <command>\l</command> de 736 732 <command>psql</command>. 737 733 … … 755 751 <important> 756 752 <para> 757 Bien qu e vous pouvez spécifier tout codage que vous souhaitezpour une base758 de données, il est déconseillé de choisir un codage qui n'est pas attendu753 Bien qu'il soit possible de préciser n'importe quel encodage pour une base 754 de données, il est déconseillé de choisir un encodage qui n'est pas attendu 759 755 par la locale sélectionnée. Les paramètres <literal>LC_COLLATE</literal> et 760 <literal>LC_CTYPE</literal> impliquent un codage particulier, et les761 opérations dépendantes de la locale (comme le tri) pourraient mal762 interpréter les données qui sont dans uncodage incompatible.756 <literal>LC_CTYPE</literal> impliquent un encodage particulier, et les 757 opérations dépendantes de la locale (comme le tri) interprètent souvent 758 mal les données stockées dans un encodage incompatible. 763 759 </para> 764 760 765 761 <para> 766 Comme ces paramètres de locale sont gelés par <command>initdb</command>, la767 flexibilité apparente pour utiliser différents codages dans les768 différentes bases de données d'un groupe est plus théorique que réel.769 Il est probable que ces mécanismes soie t revus dans les prochaines762 Comme ces paramètres de locales sont gelés par <command>initdb</command>, la 763 latitude apparente laissée dans l'utilisation des encodages des 764 bases de données d'un cluster est plus théorique que réelle. 765 Il est probable que ces mécanismes soient revus dans les prochaines 770 766 versions de <productname>PostgreSQL</productname>. 771 767 </para> 772 768 773 769 <para> 774 Une façond'utiliser les codages multiples en toute sûreté est de770 Une possibilité d'utiliser les codages multiples en toute sûreté est de 775 771 configurer la locale à <literal>C</literal> ou <literal>POSIX</literal> lors 776 d'<command>initdb</command> désactivanttoute connaissance réelle de la locale.772 d'<command>initdb</command>, ce qui désactive toute connaissance réelle de la locale. 777 773 </para> 778 774 </important> … … 780 776 781 777 <sect2> 782 <title>Conversion de jeu de caractères automatique entre serveur et client</title>778 <title>Conversion automatique d'encodage entre serveur et client</title> 783 779 784 780 <para> 785 781 <productname>PostgreSQL</productname> supporte les conversions 786 automatiques d e jeu de caractèresentre client et serveur pour782 automatiques d'encodage entre client et serveur pour 787 783 certains jeux de caractères. Les informations de conversion sont 788 784 conservées dans le catalogue système <literal>pg_conversion</literal>. 789 785 <productname>PostgreSQL</productname> est livré avec certaines 790 conversions prédéfinies, conversions listées dans le <xref 791 linkend="multibyte-translation-table"/>. Vous pouvez créer une nouvelle 792 conversion en utilisant la commande SQL <command>CREATE CONVERSION</command>. 786 conversions prédéfinies, conversions listées dans le 787 <xref linkend="multibyte-translation-table"/>. Une nouvelle 788 conversion peut être créée en utilisant la commande SQL 789 <command>CREATE CONVERSION</command>. 793 790 </para> 794 791 … … 807 804 <row> 808 805 <entry><literal>BIG5</literal></entry> 809 <entry><emphasis>non supporté comme codage serveur</emphasis>806 <entry><emphasis>non supporté comme encodage serveur</emphasis> 810 807 </entry> 811 808 </row> … … 842 839 <row> 843 840 <entry><literal>GB18030</literal></entry> 844 <entry><emphasis>non supporté comme codage serveur</emphasis>841 <entry><emphasis>non supporté comme encodage serveur</emphasis> 845 842 </entry> 846 843 </row> 847 844 <row> 848 845 <entry><literal>GBK</literal></entry> 849 <entry><emphasis>non supporté comme codage serveur</emphasis>846 <entry><emphasis>non supporté comme encodage serveur</emphasis> 850 847 </entry> 851 848 </row> … … 978 975 <row> 979 976 <entry><literal>SJIS</literal></entry> 980 <entry><emphasis>non supporté comme codage serveur</emphasis>977 <entry><emphasis>non supporté comme encodage serveur</emphasis> 981 978 </entry> 982 979 </row> 983 980 <row> 984 981 <entry><literal>SQL_ASCII</literal></entry> 985 <entry><emphasis>tous (aucune conversion n e seraréalisée)</emphasis>982 <entry><emphasis>tous (aucune conversion n'est réalisée)</emphasis> 986 983 </entry> 987 984 </row> 988 985 <row> 989 986 <entry><literal>UHC</literal></entry> 990 <entry><emphasis>non supporté comme codage serveur</emphasis>987 <entry><emphasis>non supporté comme encodage serveur</emphasis> 991 988 </entry> 992 989 </row> 993 990 <row> 994 991 <entry><literal>UTF8</literal></entry> 995 <entry><emphasis>tout codage supporté</emphasis>992 <entry><emphasis>tout encodage supporté</emphasis> 996 993 </entry> 997 994 </row> … … 1077 1074 1078 1075 <para> 1079 Pour activer la conversion automatique de jeux de caractères, vous devez1080 dire à <productname>PostgreSQL</productname> quel jeu de caractères1081 (codage) vous voulez utiliser côté client. Il y a plusieurs façons de1082 fa ire cela :1076 Pour activer la conversion automatique des jeux de caractères, il 1077 est nécessaire d'indiquer à <productname>PostgreSQL</productname> 1078 le jeu de caractères (encodage) souhaité côté client. Il y a plusieurs 1079 façons de le faire : 1083 1080 1084 1081 <itemizedlist> 1085 1082 <listitem> 1086 1083 <para> 1087 En utilisant la commande <command>\encoding</command> dans1084 en utilisant la commande <command>\encoding</command> dans 1088 1085 <application>psql</application>. 1089 <command>\encoding</command> vous permet de changer de jeu de caractères1086 <command>\encoding</command> permet de changer l'encodage 1090 1087 client à la volée. Par exemple, pour changer le codage en 1091 <literal>SJIS</literal>, tape z :1088 <literal>SJIS</literal>, taper : 1092 1089 1093 1090 <programlisting>\encoding SJIS</programlisting> … … 1097 1094 <listitem> 1098 1095 <para> 1099 En utilisant les fonctions <application>libpq</application>.1096 en utilisant les fonctions <application>libpq</application>. 1100 1097 <command>\encoding</command> appelle en fait 1101 <function>PQsetClientEncoding()</function> pour faire son travail.1098 <function>PQsetClientEncoding()</function> pour se faire. 1102 1099 1103 1100 <synopsis>int PQsetClientEncoding(PGconn *<replaceable>conn</replaceable>, const char *<replaceable>encoding</replaceable>);</synopsis> 1104 1101 1105 ou <replaceable>conn</replaceable> est une connexion au serveur,1106 et <replaceable>encoding</replaceable> est le codage que vous1107 voulez utiliser. Si la fonction fixe le codage, elle renvoie 0,1108 sinon -1. Le codage actuel pour cette connexion peut être déterminé1102 avec <replaceable>conn</replaceable> une connexion au serveur 1103 et <replaceable>encoding</replaceable> l'encodage souhaité. 1104 Si la fonction fixe l'encodage, elle renvoie 0, sinon -1. 1105 L'encodage courant d'une connexion peut être déterminé 1109 1106 en utilisant : 1110 1107 1111 1108 <synopsis>int PQclientEncoding(const PGconn *<replaceable>conn</replaceable>);</synopsis> 1112 1109 1113 Notez que ceci renvoie l'ID ducodage, pas une chaîne symbolique telle que1114 <literal>EUC_JP</literal>. Pour convertir un ID d u codage en NOM, vous1115 pouvez utiliser :1110 Cela renvoie l'ID de l'encodage, pas une chaîne symbolique telle que 1111 <literal>EUC_JP</literal>. Pour convertir un ID d'encodage en NOM, 1112 on utilise : 1116 1113 1117 1114 <synopsis>char *pg_encoding_to_char(int <replaceable>encoding_id</replaceable>);</synopsis> … … 1121 1118 <listitem> 1122 1119 <para> 1123 En utilisant <command>SET client_encoding TO</command>.1124 1125 Fixer l e codage client peut être fait avec cette commande SQL :1120 en utilisant <command>SET client_encoding TO</command>. 1121 1122 Fixer l'encodage client peut se faire avec la commande SQL suivante : 1126 1123 1127 1124 <programlisting>SET CLIENT_ENCODING TO '<replaceable>valeur</replaceable>';</programlisting> 1128 1125 1129 Vous pouvez aussi utiliser la syntaxe SQL plus standard <literal>SET1130 NAMES</literal> pour ceci :1126 La syntaxe SQL plus standard <literal>SET NAMES</literal> peut 1127 également être utilisée pour cela : 1131 1128 1132 1129 <programlisting>SET NAMES '<replaceable>valeur</replaceable>';</programlisting> 1133 1130 1134 Pour demander l'actuel codage client :1131 Pour connaître l'encodage client courant : 1135 1132 1136 1133 <programlisting>SHOW client_encoding;</programlisting> 1137 1134 1138 Pour revenir aucodage par défaut :1135 Pour revenir à l'encodage par défaut : 1139 1136 1140 1137 <programlisting>RESET client_encoding;</programlisting> … … 1144 1141 <listitem> 1145 1142 <para> 1146 En utilisant <envar>PGCLIENTENCODING</envar>. 1147 1143 en utilisant <envar>PGCLIENTENCODING</envar>. 1148 1144 Si la variable d'environnement <envar>PGCLIENTENCODING</envar> est définie 1149 dans l'environnement client, ce codage client est automatiquement 1150 sélectionné lorsqu'une connexion au serveur est établie (ceci peut être 1151 surchargé avec n'importe quelle autre des méthodes ci-dessus). 1145 dans l'environnement client, l'encodage client est automatiquement 1146 sélectionné lors de l'établissement d'une connexion au serveur (cette 1147 variable peut être surchargée à l'aide de toute autre méthode 1148 décrite ci-dessus). 1152 1149 </para> 1153 1150 </listitem> … … 1155 1152 <listitem> 1156 1153 <para> 1157 En utilisant la variable de configuration <xref1158 linkend="guc-client-encoding"/>.1154 en utilisant la variable de configuration 1155 <xref linkend="guc-client-encoding"/>. 1159 1156 Si la variable <varname>client_encoding</varname> est définie, 1160 ce codage client est automatiquement sélectionné lorsqu'une1161 connexion au serveur est établie (ceci peut être surchargé avec1162 n'importe quelle autre des méthodesci-dessus).1157 l'encodage client est automatiquement sélectionné lors de 1158 l'établissement d'une connexion au serveur (cette variable peut être 1159 surchargée à l'aide de toute autre méthode décrite ci-dessus). 1163 1160 </para> 1164 1161 </listitem> … … 1169 1166 <para> 1170 1167 Si la conversion d'un caractère particulier n'est pas possible — 1171 supposons que vous avez choisi<literal>EUC_JP</literal> pour le serveur1172 et <literal>LATIN1</literal> pour le client, alorscertains caractères1168 dans le cas d'encodages <literal>EUC_JP</literal> pour le serveur 1169 et <literal>LATIN1</literal> pour le client, par exemple, certains caractères 1173 1170 japonais n'ont pas de représentation en <literal>LATIN1</literal> 1174 — ceci amène une erreur.1171 — une erreur est remontée. 1175 1172 </para> 1176 1173 1177 1174 <para> 1178 Si l'en semble de caractères duclient est défini en tant que1179 <literal>SQL_ASCII</literal>, la conversion d ucodage est désactivée quelque1180 soit l'ensemble de caractères du serveur. Comme pour le serveur, utiliser1181 <literal>SQL_ASCII</literal> est déconseillé sauf si vous ne travaillezqu'avec1175 Si l'encodage client est défini en tant que 1176 <literal>SQL_ASCII</literal>, la conversion de l'encodage est désactivée quelque 1177 soit celui du serveur. Comme pour le serveur, 1178 <literal>SQL_ASCII</literal> est déconseillé sauf à ne travailler qu'avec 1182 1179 des données ASCII. 1183 1180 </para> … … 1185 1182 1186 1183 <sect2> 1187 <title>P lus de lecture</title>1184 <title>Pour aller plus loin</title> 1188 1185 1189 1186 <para> 1190 Ceux-ci sont de bonnes sources pour commencer à maîtriser les différents1187 Quelques sources intéressantes pour commencer à maîtriser les différents 1191 1188 jeux de caractères. 1192 1189 1193 1190 <variablelist> 1194 1191 <varlistentry> 1195 <term><ulink 1196 url="http://www.i18ngurus.com/docs/984813247.html"></ulink></term> 1192 <term><ulink url="http://www.i18ngurus.com/docs/984813247.html"></ulink></term> 1197 1193 1198 1194 <listitem> 1199 1195 <para> 1200 Une collection complète de documents sur les ensemblesde caractères,1201 les codages et les pages code.1196 Une collection complète de documents sur les jeux de caractères, 1197 les encodages et les pages code. 1202 1198 </para> 1203 1199 </listitem> … … 1205 1201 1206 1202 <varlistentry> 1207 <term><ulink 1208 url="ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf"></ulink></term> 1203 <term><ulink url="ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf"></ulink></term> 1209 1204 1210 1205 <listitem> … … 1222 1217 <listitem> 1223 1218 <para> 1224 Le site web du Unicode Consortium 1219 Le site web du Unicode Consortium. 1225 1220 </para> 1226 1221 </listitem> traduc/trunk/manuel/client-auth.xml
r498 r506 13 13 Unix sous un nom d'utilisateur particulier. Au sein de l'environnement SQL, le 14 14 nom d'utilisateur de la base de données active détermine les droits 15 régissant l'accès aux objets de la base de données — voir le <xref16 linkend="user-manag"/> pour plus d'informations. Ainsi, il est essentiel de15 régissant l'accès aux objets de la base de données — voir le 16 <xref linkend="user-manag"/> pour plus d'informations. Ainsi, il est essentiel de 17 17 limiter le nombre des bases de données auxquelles les utilisateurs peuvent se 18 18 connecter.</para> … … 22 22 Comme expliqué dans le <xref linkend="user-manag"/>, 23 23 <productname>PostgreSQL</productname> gère les droits par l'intermédiaire 24 des <quote>rôles</quote>. Dans ce chapitre, nous utilisons constamment25 <firstterm>utilisateur de bases de données</firstterm> pour signifier <quote>rôle26 disposant du droit <literal>LOGIN</literal></quote>.24 des <quote>rôles</quote>. Dans ce chapitre, le terme 25 <firstterm>utilisateur de bases de données</firstterm> est utilisé pour 26 signifier <quote>rôle disposant du droit <literal>LOGIN</literal></quote>. 27 27 </para> 28 28 </note> … … 30 30 <para>L'<firstterm>authentification</firstterm> est le processus par lequel le 31 31 serveur de bases de données établit l'identité du client et, par extension, 32 par lequel il détermine si l'application client (ou l'utilisateur sous le nom33 de laquelle elle fonctionne) est autorisée à se connecter sous le nom34 d'utilisateur demandé de la base de données.</para>32 détermine si l'application client (ou l'utilisateur qui l'utilise) est 33 autorisée à se connecter avec le nom d'utilisateur de la base de données 34 indiqué.</para> 35 35 36 36 <para><productname>PostgreSQL</productname> offre quantité de méthodes 37

