2011-09-07 15 views
29

Me estoy haciendo un par de preguntas y me pregunto si hay algunas mejores prácticas.Android strings.xml ¿Mejores prácticas?

  1. ¿Cómo se nombra la cadena? Siempre termina en caos para mí.
  2. ¿Cómo mantener las traducciones sincronizadas? ¿Hay herramientas colaborativas en línea que puedas recomendar?
  3. ¿Cómo pedir la cadena en el archivo strings.xml? ¿Alfabético? Agrupado por actividad? ...?
  4. ¿Qué hay de reutilizar cadenas? ¿Recomendaría usar múltiples cadenas ligeramente diferentes o una cadena que encaja de alguna manera en múltiples contextos?
+0

Esas son muchas preguntas para una pregunta. Y algunos (la mayoría) de eso son subjetivos/conducirán a discusiones => fuera del tema aquí de acuerdo con [faq]. – Mat

Respuesta

4

Buena pregunta. Estoy luchando con esto también. Mi esquema de nombres es:

1) Elementos de la interfaz de usuario: Si una cadena solo corresponde a un ui, la asigno de acuerdo con el elemento de control y el propósito, así como en qué parte del elemento de control se utiliza. ejemplo:

button_helpText; 
control : button, purpose: help, context: Text; 

2) Elementos generales: Si se utiliza una cadena en la interfaz de usuario, pero quiero utilizarlo en otro contexto que acabo de dejar el prefijo y añadir un sufijo para describir el propósito/contexto mor precisa.

helpMessageHeading; 
purpose: help; context: a Message (abstract, could be a dialog), context_of_dialog: Heading; (the heading of a help dialog) 
helpMessageText; 
purpose: help, context: a Message (abstract, could be a dialog), context_of_dialog: Text; (the text inside a help dialog) 
helpExplanation; 
purpose: help; context_of_help: Explanation (just a explanation of the help topic) 

3) Orden: que ordenar a aquellos cadena basada principalmente en su contexto, ya que es lo que normalmente busca.

<!-- buttons --> 
... 
<!-- dialogs --> 
... 
<!-- general --> 
... 
<!-- explanations --> 
... 

y así sucesivamente. Entonces mi lista normalmente está separada en controles de UI y, si una cadena no está ligada a ella, su contexto general es preciso. ¿Por qué uso el contexto preciso? Cuando busca una cadena para describir lo que hace, la idea más singular sobre esta cadena es su contexto preciso, por lo que es lo primero que debe aparecer. Pero cuando usa la finalización automática, normalmente busca la descripción general. Creo que esta estructura es una buena solución.

Estoy muy interesado en otras respuestas.

1

¿Cómo mantener la traducción sincronizada? ¿Hay herramientas colaborativas en línea que pueda recomendar?

Por el momento estoy usando esta herramienta de colaboración http://www.getlocalization.com/ que hace la vida mucho más fácil y es gratuita si no se utilizan funciones pro.

Luego está también http://crowdin.net/ que es un poco mejor en mi opinión becuse ist propone traducciones por google y bing pero cuesta 9 $ en la variante más barata.

¿Cómo pedir la cadena en el archivo strings.xml? ¿Alfabético? Agrupado por Actividad? ...?

Hasta ahora, no he pedido ellos porque la mayoría no editar mi xml con la mano. Hay un complemento que hace que el manejo de múltiples traducciones en eclipse sea muy fácil: Editor de localización de Sequoyah

2

Cómo mantener traducciones en sincronía? ¿Hay herramientas colaborativas en línea que puedas recomendar?

Para mí, la mejor herramienta es http://www.translatekarate.com

Es libre y colaborativo.

-1

¿Cómo mantener la traducción sincronizada? ¿Hay herramientas colaborativas en línea que puedas recomendar?

Utilizo la herramienta de administración de proyectos https://poeditor.com para traducir archivos XML y mantenerlos sincronizados.