diff --git a/howto/unicode.po b/howto/unicode.po index 22be9610..264ff421 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-02-23 18:32+0100\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: POEdit 2.2\n" #: ../Doc/howto/unicode.rst:5 msgid "Unicode HOWTO" -msgstr "" +msgstr "Guide Unicode" #: ../Doc/howto/unicode.rst:0 msgid "Release" @@ -24,21 +25,24 @@ msgstr "Version" #: ../Doc/howto/unicode.rst:7 msgid "1.12" -msgstr "" +msgstr "1.12" #: ../Doc/howto/unicode.rst:9 msgid "" "This HOWTO discusses Python support for Unicode, and explains various " "problems that people commonly encounter when trying to work with Unicode." msgstr "" +"Ce HOWTO décrit le support d'Unicode par Python et explique les différents " +"problèmes généralement rencontrés par les utilisateurs qui travaillent avec " +"Unicode." #: ../Doc/howto/unicode.rst:14 msgid "Introduction to Unicode" -msgstr "" +msgstr "Introduction à Unicode" #: ../Doc/howto/unicode.rst:17 msgid "History of Character Codes" -msgstr "" +msgstr "Histoire des codes de caractères" #: ../Doc/howto/unicode.rst:19 msgid "" @@ -47,6 +51,11 @@ msgid "" "for various characters, with the numeric values running from 0 to 127. For " "example, the lowercase letter 'a' is assigned 97 as its code value." msgstr "" +"En 1968, l'*American Standard Code for Information Interchange*, mieux connu " +"sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait des codes " +"numériques pour différents caractères, les valeurs numériques s'étendant de " +"0 à 127. Par exemple, la lettre minuscule « a » est assignée à 97 comme " +"valeur de code." #: ../Doc/howto/unicode.rst:24 msgid "" @@ -57,6 +66,13 @@ msgid "" "words such as 'naïve' and 'café', and some publications have house styles " "which require spellings such as 'coöperate'.)" msgstr "" +"ASCII était une norme développée par les États-Unis, elle ne définissait " +"donc que des caractères non accentués. Il y avait « e », mais pas « é » ou " +"« Í ». Cela signifiait que les langues qui nécessitaient des caractères " +"accentués ne pouvaient pas être fidèlement représentées en ASCII. (En fait, " +"les accents manquants importaient pour l'anglais aussi, qui contient des " +"mots tels que « naïve » et « café », et certaines publications ont des " +"styles propres qui exigent des orthographes tels que « *coöperate* ».)" #: ../Doc/howto/unicode.rst:31 msgid "" @@ -64,12 +80,17 @@ msgid "" "mid-1980s an Apple II BASIC program written by a French speaker might have " "lines like these:" msgstr "" +"Pendant un certain temps, les gens ont juste écrit des programmes qui " +"n'affichaient pas d'accents. Au milieu des années 1980, un programme Apple " +"II BASIC écrit par un français pouvait avoir des lignes comme celles-ci : ::" #: ../Doc/howto/unicode.rst:40 msgid "" "Those messages should contain accents (terminée, paramètre, enregistrés) and " "they just look wrong to someone who can read French." msgstr "" +"Ces messages devraient contenir des accents (terminée, paramètre, " +"enregistrés) et ils ont juste l'air anormaux à quelqu'un lisant le français." #: ../Doc/howto/unicode.rst:43 msgid "" @@ -83,6 +104,17 @@ msgid "" "conventions that were invented by one company or another and managed to " "catch on." msgstr "" +"Dans les années 1980, presque tous les ordinateurs personnels étaient à 8 " +"bits, ce qui signifie que les octets pouvaient contenir des valeurs allant " +"de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors certaines " +"machines ont assigné les valeurs entre 128 et 255 à des caractères " +"accentués. Différentes machines avaient des codes différents, cependant, ce " +"qui a conduit à des problèmes d'échange de fichiers. Finalement, divers " +"ensembles de valeurs couramment utilisés pour la gamme 128--255 ont émergé. " +"Certains étaient de véritables normes, définies par l'Organisation " +"internationale de normalisation, et certaines étaient des conventions *de " +"facto* qui ont été inventées par une entreprise ou une autre et qui ont fini " +"par se répandre." #: ../Doc/howto/unicode.rst:52 msgid "" @@ -91,6 +123,10 @@ msgid "" "for Russian into the 128--255 range because there are more than 128 such " "characters." msgstr "" +"255 caractères, ça n'est pas beaucoup. Par exemple, vous ne pouvez pas " +"contenir à la fois les caractères accentués utilisés en Europe occidentale " +"et l'alphabet cyrillique utilisé pour le russe dans la gamme 128--255, car " +"il y a plus de 128 de tous ces caractères." #: ../Doc/howto/unicode.rst:56 msgid "" @@ -100,6 +136,12 @@ msgid "" "that quotes some Russian text? In the 1980s people began to want to solve " "this problem, and the Unicode standardization effort began." msgstr "" +"Vous pouviez écrire les fichiers avec des codes différents (tous vos " +"fichiers russes dans un système de codage appelé *KOI8*, tous vos fichiers " +"français dans un système de codage différent appelé *Latin1*), mais que " +"faire si vous souhaitiez écrire un document français citant du texte russe ? " +"Dans les années 80, les gens ont commencé à vouloir résoudre ce problème, et " +"les efforts de standardisation Unicode ont commencé." #: ../Doc/howto/unicode.rst:62 msgid "" @@ -111,6 +153,14 @@ msgid "" "meet that goal, and the modern Unicode specification uses a wider range of " "codes, 0 through 1,114,111 ( ``0x10FFFF`` in base 16)." msgstr "" +"Unicode a commencé par utiliser des caractères 16 bits au lieu de 8 bits. 16 " +"bits signifie que vous avez 2^16 = 65 536 valeurs distinctes disponibles, ce " +"qui permet de représenter de nombreux caractères différents à partir de " +"nombreux alphabets différents. Un des objectifs initiaux était de faire en " +"sorte que Unicode contienne les alphabets de chaque langue humaine. Il " +"s’avère que même 16 bits ne suffisent pas pour atteindre cet objectif, et la " +"spécification Unicode moderne utilise une gamme de codes plus étendue, " +"allant de 0 à 1 114 111 (``0x10FFFF`` en base 16)." #: ../Doc/howto/unicode.rst:70 msgid "" @@ -118,6 +168,9 @@ msgid "" "originally separate efforts, but the specifications were merged with the 1.1 " "revision of Unicode." msgstr "" +"Il existe une norme ISO connexe, ISO 10646. Unicode et ISO 10646 étaient à " +"l’origine des efforts séparés, mais les spécifications ont été fusionnées " +"avec la révision 1.1 d’Unicode." #: ../Doc/howto/unicode.rst:74 msgid "" @@ -127,10 +180,16 @@ msgid "" "listed in the References or the `Wikipedia entry for Unicode `_ for more information.)" msgstr "" +"(Cette discussion sur l’historique d’Unicode est extrêmement simplifiée. Les " +"détails historiques précis ne sont pas nécessaires pour comprendre comment " +"utiliser efficacement Unicode, mais si vous êtes curieux, consultez le site " +"du consortium Unicode indiqué dans les références ou la `page Wikipédia pour " +"Unicode `_ (page en anglais) pour plus " +"d’informations.)" #: ../Doc/howto/unicode.rst:83 msgid "Definitions" -msgstr "" +msgstr "Définitions" #: ../Doc/howto/unicode.rst:85 msgid "" @@ -142,6 +201,14 @@ msgid "" "the same in some fonts), but these are two different characters that have " "different meanings." msgstr "" +"Un **caractère** est le plus petit composant possible d'un texte. « A », " +"« B », « C », etc., sont tous des caractères différents. Ainsi sont « È » " +"et « Í ». Les caractères sont des abstractions, et varient en fonction de " +"la langue ou le contexte dont vous parlez. Par exemple, le symbole pour " +"ohms (Ω) est généralement dessiné comme la lettre majuscule Omega (Ω) dans " +"l'alphabet grec (ils peuvent même être les mêmes dans certaines polices), " +"mais ce sont deux caractères différents qui ont des significations " +"différentes." #: ../Doc/howto/unicode.rst:93 msgid "" @@ -152,6 +219,12 @@ msgid "" "contains a lot of tables listing characters and their corresponding code " "points:" msgstr "" +"Le standard Unicode décrit la façon dont les caractères sont représentés par " +"des **points de code**. Un point de code est une valeur entière, " +"généralement notée en base 16. Dans la norme, un point de code est écrit en " +"utilisant la notation ``U+12CA`` pour signifier le caractère dont la valeur est " +"``0x12ca`` (4 810 en décimal). La norme Unicode contient un grand nombre de " +"tableaux répertoriant les caractères et leurs points de code correspondants :" #: ../Doc/howto/unicode.rst:107 msgid "" @@ -161,6 +234,11 @@ msgid "" "SYLLABLE WI'. In informal contexts, this distinction between code points " "and characters will sometimes be forgotten." msgstr "" +"De manière stricte, ces définitions impliquent qu'il est inutile de dire " +"« c’est le caractère ``U+12CA`` ». ``U+12CA`` est un point de code, qui " +"représente un caractère particulier ; dans ce cas, il représente le " +"caractère ‘ETHIOPIC SYLLABLE WI’. Dans des contextes informels, cette " +"distinction entre les points de code et les caractères est parfois oubliée." #: ../Doc/howto/unicode.rst:113 msgid "" @@ -171,10 +249,17 @@ msgid "" "to worry about glyphs; figuring out the correct glyph to display is " "generally the job of a GUI toolkit or a terminal's font renderer." msgstr "" +"Un caractère est représenté sur un écran ou sur papier par un ensemble " +"d’éléments graphiques appelé un **glyphe**. Le glyphe pour un A majuscule, " +"par exemple, est constitué de deux traits en diagonale et d’un trait " +"horizontal, bien que les détails exacts dépendent de la police utilisée. La " +"plupart du code Python n’a pas besoin de s’inquiéter des glyphes ; " +"déterminer le bon glyphe à afficher est généralement le travail d’une " +"bibliothèque graphique ou du moteur de rendu des polices d’un terminal." #: ../Doc/howto/unicode.rst:122 msgid "Encodings" -msgstr "" +msgstr "Encodages" #: ../Doc/howto/unicode.rst:124 msgid "" @@ -184,22 +269,35 @@ msgid "" "from 0 through 255) in memory. The rules for translating a Unicode string " "into a sequence of bytes are called an **encoding**." msgstr "" +"Pour résumer la section précédente : une chaîne Unicode est une séquence de " +"points de code, qui sont des nombres de 0 à ``0x10FFFF`` (1 114 111 en " +"décimal). Cette séquence doit être représentée sous la forme d'un ensemble " +"d'octets (c'est à dire, de valeur comprise entre 0 et 255) en mémoire. Les " +"règles de traduction d'une chaîne Unicode en une séquence d'octets sont " +"appelées un **encodage**." #: ../Doc/howto/unicode.rst:130 msgid "" "The first encoding you might think of is an array of 32-bit integers. In " "this representation, the string \"Python\" would look like this:" msgstr "" +"Le premier encodage auquel vous pouvez penser est un tableau d’entiers sur " +"32 bits. Dans cette représentation, la chaîne « Python » ressemble à " +"ceci:" #: ../Doc/howto/unicode.rst:139 msgid "" "This representation is straightforward but using it presents a number of " "problems." msgstr "" +"Cette représentation est simple mais son utilisation pose un certain nombre " +"de problèmes." #: ../Doc/howto/unicode.rst:142 msgid "It's not portable; different processors order the bytes differently." msgstr "" +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"différemment." #: ../Doc/howto/unicode.rst:144 msgid "" @@ -211,18 +309,32 @@ msgid "" "that large), but expanding our usage of disk and network bandwidth by a " "factor of 4 is intolerable." msgstr "" +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " +"occupé par des octets ``0x00``. La chaîne ci-dessus prend 24 octets par " +"rapport aux 6 octets nécessaires pour une représentation en ASCII. " +"L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " +"ordinateurs de bureau ont des gigaoctets de RAM, et les chaînes ne sont " +"généralement pas si grandes que ça), mais l'accroissement de notre " +"utilisation du disque et de la bande passante réseau par un facteur de 4 est " +"intolérable." #: ../Doc/howto/unicode.rst:152 msgid "" "It's not compatible with existing C functions such as ``strlen()``, so a new " "family of wide string functions would need to be used." msgstr "" +"Elle n’est pas compatible avec les fonctions C existantes telles que " +"``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " +"celle des chaînes larges (*wide strings*)." #: ../Doc/howto/unicode.rst:155 msgid "" "Many Internet standards are defined in terms of textual data, and can't " "handle content with embedded zero bytes." msgstr "" +"De nombreuses normes Internet sont définies en termes de données textuelles " +"et ne peuvent pas gérer le contenu incorporant des octets *zéro*." #: ../Doc/howto/unicode.rst:158 msgid "" @@ -230,6 +342,10 @@ msgid "" "that are more efficient and convenient. UTF-8 is probably the most commonly " "supported encoding; it will be discussed below." msgstr "" +"Généralement, les gens n’utilisent pas cet encodage, mais optent pour " +"d’autres encodages plus efficaces et pratiques. UTF-8 est probablement " +"l’encodage le plus couramment pris en charge ; celui-ci sera abordé ci-" +"dessous." #: ../Doc/howto/unicode.rst:162 msgid "" @@ -237,12 +353,17 @@ msgid "" "encodings don't. The rules for converting a Unicode string into the ASCII " "encoding, for example, are simple; for each code point:" msgstr "" +"Les encodages n'ont pas à gérer tous les caractères Unicode possibles, et " +"les plupart ne le font pas. Les règles pour convertir une chaîne Unicode en " +"codage ASCII, par exemple, sont simples. pour chaque point de code :" #: ../Doc/howto/unicode.rst:166 msgid "" "If the code point is < 128, each byte is the same as the value of the code " "point." msgstr "" +"Si le point de code est < 128, chaque octet est identique à la valeur du " +"point de code." #: ../Doc/howto/unicode.rst:169 msgid "" @@ -250,6 +371,9 @@ msgid "" "in this encoding. (Python raises a :exc:`UnicodeEncodeError` exception in " "this case.)" msgstr "" +"Si le point de code est égal à 128 ou plus, la chaîne Unicode ne peut pas " +"être représentée dans ce codage (Python déclenche une exception :exc:" +"`UnicodeEncodeError` dans ce cas)." #: ../Doc/howto/unicode.rst:173 msgid "" @@ -259,6 +383,11 @@ msgid "" "point larger than 255 is encountered, the string can't be encoded into " "Latin-1." msgstr "" +"Latin-1, également connu sous le nom de ISO-8859-1, est un encodage " +"similaire. Les points de code Unicode 0–-255 étant identiques aux valeurs de " +"Latin-1, la conversion en cet encodage nécessite simplement la " +"conversion des points de code en octets de même valeur ; si un point de code " +"supérieur à 255 est rencontré, la chaîne ne peut pas être codée en latin-1." #: ../Doc/howto/unicode.rst:178 msgid "" @@ -269,6 +398,14 @@ msgid "" "encoding, you'd probably use some sort of lookup table to perform the " "conversion, but this is largely an internal detail." msgstr "" +"Les encodages ne doivent pas nécessairement être de simples mappages un à " +"un, comme Latin-1. Prenons l’exemple du code EBCDIC d’IBM, utilisé sur les " +"ordinateurs centraux IBM. Les valeurs de lettre ne faisaient pas partie d’un " +"bloc: les lettres « a » à « i » étaient comprises entre 129 et 137, mais les " +"lettres « j » à « r » étaient comprises entre 145 et 153. Si vous vouliez " +"utiliser EBCDIC comme encodage, vous auriez probablement utilisé une sorte " +"de table de correspondance pour effectuer la conversion, mais il s’agit en " +"surtout d’un détail d'implémentation." #: ../Doc/howto/unicode.rst:185 msgid "" @@ -277,25 +414,35 @@ msgid "" "the encoding. (There are also a UTF-16 and UTF-32 encodings, but they are " "less frequently used than UTF-8.) UTF-8 uses the following rules:" msgstr "" +"UTF-8 est l’un des encodages les plus couramment utilisés. UTF signifie " +"« Unicode Transformation Format » (format de transformation Unicode) et " +"« 8 » signifie que des nombres à 8 bits sont utilisés dans l'encodage. (Il " +"existe également des codages UTF-16 et UTF-32, mais ils sont moins souvent " +"utilisés que UTF-8.) UTF-8 utilise les règles suivantes :" #: ../Doc/howto/unicode.rst:190 msgid "" "If the code point is < 128, it's represented by the corresponding byte value." msgstr "" +"Si le point de code est < 128, chaque octet est identique à la valeur du " +"point de code." #: ../Doc/howto/unicode.rst:191 msgid "" "If the code point is >= 128, it's turned into a sequence of two, three, or " "four bytes, where each byte of the sequence is between 128 and 255." msgstr "" +"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " +"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " +"et 255." #: ../Doc/howto/unicode.rst:194 msgid "UTF-8 has several convenient properties:" -msgstr "" +msgstr "UTF-8 a plusieurs propriétés intéressantes :" #: ../Doc/howto/unicode.rst:196 msgid "It can handle any Unicode code point." -msgstr "" +msgstr "Il peut gérer n'importe quel point de code Unicode." #: ../Doc/howto/unicode.rst:197 msgid "" @@ -304,16 +451,23 @@ msgid "" "be processed by C functions such as ``strcpy()`` and sent through protocols " "that can't handle zero bytes." msgstr "" +"Une chaîne Unicode est transformée en une séquence d'octets ne contenant " +"aucun octet *zéro*. Cela évite les problèmes d'*endianness* et signifie que " +"les chaînes UTF-8 peuvent être traitées par des fonctions C telles que " +"``strcpy()`` et envoyées via des protocoles qui ne peuvent pas gérer les " +"octets *zéro*." #: ../Doc/howto/unicode.rst:201 msgid "A string of ASCII text is also valid UTF-8 text." -msgstr "" +msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." #: ../Doc/howto/unicode.rst:202 msgid "" "UTF-8 is fairly compact; the majority of commonly used characters can be " "represented with one or two bytes." msgstr "" +"UTF-8 est assez compact. La majorité des caractères couramment utilisés " +"peuvent être représentés avec un ou deux octets." #: ../Doc/howto/unicode.rst:204 msgid "" @@ -321,6 +475,10 @@ msgid "" "next UTF-8-encoded code point and resynchronize. It's also unlikely that " "random 8-bit data will look like valid UTF-8." msgstr "" +"Si des octets sont corrompus ou perdus, il est possible de déterminer le " +"début du prochain point de code encodé en UTF-8 et de se resynchroniser. Il " +"est également improbable que des données 8-bits aléatoires ressemblent à du " +"UTF-8 valide." #: ../Doc/howto/unicode.rst:211 ../Doc/howto/unicode.rst:485 #: ../Doc/howto/unicode.rst:705