Catálogos digitales en China: El 14 de marzo de 2014, nuestro primer cliente en China puso en marcha sus nuevos catálogos digitales. Ver nuestro producto utilizado en el otro lado del mundo fue un momento de gran alegría y orgullo para nosotros, más aún teniendo en cuenta los obstáculos técnicos que tuvimos que superar para que esto sucediera. Pero, ¿cuáles eran esos problemas y cómo los resolvieron nuestros científicos locos? Si tienes que traducir tu aplicación al chino o simplemente quieres saber cómo lo hemos hecho, te invitamos a que te pongas en contacto con nosotros. Publitas compatible para uso chino, deberías consultar este post.
En METRO China Unirnos a los otros 17 países en los que METRO Cash & Carry ya utiliza nuestro software ha sido un hito muy importante para nosotros.
Y, sin más, @Publitas en directo en China. Estamos muy orgullosos de lo que hemos conseguido hasta ahora.
- @superdealloc@mastodon.social (@superdealloc) 21 de marzo de 2014
Pero llegar hasta allí no fue tan fácil como podría pensarse.
Nos encontramos con varios retos al hacer Publitas compatible para su uso en China, y tres destacaron en particular:
- Babosas
- Pluralización
- Buscar en
A continuación repasaremos cada uno de estos problemas con más detalle y explicaremos cómo los hemos resuelto.
Problema #1: Babosas
Citando al Glosario de Djangouna babosa es:
"Una etiqueta corta para algo, que contiene sólo letras, números, guiones bajos o guiones. Suelen utilizarse en las URL".
Por ejemplo, cuando tienes un grupo en Publitas llamado "Makro UK" y una publicación llamada "Semana 12", se convierte en un slug para la URL:
https://view.publitas.com/makro-uk/semana-12
La última parte de esta URL ("makro-uk/week-12") es el slug. Además, cosas como "V&D" se convierten (por defecto) en: "v-d"
En resumen, crear slugs como éste es una forma humana y amigable para los motores de búsqueda de construir URLs. El proceso es muy básico. Publitas:
- Transforma una cadena de caracteres a minúsculas.
- Elimina los caracteres especiales (por ejemplo, paréntesis, comas, signos de exclamación, etc.) y sustituye los espacios por -.
- La mayoría de las veces, & se sustituye por "-" y @ por "at".
Así que "mamá y papá estaban en casa" se convierte en: "mamá-papá-estaban-en-casa".
Esto funciona muy bien para las lenguas que utilizan el alfabeto latino:
irb(main):005:0> "Mamá y papá".parameterize => "mamá-papá"
Pero cuando se trata de chino, fracasa rotundamente:
irb(main):003:0> "中文測試".parameterize => ""
Solución: Transliterar caracteres Unicode a ASCII
Por suerte, ya existen bibliotecas que se ocupan de este problema. La que estamos utilizando se llama Stringexy se compone de tres bibliotecas: ActsAsUrl, Unidecoder y StringExtensions.
Esto es lo que ocurre cuando transliteramos caracteres Unicode:
"你好".to_ascii #=> "Ni Hao"
Cuando lo tengas, podrás construir un slug adecuado. En resumen, no puedes utilizar directamente material estándar para construir slugs en chino y tendrás que transliterar primero los caracteres Unicode a ASCII.
Problema #2: Pluralización
El otro problema tiene que ver con las traducciones. Supongamos que quiere traducir del inglés al neerlandés: "1 thing, 2 things". En ambos idiomas, "thing" se puede expresar en singular y plural, por lo que la traducción al neerlandés es muy sencilla. En chino, sin embargo, no es así. La palabra "thing" (singular) simplemente no tiene una traducción válida. La única palabra que se puede traducir es "cosas (事)" (plural). Eche un vistazo al código de nuestros visores de catálogos a continuación:
Inglés (EN)
visor: cargando: cargando... páginas: cero: "No hay páginas" una: "{count} página" otra: "{cuenta} páginas"
Chino (ZH)
visor: cargando: 正在载入... páginas: cero: 没有页面 uno: "" otro: 网页
Como puedes ver, las cadenas "zero" y "other" se traducen perfectamente del inglés al chino. Pero cuando se trata de "one" (singular), la traducción falla porque no existe en chino.
Solución: Traducir sólo palabras en plural
La forma de abordar la pluralización en chino consiste en traducir únicamente la forma plural. Así es como lo aplicamos en las traducciones de nuestros catálogos:
Inglés (EN)
visor: cargando: cargando... páginas: cero: "No hay páginas" una: "{count} página" otra: "{cuenta} páginas"
Chino (ZH)
visor: cargando: 正在载入... páginas: cero: 没有页面 otro: 网页
Así que en lugar de tener traducciones para "uno" y "otro", sólo las proporcionamos para "otro" en chino.
Problema #3: Búsqueda
Para que la búsqueda funcione correctamente, hay un proceso por el que pasan las palabras cuando se indexan. El método más utilizado se llama stemming. Esto significa básicamente que las diferentes formas de una palabra se reducen a una forma común. (He aquí un artículo que explica la derivación con más detalle). Así, por ejemplo, imagine que indexa un PDF para una tienda de animales que tiene las palabras gatos, parecido a un gato y catty. Todas estas palabras se reducen a la raíz "gato", por lo que cuando busque "gato", se encontrarán coincidencias. Sin embargo, esta técnica no es aplicable al chino.
Solución: Buscar tanto la raíz como la palabra exacta
Estamos utilizando el servicio de búsqueda de Amazon CloudSearchy por suerte, recientemente han añadido la compatibilidad con China. Hasta ahora, nuestro motor de búsqueda buscaba siempre las palabras que contenían la raíz. Pero como queríamos utilizarlo en chino (idioma en el que no se aplica la búsqueda por raíz), tuvimos que implementar un mecanismo de seguridad que permitiera buscar también palabras completas. Así que, en lugar de decir "Amazon, danos palabras que contengan la raíz", empezamos a decir "Amazon, danos palabras que contengan la raíz O sean iguales a la palabra exacta".
Catálogos digitales en China - Conclusión