-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathinternationalization.theory.txt
98 lines (88 loc) · 6.39 KB
/
internationalization.theory.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ INTERNATIONALIZATION ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
VOCABULARY ==> # - l10n ("localization") : implementation of few languages (e.g. traduction)
# - i18n ("internationalization") : création d'une interface permettant nombreuses l10n, mais
# seulement deux à la fois (la référence (en général english) et l'actuel (e.g. french))
# - m17n ("multilingualization") : pareil, mais peut afficher plusieurs à la fois
GENERAL ==> #Internationalization (i18n) : donner possibilité de localiser (utilisation de gettext, de
#basic_string, support d'Unicode, etc.). En général travail des développeurs.
#Localization (l10n) : provide support for a particular langage (création de traduction pour une langue
#par exemple). En général travail des traducteurs.
GENERALITES ==> #Locales :
# - Locale = langue + charset
# - Nom d'une locale : "en_US" ou "en_US-UTF.8". Les minuscules est le langage, majuscules le pays.
#Locales possibles :
# - Ensemble de noms de locales supportées par l'OS (mais non installés) :
# - Linux :
# - Ubuntu : /usr/share/i18n/SUPPORTED
# - "C" : locale POSIX
#Installer des locales :
# - Installées par l'installateur de l'OS
# - Additionnel :
# - Générer une locale sous Linux :
# - Ubuntu : locale-gen $LOCALE_NOM
# - Archlinux : decommenter /etc/locale.gen et faire locale-gen
# - il existe aussi des GUI dans les system settings de tous les OS
#Locales installées :
# - /usr/share/i18n/locales/$LOCALE_NOM : fichier locale. Fichier texte utilisé par setlocale() et
# par std::locale pour déterminer les facets.
# - /usr/lib/locale : pareil, mais sous forme compilé, et que pour locale "C"
# - Voir locales dispos : locale -a
# - /usr/share/locale : contient fichiers .mo pour gettext : ./$LOCALE_NOM/LC_MESSAGES/APPLICATION.mo
#Locale courante :
# - commande locale
# - La locale courante est communiquée au programme via l'environment variable, à la librarie C. Dans
# ordre du plus prioritaire au moins :
# - LANGUAGE (qui peut être sous la forme "en_US:fr_FR:etc.") (ignoré si LANG="C")
# - LC_ALL
# - LC_* (cf <locale.h>)
# - LANG (souvent celui-là) (souvent dans .bashrc d'un utilisateur particulier)
# En général précisé dans un fichier conf, par exemple dans :
# - Ubuntu : /etc/default/locale
# - Archlinux : /etc/rc.conf
#Créer une locale perso :
# - commande localedef
ASPECTS ==> # - traductions
# - charset utilisé (conversion caractère, taille caractère) ; conversion majuscule, etc. ;
# comparaison de caractères
# - polices pour utiliser ce charset
# - gravity et bidirectionnalité
# - shift state
# - représentation numérique (virgule, milliers, signes) et monétaire (dont currency)
# - représentation dates
# - adresses
# - numéro de téléphone
# - nom, prénom, etc.
# - taille/format des feuilles
# - système métrique (m, kg, sec., Newton, Pascal, Joule, Watt, Ampere, °C, candela, mole, Hz,
# coulomb, volt, ohm, litre, hectare, min., heure, jour, bar, degré) : partout, sauf USA, Libera,
# Burma, Sierra Leone et un peu UK. Autre :
# - 1 league = 3 miles = 4.828km
# - (land) mile = 1760 yards = 1.609344km
# - nautical mile : 1852m
# - 1 furlong = 10 chains = 201.1609m
# - 1 chain = 4 rods = 20.12m
# - 1 rod = 5.5 yards = 5.029m
# - 1 yard = 3 feet = 91.44cm
# - 1 foot = 12 inches = 30.48cm
# - 1 link = 20.12cm
# - 1 inch = 6 pica = 2.54cm
# - 1 pica = 12 point = 4.233mm
# - 1 point (p) = 0.3528mm
# - noeuds/knots
# - onces (oz), gallons, pounds
# - °F
POLICES ==> #Police doit pouvoir afficher texte. Deux solutions :
# - laisser police du système par défaut, en laissant à l'user installer la police nécessaire.
# - mettre des fallback fonts, en cas où un caractère n'est pas affichable avec la police courante.
# Utilisation donc de sets de polices. Pango permet cela.
#On peut aussi combiner en mettant police par défaut en premier, puis une fallback font perso.
BIDIRECTIONNALITES ET
SENS D'ECRITURE
(GRAVITY) ==> #A tester. Pango la prend en charge.
SHIFT STATE ==> #Ne sait pas exactement comment cela marche.
NIVEAU DE LOCALIZATION # - runtime (GUI ou output CLI)
==> # - documentation pour user, site internet
# - documentation pour développeur, API
# - commentaires dans code