Skip to content

Latest commit

 

History

History
119 lines (90 loc) · 3 KB

README.md

File metadata and controls

119 lines (90 loc) · 3 KB

Huertask App

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/

i18n

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

Ejemplos

Simple

Dado el siguiente archivo es.json

{
  "TASKS" : {
    "TITLE" : "Tareas"
  }
}

En la plantilla: {{ "TASKS.TITLE" | translate }}

Variables

Si la cadena usa variables

{
  "TASK" : {
    "PEOPLE_LEFT" : {
      "MSG" : "Faltan {{count}} personas"
    }
  }
}

"TASK.PEOPLE_LEFT.MSG" | translate:{count: task.people_left}

etiquetas HTML

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}'>

Plural

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 }}}

Testing

Requisitos

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

Ejecutando los tests

Desde el directorio app

$ karma start

Coding Standards

Este proyecto usa editorconfig para definir y mantener la consistencia del estilo de código.