Updated translations

This commit is contained in:
vjrj 2017-12-21 11:36:00 +01:00
parent e3eddd6b85
commit 91b4197b04
5 changed files with 68 additions and 7 deletions

View file

@ -36,7 +36,7 @@ const schemaUser = new SimpleSchema({
emails: {
type: Array,
min: 1,
label() { return i18n.t('Lista de emails de contacto'); },
// label() { return i18n.t('Lista de emails de contacto'); },
// For accounts-password, either emails or username is required,
// but not both.
// It is OK to make this optional here because the accounts-password

View file

@ -1,5 +1,6 @@
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
import i18n from 'i18next';
import getPrivateFile from '../../../modules/server/get-private-file';
import parseMarkdown from '../../../modules/parse-markdown';
@ -8,4 +9,11 @@ Meteor.methods({
check(fileName, String);
return parseMarkdown(getPrivateFile(`pages/${fileName}.md`));
},
'utility.saveMissingI18n': function saveMissing(key, value) {
check(key, String);
check(value, String);
if (!Meteor.isProduction) {
i18n.t(key, value);
}
}
});

View file

@ -1,5 +1,6 @@
/* global CookieConsent Intl */
import i18n from 'i18next';
import { Meteor } from 'meteor/meteor';
import backend from 'i18next-xhr-backend';
import LngDetector from 'i18next-browser-languagedetector';
import Cache from 'i18next-localstorage-cache';
@ -48,6 +49,15 @@ i18nOpts.react = {
nsMode: 'default' */
};
const sendMissing = false;
if (sendMissing && !Meteor.isProduction) {
i18nOpts.sendMissing = true;
i18nOpts.sendMissingTo = 'fallback';
i18nOpts.missingKeyHandler = function miss(lng, ns, key, defaultValue, lngs) {
Meteor.call('utility.saveMissingI18n', key, defaultValue);
};
}
i18n.use(backend)
.use(LngDetector)
.use(Cache)

View file

@ -4,7 +4,7 @@ import moment from 'moment';
import es from 'meteor-accounts-t9n/build/es';
import en from 'meteor-accounts-t9n/build/en';
var backOpts = {
const backOpts = {
// path where resources get loaded from
loadPath: '/locales/{{lng}}/{{ns}}.json',
@ -15,10 +15,10 @@ var backOpts = {
jsonIndent: 2
};
const forceDebug = false;
const forceDebug = true;
const shouldDebug = (forceDebug && !Meteor.isProduction);
var i18nOpts = {
const i18nOpts = {
backend: backOpts,
lng: 'es',
// fallbackLng: 'es',
@ -26,12 +26,12 @@ var i18nOpts = {
'en-US': ['en'],
'en-GB': ['en'],
'pt-BR': ['pt'],
'default': ['es']
default: ['es']
},
interpolation: {
escapeValue: false, // not needed for react!!
formatSeparator: ',',
format: function (value, format, lng) {
format: function f(value, format, lng) {
// https://www.i18next.com/formatting.html
// console.log(`Value: ${value} with format: ${format} to lang: ${lng}`);
if (format === 'uppercase') return value.toUpperCase();

View file

@ -137,5 +137,48 @@
"Suscripción añadida":
"Suscripción añadida",
"Suscripción actualizada":
"Suscripción actualizada"
"Suscripción actualizada",
"Mis zonas": "Mis zonas",
"Nueva zona": "Nueva zona",
"Subscribirme a fuegos en este rádio": "Subscribirme a fuegos en este rádio",
"Créditos": "Créditos",
"Escribe aquí un lugar": "Escribe aquí un lugar",
"Indícanos la posición de la zona a vigilar (por ej. tu pueblo, una calle, etc):": "Indícanos la posición de la zona a vigilar (por ej. tu pueblo, una calle, etc):",
"También puedes seleccionar la zona en el mapa arrastrando el puntero naranja.": "También puedes seleccionar la zona en el mapa arrastrando el puntero naranja.",
"¿A que distancia a la redonda quieres recibir notificaciones?": "¿A que distancia a la redonda quieres recibir notificaciones?",
"Pulsa para activar": "Pulsa para activar",
"Arrastrar para seleccionar otro punto": "Arrastrar para seleccionar otro punto",
"Mapa gris de OpenStreetMap": "Mapa gris de OpenStreetMap",
"Mapa color de OpenStreetMap": "Mapa color de OpenStreetMap",
"Mapa de carreteras de Google": "Mapa de carreteras de Google",
"Mapa de terreno de Google": "Mapa de terreno de Google",
"Mapa de satélite de Google": "Mapa de satélite de Google",
"Zona añadida": "Zona añadida",
"Añadir zona": "Añadir zona",
"Editar": "Editar",
"Suscripciones a alertas de fuegos en zonas de mi interés": "Suscripciones a alertas de fuegos en zonas de mi interés",
"En verde, áreas de las que recibirás alertas de fuegos": "En verde, áreas de las que recibirás alertas de fuegos",
"Terminar": "Terminar",
"Pulsa para borrar": "Pulsa para borrar",
"Pulsa aquí para borrar la zona": "Pulsa aquí para borrar la zona",
"Los fuegos activos se actualizan en tiempo real.": "Los fuegos activos se actualizan en tiempo real.",
"Somos muchos ojos": "Somos muchos ojos",
"Usamos diferentes fuentes de datos para notificarte de fuegos activos en tus zonas de interés": "Usamos diferentes fuentes de datos para notificarte de fuegos activos en tus zonas de interés",
"Usa nuestro bot de Telegram para estar al tanto de los fuegos en tus área": "Usa nuestro bot de Telegram para estar al tanto de los fuegos en tus área",
"Correo electronico": "Correo electronico",
"Recibe nuestras notificaciones de fuegos por correo": "Recibe nuestras notificaciones de fuegos por correo",
"Otros dispositivos": "Otros dispositivos",
"support-us-home": "Estamos desarrollando nuestras herramientas para otros dispositivos. Puedes <1>contribuir a hacerlo posible.</1>",
"Software Libre": "Software Libre",
"dev-with-us-home": "Todo nuestro trabajo es sofware libre. <1>Traductoræs y desarrolladoræs siempre bienvenid@s</1>.",
"Suscríbete a alertas de fuegos": "Suscríbete a alertas de fuegos",
"Gracias por Participar": "Gracias por Participar",
"También puedes seguirnos en la web": "También puedes seguirnos en la web",
"Participar": "Participar",
"Dejarás de recibir notificaciones de fuegos en esa área ¿Estás seguro/a? ": "Dejarás de recibir notificaciones de fuegos en esa área ¿Estás seguro/a? ",
"Sí": "Sí",
"No": "No",
"Sobre los datos y imágenes usados": "Sobre los datos y imágenes usados",
"Términos de Servicio": "Términos de Servicio",
"Política de Privacidad": "Política de Privacidad"
}