Seis idiomas y una sola página
Abre la página de multas de la DGT en catalán y mira el código: el texto está en castellano. Ábrela en euskera, en inglés o en alemán, y lo mismo, palabra por palabra. La traducción la hace Google en el navegador de quien entra, después de cargar la página. Pasa en las 788 páginas que guardamos de la sede.
- Dominio
- sede.dgt.gob.es
- Guardado
- 31 AGO 2026
- Comprobado en vivo
- 15 SEP 2026
- Citas
- 10 en 3 ficheros guardados
- Lectura
- unos 4 min

La página de multas en catalán declara su idioma en la primera etiqueta del documento, como debe ser: lang="ca". Es lo que leen los buscadores, los lectores de pantalla de las personas ciegas y el propio navegador para saber en qué lengua está lo que viene debajo. Veintisiete líneas más abajo, otra etiqueta vuelve a declarar el idioma, esta vez para los buscadores, y dice ES. Las dos conviven en el mismo documento sin ponerse de acuerdo.

- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 148,2 kB
- sha256
- 2da43f5ecc60…
| 1 | <!DOCTYPE html> |
| 2 | <html lang="ca"> |
| 3 | <head> |
| 4 | |
| 5 | <script type="text/javascript" src="/ |
| 6 | <script src="/ |
| 7 | <script src="/ |
| 8 | |
| 9 | <script> |
| 10 | new Date(). |
| 11 | j= |
| 12 | 'https:// |
| 13 | })(window, |
| 18 | window.dataLayer = window.dataLayer || []; |
| 19 | function gtag(){ |
| 20 | gtag('js', new Date()); |
| 21 | gtag('config', 'GA_TRACKING_ID', { 'anonymize_ip': true }); |
| 22 | gtag('config', 'G-H2QM1LTDEF'); |
| 23 | </script> |
| 24 | <title>Sede Electrónica DGT - Multas</title> |
| 25 | <!-- ag 11/09/2023 --> |
| 26 | <meta charset="UTF-8"> |
| 27 | <meta http-equiv=" |
| 28 | |
| 29 | <meta name="language" content="ES"> |
| 30 | <meta name="theme-color" content="rgb(243, 140, 0)"> |
| 31 | <meta name=" |
| 32 | <meta name=" |
| 33 | <meta name="viewport" content=" |
| 34 | |
| 35 | <meta name='description' content='Puedes realizar cualquier trámite relacionado con la gestión de multas y sanciones: Pago y devolución del importe de una sanción, presentación de alegaciones, identificación de conductor infractor si no eras tú quién cond… |
| 36 | <meta name='keywords' content=''/> |
| 37 | |
| 38 | <link rel=”alternate” hreflang="ES" href=" |
| 39 | <link rel=”alternate” hreflang="EN" href=" |
| 40 | <link rel=”alternate” hreflang="EU" href=" |
El título de esa página es «Sede Electrónica DGT - Multas». El de la versión vasca es «Sede Electrónica DGT - Multas». El de la alemana, la inglesa y la francesa, lo mismo, carácter por carácter. Y el cuerpo, igual. Tomamos una frase cualquiera, el aviso de cerrar el navegador al terminar, y la buscamos en las seis carpetas de idioma. Aparece en todas, con las mismas palabras castellanas, en 788 páginas.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 148,2 kB
- sha256
- 2da43f5ecc60…
| 13 | })(window, |
| 14 | <!-- End Google Tag Manager --> |
| 15 | <!-- Google tag (gtag.js) --> |
| 16 | <script async src=" |
| 17 | <script> |
| 18 | window.dataLayer = window.dataLayer || []; |
| 19 | function gtag(){ |
| 20 | gtag('js', new Date()); |
| 21 | gtag('config', 'GA_TRACKING_ID', { 'anonymize_ip': true }); |
| 22 | gtag('config', 'G-H2QM1LTDEF'); |
| 23 | </script> |
| 24 | <title>Sede Electrónica DGT - Multas</title> |
| 25 | <!-- ag 11/09/2023 --> |
| 26 | <meta charset="UTF-8"> |
| 27 | <meta http-equiv=" |
| 28 | |
| 29 | <meta name="language" content="ES"> |
| 30 | <meta name="theme-color" content="rgb(243, 140, 0)"> |
| 31 | <meta name=" |
| 32 | <meta name=" |
| 33 | <meta name="viewport" content=" |
| 34 | |
| 35 | <meta name='description' content='Puedes realizar cualquier trámite relacionado con la gestión de multas y sanciones: Pago y devolución del importe de una sanción, presentación de alegaciones, identificación de conductor infractor si no eras tú quién cond… |
| 206 | </div> |
| 207 | |
| 208 | <div class="modal" id="modal_logout"> |
| 209 | <div class="modal-dialog modal-dialog-centered"> |
| 210 | <div class="modal-content"> |
| 211 | <div class="modal-header"> |
| 212 | <!--<h3 class="modal-title" id=" |
| 213 | <p class="h3 modal-title" id=" |
| 214 | <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label=" |
| 215 | </div> |
| 216 | <div class="modal-body"> |
| 217 | <p>Por tu seguridad, no olvides cerrar el navegador para asegurar el cierre de sesión</p> |
| 218 | </div> |
| 219 | <div class="modal-footer"> |
| 220 | <a href="/ca/logout.html" type="button" class="btn btn-primary custom-btn btn-sm text-nowrap">Aceptar</a> |
| 221 | </div> |
| 222 | </div> |
| 223 | </div> |
| 224 | </div> |
| 225 | |
| 226 | <nav class="menu navbar navbar-expand-lg pb-0" role="navigation" aria-label="Menú principal sede" id="navegacion"> |
| 227 | |
| 228 | <div class="container-fluid navbar-collapse collapse" id="navbar1"> |
Lo que cambia está al final del documento, donde ya no mira nadie. Es un trozo de programa que prepara el traductor de Google. Declara que el idioma de partida es el español y enumera los de llegada. Son siete: español, catalán, euskera, gallego, inglés, francés y alemán. El gallego figura en la lista y es el único de los siete que no tiene carpeta propia en la sede. De momento, se ha librado.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 148,2 kB
- sha256
- 2da43f5ecc60…
| 2409 | </script> |
| 2410 | <script> |
| 2411 | |
| 2412 | //Google translate |
| 2413 | |
| 2414 | function google |
| 2415 | new google. |
| 2416 | pageLanguage: 'es', |
| 2417 | includedLanguages: 'es,ca,eu,gl,en,fr,de', |
| 2418 | layout: google. |
| 2419 | },' |
| 2420 | } |
| 2421 | |
| 2422 | function translate(){ |
| 2423 | |
| 2424 | $.getScript( '// |
| 2425 | |
| 2426 | $('. |
| 2427 | |
| 2428 | e.preventDefault(); |
Acto seguido, la página se baja de Google el programa que hace el trabajo. La dirección está escrita a la vieja usanza, sin decir si es http o https: dos barras y el nombre de la máquina, que significa “lo mismo que esté usando la página”. Era la costumbre cuando media web iba sin candado y había que servir las dos versiones. Hace más de una década que se recomienda no escribirlas así, y aquí sigue.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 148,2 kB
- sha256
- 2da43f5ecc60…
| 2414 | function google |
| 2415 | new google. |
| 2416 | pageLanguage: 'es', |
| 2417 | includedLanguages: 'es,ca,eu,gl,en,fr,de', |
| 2418 | layout: google. |
| 2419 | },' |
| 2420 | } |
| 2421 | |
| 2422 | function translate(){ |
| 2423 | |
| 2424 | $.getScript( '// |
| 2425 | |
| 2426 | $('. |
| 2427 | |
| 2428 | e.preventDefault(); |
| 2429 | location.href = $(this).attr('href'); |
| 2430 | }); |
| 2431 | |
| 2432 | if( Cookies.get('googtrans') != undefined || Cookies.get('googtrans')!= 'ca') { |
| 2433 | var dominio = ".trafico.es"; |
| 2434 | var idioma = '/es/' + 'ca'; |
| 2435 | Cookies.remove('googtrans', { path: '/' }); //específico para borrar cookie de dominio que añade google |
Y por último, la cookie. Una cookie es una nota que una web le pide al navegador que guarde y que el navegador le devuelve en cada visita. Esta se llama googtrans y es la que mira el traductor para saber qué hacer. Su valor tiene dos partes, de dónde y adónde. En la página catalana, de español a catalán. Se escribe dos veces, en el dominio de la sede y en otro que no aparece en la barra de direcciones, .trafico.es, y antes se borra la anterior, con un comentario que explica por qué hace falta borrarla.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 148,2 kB
- sha256
- 2da43f5ecc60…
| 2424 | $.getScript( '// |
| 2425 | |
| 2426 | $('. |
| 2427 | |
| 2428 | e.preventDefault(); |
| 2429 | location.href = $(this).attr('href'); |
| 2430 | }); |
| 2431 | |
| 2432 | if( Cookies.get('googtrans') != undefined || Cookies.get('googtrans')!= 'ca') { |
| 2433 | var dominio = ".trafico.es"; |
| 2434 | var idioma = '/es/' + 'ca'; |
| 2435 | Cookies.remove('googtrans', { path: '/' }); //específico para borrar cookie de dominio que añade google |
| 2436 | Cookies.remove('googtrans', { path: '/',domain: dominio}) |
| 2437 | Cookies.set('googtrans', idioma, { path: '/', domain: location.hostname }); |
| 2438 | Cookies.set('googtrans', idioma, { path: '/', domain: dominio }); |
| 2439 | } |
| 2440 | } |
| 2441 | |
| 2442 | translate(); |
La condición que decide si se hace todo esto pregunta si la cookie no está sin definir o si no vale «ca». Una de las dos cosas es siempre cierta. Si no está definida, no vale «ca»; si vale «ca», está definida. La respuesta es sí en todos los casos, y la cookie se reescribe cada vez que alguien abre una página. Es una pregunta con una sola respuesta posible, que es la forma más educada de no preguntar nada.
En la versión vasca, el mismo programa con dos letras cambiadas: de español a euskera, en las 150 páginas de esa carpeta. Y aquí llega la parte que cuesta creer hasta que se ejecuta. En la versión en castellano, la que sirve la sede cuando no se le pide nada, el programa sigue estando, y sigue pidiendo una traducción. De español a español. Son 148 páginas encargándole a Google que traduzca el castellano al castellano, por si acaso.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 139,9 kB
- sha256
- 9635c29f2bba…
| 2310 | $.getScript( '// |
| 2311 | |
| 2312 | $('. |
| 2313 | |
| 2314 | e.preventDefault(); |
| 2315 | location.href = $(this).attr('href'); |
| 2316 | }); |
| 2317 | |
| 2318 | if( Cookies.get('googtrans') != undefined || Cookies.get('googtrans')!= 'eu') { |
| 2319 | var dominio = ".trafico.es"; |
| 2320 | var idioma = '/es/' + 'eu'; |
| 2321 | Cookies.remove('googtrans', { path: '/' }); //específico para borrar cookie de dominio que añade google |
| 2322 | Cookies.remove('googtrans', { path: '/',domain: dominio}) |
| 2323 | Cookies.set('googtrans', idioma, { path: '/', domain: location.hostname }); |
| 2324 | Cookies.set('googtrans', idioma, { path: '/', domain: dominio }); |
| 2325 | } |
| 2326 | } |
| 2327 | |
| 2328 | translate(); |
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 149,0 kB
- sha256
- a1d6d6cc4da2…
| 2435 | $.getScript( '// |
| 2436 | |
| 2437 | $('. |
| 2438 | |
| 2439 | e.preventDefault(); |
| 2440 | location.href = $(this).attr('href'); |
| 2441 | }); |
| 2442 | |
| 2443 | if( Cookies.get('googtrans') != undefined || Cookies.get('googtrans')!= 'es') { |
| 2444 | var dominio = ".trafico.es"; |
| 2445 | var idioma = '/es/' + 'es'; |
| 2446 | Cookies.remove('googtrans', { path: '/' }); //específico para borrar cookie de dominio que añade google |
| 2447 | Cookies.remove('googtrans', { path: '/',domain: dominio}) |
| 2448 | Cookies.set('googtrans', idioma, { path: '/', domain: location.hostname }); |
| 2449 | Cookies.set('googtrans', idioma, { path: '/', domain: dominio }); |
| 2450 | } |
| 2451 | } |
| 2452 | |
| 2453 | translate(); |
De las 788 páginas que capturamos en las seis carpetas, las 788 llevan este trozo de programa. El texto en catalán o en euskera no existe en el servidor de la sede. Se fabrica en el ordenador de quien entra, después de cargar la página, y lo fabrica una empresa que no es la Dirección General de Tráfico. Si el navegador no ejecuta JavaScript o si Google no contesta, lo que queda en pantalla es la página en castellano, con su etiqueta lang="ca" bien puesta.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 139,9 kB
- sha256
- 9635c29f2bba…
| 1 | <!DOCTYPE html> |
| 2 | <html lang="eu"> |
| 3 | <head> |
| 4 | |
| 5 | <script type="text/javascript" src="/ |
| 6 | <script src="/ |
| 7 | <script src="/ |
| 8 | |
| 9 | <script> |
| 10 | new Date(). |
| 11 | j= |
| 12 | 'https:// |
| 13 | })(window, |
Hay un rincón donde esto se muerde la cola. Cada impreso descargable lleva a su derecha un desplegable con los idiomas en que ese documento existe, y en el fichero catalán los idiomas están escritos en castellano: «Castellano», «Euskera», «Catalán», «Gallego». En pantalla, el primero se lee “Castellà”, porque Google traduce también la lista. Hasta el nombre del idioma del documento llega traducido al vuelo. El documento no. El PDF es el que es, y de los cinco de esta página hay uno que solo existe en castellano.
En esta sede nadie escribió el catalán ni el euskera. La página llega en castellano y Google la traduce mientras el visitante mira.
- Las 788 páginas capturadas de sede.dgt.gob.es (148 en /es/, 152 en /ca/, 150 en /eu/, 150 en /en/, 36 en /fr/ y 152 en /de/) contienen el mismo texto en castellano, con el mismo título, y las 788 llevan incrustado el mismo programa: carga el traductor de Google y fija la cookie googtrans del español al idioma de su carpeta, también en el dominio .trafico.es.
- En las páginas en castellano, el destino es el español.
- No decimos que la traducción salga mal: no la hemos evaluado, y no es lo que mira este museo.
- No decimos que la DGT mande datos personales a Google; lo que sale de la página es la petición del script de traducción y lo que Google necesite para traducir el texto visible, y eso no lo hemos medido.
- No decimos que no exista ninguna página traducida a mano en la sede: decimos que en las 788 que guardamos el texto es castellano.
- Y no decimos nada sobre otras webs de la Dirección General de Tráfico, que no hemos mirado.
De dónde sale cada cita
Cada trozo de código de esta ficha está en un fichero guardado tal como lo entregó el servidor, con su huella (sha256) y su hora. Las citas entre «» se comprueban por programa contra ese fichero antes de publicar.
- https://sede.dgt.gob.es/ca/multas/index.html31 de agosto de 2026, 16:11archivosha256 2da43f5ecc6075e53cf2db1a7e58d6e175b000cca43f6fbc74ec75d4c6218c81
- https://sede.dgt.gob.es/ca/multas/index.html15 de septiembre de 2026, 02:10en vivo · distinto · las 7 citas siguensha256 28a0ff479fd3c7cd3cb77819d61e2c5f3b4508feeb4c09ef633cdea5f0a401b9
- https://sede.dgt.gob.es/eu/multas/index.html31 de agosto de 2026, 16:26archivosha256 9635c29f2bbad2ddf1924469863ac9f3e8d81d5f5c4211fc10d248b6cc406d3a
- https://sede.dgt.gob.es/eu/multas/index.html15 de septiembre de 2026, 02:10en vivo · distinto · las 2 citas siguensha256 b4a70d7b070145c6fc91fa704d2399afc2b9278e76a04a248871321eafdae1bf
- https://sede.dgt.gob.es/es/multas/index.html31 de agosto de 2026, 16:22archivosha256 a1d6d6cc4da293285bb35c57a27cd494073c87ebd4e7521b3d02d3b0b284d481