Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
Joaquiacuten Seoane DITUPM
Estas transparencias se ven perfectamente con Mozilla 14 y derivados Aquiacute [interpdf] puede veruna transcripcioacuten rudimentaria en PDF por si tiene dificultades O bajarse todo [interzip] incluidas
fuentes
Introduccioacuten
Introduccioacuten
2 133
bull Acceso universal a programas datos y serviciosbull Acceso a mercados globalesbull Creacioacuten de comunidades globalesbull Creacioacuten de mercados y comunidades localesbull Cultura
bull Idiomabull Creencias usos y costumbresbull Regulaciones legalesbull (Dis)capacidad fiacutesica
Motivacioacuten
Introduccioacuten 3 133
i18n (internacionalizacioacuten) Construir para la lo-calizacioacuten faacutecil
l10n (localizacioacuten) Adaptar a culturaslocales
Locale (localidad) Descripcioacuten de unacultura local
g11n (globalizacioacuten) i18n + l10n
Teacuterminos y siglas
Introduccioacuten 4 133
bull La interfaz de usuariobull Mensajesbull Iconos
bull Los objetos manipulados por el programabull Documentosbull Datos
iquestQueacute se localiza
Introduccioacuten 5 133
bull Estaacuteticamentebull Dinaacutemicamente
bull Tablasbull Bibliotecas dinaacutemicas
iquestComo se localiza
Introduccioacuten 6 133
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Introduccioacuten
Introduccioacuten
2 133
bull Acceso universal a programas datos y serviciosbull Acceso a mercados globalesbull Creacioacuten de comunidades globalesbull Creacioacuten de mercados y comunidades localesbull Cultura
bull Idiomabull Creencias usos y costumbresbull Regulaciones legalesbull (Dis)capacidad fiacutesica
Motivacioacuten
Introduccioacuten 3 133
i18n (internacionalizacioacuten) Construir para la lo-calizacioacuten faacutecil
l10n (localizacioacuten) Adaptar a culturaslocales
Locale (localidad) Descripcioacuten de unacultura local
g11n (globalizacioacuten) i18n + l10n
Teacuterminos y siglas
Introduccioacuten 4 133
bull La interfaz de usuariobull Mensajesbull Iconos
bull Los objetos manipulados por el programabull Documentosbull Datos
iquestQueacute se localiza
Introduccioacuten 5 133
bull Estaacuteticamentebull Dinaacutemicamente
bull Tablasbull Bibliotecas dinaacutemicas
iquestComo se localiza
Introduccioacuten 6 133
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Acceso universal a programas datos y serviciosbull Acceso a mercados globalesbull Creacioacuten de comunidades globalesbull Creacioacuten de mercados y comunidades localesbull Cultura
bull Idiomabull Creencias usos y costumbresbull Regulaciones legalesbull (Dis)capacidad fiacutesica
Motivacioacuten
Introduccioacuten 3 133
i18n (internacionalizacioacuten) Construir para la lo-calizacioacuten faacutecil
l10n (localizacioacuten) Adaptar a culturaslocales
Locale (localidad) Descripcioacuten de unacultura local
g11n (globalizacioacuten) i18n + l10n
Teacuterminos y siglas
Introduccioacuten 4 133
bull La interfaz de usuariobull Mensajesbull Iconos
bull Los objetos manipulados por el programabull Documentosbull Datos
iquestQueacute se localiza
Introduccioacuten 5 133
bull Estaacuteticamentebull Dinaacutemicamente
bull Tablasbull Bibliotecas dinaacutemicas
iquestComo se localiza
Introduccioacuten 6 133
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
i18n (internacionalizacioacuten) Construir para la lo-calizacioacuten faacutecil
l10n (localizacioacuten) Adaptar a culturaslocales
Locale (localidad) Descripcioacuten de unacultura local
g11n (globalizacioacuten) i18n + l10n
Teacuterminos y siglas
Introduccioacuten 4 133
bull La interfaz de usuariobull Mensajesbull Iconos
bull Los objetos manipulados por el programabull Documentosbull Datos
iquestQueacute se localiza
Introduccioacuten 5 133
bull Estaacuteticamentebull Dinaacutemicamente
bull Tablasbull Bibliotecas dinaacutemicas
iquestComo se localiza
Introduccioacuten 6 133
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull La interfaz de usuariobull Mensajesbull Iconos
bull Los objetos manipulados por el programabull Documentosbull Datos
iquestQueacute se localiza
Introduccioacuten 5 133
bull Estaacuteticamentebull Dinaacutemicamente
bull Tablasbull Bibliotecas dinaacutemicas
iquestComo se localiza
Introduccioacuten 6 133
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Estaacuteticamentebull Dinaacutemicamente
bull Tablasbull Bibliotecas dinaacutemicas
iquestComo se localiza
Introduccioacuten 6 133
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Idiomabull Repertorio de caracteresbull Construccioacuten de frasesbull Ordenacioacutenbull Organizacioacuten del espaciobull Procesamiento (buacutesqueda normalizacioacuten pro-
nunciacioacuten )bull Cultural y legal
bull Fechas nuacutemeros moneda impuestos etcbull Iconos significativos no ofensivos
Problemas fundamentales
Introduccioacuten 7 133
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Mensajes de salida y error en cataacutelogosbull iexclNo construirlos concatenando
Mary + s balance is USD + 15Mary + tiene un saldo de doacutelares + 15
bull iexclNo basarse en ellos para guiones (scripts)bull Disminuye (un poco) la eficiencia
bull Mensajes de entrada opcionesbull Tener en cuenta los liacutemites espacialesbull Los iconos deben ser significativos y no ofensi-
vos cataacutelogosbull Si hay ES hablada pronunciacioacuten
Interfaz de usuario
Introduccioacuten 8 133
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Interfaz de usuario
Introduccioacuten 9 133
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Determinar legalidad anaacutelisis leacutexico o sintaacutecticobuacutesquedas aproximadas
bull Predicadosbull iquestEs alfabeacuteticobull iquestEs diacutegitobull iquestEs espaciobull iquestEs signo de puntuacioacutenbull iquestEs mayuacutesculabull iquestEs acentuadabull iquestEs ligadurabull iquestEs diacriacuteticobull iquestEs ideograma
Clasificacioacuten de caracteres
Introduccioacuten 10 133
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Convertir a mayuacutescula o a minuacutesculabull Sin sentido en aacuterabebull No tiene por queacute ser trivial
define toupper(c) ((c) - a + A)define tolower(c) ((c) - A + a)
bull Utilizar tabla (puede ser muy grande)bull Quitar acento (u otro adorno)
Trasliteracioacuten de caracteres
Introduccioacuten 11 133
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Ayuda para la buacutesqueda el coacutedigo numeacuterico pue-de valerbull En ASCII las mayuacutesculas salen antes que las
minuacutesculasbull Conviene usar el orden del diccionario
bull Las letras acentuadas van juntasbull Los guiones no importanbull En alemaacuten la letra szlig se ordena como ss (es
una ligadura)bull En castellano el par ch se ordena(ba) entre la
c y la dbull Los ideogramas se ordenan por
bull Representacioacuten foneacuteticabull Nuacutemero de radicales o de trazos
Ordenacioacuten de caracteres
Introduccioacuten 12 133
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Ordenacioacuten de caracteres
Introduccioacuten 13 133
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Codificacioacuten uacutenica (normalizada)bull Letras acentuadas aacute o a pero no ambasbull Ligaduras ligar siempre o nunca (szlig o ss)
bull Problemas con coacutedigos multioctetobull Codificacioacuten sin estado (no ISO 2022)bull Faacutecil sincronizacioacuten (eg multiocteto UTF-8)
bull Buacutesquedas especialesbull Independiente de mayuacutesculas o minuacutesculasbull Independiente de acentos
Buacutesqueda de cadenas
Introduccioacuten 14 133
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Expresar conjuntos de caracteres (POSIX 10032)bull Minuacutescula no es [a-z] sino [[lower]]bull Letra no es [A-Za-z] sino [[alpha]]bull Incluir caracteres muacuteltiples [a-[ch]]
bull Los comodines ( ) deben referirse a caracteres(no a octetos)
Patrones (expresiones regulares)
Introduccioacuten 15 133
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Transmitir y iquestmantener hora universalbull Presentar hora local (incluyendo cambios estacio-
nales)bull Mostrar fecha con el calendario local
bull Espantildea lun 13 dic 2004bull USA Mon Dec 13 2004bull Aacuterabe
bull Gregoriano 13 2004 (al reveacutes)bull Heacutegira 22 1483 (al reveacutes)
bull Japoacutenbull Gregoriano 2003113bull Emperador 15113 ()
Fechas y horas
Introduccioacuten 16 133
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull EEUU 543425bull Espantildea 543425bull Francia 5 43425bull Paises aacuterabes diacutegitos aacuterabes o indisbull Representacioacuten de los negativos
bull -100bull 100-bull (100)
Representacioacuten de nuacutemeros
Introduccioacuten 17 133
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull EEUU USD 1000bull Espantildea 1584335 ptabull Francia 1F56
Representacioacuten de monedas
Introduccioacuten 18 133
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Los caracteres
Los caracteres
19 133
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Hellobull iexclHolabull Eoano iuadebull Gruumlszlig Gottbull bull bull bull bull bull
Repertorios
Los caracteres 20 133
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Baudot 5 bitsbull ASCII 7 bitsbull Variantes nacionales de ISO-8859 8 bitsbull Repertorios orientales 16 bitsbull UCS ISO 10646 Unicode
[httpwwwunicodeorg]bull Unificacioacuten HAN 16 bits (BMP)bull Planos adicionales 31 bits
De baudot a UCS
Los caracteres 21 133
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Propiedades de los caracteresbull Caracteres de combinacioacutenbull Repertorio del Web HTML 40 XML ECMAScript
Java bull Esquemas de codificacioacuten
bull UCS-2 y UCS-4 para memoriabull UTF-7 UTF-8 y UTF-16 (extensibles) para com-
patibilidad transmisioacuten y almacenamientobull Repertorios tradicionales + entidades de ca-
raacutecter
Unicode
Los caracteres 22 133
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Gran confusioacuten de teacuterminos
Caraacutecter Objeto graacutefico abs-tracto usado en unlenguaje escritobull A veces tiene re-
lacioacuten con los fo-nemas (letras siacute-labas)
bull A veces repre-senta una idea
bull Casi siempre seextiende con con-troles diversosretorno de carrofin de liacutenea tabu-
Caracteres y juegos de caracteres
Los caracteres 23 133
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
lador campanasincronismosporciones de pro-tocolos
Conjuntojuegorepertorio decaracteres
Los usados en unidioma conjunto deidiomas o aplica-cioacuten
Caracteres y juegos de caracteres
Los caracteres 24 133
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Glifo Objetos graacuteficos con-cretos de la escriturabull A veces se corres-
ponden uno a unocon los caracteres
bull A veces un caraacutectertiene varias formas
bull A veces los caracte-res se ligan en unglifo
Tipo fundicioacuten font Juego de glifos delmismo estilobull Formas vertical
cursiva inclinada bull Pesos normal ne-
Representacioacuten graacutefica de los caracteres
Los caracteres 25 133
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
grita bull Anchura estrecho
normal anchobull Tamantildeos escala-
bles o fijos
Representacioacuten graacutefica de los caracteres
Los caracteres 26 133
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Charset = Juego de caracte-res codificado = Tabla de ca-racteres = CCS
Repertorio de carac-teres numerados
Punto = posicioacuten = code posi-tion
Nuacutemero de un caraacutec-ter en un juego decaracteres codifica-do
Forma de codificacioacuten (CEF) Funcioacuten de puntos asecuencias de uni-dades de coacutedigo
Esquema de codificacioacuten(CES)
Funcioacuten reversiblede secuencias deunidades de coacutedigoa secuencias de oc-tetos
Paacutegina de coacutedigos Correspondencia en-
Codificacioacuten de los caracteres 1
Los caracteres 27 133
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
1Ver modelo de Unicode [httpwwwunicodeorgunicodereportstr17]2No estoy seguro hay que verificarlo
tre esquemas de co-dificacioacuten y secuen-cias de glifos2
Codificacioacuten de los caracteres 1
Los caracteres 28 133
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull A veces se corresponden uno a uno las teclascon los caracteres
bull A veces un caraacutecter es combinacioacuten modificadory tecla
bull A veces un caraacutecter es secuencia de tecla muertay tecla
bull A veces se usan meacutetodos de entrada maacutes comple-josbull Basados en puntobull Basados en menuacutes (foneacuteticos)
Entrada de caracteres
Los caracteres 29 133
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Cada caraacutecter se representa en binario por su po-sicioacuten en el juego de caracteres codificado
bull Coacutedigos sucesivos para caracteres sucesivosbull Ordenacioacuten de cadenas de caracteresbull Conversiones de cadenas de diacutegitos a nuacuteme-
ros y viceversabull Necesidad de mayuacutesculas y minuacutesculasbull Facilidad de conversioacuten mayuacutesculas minuacutescu-
lasbull Ejemplos
bull Baudot (5 bits) ASCII (7 bits) EBCDIC de IBM(7 bits)
Esquemas de codificacioacuten sencillos
Los caracteres 30 133
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Permite representar minuacutesculasbull Ordenacioacuten sencilla (coacutedigos ascendentes)bull Conversiones y atributos sencillos (un bit)bull Caracteres de controlbull Sin diacriacuteticos ni otros caracteres latinos Va-
riantes nacionales ISO 646
bull Incompatiblesbull Pierden signos de puntuacioacutenbull Casi compatibles ASCIIbull Pierden facilidad de ordenar convertir clasifi-
car
ASCII y variantes de 7 bits
Los caracteres 31 133
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull 7 bits bastan para los alfabetos latinos naciona-les
bull Extensiones para representar siacutembolos graacuteficosCP437 CP850 (Llamados ASCII por los usuariosde PC)
bull A 10 de los 20 idiomas maacutes hablados les bastan 8bits
bull No bastan 8 bits para todos los alfabetos latinosbull 8 bits son un problema para canales de comuni-
cacioacuten de 7 bitsbull Ciertas conexiones asiacutencronas (7 bits + pari-
dad)bull Ciertos agentes de correo electroacutenico y otros
protocolos de internet
Esquemas de codificacioacuten sencillos de 8
Los caracteres 32 133
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull 8 bitsbull Compatibles con ASCIIbull Preferidos en el correo electroacutenico MIMEbull 10 variantesbull Todos contienen ASCIIbull Latin-1 fueacute el coacutedigo oficial de HTML (20)
ISO 8859
Los caracteres 33 133
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull ISO 8859-1 Idiomas del oeste europeo (Latin-1)bull ISO 8859-2 Idiomas del este europeo (Latin-2)bull ISO 8859-3 Idiomas europeos de sudeste espe-
ranto (Latin-3)bull ISO 8859-4 Idiomas escandinavosBalcanes
(Latin-4)bull ISO 8859-5 LatinCiriacutelicobull ISO 8859-6 LatinAacuterabebull ISO 8859-7 LatinGriegobull ISO 8859-8 LatinHebreobull ISO 8859-9 Modificacioacuten de Latin-1 para el Turco
(Latin-5)bull ISO 8859-10 Idiomas LapoacutenNoacuterdicosEsquimal
(Latin-6)
Variantes de ISO 8859
Los caracteres 34 133
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull ISO 8859-15 Idiomas del oeste europeo con euro y cent(Latin-9)
Variantes de ISO 8859
Los caracteres 35 133
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Chino 885000000 hablantesbull Ingleacutes 450000000 hablantesbull Hindi-Urdu 333000000 hablantesbull Espantildeol 266000000 hablantesbull Portugueacutes 175000000 hablantesbull Ruso 153000000 hablantesbull Aacuterabe 150000000 hablantesbull Japoneacutes 126000000 hablantesbull Franceacutes 122000000 hablantesbull Alemaacuten 118000000 hablantesbull Bengaliacute 110000000 hablantesbull Wu 77000000 hablantesbull Javaneacutes 75000000 hablantes
Idiomas maacutes importantes
Los caracteres 36 133
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Coreano 72000000 hablantesbull Italiano 63000000 hablantesbull Marathi 65000000 hablantesbull Telugu 55000000 hablantesbull Tamil 48000000 hablantesbull Cantoneacutes 47000000 hablantesbull Ucraniano 46000000 hablantes
Nota
De BABELAlis [httpalisisocorglanguesgrandeshtm]
Idiomas maacutes importantes
Los caracteres 37 133
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Secuencias de escapebull Muy usados en terminalesbull ISO 2022
bull Dos juegos de 16 caracteres de control C0 yC1
bull Cuatro juegos de 94 caracteres graacuteficos G0G1 G2 G3
bull Operaciones parabull cambiar de juego activo (shift in shift out)bull cargar juego (escape )
bull Muy complicado al necesitar mantener esta-dos
bull Poco usado para manipular texto multilinguumle
Extensiones del juego de caracteres
Los caracteres 38 133
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Consenso de organismos de normalizacioacutenbull Contentar a todas las partesbull Espacio de 32 bits
bull 256 grupos de 256 planos asignados a comiteacutesnacionales
bull Primer plano baacutesico multilinguumle uacutenico asig-nado
bull Inmanejablebull No define un orden de transmisioacuten en octetos
ISO10646 o UCS
Los caracteres 39 133
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Introducidos Latinos Griego Ciriacutelico HebreoAacuterabe Armenio Gregoriano Japoneacutes Chino Hi-ragana Katakana Coreano Hanguliano Devanga-ri Bengaliacute Gurmuki Gujarati Oriya Tamil Telu-gu Kannada Malayam Tai Lao Bopomofo y al-gunos otros
bull Trabajando en Tibetano Kumer Ruacutenico EtiacuteopeJerogliacuteficos y varios idiomas indo-europeos
bull No alfabeacuteticos siacutembolos graacuteficos tipograacuteficosmatemaacuteticos y cientiacuteficos como los proporciona-dos por TeX PostScript MS-DOS Macintosh Vi-deotext OCR
Caracteres de ISO10646 o UCS
Los caracteres 40 133
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Alianza de fabricantesbull Convergencia con plano multilinguumle de ISO10646
(inicialmente)bull Los 256 primeros puntos son Latin-1bull Principio unificacioacuten mismo punto para carac-
teres parecidosbull Unificacioacuten HAN Chino Japoneacutes Coreano
bull En evolucioacuten (actualmente versioacuten 40 Mayo de2002)
bull FFFE y FEFF para detectar orden de transmisioacutenbull E000 a F8FF de libre uso (usuarios y fabricantes)
Unicode
Los caracteres 41 133
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Grado 1 No combinacioacuten ni Hangul JamoGrado 2 Algunos de combinacioacuten Hebreo Aacuterabe
Devangari Bengaliacute Gurmukhi Oriya Ta-mil Telugo Kannada Malayalam Tai yLao
Grado 3 Todos
Grados de realizacioacuten de Unicode
Los caracteres 42 133
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Nota
Verlo con gucharmap o en el consorcio Unicode[httpwwwunicodeorgcharts]
Arquitectura de unicode
Los caracteres 43 133
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull 16 bits ocupan el doble pero manejablesbull Muy incompatible con sistemas de 8 bitsbull Difiacutecil internacionalizar programas hechosbull Problemas de transmisioacutenbull Codificar caracteres maacutes frecuentes con 8 bits y
extender
Esquemas de codificacioacuten multibyte
Los caracteres 44 133
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Problemas debull tamantildeo de camposbull cursoresbull cortar y pegarbull edicioacuten de liacuteneasbull casar patrones
bull Problemas del sistema de ficheros etc segun-do octeto
bull Problemas con fin de cadena (nulo)bull Problemas de sincronizacioacutenbull Solucioacuten coacutedigos extendidos que
bull no contienen bytes que son coacutedigos ASCIIbull no contienen caracteres prefijos de otros
Esquemas de codificacioacuten multibyte
Los caracteres 45 133
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Puntos 0 a 7F un octeto y tal cualbull Puntos mayores que 7F como secuencias de
80-FD elimina problemas de fin de cadena siste-ma operativo sincronizacioacuten
bull Preserva orden de UCSbull C0 a FD comienzan secuencia multiocteto deter-
minan longitudbull El resto son siempre de 80 a BFbull Representacioacuten (la maacutes corta posible)bull FE y FF no se usan
Esquema de codificacioacuten UTF-8
Los caracteres 46 133
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Unicode
0x00000000 - 0x0000007F 0xxxxxxx0x00000080 - 0x000007FF 110xxxxx 10xxxxxx0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
bull Resto de UCS
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Rangos en codificacioacuten UTF-8
Los caracteres 47 133
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Copyright (copy)
0xa9 = 1010 1001-gt 11000010 10101001 = 0xc2 0xa9
bull Desigual ()
0x2260 = 0010 0010 0110 0000-gt 11100010 10001001 10100000 = 0xe2 0x89 0xa0
Ejemplos de codificacioacuten UTF-8
Los caracteres 48 133
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Representa puntos de 0000 a 10FFFFbull Puntos menores que 10000 con 16 bitsbull Puntos mayores o iguales que 10000 con 32 bitsbull D800 a DFFF para extender como UTF-8
UTF-16
Los caracteres 49 133
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Definido en RFC 1642 codifica UNICODE en 7 bitsbull Tal cual A--Z a--z 0--9 ( ) -
+
bull Opcionalmente $ amp lt = gt [ ] ^ _ ` | +
bull Resto +base64- (- no es necesario si no si-gue de base64)
bull Signo + +-bull Ejemplo
Hi Mom hex 48 69 20 4D 6F4D 20 263A 21
utf-7 Hi Mom +Jjo-
UTF-7
Los caracteres 50 133
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Puede usarse UTF-7 para Unicodebull De hecho se usan meacutetodos generales para datos
de 8 bitsbull Un volcado hexadecimal es poco compacto
bull Expande 100bull Histoacuterico uuencode para uucp
bull Poco robusto cuando se sale de sistemasunix
bull Expande 37bull Modernamente base64 u otras (eg base82 en
PDF)bull Expande 35
Transferencia de informacioacuten por canales
Los caracteres 51 133
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Internacionalizacioacuten en C y Unix
Internacionalizacioacuten en C y Unix
52 133
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Caracteres estrechos soportados por C (ISO9899)bull Octetos
char c = aelig
bull Cadenas multiocteto
char mensaje[] = AacuteEacuteIacuteOacuteUacute AgraveEgraveIgraveOgraveUgrave
bull Caracteres anchos tipos derivados y bibliote-casbull ISO C89bull XPG2 Unix 98
Caracteres estrechos y anchos
Internacionalizacioacuten en C y Unix 53 133
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Caracteres anchos
wchar_t mensaje_ancho[]
bull Conversiones
mbstowcs (wchar_t const char size_t)wcstombs (char const wchar_t size_t)mbtowc (wchar_t const char size_t)wctomb (char wchar_t)
bull Determinacioacuten de longitud
int mblen (const char size_t)
bull mbtowc y mblen mantienen estado para juegos
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 54 133
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
con secuencias de conmutacioacuten (no reentrantes)
Ejemplo ISO C89
Internacionalizacioacuten en C y Unix 55 133
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Pasadas por variables de entorno o fijadas porprograma
bull Las localizaciones tienen categoriacuteas con nombresbull LC_COLLATE Ordenacioacuten strcollbull LC_CTYPE Clasificacioacuten conversioacutenbull LC_MESSAGES Idioma de los mensajes (cat-
doc o gettext)bull LC_MONETARY Unidades monetarias (locale-
conv)bull LC_NUMERIC Otros nuacutemeros (localeconv
quizaacute printf)bull LC_TIME Impresioacuten de fecha y hora (strfti-
me)bull LC_ALL todos
Localizaciones
Internacionalizacioacuten en C y Unix 56 133
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull LANG valor por omisioacutenbull LANGUAGE lista de valores ordenada por prefe-
rencias
Localizaciones
Internacionalizacioacuten en C y Unix 57 133
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bullsize_t strftime(char s size_t max
const char formatconst struct tm tm)
bull Mucha eleccioacuten de formatos
c Representacioacuten preferida de diacutea y horax Representacioacuten preferida de la fechaX Representacioacuten preferida de la horaa Abreviatura de diacutea de la semanaA Nombre de diacutea de la semanab Abreviatura del mesB Nombre del mesp `am o `pm o lo que sead Nuacutemero de diacutea del mesH Hora (de 24)
strftime
Internacionalizacioacuten en C y Unix 58 133
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
strftime
Internacionalizacioacuten en C y Unix 59 133
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bullstruct lconv localeconv(void)
bullstruct lconv
char decimal_point Caracter usado como punto decimal char thousands_sep Separador de miles char grouping Agrupamiento de diacutegitos char int_curr_symbol Basado en ISO 4217 char currency_symbol Siacutembolo monetario localchar mon_decimal_point Caracter usado como punto decimalchar mon_thousands_sep Separador de mileschar mon_grouping Igual que el campo `groupingchar positive_sign Signo para valores positivoschar negative_sign Signo para valores negativoschar int_frac_digits Diacutegitos fraccionales internacionaleschar frac_digits Diacutegitos fraccionales locales
localeconv
Internacionalizacioacuten en C y Unix 60 133
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
localeconv
Internacionalizacioacuten en C y Unix 61 133
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bullchar nl_langinfo (nl_item ITEM)
bullstrftime (s len X D tp)
produce
085309 031500
bull Lo correcto es
strftime (s len nl_langinfo (D_T_FMT) tp)
langinfo
Internacionalizacioacuten en C y Unix 62 133
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull C especifica que por omisioacuten se arranaca en el Cbull Por lo menos setlocale (LC_ALL )
bull Ajuste fino setlocale (CATEGORIacuteA VALOR)bull Consulta setlocale (CATEGORIacuteA NULL)bull Valores
bull C o POSIX obligatorio y por omisioacutenbull variable de entornobull Dependientes del sistema
bull spanish
bull Coacutedigos internacionales de idiomases_ES en_GB en_US
bull Idem + nombres de coacutedigos de caractereses_ESISO-8859-1
bull Como ficheros precompilados (por ejemplo en
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 63 133
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
usrliblocale)
Ajuste de localizaciones
Internacionalizacioacuten en C y Unix 64 133
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Idioma ISO639 ISO639-2Aacuterabe ar araAymara ay aymCatalaacuten ca catIngleacutes en engEsperan-to
eo epo
Castella-no
es eslspa
Coacutedigos de idiomas
Internacionalizacioacuten en C y Unix 65 133
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
es_ES Castellano de Espa-ntildea
es_MX Castellano de Meacutexi-co
en_US Ingleacutes de USAen_GB Ingleacutes britaacutenico
Coacutedigos de paiacuteses ISO3166
Internacionalizacioacuten en C y Unix 66 133
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Cataacutelogos de mensajes numerados por moacutedulos
include ltstdiohgtinclude ltnl_typeshgt
define SET 1define MSG_HELLO 1
nl_catd catfd
int main (int argc char argv) setlocale (LC_ALL )catfd = catopen (basename (argv [0]) MCLoadAll)printf (catgets (catfd SET MSG_HELLO hello worldn))catclose (catfd)return 0
Cataacutelogos de mensajes XOpen XPG4
Internacionalizacioacuten en C y Unix 67 133
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Indexacioacuten por mensaje original
include ltlocalehgtinclude ltgettexthgtinclude ltstdiohgt
main()
setlocale (LC_ALL )textdomain(helloprogram)printf(gettext(Hello worldn))
Cataacutelogos de mensajes Uniforum
Internacionalizacioacuten en C y Unix 68 133
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
catgets dificultad para mantener los nuacutemeros delos mensajes seguacuten se antildeaden o eliminanen los fuentes
gettext bull El programador no se preocupa del ca-taacutelogo
bull Colisioacuten de nombres difiacutecil porqueconviene usar frases
gettext(A )gettext(A spring in the spring) gettext(spring)
gettext( in the )gettext(spring)
bull Acceso maacutes lento (iacutendices o tablashash)
catgets y gettext
Internacionalizacioacuten en C y Unix 69 133
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull No construir plurales ni geacuteneros por programabull A veces hace falta reordenar para traducirbull Ordenacioacuten en printf
String `s has d charactersn2$d Zeichen lang ist die Zeichenkette `1$sn
Traduccioacuten de cadenas de formato
Internacionalizacioacuten en C y Unix 70 133
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Editoresbull Transcodificadoresbull Compiladores de localizaciones y bibliotecasbull Ayudas a la internacionalizacioacutenbull Ayudas a la localizacioacutenbull
Herramientas
Internacionalizacioacuten en C y Unix 71 133
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Transformacioacutenbull Coacutedigo intermedio con todos los caracteres A
UCS B (eg iconv tcs)bull Concatenacioacuten de transformaciones conoci-
das (no siempre reversibles)A M BA X Y B(eg recode de Franccedilois Pinard)
Transcodificadores
Internacionalizacioacuten en C y Unix 72 133
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull La localizacioacuten depende de los convenios localesy el juego de caracteres
bull Debe escribirse en algo muy transportable EgSubconjunto de 83 caracteres invariantes deISO646bull Utilizable directamente en todas las ISO646
nacionales ISO8859-x UTF-7 UTF-8 IBM-PCMac
bull Utilizable traducido en todas las EBCDICbull Requiere describir todos los caracteres con los
invariantesbull Requiere describir los locales en funcioacuten de esos
caracteres
Compiladores de localizaciones
Internacionalizacioacuten en C y Unix 73 133
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Glifo RFC1345 UCS ISO10646frac14 14 00bc VULGAR FRACTION ONE QUARTERfrac12 12 00bd VULGAR FRACTION ONE HALFfrac34 34 00be VULGAR FRACTION THREE QUARTERSiquest I 00bf INVERTED QUESTION MARKAgrave A 00c0 LATIN CAPITAL LETTER A WITH GRAVEAacute A 00c1 LATIN CAPITAL LETTER A WITH ACUTEAcirc Agt 00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEXAtilde A 00c3 LATIN CAPITAL LETTER A WITH TILDEAuml A 00c4 LATIN CAPITAL LETTER A WITH DIAERESISAring AA 00c5 LATIN CAPITAL LETTER A WITH RING ABOVEAElig AE 00c6 LATIN CAPITAL LETTER AECcedil C 00c7 LATIN CAPITAL LETTER C WITH CEDILLAEgrave E 00c8 LATIN CAPITAL LETTER E WITH GRAVE
Descripcioacuten de caracteres
Internacionalizacioacuten en C y Unix 74 133
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
LC_TIMEabday ltdgtltogtltmgt ltlgtltugtltngt ltmgtltagtltrgt
ltmgtltigtltegtltjgtltugtltegt ltvgtltigtltegt ltsgtltagtltbgt
day ltdgtltogtltmgtltigtltngtltggtltogt ltlgtltugtltngtltegtltsgtltmgtltagtltrgtlttgtltegtltsgt ltmgtltigtltegtltrgtltcgtltogtltlgtltegtltsgtltjgtltugtltegtltvgtltegtltsgt ltvgtltigtltegtltrgtltngtltegtltsgtltsgtltagtltbgtltagtltdgtltogt
LC_CTYPEdigit lt0gtlt1gtlt2gtlt3gtlt4gtlt5gtlt6gtlt7gtlt8gtlt9gtblank ltSPgtltHTgtltNSgtspace ltSPgtltLFgtltVTgtltFFgtltCRgtltHTgtltNSgtupper ltAgtltBgtltCgtltDgtltEgtltFgtltGgtltHgtltIgtltJgtltKgtltLgtltMgtltNgt
ltOgtltPgtltQgtltRgtltSgtltTgtltUgtltVgtltWgtltXgtltYgtltZgtltAgtltAgtltAgtgtltAgtltAgtltAAgtltAEgtltCgtltEgtltEgtltEgtgtltEgtltIgtltIgtltIgtgtltIgtltD-gtltNgtltOgtltOgtltOgtltOgtltOgtltOgtltUgt
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 75 133
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Descripcioacuten de locales
Internacionalizacioacuten en C y Unix 76 133
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull localedef -i en_CA -f ISO_8859-1 en_CA
bull-rw-rw-r-- 1 joaquin profes 10399 Jan 7 0800 LC_CTYPE-rw-rw-r-- 1 joaquin profes 10940 Jan 7 0800 LC_COLLATE-rw-rw-r-- 1 joaquin profes 93 Jan 7 0800 LC_MONETARY-rw-rw-r-- 1 joaquin profes 27 Jan 7 0800 LC_NUMERIC-rw-rw-r-- 1 joaquin profes 480 Jan 7 0800 LC_TIME-rw-rw-r-- 1 joaquin profes 42 Jan 7 0800 LC_MESSAGES
bull O todo junto (usrliblocalelocale-archive)
bull Los fuentes se pueden encontrar enftpdkuugdki18nWG15-collection
El compilador de localizaciones de POSIX
Internacionalizacioacuten en C y Unix 77 133
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Correo y conferencias
Correo y conferencias
78 133
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Fuera de liacuteneabull Sin posiblilidad de negociacioacuten entre agentes de
usuariobull Pueden negociar agentes de transferencia
(insuficiente)bull Generalmente soacutelo se tiene en cuenta el esquema
de codificacioacutenbull Podriacutea tenerse en cuenta el idioma si hay que
bull Dar formato (partir palabras etc)bull Comprobar palabras sintaxis estilo etcbull Analizar el textobull Dictar
bull SOLUCIOacuteNbull Nombrar esquema de codificacioacuten
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 79 133
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Restringir la variablilidad
Internacionalizacioacuten del correo y las confe-
Correo y conferencias 80 133
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Correo tradicional basado en RFC 822 SMTPbull ASCII (7 bits)bull Tamantildeo limitado de liacuteneasbull Una liacutenea con un punto termina el mensajebull Algunos agentes de transferencia transforman
el mensajebull ASCII lt-gt EBCDICbull gtFrom
Mime 10 y ESMTP
Correo y conferencias 81 133
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Mime 10bull Enviar mensajes de cualquier tipo (no soacutelo tex-
to)bull Enviar mensajes compuestos (de varios tipos)bull Enviar mensajes a trozosbull Resistir las peores pasarelas pero aprovechar
las buenasbull Poder enviar varios tipos de textobull Poder seleccionar el alfabetobull Compatible con RFC-822
bull ESMTPbull Datos de 8 bits (EHLO 8BITMIME)bull Transparencia (SIZE)
Requisitos de Mime 10 y ESMTP
Correo y conferencias 82 133
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull RFC 822
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtTo joaquincolibriditupmesSubject probando
Hola
Mensaje RFC 822
Correo y conferencias 83 133
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Nuevas cabeceras
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding 8BIT
Feliz antildeo 1997
Mensaje Mime 10 transferible por ESMTP
Correo y conferencias 84 133
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Con 7 bits expandiendo soacutelo los coacutedigos mayo-res de 128
Received (from joaquinlocalhost) by colibriditupmesDate Tue 7 Jan 1997 125037 +0100From Joaquin Seoane ltjoaquinditupmesgtMessage-Id lt199701071150MAA02005colibriditupmesgtSubject =ISO-8859-1QA=F1o_nuevo=2C_vida_nueva=2E=MIME-Version 10Content-Type TEXTPLAIN charset=ISO-8859-1Content-Transfer-Encoding QUOTED-PRINTABLE
Feliz a=F1o 1997
Mensaje Mime 10 transferible por SMTP
Correo y conferencias 85 133
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Tipo y subtipo de contenido Content-Type
bull textplain textrichtext textenriched texthtml
bull imagegif imagejpeg bull audiobasic
bull videompeg
bull applicationoctet-string applica-tionpostscript applicationmswordapplicationpdf applicationpgp-signature
Tipos MIME 10 simples
Correo y conferencias 86 133
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull multipartmixed multipartalternative multipartpa-rallel multipartrelated
bull messagerfc822 messagepartial messageexter-nal-body
Tipos MIME 10 compuestos o referencias
Correo y conferencias 87 133
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Paraacutemetros del tipo text juego de caracteresbull US-ASCII
bull ISO-8859-x
bull En la praacutectica se usan otros incluidos UTF-7 yUTF-8
bull UTF-7 y UTF-8bull En la praacutectica se usan otros incluido win-
dows-1252
Paraacutemetros de tipos texto MIME 10
Correo y conferencias 88 133
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Permite pasar distintos mediosbull Puede cambiarla el agente de transferenciabull Independiente del tipo del contenidobull Valores
bull 7BITbull 8BITbull BINARYbull QUOTED-PRINTABLEbull BASE64
bull No se han definido compresiones (siacute en HTTP)
Codificacioacuten de transferencia MIME 10
Correo y conferencias 89 133
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Suele asociarse un tipo Mime a un sufijo de nom-bre de fichero al enviarlo (tabla etcmimetypes)
applicationpostscript
pseps
imagejpeg jpeg jpgtextrichtext rtx
bull Suele configurarse el agente de correo (o navega-dor) para lanzar visores externos (tabla etcmailcap)
applicationpostscript
gv s
imagejpeg display s
Mimetypes mailcap
Correo y conferencias 90 133
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
textrichtext shownonasciiiso-8859-1 -erichtext -p
Mimetypes mailcap
Correo y conferencias 91 133
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
El web
El web
92 133
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Sistema en liacuteneabull Es posible la negociacioacutenbull Aspectos
bull HTTP 11bull HTML 40 XHTML y XMLbull URIURLbull Hojas de estilobull
Internacionalizacioacuten del WEB
El web 93 133
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Protocolo de transferencia de hipertextobull En uso las versiones 09 10 y 11bull Disentildeado para transferir cualquier objeto (html
imaacutegenes viacutedeo )bull Sin estadobull Pensado para utilizacioacuten de proxis con y sin ca-
che pasarelasbull Permite la consulta y la manipulacioacuten
bull Meacutetodo GETbull Meacutetodo HEADbull Meacutetodo POSTbull Meacutetodo PUTbull Meacutetodo DELETEbull Meacutetodo TRACE
HTTP
El web 94 133
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Pensado parcialmente para negociar contenidosbull Utiliza cabeceras similares a MIME
HTTP
El web 95 133
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
GET HTTP10HTTP10200 Document followsMIME-Version 10Server CERN30Date Tuesday 07-Jan-97 134318 GMTContent-Type texthtmlContent-Length 3487Last-Modified Tuesday 24-Sep-96 092631 GMTltHTMLgt ltHEADgt
lttitlegtPaacutegina de bienvenida del DIT-UPMlttitlegtltHEADgtltBODY BACKGROUND=figurespatternsbwbackggif
TEXT=000000 LINK=0000FF VLINK=0000A0 ALINK=FF0000gtlttable border=0gtlttrgtlttdgt ltimg src=figureslogosdit90allshgif alt=LOGO del DIT-UPM
Ejemplo de interaccioacuten HTTP
El web 96 133
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Pueden ir en peticiones y respuestas (entidades)bull En las respuestas
bull Content-Type texthtml char-set=ISO-8859-4
bull Content-Encoding gzip
bull Content-Length 2438
bull Content-Language es
bull Date Tuesday 07-Jan-97 134318 GMT
bull Last-Modified Tuesday 07-Jan-97134318 GMT
bull Expires Tuesday 07-Jan-97 134318GMT
bull Server CERN30 libwww217
Algunas cabeceras
El web 97 133
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull En las peticiones
From joaquinditupmesReferer httpwwwditupmessitioshtmlIf-Modified-Since Tuesday 07-Jan-97 134318 GMTAuthorization Basic QWxFGHvhfvGHHFgXXtTiI==User-Agent CERN-LineMode215 libwww217b3Accept textplain q=05 texthtml textx-dvi q=08Accept-charset iso-8859-5 unicode-1-1q=08Accept-encoding compressgzipAccept-language daen-gbq=08enq=07
Algunas cabeceras en peticiones
El web 98 133
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Un uacutenico URI con varias alternativas iquestcoacutemo se ne-gocia
bull Dirigida por servidorbull Dirigida por agentebull Otros mecanismos cookies
Negociacioacuten
El web 99 133
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull El agente dice sus preferencias y capacidades (siquiere)
bull El servidor selecciona automaacuteticamentebull Ventajas
bull Una vueltabull Desventajas
bull Ineficiente porbull La longitud de las peticionesbull La escasez de recursos negociablesbull Difunde informacioacuten que puede ser confi-
dencialbull El servidor no sabe todas las capacidades del
cliente o el uso (ver imprimir)bull Complica el servidor
Negociacioacuten dirigida por servidor
El web 100 133
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Dificulta cachesbull Ejemplo Debian [httpwwwdebianorg]
Negociacioacuten dirigida por servidor
El web 101 133
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull El agente no dice sus preferencias y capacidadesbull El servidor manda lista de alternativasbull El agente selecciona manual o automaacuteticamentebull Las altenativas las puede mandar un proxybull No estaacute normalizada todaviacutea (iquestHTTP-NG)bull Implementada en Apache 134 EmWeb al menos
Negociacioacuten dirigida por agente
El web 102 133
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Combina ambasbull Permite a las caches realizar negociacioacuten dirigida
por servidorbull Distribuye la carga de la negociacioacuten
Negociacioacuten transparente
El web 103 133
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull RFC - 2068 (Enero 1997)bull Mejoras
bull Tratamiento correcto de la negociacioacuten dirigi-da por servidor en caches y proxis
bull Normaliza extensiones propietarias de HTTP10
bull Varias transacciones por conexioacutenbull Versionesbull Servidores virtuales
HTTP 11
El web 104 133
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Peticioacuten
GET HTTP11Host wwwunicodeorg
bull Algunas cabeceras nuevasbull HTTP-Version HTTP11
bull Host wwwditupmes
bull Cache-Control no-cache
bull Cache-Control max-age
bull Content-Version 212
bull Vary acceptaccept-language
bull Vary
bull Content-Locationhttpwwwditupmesindexhtmles
Conversaciones HTTP 11
El web 105 133
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Reservadosbull Alternates para negociacioacuten en clientebull Negotiate para expresar que el cliente acep-
ta negociacioacuten
Conversaciones HTTP 11
El web 106 133
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull El servidor origen debe mandar campo Vary (sicacheable)
bull La cache puede decidir si responde con la copia oredirige la peticioacuten
bull La seleccioacuten se hace por alternativas y calidadesbull No decir calidad supone 1bull El servidor puede ponderar calidades
bull Mala traduccioacutenbull Mala imagen
bull Se pueden incluir comodinesbull Ejemplos
bull Accept-charset iso-8859-5 unicode-1-1q=08
bull Accept textplain q=05 texthtml
Negociacioacuten dirigida por servidor
El web 107 133
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
applicationpostscript q=08
bull Accept audio q=02 audiobasic
bull Accept-languagedaen-gbq=08enq=07
Negociacioacuten dirigida por servidor
El web 108 133
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull El servidor (origen o proxy) ofrece alternativasbull Puede combinarse con preferencias del clientebull La cache puede hacer negociacioacuten dirigida por
servidorbull Peticioacuten
GET paper HTTP11Host xorgUser-Agent WutxaWeb24Negotiate
Negociacioacuten dirigida por cliente
El web 109 133
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
HTTP11 300 Multiple ChoicesDate Tue 11 Jun 1996 200221 GMTAlternates
paperhtmlen 09 type texthtml language en features tables framespaperhtmlfr 07 type texthtml language frpaperpsen 10 type applicationpostscript language en
Vary negotiate accept accept-languageContent-Type texthtmlContent-Length 227lth2gtMultiple Choiceslth2gtltulgtltligtlta href=paperhtmlengtHTML English versionltagtltligtlta href=paperhtmlfrgtHTML French versionltagtltligtlta href=paperpsengtPostscript English versionltagt
ltulgt
Ejemplo respuesta intermedia
El web 110 133
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Propuestas de caracteriacutesticas del clientebull tables paper=a4
bull frames colordepth=5
bull textonly pagewidth=200
bull El servidor puede generar al vuelo la respuestabull Basado en User-Agent
bull Basado en Accept-
bull Transliteracioacuten automaacuteticabull Traduccioacuten de caracteriacutesticasbull Traduccioacuten automaacutetica
bull Imposible listar las alternativasbull Difiacutecil cachearbull El servidor puede mandar la lista de variables
Propuestas geneacutericas de cliente
El web 111 133
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
que controla
Propuestas geneacutericas de cliente
El web 112 133
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Creado por Tim Berners-Lee (CERN 1991)bull HTML 20 (RFC1866 1995)bull HTML32 (1997)
bull Applets tablas formularios flujo de texto so-bre imaacutegenes
bull Elementos de presentacioacuten (FONT)bull HTML 40 (1997) y 401 (1999) e ISO (20002003)
bull Internacionalizacioacutenbull Juego de caracteres del documento ISO
10646bull Idioma direccionalidadbull Ruby
bull Accesibilidadbull Eacutenfasis en estructura (no presentacioacuten)
HTML
El web 113 133
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Mejoras en tablas formularios etcbull Soporte general de documentos compuestosbull Soporte de hojas de estilobull Soporte para impresioacuten
HTML
El web 114 133
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Transicioacuten hacia XMLbull XHTML 10 (2000)
bull Estrictobull De transicioacutenbull Con frames
bull XHTML 11 (2001)bull Modular
bull XHTML 20 (borrador 2004)bull Incompatible
XHTML
El web 115 133
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Ahora todo ISO 10646bull Representables como amp0 hasta
amp2147483645
bull Soporte de particioacuten de liacuteneasbull Blanco no partible ampnbspbull Indicacioacuten de donde partir ampshy
bull Soporte para enlace de cursivasbull Separador sin espacio ampzwnjbull Juntador sin espacio ampzwj
bull Soporte para texto bidireccional (por defectoUNICODE)bull Marca de izquierda a derecha amplrmbull Marca de derecha a izquierda amprlm
bull Fijar direccionalidad
Entidades tipo caraacutecter
El web 116 133
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Anidar direccionalidad
Entidades tipo caraacutecter
El web 117 133
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Atributo LANG aplicable a casi cualquier elemen-to
ltP LANG=es-ESgtEsto es unltSTRONG LANG=engtsilly exampleltSTRONGgtde marcaje por idioma
ltPgt
bull Atributo xmllang en XML (y XHTML)
ltpgtThe title in Chinese isltspan lang=zh-guoyu xmllang=zh-guoyugtltspangt
ltpgt
Atributos de idioma
El web 118 133
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Atributo DIR (LTR o RTL) para fijar direccionali-dad (a veces redundante con UNICODE)
ABxyCDzwEF AByxCDwzEF
ltSPAN DIR=LTRgtABltSPAN DIR=RTLgtxy
ltSPAN DIR=LTRgtCDltSPANgtzwltSPANgtEF
ltSPANgt ABwzCDxyEF
Atributos de direcionalidad
El web 119 133
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Citas cortas ltQgtEsto es una citaltQgt
bull Esto es una citabull `Esto es una citabull laquoEsto es una citaraquo
bull Superiacutendicessubiacutendices MltSUPgtlleltSUPgt Duuml-pont
Citas cortas superiacutendices
El web 120 133
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Atributo ACCEPT-CHARSET en INPUT y TEXTA-REA
bull Usar meacutetodo POST con tipo MIME multipartform-data
Formularios
El web 121 133
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull HTML se ha degradado por el intereacutes en el disentildeobull El estilo debe especificarse aparte
bull Contrarestar tendencia a poner estilo en HTMLbull Especificable por el usuariobull Recomendable por el publicador
bull Deben poderse especificar estilos alternativosdependientes del medio (posiblemente parametri-zados)bull screenbull ttybull printbull braillebull aural
Hojas de estilo
El web 122 133
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull CSS CSS2bull Anidables (usuario enlaces detalles)bull Un usuario puede elegir o deshabilitar los del au-
torbull Permite ajustar tipos colores tamantildeos separacio-
nes maacutergenes sonidos fondos visuales y musi-cales voces
bull Estilos fondos sujetos a negociacioacuten de idiomabull Asociados a elementos (anidados o no) y clasesbull Ejemplo
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalENgtlthtmlgt
ltmeta http-equiv=Content-Type content=texthtmlcharset=UTF-8gt
CSS
El web 123 133
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
ltheadgtlttitlegtTiacutetulolttitlegtltlink rel=stylesheet type=textcss media=screen
href=httpwwwditupmes~joaquinjoaquincssgtltstyle type=textcssgth1 color blueh2 color green
ltstylegtltheadgtltbodygt
lth1gtLa cabecera es azullth1gtltp style=colorredgtY el paacuterrafo es rojoltpgtltpgtY este del color por omisioacutenltpgt
ltbodygtlthtmlgt
Ver [estilohtml]
CSS
El web 124 133
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
body color blue font-size 26ptlang(ar) color redlang(zh-Hans) color green
ltpgtIt is polite to welcome people in their own languageltpgtltulgt
ltli xmllang=zh-Hans lang=zh-Hansgtltligtltli xmllang=el lang=elgtltligtltli xmllang=ar lang=argt ltligtltli xmllang=ru lang=rugt ltligt
ltulgt
Ver [langhtml]
Las hojas de estilo CSS2
El web 125 133
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull IDN Unicode Normalizacioacuten Conversioacuten asubconjunto de ASCIIbull httpbuumlcherch httpxn--bcher-kvachbull httpw3magkeioacjpbull RFCs 3490 3491 3492
bull Parte local Suconjunto imprimible de ASCII(RFC2936)bull Permite enviar octetos arbitrarios en hexadeci-
mal (eg 0D0A20)bull Caracteres de controlbull Caracteres inseguros ltgt|^~[]`bull Caracteres reservados =amp
bull Nada se dice del coacutedigo de los caracteres (nose puede imprimir coacutemodamente)
Los URL
El web 126 133
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull RFC 2718 usar RFC2936 con UTF-8
Los URL
El web 127 133
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Iniciativa de accesiblildad en el WEB (Abril 1997)bull Recomendaciones para HTML (mejor HTML 4)
bull Formateo loacutegicobull Anidar correctamentebull Usar hojas de estilobull Utilizable sin interpretar el estilobull Facilita herramientas
bull Imaacutegenes con texto alternativo o con explica-ciones
bull Mapas de imagen en cliente o lista de alternati-vas
bull No poner texto en imaacutegenesbull No poner texto en columnas muacuteltiplesbull Enlaces descriptivos y separados
Iniciativa WAI [httpwwww3orgWAI]
El web 128 133
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Paacuteginas alternativas
Iniciativa WAI [httpwwww3orgWAI]
El web 129 133
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Para saber maacutes
Para saber maacutes
130 133
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Consorcio Unicode [httpwwwunicodeorg] TheUnicode Standard V40[httpwwwunicodeorgversionsUnicode400bookmarkshtml] (publicado por Addison Wesley en2003)
bull Actividad i18n del W3C[httpwwww3corginternational]
bull i18n and Multilingual support in Internet mail[httpwwwterenanlmultilingml-muamldoc-reviewhtml] (Yuri Demchenko TERENA)
bull Iniciativa Babel de ISOCAlis [httpalisisocorg]bull Internacionalizacioacuten de Java
[httpjavasuncomj2secorejavaintlindexjsp]bull Open directory of links to internationalization
(i18n) resources and related material
Sitios web
Para saber maacutes 131 133
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
[httpwwwi18nguruscom]bull Internationalization (I18n) Localization (L10n)
Standards and Amusements[httpwwwi18nguycom]
Sitios web
Para saber maacutes 132 133
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
bull Yves Savourel XML Internationalization and Loca-lization SAMS 2001
bull Luong et al Internationalization developing soft-ware for global markets John Wiley and SonsInc 1994
bull Galdo International user interfaces John Wileyand Sons Inc 1996
bull XOPEN Internationalization Guide Ver 2 Prenti-ce Hall 1995
bull Madell and Hewlett Developing and localizing in-ternational software Prentice Hall 1994
bull Schmitt Designing international software Prenti-ce Hall 1996
bull Uren et al Software Internationalization and loca-lization International Thomson Pub 1993
Libros
Para saber maacutes 133 133
Libros
Para saber maacutes 134 134
Libros
Para saber maacutes 134 134