Aplicación móvil para gestión de huertos urbanos comunitarios
Desarrollada en Ionic2.
Esta aplicación hace uso de Huertask API
Info proyecto: http://parcellesnostres.com/
Desarrollado por http://www.devscola.org/
Este proyecto usa ng2-translate. La información respecto en la documentación de Ionic2 resulta incompleta. Se recomienda consultar la documentación del proyecto ng2-translate
Las traducciones se guardan en el directorio src/assets/i18n en archivos llamados XX.json (donde XX es el código de idioma). Al estar en la carpeta assets se copiarán a la carpeta pública www.
El idioma a usar se configura de la siguiente forma: translate.use('es');
Se puede definir un idioma por defecto en caso de que no se encuentre la cadena en el idioma deseado: translate.use('en');
En ambos casos, translate hace referencia a TranslateService de ng2-translate. translate.setDefaultLang('es');
Para la diferenciación de mensajes en singular/plural se usa I18nPluralPipe
Dado el siguiente archivo es.json
{
"TASKS" : {
"TITLE" : "Tareas"
}
}
En la plantilla: {{ "TASKS.TITLE" | translate }}
Si la cadena usa variables
{
"TASK" : {
"PEOPLE_LEFT" : {
"MSG" : "Faltan {{count}} personas"
}
}
}
"TASK.PEOPLE_LEFT.MSG" | translate:{count: task.people_left}
Si la cadena usa la propiedad [innerHTML] de Angular2 en el elemento que lo incluya:
{
"TASK" : {
"PEOPLE_LEFT" : {
"MSG" : "Faltan <span>{{count}}<span> personas"
}
}
}
<ion-col [innerHTML]='"TASK.PEOPLE_LEFT.MSG" | translate:{count: task.people_left}'>
Usando i18nPlural para generar la parte final de la cadena a mostrar. En este caso: "ZERO" / "ONE" / "PLURAL"
messageMapping: {[k:string]: string} = {
'=0': 'ZERO',
'=1': 'ONE',
'other': 'PLURAL'
}
{
"TASK" : {
"PEOPLE_LEFT" : {
"MSG" : {
"ZERO" : "Completo",
"ONE" : "Falta 1 persona",
"PLURAL" : "Faltan {{count}} personas"
}
}
}
}
{{ "TASK.PEOPLE_LEFT.MSG." + (task.people_left | i18nPlural: messageMapping) | translate:{count: task.people_left }}}
Los tests se lanzan con la libreria karma y sobre el navegador phantomJS
$ sudo npm install -g karma
$ sudo npm install
Es posible que phantomJS necesite el paquete libfontconfig, en ese caso es necesario ejecutar:
$ sudo apt-get install libfontconfig
Desde el directorio app
$ karma start
Este proyecto usa editorconfig para definir y mantener la consistencia del estilo de código.