¿Hay alguna metodología para probar que un software está bien localizado para varios idiomas?

Como Alexander Todorov señala en su respuesta, probar el software para la localización es un trabajo tedioso. Todavía no me he topado con un proceso estandarizado bien definido de pruebas de localización.

En función de los esfuerzos de localización en los proyectos en los que he trabajado, intentaré describir el proceso de localización y prueba tal como lo entiendo:

  1. Mueva todas las cadenas codificadas en el código que estaban destinadas a mostrarse al usuario y colóquelas en archivos de recursos.
  2. Modifique su código para recuperar las cadenas correctas de los archivos de recursos que se mostrarán en el usuario frente a elementos de la interfaz de usuario, como mensajes de usuario, mensajes de error, subtítulos de botones o pestañas, menús, etiquetas, etc.
  3. Use analizadores de código estático existentes o escriba el suyo propio para verificar los literales codificados en sus binarios. Por ejemplo, escribí analizadores de código estático personalizados en Visual Studio para proyectos .NET y utilicé las herramientas de inspección de IntelliJ IDEA en proyectos Java para encontrar todos los literales codificados.
  4. Aplicar un estándar de codificación para que los equipos de desarrollo agreguen literales de cadena para corregir los archivos de recursos. Aliéntelos a usar analizadores de código estático en su entorno de desarrollo local para capturar cadenas codificadas.
  5. Solicite la traducción de archivos de recursos de analistas de negocios, partes interesadas, comunidad de usuarios o expertos en lenguaje interno, entre otros. Otro enfoque (aunque no recomendado) es construir sus propios archivos traducidos utilizando servicios como Google Translate, Bing Translator o Babelfish.
  6. Use un marco de prueba de IU para iniciar su aplicación con una configuración regional particular y escriba scripts de prueba para verificar si se muestran las cadenas correctas en la IU. Los scripts de prueba deben recorrer todos los elementos del menú, todas las etiquetas en una vista particular, y también deben tratar de forzar y validar la mayor cantidad posible de mensajes de error y mensajes de usuario.
  7. Un gran problema es que lleva mucho tiempo (y, a veces, no vale la pena, según sus prioridades) automatizar completamente las pruebas de UI de localización para una gran aplicación de software. Use sus usuarios alfa y beta para descubrir cualquier error con la localización.
  8. Tenga especial cuidado con las fechas y los números. Los formatos de fecha varían mucho en todo el mundo, por ejemplo. dd / mm / AAAA, mm / dd / AAAA y así sucesivamente. Para los números, concéntrese en la agrupación, el separador de miles y la marca decimal, por ejemplo. 3.141.592,65 en EE. UU. Es 314.1592,65 en China, 31,41,592.65 en India y 3.141.592,65 en Alemania.

Finalmente, quiero señalar que la comunicación entre los equipos de desarrollo, los equipos de prueba y los propietarios de productos es crucial para internacionalizar con éxito una aplicación.

Supongo que no está solicitando probar la traducción real de las palabras a diferentes idiomas, sino que está preguntando si hay una manera de verificar que todas las cadenas de salida se leen desde la tabla de cadenas localizadas en lugar de una cadena codificada incrustada en algún lugar del código.

Dependiendo de su plataforma y compilador, debería poder verificar que ninguna cadena esté codificada en el binario ejecutable. En otras palabras, todas las cadenas se leen desde el archivo de localización en tiempo de ejecución. La mayoría de las plataformas tienen herramientas para leer literales de cadena desde ejecutables binarios. (por ejemplo, cadenas en Linux). Filtrar el literal de cadena corresponde a su código, como el nombre de la función, etc., si no queda nada, entonces no tiene cadenas codificadas en el binario.

Por cierto, ¿no debería esta pregunta pertenecer a stackover?

Errr sí, pero probablemente no le gustará la respuesta.

1) Asegúrese de que todas las cadenas de origen estén marcadas como traducibles, por ejemplo, envueltas en la función at () o similar.

2) Asegúrese de que sus archivos de traducción estén 100% completos para todos los idiomas de destino.

3) Asegúrese de que las traducciones no rompan cadenas de formato y formas simples / plurales.

4) Prueba de leer todas las traducciones para asegurarse de que
– en realidad tienen sentido
– el texto cabe en la pantalla

Algo de esto puede automatizarse hasta cierto punto, pero la mayoría de las pruebas de traducción son trabajos manuales y tediosos.