Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas...

134
Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf] puede ver una transcripción rudimentaria en PDF, por si tiene dificultades. O bajarse todo [inter.zip], incluidas fuentes.

Transcript of Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas...

Page 1: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 2: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 3: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 4: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 5: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 6: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 7: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 8: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 9: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 10: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 11: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 12: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 13: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 14: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 15: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 16: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 17: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 18: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 19: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 20: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 21: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 22: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 23: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 24: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 25: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 26: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 27: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 28: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 29: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 30: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 31: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 32: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 33: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 34: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 35: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 36: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 37: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 38: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 39: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 40: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 41: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 42: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 43: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 44: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 45: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 46: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 47: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 48: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 49: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 50: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 51: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 52: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 53: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 54: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 55: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 56: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 57: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 58: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 59: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 60: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 61: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 62: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 63: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 64: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 65: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 66: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 67: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 68: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 69: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 70: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 71: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 72: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 73: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 74: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 75: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 76: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 77: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 78: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 79: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 80: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 81: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 82: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 83: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 84: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 85: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 86: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 87: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 88: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 89: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 90: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 91: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 92: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 93: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 94: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 95: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 96: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 97: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 98: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 99: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 100: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 101: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 102: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 103: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 104: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 105: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 106: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 107: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 108: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 109: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 110: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 111: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 112: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 113: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 114: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 115: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 116: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 117: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 118: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 119: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 120: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 121: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 122: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 123: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 124: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 125: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 126: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 127: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 128: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 129: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 130: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 131: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 132: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

[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

Page 133: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

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

Page 134: Joaquín Seoane, DIT/UPMweb.dit.upm.es/~joaquin/i18n/inter.pdf · Joaquín Seoane, DIT/UPM Estas transparencias se ven perfectamente con Mozilla 1.4 y derivados. Aquí [inter.pdf]

Libros

Para saber maacutes 134 134