Localización de archivos sqlite en una aplicación de titanio

Estoy desarrollando una aplicación con titanio en dos idiomas. Estoy buscando consejos sobre cómo traducir los campos en mi base de datos sqlite. Quiero hacerlo mejor. ¿Tiene sentido crear dos campos en la tabla para el idioma (desc_en / desc_es)? Luego, llame al campo según el idioma (Ti.Platform.Local)?

¿Consejos, tutoriales? muchas gracias

preguntado el 27 de agosto de 11 a las 14:08

1 Respuestas

En lugar de cambiar la columna de forma dinámica según el idioma del usuario, puede incluir una columna de [idioma] en cada tabla relevante:

                 PRODUCTS
                 productid
                 languageid
                 productname

                 composite primary key (productid, languageid) 


                 1 | english | widget                    
                 1 | russian | виджет 

Eso facilitaría mucho la compatibilidad con nuevos lenguajes, sin necesidad de cambiar los esquemas de las tablas.

Respondido 27 ago 11, 23:08

por favor perdóname, pero estás un poco confundido. ¿Tengo que crear una tabla de 'idiomas' con la que realizar las uniones? Ahora tengo una mesa PRODUCTS p_id | p_name | p_desc_en | p_desc_es Así que cambio en PRODUCTS p_id | p_name LAUNGUAGE l_id | l_name | p_id | p_desc Soy novato en SLQ. - carlo

Una tabla de IDIOMAS no es absolutamente necesaria de ninguna manera. Si hizo que languageid fuera inteligible, por ejemplo, 'inglés', o una abreviatura estándar cuyo significado sea evidente, entonces no necesitaría absolutamente una tabla de IDIOMAS para "explicar" el valor. Simplemente agregarías and languageid = 'xx' a su cláusula where siempre que necesite recuperar datos específicos del idioma. - Tim

Ok, creo que lo entiendo, así que tendré un producto para cada fila en un idioma. Pero, según tengo entendido, ¿se duplicarán los campos no traducidos de esta manera? Tendré una ventaja en la cláusula where que pondrá la variable de idioma. - carlo

No entiendo tu pregunta: untranslated fields will be duplicated? El enfoque que sugerí no se duplica fields|columns de cualquier manera. La tabla PRODUCTOS de ejemplo contendría más filas pero muchas menos columnas que la alternativa, donde hay tantas columnas de nombre de producto como idiomas (inglés, ruso, español, italiano, japonés, etc.): englishProductName, russianProductName, spanishProductName, italianProductName, japaneseProductName, etc. - Tim

En mi caso tengo una tabla PRODUCTOS: cost_p, name_p, fav_p desc_p. Solo se traduce la columna desc_p y no las demás. Así que pensé en cambiar la columna desc en dos columnas: desc_lang. Luego use una variable en la consulta: desc_VAR. También porque mi aplicación estará siempre y solo en dos idiomas. Muchas gracias por la lluvia de ideas. carlo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.