Unverified Commit 7f72992d authored by foramontano's avatar foramontano Committed by GitHub
Browse files

Foramontano/adding languages (#89)

- Doc that describes the steps to add a new language  to Spacedeck Open
- New file with translated entries for using in Spacedeck Open in Spanish
- Include 'es' as new locale in Spacedeck Open
- Include a radiobutton for users could select the new language
parent ff1da806
## Adding a new language to Spacedeck Open
To add a new language to Spacedeck Open, follow these steps:
*The steps are ilustrated with Spanish (locale 'es') as the new language*
- Include the new locale ('es') at the locale list (./spacedeck.js)
```
locales: ["en",..., "es"],
```
- Create the new translation file (/locales/**es.js** thar it's a copy of /locales/en.js). and translate the entries.
- Include the javascript for letting Spanish info accesible (at the end of /views/spacedeck.html)
```
...
window.locales.es = {};
...
window.locales.es.translation = {% include "./../locales/es.js" %};
</script>
```
- Include a radiobutton for users could seleect the new language (/views/partials/account.html)
```
<label class="radio" v-bind:class="{checked: user.prefs_language=='es'}" v-on:click="save_user_language('es')">
<input type="radio" id="user-preferences_language" name="language" value="es"><span>Español</span>
</label>
```
{
"ok": "OK",
"cancel": "Cancelar",
"close": "Cerrar",
"open": "Abrir",
"folder": "Directorio",
"save": "Salvar",
"saved": "Salvado",
"created": "creado",
"duplicate": "Duplicar",
"delete": "Borrar",
"remove": "Eliminar",
"set": "ajustar",
"reset": "reiniciar",
"thanks": "Gracias",
"share": "Compartir",
"signup": "Regístrate",
"login": "Iniciar sesión",
"logout": "Cerrar sesión",
"email": "Correo Electrónico",
"password": "Contraseña",
"width": "Anchura",
"height": "Altura",
"nick": "Nombre",
"role": "Rol",
"members": "Miembros",
"actions": "Acciones",
"or": "o",
"you": "",
"via": "via",
"by": "por",
"zero": "Cero",
"page": "Página",
"new": "Nuevo",
"copy": "Copiar",
"home": "Inicio",
"owner": "Propietario",
"space": "Espacio",
"second": "Segundo",
"not_found": "No encontrado.",
"untitled_space": "Espacio sin título",
"untitled_folder": "Directorio sin título",
"untitled": "sin título",
"sure": "Está seguro?",
"specify": "Por favor, Especifica",
"confirm": "Por favor, Confirma",
"error_unknown_email": "Esta combinación correo electrónico/contraseña no es conocida.",
"error_password_confirmation": "La contraseña introducida no coincide.",
"error_domain_blocked": "Tu dominio está bloqueado.",
"error_user_email_already_used": "Esta dirección de correo electrónico ya se está usando.",
"support": "Soporte para Spacedeck",
"offline": "Offline. Clica para más.",
"error": "Lo siento, pero algo salió mal. Por favor, contacta con support@spacedeck.com",
"welcome": "Bienvenido",
"claim": "Tu Pizarra digital.",
"trynow": "Inténtalo ahora.",
"about": "Sobre nosotros.",
"terms": "Términos",
"contact": "Contacto",
"privacy": "Privacidad",
"business_adress": "Dirección de Negocios",
"post_adress": "Dirección postal",
"phone": "Teléfono",
"ceo": "Director gerente",
"name": "Nombre",
"confirm_subject": "Correo electrónico de confirmación de Spacedeck",
"confirm_body": "Gracias por iniciar sesión en Spacedeck.\nPor favor, clica en el siguiente enlace para confirmar tu dirección de correo electrónico.\n",
"confirm_action": "Confirmar Ahora",
"team_invite_membership_subject": "Inivitación de equipo para %s",
"team_invite_membership_body": "Has sido invitado a %s en Spacedeck. Por favor, clica en el siguiente enlace para aceptar la invitación.",
"team_invite_user_body": "Has sido invitado a %s en Spacedeck.\nTu contraseña temporal es \"%s\".\nPor favor, clica en el siguiente enlace para aceptar la invitación.",
"team_invite_admin_body": "%s fue invitado tu equipo: %s. La contraseña temporal es \"%s\".",
"team_invite_membership_acction": "Aceptar",
"team_new_member_subject": "Un nuevo Miembro para el Equipo %s se ha registrado",
"team_new_member_body": "%s se acaba de unir al Equipo %s en Spacedeck.",
"space_invite_membership_subject": "%s te invitó al Espacio %s ",
"space_invite_membership_body": "Has sido invitado por %s para unirte al Espacio %s en Spacedeck. Por favor, clica en el siguiente enlace para aceptar la invitación.",
"space_invite_membership_action": "Aceptar",
"folder_invite_membership_subject": "Espacio",
"folder_invite_membership_body": "Has sido invitado a un Equipo en Spacedeck. Por favor, clica en el siguiente enlace para aceptar la invitación.",
"folder_invite_membership_acction": "Aceptar",
"login_google": "Iniciar sesión con Google",
"save_changes": "Salvar Cambios",
"upgrade": "Mejorar",
"upgrade_now": "Mejorar ahora",
"create_space": "Crear Espacio",
"create_folder": "Crear Directorio",
"email_unconfirmed": "Correo electrónico no confirmado",
"confirmation_sent": "Correo electrónico enviado",
"folder_filter": "Filtro",
"sort_by": "Ordenar por",
"last_modified": "Última Modificación",
"last_opened": "Última Apertura",
"title": "Título",
"edit_team": "Editar Equipo",
"edit_account": "Edit Cuenta",
"log_out": "Cerrar Sesión",
"no_spaces_yet": "¡Bienvenido! Puedes crear Espacios y Directorios aquí utilizando los botones que se encuentran en la esquina superior izquierda.",
"new_folder_title": "Nuevo título para el directorio",
"folder_settings": "Ajustes de Directorio",
"upload_cover_image": "Cargar imagen de cubierta",
"spacedeck_pro_ad_folders": "Con Spacedeck Pro, puedes organizar un ilimitado número de Espacios y Directorios, y gestionar el control de acceso para cada Directorio. ¿Te gustaría aprender más sobre las características Pro?",
"spacedeck_pro_ad_versions": "Con Spacedeck Pro, puedes organizar un ilimitado número de versiones para cada Espacio así como realizar un seguimiento de su progreso o mantener instantáneas ('snapshots') seguras. ¿Te gustaría aprender más sobre las características Pro?",
"spacedeck_pro_ad_pdf": "Con Spacedeck Pro, puedes exportar tus Espacios como PDFs para su archivo, envío por correo, o impresión. ¿Te gustaría aprender más sobre las características Pro?",
"spacedeck_pro_ad_zip": "Con Spacedeck Pro, puedes exportar los contenidos de un Espacio empaquetado como un fichero ZIP. ¿Te gustaría aprender más sobre las características Pro?",
"spacedeck_pro_ad_colors": "Con Spacedeck Pro, puedes puedes usar tus propios colores usando un selector de color profesional.",
"profile_caption": "Perfil",
"upload_avatar": "Cardar Avatar",
"uploading_avatar": "Cargando Avatar…",
"avatar_dimensions": "Dimensiones recomendadas: 200×200 pixels.",
"profile_name": "Nombre",
"profile_email": "Dirección de correo electrónico",
"send_again": "Enviar de nuevo",
"confirmation_sent_long": "Correo electrónico con enlace de confirmación enviado. Por favor, revisa tu bandeja de entrada de Correo.",
"confirmation_sent_another": "Otro enlace de confirmación enviado.",
"confirmation_sent_dialog_text": "Te hemos enviado un correo explicando como confirmar tu dirección de correo electrónico.",
"payment_caption": "Pago",
"language_caption": "Idioma",
"notifications_caption": "Notificaciones",
"notifications_option_chat": "Infórmame via correo electrónico sobre nuevos cometarios",
"notifications_option_spaces": "Envíame un resumen diario de lo que sucedió en mis Espacios y Directorios.",
"password_caption": "Contraseña",
"current_password": "Contraseña Actual",
"new_password": "Nueva Contraseña",
"verify_password": "Verificar Contraseña",
"change_password": "Cambiar Contraseña",
"reset_password": "Reiniciar Contraseña",
"terminate_caption": "Borrar Cuenta",
"terminate_warning": "Si borras tu cuenta, todos los Espacios, Directorios y Mensajes (incluyendo todo el contenido que tú y otras personas crearon en tus Espacios) serán destruidos.",
"terminate_warning2": "Esta acción no puede deshacerse.",
"terminate_reason": "Mensaje",
"terminate_reason_caption": "Ayúdannos a mejorar compartiendo las razones por las que cancelas la cuenta.",
"terminate_terminate": "Terminar",
"space_blank1": "¡Bienvenido a un nuevo Espacio en blanco!",
"space_blank2": "Suelta ficheros, pega enlaces",
"space_blank3": "o utilizar las herramientas que aparecen abajo",
"space_blank4": "para rellenar este Espacio con contenido.",
"draft": "Borrador",
"publish": "Publicar",
"published": "Publicado",
"save_version": "Salvar Versión",
"version_saved": "Versión Salvada",
"post": "Publicar mensaje",
"chat_invite_cta1": "¡La Collaboración es divertida!",
"chat_invite_cta2": "¿Por qué no ",
"chat_invite_cta3": "invitar a algunas personas",
"chat_invite_cta4": "a trabajar contigo?",
"chat_message_placeholder": "Escribe tu mensaje…",
"view": "Ver",
"edit": "Editar",
"present": "Presentar",
"chat": "Chatear",
"meta": "Metadatos",
"tool_search": "Buscar",
"tool_upload": "Cargar",
"tool_text": "Texto",
"tool_shape": "Dar forma",
"tool_zones": "Zonas",
"tool_canvas": "Fondo pizarra",
"search_media": "Buscar multimedia…",
"type_here": "Escriba aquí",
"text_formats": "Formatos",
"format_p": "Párrafos",
"format_bullets": "Lista con 'Bullets'",
"format_numbers": "Lista Numérica",
"format_h1": "Titular 1",
"format_h2": "Titular 2",
"format_h3": "Titular 3",
"font_size": "Tamaño de Fuente",
"line_height": "Altura de la Línea",
"tool_align": "Alinear",
"tool_styles": "Estilos",
"tool_bullets": "'Bullets'",
"tool_numbers": "Números",
"color_fill": "Rellenar",
"color_stroke": "Trazo",
"color_text": "Texto",
"tool_type": "Tipo",
"tool_box": "Caja",
"tool_link": "Enlace",
"tool_layout": "Disposición",
"tool_options": "Opciones",
"tool_stroke": "Trazar",
"tool_delete": "Borrar",
"tool_lock": "Bloquear",
"tool_copy": "Copiar",
"stack": "Apilar",
"tool_circle": "Círculo",
"tool_hexagon": "Hexágono",
"tool_square": "Cuadrado",
"tool_diamond": "Diamante",
"tool_bubble": "Burbuja",
"tool_cloud": "Nube",
"tool_burst": "Ráfaga",
"tool_star": "Estrella",
"tool_heart": "Corazón",
"tool_scribble": "Garabatear",
"tool_line": "Líneas",
"tool_arrow": "Flecha",
"search_media_placeholder": "Buscar multimedia en web…",
"add_zone": "Nueva Zona",
"palette": "Paleta",
"picker": "Selector",
"background_image_caption": "Imagen",
"background_color_caption": "Color",
"upload_background_caption": "Clica para cargar una imagen de fondo",
"upload_background": "Cargar Fundo",
"access_caption": "Acceso",
"versions_caption": "Versiones",
"info_caption": "Información",
"mode_private": "Privado: Solo miembros pueden visualizar o editar",
"mode_public": "Público: Cualquiera con el enlace puede visualizar",
"invite_collaborators": "Invitar Colaboradores",
"revoke_access": "Anular Acceso",
"invite": "Enviar Invitaciones",
"invitee_email_address": "Dirección de correo electrónico del nuevo miembro",
"optional_message": "Mensaje optional",
"role_viewer": "Visualizador",
"role_editor": "Editor",
"role_admin": "Administrador",
"new_space_title": "Nuevo título para el Espacio",
"team": "Equipo",
"search": "Buscar",
"search_no_results": "Búsqueda sin resultados",
"search_clear": "Limpiar búsqueda",
"rename": "Renombrar",
"mobile": "teléfono móvl",
"image": "imagen",
"tool_filter": "fíltro",
"canel": "canel",
"invite_membership_action": "Acción afiliación de miembros",
"viewer": "visualizador",
"editor": "editor",
"admin": "administrador",
"logging_in": "iniciando sesión",
"password_confirmation": "Confirmación de Contraseña",
"confirm_again": "Te hemos enviado un correo electrónico explicando cómo puedes confirmar tu dirección de correo electrónico.",
"confirmed": "Tú Cuenta ha sido confirmada satisfactoriamente. Gracias.",
"signing_up": "Registrándote",
"password_check_inbox": "Por favor, comprueba tu bandeja de entrada de correo electrónico",
"new_space": "Nuevo Espacio",
"tool_more": "Más",
"what_is_your_name": "¡Bienvenido a %s! Por favor, elige un nombre de usuario.",
"lang": "es",
"landing_title": "Tu Pizarra en la Web.",
"landing_claim": "Spacedeck te permite combinar fácilmente todo tipo de multimedia en pizarras virtuales: notas de texto, fotos, enlaces web, incluso videos y grabaciones de audio. ",
"landing_example": "Las personas usan Spacedeck para organizar en equipo sus ideas y así poder ver proyectos completos de un vistazo, o bien en escuelas y universidades para obtener experiencias de aprendizaje más enriquecedoras y conectadas.",
"spaces": "Mis Espacios",
"access_editor_link": "Enlace de Edición Instantanea",
"access_editor_link_desc": "Proporciona este enlace a cualquier persona que deba poder editar instantáneamente este Espacio, no se requiere una cuenta: ",
"access_editor_link_desc_slug": "Este enlace también contiene el nombre del Espacio. ",
"access_anonymous_edit_blocking": "Los editores anónimos únicamente pueden cambiar sus propios elementos",
"access_current_members": "Miembros Actuales",
"access_new_members": "Invita Nuevos Miembros",
"access_no_members": "Los Miembros de este Espacio se mostrarán aquí.",
"comments": "comentarios",
"landing_customers": "Confiado por multitudes.",
"landing_features_title": "Sencillo de usar.",
"landing_features_text": "El nuevo Spacedeck 6 tiene un hermoso y optimizado interfaz de usuario que hace que tu trabajo sea más fácil y divertido que nunca, al tiempo que te brinda funciones aún más poderosas:",
"landing_features_1": "<b>Arrastra & suelta</b> imágenes, vídeos y áudios desde tu computadora o desde la web",
"landing_features_2": "<b>Escribe texto y formatéalo</b> con pleno control sobre fuente, color y estilo",
"landing_features_3": "<b>Dibuja, anota y resalta</b> incluyendo contornos gráficos",
"landing_features_4": "Convierte tu tablero en un <b>área de presentación con zoom</b>",
"landing_features_5": "<b>Colabora y chatea</b> en tiempo real con compañeros de equipo, alumnos y amigos.",
"landing_features_6": "<b>Comparte Espacios</b> en la web o via correo electrónico",
"landing_features_7": "<b>Exporta tu trabajo</b> como fichero imprimible PDF o como ZIP",
"landing_pricing": "Increiblemente asequible.",
"landing_pricing_lite": "Uso Libre/Personal",
"landing_pricing_lite_text": "La versión sencilla y completa para recopilar imágenes y tomar notas.",
"landing_pricing_pro_features_list": "<ul><li>Espacios ilimitados</li><li>Estructura de Directorios</li><li>Exportación a ficheros PDF y ZIP</li><li>Sin Marcas de Agua</li><li>Personaliza tu fondo</li><li>Historial de Actividad</li><li>20 GB de Almacenamiento</li><ul>",
"landing_pricing_pro": "€4,90/Usuario/Mes <br><small>o 49,90/Usuario/Año</small>",
"landing_pricing_pro_text": "Con todo la potencia que esperas.",
"landing_pricing_pro_features": "Con toda la potencia que esperas.",
"welcome_subject": "Bienvenido a Spacedeck",
"welcome_body": "¡Hola!\nGracias por registrárte en Spacedeck.<br>Esperamos que disfrutes trabajando con Espacios.<br>Recuerda, tu cuenta incluye colaboradores ilimitados. Siénte libre de compartir tus Espacios con amigos y colegas de todo el mundo.",
"invite_emails": "Dirección/ones de correo electrónico separadas por coma (,)",
"history_recently_updated": "Recientemente Actualizado",
"history_recently_empty": "Aún no ha pasado nada.",
"parent_folder": "Directorio padre",
"created_by": "Creado por",
"last_updated": "Última actualización",
"feedback_sent": "¡Muchas gracias por tu comentarios!",
"role_member": "Miembro",
"team_invite_membership_action": "Aceptar invitación",
"space_message_subject": "Nuevo Mensaje en el Espacio %s",
"space_message_body": "%s escribió en %s: \n",
"pro_ad_history_headline": "Cuando actualices a Spacedeck Pro, verás el historial de actualizaciones recientes en todos tus Espacios (compartidos) aquí.",
"password_reset_subject": "Restablecer contraseña para Spacedeck",
"password_reset_body": "Has solicitado el restablecimiento de tu contraseña en Spacedeck.\nPor favor, clica en el siguiente enlace para establecer una nueva contraseña.",
"password_reset_action": "Restablecer Ahora",
"was_offline": "La conexión con Spacedeck se ha interrupido. Si tienes trabajo sin salvar, mantén abierta, por favor, esta pestaña del navegadorhasta que la conexión esté restablecida, entonces toca los objetos no salvados.",
"subscription_failed_user_subject": "Problemas con el pago en tu Spacedeck",
"subscription_failed_user_body": "Desafortunadamente, no pudimos procesar su método de pago. Puede crear fácilmente un nuevo método de pago que incluya PayPal en la configuración de su cuenta.",
"subscription_failed_team_subject": "Problemas con el pago en tu Spacedeck",
"subscription_failed_team_body": "Desafortunadamente, no pudimos procesar su método de pago para tu Cuenta de Equipo. Corrija su método de pago lo antes posible.",
"team_name": "Nombre del Equipo",
"subdomain": "Subdominio",
"team_adresses": "Direcciones de correo electrónico del Equipo",
"add": "Añadir",
"invited": "invitado",
"duplicate_destination": "¿En qué directorio quieres duplicar este Espacio??",
"duplicate_confirm": "Duplicar %s en la directorio %s?",
"duplicate_success": "%s fue duplicado en %s.",
"goto_space": "Ve al Espacio %s",
"goto_folder": "Ve al Directorio %s",
"stay_here": "Permanece aquí",
"sharing": "Compartiendo",
"list": "Lista para Exportar",
"link": "Enlace",
"download_space": "Espacio de Descarga",
"type": "Tipo",
"download": "Descarga",
"Previous Zone": "Zona Previa",
"Next Zone": "Zona Siguiente",
"promote": "Promover",
"demote": "Degradar",
"more": "Más",
"lock": "Bloquear",
"unlock": "Desbloquear",
"follow_present": "Seguir",
"mute_present": "Dejar de Seguir",
"follow_present_help": "Si alguien más está presentando este espacio, los otros miembros siguen automáticamente la presentación. Active o desactive el seguimiento con este botón.",
"export": "exportar"
}
...@@ -34,7 +34,7 @@ console.log("Booting Spacedeck Open… (environment: " + app.get('env') + ")"); ...@@ -34,7 +34,7 @@ console.log("Booting Spacedeck Open… (environment: " + app.get('env') + ")");
app.use(logger(isProduction ? 'combined' : 'dev')); app.use(logger(isProduction ? 'combined' : 'dev'));
i18n.expressBind(app, { i18n.expressBind(app, {
locales: ["en", "de", "fr", "oc"], locales: ["en", "de", "fr", "oc", "es"],
defaultLocale: "en", defaultLocale: "en",
cookieName: "spacedeck_locale", cookieName: "spacedeck_locale",
devMode: (app.get('env') == 'development') devMode: (app.get('env') == 'development')
......
...@@ -107,6 +107,9 @@ ...@@ -107,6 +107,9 @@
</label> </label>
<label class="radio" v-bind:class="{checked: user.prefs_language=='oc'}" v-on:click="save_user_language('oc')"> <label class="radio" v-bind:class="{checked: user.prefs_language=='oc'}" v-on:click="save_user_language('oc')">
<input type="radio" id="user-preferences_language" name="language" value="oc"><span>Occitan</span> <input type="radio" id="user-preferences_language" name="language" value="oc"><span>Occitan</span>
</label>
<label class="radio" v-bind:class="{checked: user.prefs_language=='es'}" v-on:click="save_user_language('es')">
<input type="radio" id="user-preferences_language" name="language" value="es"><span>Español</span>
</label> </label>
</div> </div>
</div> </div>
......
...@@ -85,9 +85,11 @@ ...@@ -85,9 +85,11 @@
window.locales.de = {}; window.locales.de = {};
window.locales.fr = {}; window.locales.fr = {};
window.locales.oc = {}; window.locales.oc = {};
window.locales.es = {};
window.locales.en.translation = {% include "./../locales/en.js" %}; window.locales.en.translation = {% include "./../locales/en.js" %};
window.locales.de.translation = {% include "./../locales/de.js" %}; window.locales.de.translation = {% include "./../locales/de.js" %};
window.locales.fr.translation = {% include "./../locales/fr.js" %}; window.locales.fr.translation = {% include "./../locales/fr.js" %};
window.locales.oc.translation = {% include "./../locales/oc.js" %}; window.locales.oc.translation = {% include "./../locales/oc.js" %};
window.locales.es.translation = {% include "./../locales/es.js" %};
</script> </script>
</html> </html>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment