diff options
author | Elias Nahum <nahumhbl@gmail.com> | 2016-03-18 13:05:55 -0300 |
---|---|---|
committer | Elias Nahum <nahumhbl@gmail.com> | 2016-03-18 13:05:55 -0300 |
commit | db11d72cf585f86e54ed4a0f7203e32515edd1bc (patch) | |
tree | b102359ae756799230a611642c025dc8032a02db | |
parent | 5b824cb8552f5dd81d7c1d7800b808d4defc17ad (diff) | |
download | chat-db11d72cf585f86e54ed4a0f7203e32515edd1bc.tar.gz chat-db11d72cf585f86e54ed4a0f7203e32515edd1bc.tar.bz2 chat-db11d72cf585f86e54ed4a0f7203e32515edd1bc.zip |
Add spanish translations for compliance
-rw-r--r-- | i18n/en.json | 112 | ||||
-rw-r--r-- | i18n/es.json | 56 | ||||
-rw-r--r-- | webapp/i18n/en.json | 75 | ||||
-rw-r--r-- | webapp/i18n/es.json | 38 |
4 files changed, 186 insertions, 95 deletions
diff --git a/i18n/en.json b/i18n/en.json index 775e56cc4..6ba877f56 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -1708,6 +1708,26 @@ "translation": "Inappropriate permissions to regenerate outcoming webhook token" }, { + "id": "ent.compliance.licence_disable.app_error", + "translation": "Compliance functionality disabled by current license. Please contact your system administrator about upgrading your enterprise license." + }, + { + "id": "ent.compliance.run_failed.error", + "translation": "Compliance export failed for job '{{.JobName}}' at '{{.FilePath}}'" + }, + { + "id": "ent.compliance.run_finished.info", + "translation": "Compliance export finished for job '{{.JobName}}' exported {{.Count}} records to '{{.FilePath}}'" + }, + { + "id": "ent.compliance.run_limit.warning", + "translation": "Compliance export warning for job '{{.JobName}}' too many rows returned truncating to 30,000 at '{{.FilePath}}'" + }, + { + "id": "ent.compliance.run_started.info", + "translation": "Compliance export started for job '{{.JobName}}' at '{{.FilePath}}'" + }, + { "id": "ent.ldap.do_login.bind_admin_user.app_error", "translation": "Unable to bind to LDAP server. Check BindUsername and BindPassword." }, @@ -1800,26 +1820,6 @@ "translation": "Failed to read security bulletin details" }, { - "id": "ent.compliance.run_started.info", - "translation": "Compliance export started for job '{{.JobName}}' at '{{.FilePath}}'" - }, - { - "id": "ent.compliance.run_failed.error", - "translation": "Compliance export failed for job '{{.JobName}}' at '{{.FilePath}}'" - }, - { - "id": "ent.compliance.run_limit.warning", - "translation": "Compliance export warning for job '{{.JobName}}' too many rows returned truncating to 30,000 at '{{.FilePath}}'" - }, - { - "id": "ent.compliance.run_finished.info", - "translation": "Compliance export finished for job '{{.JobName}}' exported {{.Count}} records to '{{.FilePath}}'" - }, - { - "id": "ent.compliance.licence_disable.app_error", - "translation": "Compliance functionality disabled by current license. Please contact your system administrator about upgrading your enterprise license." - }, - { "id": "mattermost.security_checks.debug", "translation": "Checking for security update from Mattermost" }, @@ -1996,6 +1996,30 @@ "translation": "Invalid user id" }, { + "id": "model.compliance.is_valid.create_at.app_error", + "translation": "Create at must be a valid time" + }, + { + "id": "model.compliance.is_valid.desc.app_error", + "translation": "Invalid description" + }, + { + "id": "model.compliance.is_valid.end_at.app_error", + "translation": "To must be a valid time" + }, + { + "id": "model.compliance.is_valid.id.app_error", + "translation": "Invalid Id" + }, + { + "id": "model.compliance.is_valid.start_at.app_error", + "translation": "From must be a valid time" + }, + { + "id": "model.compliance.is_valid.start_end_at.app_error", + "translation": "To must be greater than From" + }, + { "id": "model.config.is_valid.email_reset_salt.app_error", "translation": "Invalid password reset salt for email settings. Must be 32 chars or more." }, @@ -2240,30 +2264,6 @@ "translation": "Invalid user id" }, { - "id": "model.compliance.is_valid.id.app_error", - "translation": "Invalid Id" - }, - { - "id": "model.compliance.is_valid.create_at.app_error", - "translation": "Create at must be a valid time" - }, - { - "id": "model.compliance.is_valid.desc.app_error", - "translation": "Invalid description" - }, - { - "id": "model.compliance.is_valid.start_at.app_error", - "translation": "From must be a valid time" - }, - { - "id": "model.compliance.is_valid.end_at.app_error", - "translation": "To must be a valid time" - }, - { - "id": "model.compliance.is_valid.start_end_at.app_error", - "translation": "To must be greater than From" - }, - { "id": "model.preference.is_valid.category.app_error", "translation": "Invalid category" }, @@ -2540,14 +2540,6 @@ "translation": "We encountered an error saving the audit" }, { - "id": "store.sql_compliance.save.saving.app_error", - "translation": "We encountered an error saving the compliance report" - }, - { - "id": "store.sql_compliance.get.finding.app_error", - "translation": "We encountered an error retrieving the compliance reports" - }, - { "id": "store.sql_channel.analytics_type_count.app_error", "translation": "We couldn't get channel type counts" }, @@ -2760,6 +2752,14 @@ "translation": "We couldn't update the command" }, { + "id": "store.sql_compliance.get.finding.app_error", + "translation": "We encountered an error retrieving the compliance reports" + }, + { + "id": "store.sql_compliance.save.saving.app_error", + "translation": "We encountered an error saving the compliance report" + }, + { "id": "store.sql_license.get.app_error", "translation": "We encountered an error getting the license" }, @@ -2848,10 +2848,6 @@ "translation": "We couldn't get post counts" }, { - "id": "store.sql_post.compliance_export.app_error", - "translation": "We couldn't get posts for compliance export" - }, - { "id": "store.sql_post.analytics_posts_count_by_day.app_error", "translation": "We couldn't get post counts by day" }, @@ -2860,6 +2856,10 @@ "translation": "We couldn't get user counts with posts" }, { + "id": "store.sql_post.compliance_export.app_error", + "translation": "We couldn't get posts for compliance export" + }, + { "id": "store.sql_post.delete.app_error", "translation": "We couldn't delete the post" }, diff --git a/i18n/es.json b/i18n/es.json index 231ebd9fb..97471ee98 100644 --- a/i18n/es.json +++ b/i18n/es.json @@ -1708,6 +1708,26 @@ "translation": "Permisos inapropiados para regenerar un token para el Webhook saliente" }, { + "id": "ent.compliance.licence_disable.app_error", + "translation": "La característica de Cumplimiento está deshabilitada para tu licencia actual. Por favor contacta a un administrador del sistema sobre como actualizar a una licencia enterprise." + }, + { + "id": "ent.compliance.run_failed.error", + "translation": "Fallo el trabajo '{{.JobName}}' para exportar el Cumplimiento en '{{.FilePath}}'" + }, + { + "id": "ent.compliance.run_finished.info", + "translation": "Se completo la exportación de Cumplimiento para el trabajo '{{.JobName}}' exportados {{.Count}} registros en '{{.FilePath}}'" + }, + { + "id": "ent.compliance.run_limit.warning", + "translation": "Advertencia en el trabajo '{{.JobName}}' para exportación de Cumplimiento. Se retornaron demasiados registros, truncando a 30,000 en '{{.FilePath}}'" + }, + { + "id": "ent.compliance.run_started.info", + "translation": "Iniciado el trabajo '{{.JobName}}' para exportar el Cumplimiento en '{{.FilePath}}'" + }, + { "id": "ent.ldap.do_login.bind_admin_user.app_error", "translation": "No se pudo enlazar con el servidor LDAP. Revisa las opciones de BindUsername y BindPassword." }, @@ -1976,6 +1996,30 @@ "translation": "Id de usuario inválido" }, { + "id": "model.compliance.is_valid.create_at.app_error", + "translation": "Create debe ser una fecha válida" + }, + { + "id": "model.compliance.is_valid.desc.app_error", + "translation": "Descripción inválida" + }, + { + "id": "model.compliance.is_valid.end_at.app_error", + "translation": "Hasta debe ser una fecha válida" + }, + { + "id": "model.compliance.is_valid.id.app_error", + "translation": "Id inválido" + }, + { + "id": "model.compliance.is_valid.start_at.app_error", + "translation": "Desde debe ser una fecha válida" + }, + { + "id": "model.compliance.is_valid.start_end_at.app_error", + "translation": "Desde debe ser mayor que Hasta" + }, + { "id": "model.config.is_valid.email_reset_salt.app_error", "translation": "Salt para restablecer contraseñas en la configuración de correos es inválido. Debe ser de 32 caracteres o más." }, @@ -2708,6 +2752,14 @@ "translation": "No pudimos actualizar el comando" }, { + "id": "store.sql_compliance.get.finding.app_error", + "translation": "Se ha detectado un error al recuperar los informes de cumplimiento" + }, + { + "id": "store.sql_compliance.save.saving.app_error", + "translation": "Se ha detectado un error al guardar el informe de cumplimiento" + }, + { "id": "store.sql_license.get.app_error", "translation": "Encontramos un error al obtener la licencia" }, @@ -2804,6 +2856,10 @@ "translation": "No pudimos obtener la cantidad de usuarios con mensajes" }, { + "id": "store.sql_post.compliance_export.app_error", + "translation": "No pudimos obtener los mensajes para exportar el informe de cumplimiento" + }, + { "id": "store.sql_post.delete.app_error", "translation": "No pudimos eliminar el mensaje" }, diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index 9a9477557..3ed5e04a3 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -24,6 +24,39 @@ "activity_log_modal.iphoneNativeApp": "iPhone Native App", "admin.audits.reload": "Reload", "admin.audits.title": "User Activity", + "admin.compliance.directoryDescription": "Directory to which compliance reports are written. If blank, will be set to ./data/.", + "admin.compliance.directoryExample": "Ex \"./data/\"", + "admin.compliance.directoryTitle": "Compliance Directory Location:", + "admin.compliance.enableDailyTitle": "Enable Daily Report:", + "admin.compliance.enableDesc": "When true, Mattermost will generate a daily compliance report.", + "admin.compliance.enableTitle": "Enable Compliance:", + "admin.compliance.false": "false", + "admin.compliance.noLicense": "<h4 class=\"banner__heading\">Note:</h4><p>Compliance is an enterprise feature. Your current license does not support Compliance. Click <a href=\"http://mattermost.com\" target=\"_blank\">here</a> for information and pricing on enterprise licenses.</p>", + "admin.compliance.save": "Save", + "admin.compliance.saving": "Saving Config...", + "admin.compliance.title": "Compliance Settings", + "admin.compliance.true": "true", + "admin.compliance_reports.desc": "Job Name:", + "admin.compliance_reports.desc_placeholder": "Ex \"Audit 445 for HR\"", + "admin.compliance_reports.emails": "Emails:", + "admin.compliance_reports.emails_placeholder": "Ex \"bill@example.com, bob@example.com\"", + "admin.compliance_reports.from": "From:", + "admin.compliance_reports.from_placeholder": "Ex \"2016-03-11\"", + "admin.compliance_reports.keywords": "Keywords:", + "admin.compliance_reports.keywords_placeholder": "Ex \"shorting stock\"", + "admin.compliance_reports.reload": "Reload", + "admin.compliance_reports.run": "Run", + "admin.compliance_reports.title": "Compliance Reports", + "admin.compliance_reports.to": "To:", + "admin.compliance_reports.to_placeholder": "Ex \"2016-03-15\"", + "admin.compliance_table.desc": "Description", + "admin.compliance_table.download": "Download", + "admin.compliance_table.params": "Params", + "admin.compliance_table.records": "Records", + "admin.compliance_table.status": "Status", + "admin.compliance_table.timestamp": "Timestamp", + "admin.compliance_table.type": "Type", + "admin.compliance_table.userId": "Requested By", "admin.email.allowEmailSignInDescription": "When true, Mattermost allows users to sign in using their email and password.", "admin.email.allowEmailSignInTitle": "Allow Sign In With Email: ", "admin.email.allowSignupDescription": "When true, Mattermost allows team creation and account signup using email and password. This value should be false only when you want to limit signup to a single-sign-on service like OAuth or LDAP.", @@ -195,40 +228,6 @@ "admin.ldap.uernameAttrDesc": "The attribute in the LDAP server that will be used to populate the username field in Mattermost. This may be the same as the ID Attribute.", "admin.ldap.usernameAttrEx": "Ex \"sAMAccountName\"", "admin.ldap.usernameAttrTitle": "Username Attribute:", - "admin.compliance.saving": "Saving Config...", - "admin.compliance.directoryExample": "Ex \"./data/\"", - "admin.compliance.noLicense": "<h4 class=\"banner__heading\">Note:</h4><p>Compliance is an enterprise feature. Your current license does not support Compliance. Click <a href=\"http://mattermost.com\" target=\"_blank\">here</a> for information and pricing on enterprise licenses.</p>", - "admin.compliance.title": "Compliance Settings", - "admin.compliance.enableTitle": "Enable Compliance:", - "admin.compliance.true": "true", - "admin.compliance.false": "false", - "admin.compliance.enableDesc": "When true, Mattermost allows compliance reporting", - "admin.compliance.directoryTitle": "Compliance Directory Location:", - "admin.compliance.directoryDescription": "Directory to which compliance reports are written. If blank, will be set to ./data/.", - "admin.compliance.enableDailyTitle": "Enable Daily Report:", - "admin.compliance.enableDesc": "When true, Mattermost will generate a daily compliance report.", - "admin.compliance.save": "Save", - "admin.compliance_reports.from": "From:", - "admin.compliance_reports.to": "To:", - "admin.compliance_reports.emails": "Emails:", - "admin.compliance_reports.keywords": "Keywords:", - "admin.compliance_table.download": "Download", - "admin.compliance_table.timestamp": "Timestamp", - "admin.compliance_table.status": "Status", - "admin.compliance_table.records": "Records", - "admin.compliance_table.type": "Type", - "admin.compliance_table.desc": "Description", - "admin.compliance_table.userId": "Requested By", - "admin.compliance_table.params": "Params", - "admin.compliance_reports.title": "Compliance Reports", - "admin.compliance_reports.desc": "Job Name:", - "admin.compliance_reports.desc_placeholder": "Ex \"Audit 445 for HR\"", - "admin.compliance_reports.from_placeholder": "Ex \"2016-03-11\"", - "admin.compliance_reports.to_placeholder": "Ex \"2016-03-15\"", - "admin.compliance_reports.emails_placeholder": "Ex \"bill@example.com, bob@example.com\"", - "admin.compliance_reports.keywords_placeholder": "Ex \"shorting stock\"", - "admin.compliance_reports.run": "Run", - "admin.compliance_reports.reload": "Reload", "admin.licence.keyMigration": "If you’re migrating servers you may need to remove your license key from this server in order to install it on a new server. To start, <a href=\"http://mattermost.com\" target=\"_blank\">disable all Enterprise Edition features on this server</a>. This will enable the ability to remove the license key and downgrade this server from Enterprise Edition to Team Edition.", "admin.license.chooseFile": "Choose File", "admin.license.edition": "Edition: ", @@ -364,12 +363,12 @@ "admin.service.webhooksTitle": "Enable Incoming Webhooks: ", "admin.sidebar.addTeamSidebar": "Add team from sidebar menu", "admin.sidebar.audits": "Compliance and Auditing", + "admin.sidebar.compliance": "Compliance Settings", "admin.sidebar.email": "Email Settings", "admin.sidebar.file": "File Settings", "admin.sidebar.gitlab": "GitLab Settings", "admin.sidebar.ldap": "LDAP Settings", "admin.sidebar.license": "Edition and License", - "admin.sidebar.compliance": "Compliance Settings", "admin.sidebar.loading": "Loading", "admin.sidebar.log": "Log Settings", "admin.sidebar.logs": "Logs", @@ -1130,7 +1129,6 @@ "tutorial_tip.seen": "Seen this before? ", "upload_overlay.info": "Drop a file to upload it.", "user.settings.advance.embed_preview": "Show preview snippet of links below message", - "user.settings.advance.slashCmd_autocmp": "Enable external application to offer slash command autocomplete", "user.settings.advance.embed_toggle": "Show toggle for all embed previews", "user.settings.advance.enabled": "enabled", "user.settings.advance.feature": " Feature ", @@ -1142,6 +1140,7 @@ "user.settings.advance.preReleaseTitle": "Preview pre-release features", "user.settings.advance.sendDesc": "If enabled 'Enter' inserts a new line and 'Ctrl + Enter' submits the message.", "user.settings.advance.sendTitle": "Send messages on Ctrl + Enter", + "user.settings.advance.slashCmd_autocmp": "Enable external application to offer slash command autocomplete", "user.settings.advance.title": "Advanced Settings", "user.settings.cmds.add": "Add", "user.settings.cmds.add_desc": "Create slash commands to send events to external integrations and receive a response. For example typing `/patient Joe Smith` could bring back search results from your internal health records management system for the name “Joe Smith”. Please see <a href=\"http://docs.mattermost.com/developer/slash-commands.html\">Slash commands documentation</a> for detailed instructions. View all slash commands configured on this team below.", @@ -1170,6 +1169,7 @@ "user.settings.cmds.request_type_desc": "The type of command request issued to the Request URL.", "user.settings.cmds.request_type_get": "GET", "user.settings.cmds.request_type_post": "POST", + "user.settings.cmds.slashCmd_autocmp": "Enable external application to offer autocomplete", "user.settings.cmds.token": "Token: ", "user.settings.cmds.trigger": "Command Trigger Word: ", "user.settings.cmds.trigger_desc": "Examples: /patient, /client, /employee Reserved: /echo, /join, /logout, /me, /shrug", @@ -1178,7 +1178,6 @@ "user.settings.cmds.url_desc": "The callback URL to receive the HTTP POST or GET event request when the slash command is run.", "user.settings.cmds.username": "Response Username: ", "user.settings.cmds.username_desc": "Choose a username override for responses for this slash command. Usernames can consist of up to 22 characters consisting of lowercase letters, numbers and they symbols \"-\", \"_\", and \".\" .", - "user.settings.cmds.slashCmd_autocmp": "Enable external application to offer autocomplete", "user.settings.custom_theme.awayIndicator": "Away Indicator", "user.settings.custom_theme.buttonBg": "Button BG", "user.settings.custom_theme.buttonColor": "Button Text", @@ -1354,4 +1353,4 @@ "web.footer.terms": "Terms", "web.header.back": "Back", "web.root.singup_info": "All team communication in one place, searchable and accessible anywhere" -}
\ No newline at end of file +} diff --git a/webapp/i18n/es.json b/webapp/i18n/es.json index 457752b64..606b4376d 100644 --- a/webapp/i18n/es.json +++ b/webapp/i18n/es.json @@ -24,6 +24,39 @@ "activity_log_modal.iphoneNativeApp": "iPhone App Nativa", "admin.audits.reload": "Recargar", "admin.audits.title": "Auditorías del Servidor", + "admin.compliance.directoryDescription": "Directorio en el que se escriben los informes de cumplimiento. Si se deja en blanco, se utilizará ./data/.", + "admin.compliance.directoryExample": "Ej \"./data/\"", + "admin.compliance.directoryTitle": "Ubicación del Directorio de Cumplimiento:", + "admin.compliance.enableDailyTitle": "Habilitar Informes Diarios:", + "admin.compliance.enableDesc": "Cuando es verdadero, Mattermost generará un informe diario de cumplimiento.", + "admin.compliance.enableTitle": "Habilitar el Cumplimiento:", + "admin.compliance.false": "falso", + "admin.compliance.noLicense": "<h4 class=\"banner__heading\">Nota:</h4><p>El Cumplimiento es una característica de la edición enterprise. Tu licencia actual no soporta Cumplimiento. Pincha <a href=\"http://mattermost.com\" target=\"_blank\">aquí</a> para información y precio de las licencias enterprise.</p>", + "admin.compliance.save": "Guardar", + "admin.compliance.saving": "Guardando...", + "admin.compliance.title": "Configuración de Cumplimiento", + "admin.compliance.true": "verdadero", + "admin.compliance_reports.desc": "Nombre del trabajo:", + "admin.compliance_reports.desc_placeholder": "Ej \"Auditoria 445 para RRHH\"", + "admin.compliance_reports.emails": "Correos electrónicos:", + "admin.compliance_reports.emails_placeholder": "Ej \"bill@ejemplo.com, bob@ejemplo.com\"", + "admin.compliance_reports.from": "Desde:", + "admin.compliance_reports.from_placeholder": "Ej \"2016-03-11\"", + "admin.compliance_reports.keywords": "Palabras clave:", + "admin.compliance_reports.keywords_placeholder": "Ej \"acortar inventario\"", + "admin.compliance_reports.reload": "Recargar", + "admin.compliance_reports.run": "Ejecutar", + "admin.compliance_reports.title": "Informes de Cumplimiento", + "admin.compliance_reports.to": "Hasta:", + "admin.compliance_reports.to_placeholder": "Ej \"2016-03-15\"", + "admin.compliance_table.desc": "Descripción", + "admin.compliance_table.download": "Descargar", + "admin.compliance_table.params": "Parámetros", + "admin.compliance_table.records": "Registros", + "admin.compliance_table.status": "Estado", + "admin.compliance_table.timestamp": "Marca de tiempo", + "admin.compliance_table.type": "Tipo", + "admin.compliance_table.userId": "Solicitado por", "admin.email.allowEmailSignInDescription": "Cuando es verdadero, Mattermost permite a los usuarios iniciar sesión utilizando el correo electrónico y contraseña.", "admin.email.allowEmailSignInTitle": "Permitir inicio de sesión con Correo electrónico: ", "admin.email.allowSignupDescription": "Cuando está en verdadero, Mattermost permite la creación de equipos y cuentas utilizando el correo electrónico y contraseña. Este valor debe estar en falso sólo cuando quieres limitar el inicio de sesión a través de servicios tipo OAuth o LDAP.", @@ -330,6 +363,7 @@ "admin.service.webhooksTitle": "Habilitar Webhooks de Entrada: ", "admin.sidebar.addTeamSidebar": "Agregar un equipo el menú lateral", "admin.sidebar.audits": "Auditorías", + "admin.sidebar.compliance": "Configuración de Cumplimiento", "admin.sidebar.email": "Configuración de correo", "admin.sidebar.file": "Configuracion de archivos", "admin.sidebar.gitlab": "Configuración de GitLab", @@ -1106,6 +1140,7 @@ "user.settings.advance.preReleaseTitle": "Previsualizar características de pre-lanzamiento", "user.settings.advance.sendDesc": "Si está habilitado 'Retorno' inserta una nueva linea y 'Ctrl + Retorno' envía el mensaje.", "user.settings.advance.sendTitle": "Enviar mensajes con Ctrl + Retorno", + "user.settings.advance.slashCmd_autocmp": "Habilitar que una aplicación externa ofrezca el autocompletado de los comandos de barra", "user.settings.advance.title": "Configuración Avanzada", "user.settings.cmds.add": "Agregar", "user.settings.cmds.add_desc": "Crea comandos de barra para enviar eventos a integraciones externas recibiendo una respuesta. Por ejemplo al escribir `/paciente Joe Smith` podría retornar los resultados de una búsqueda de los regístros de salud en tu sistema de administración para el nombre “Joe Smith”. Revisa la <a href=\"http://docs.mattermost.com/developer/slash-commands.html\">documentación de Comandos de Barra</a> para instrucciones detalladas. Ver todos los comandos de barra configurados para este equipo en la parte de abajo.", @@ -1134,6 +1169,7 @@ "user.settings.cmds.request_type_desc": "El tipo de comando que se utiliza al hacer una solicitud al URL.", "user.settings.cmds.request_type_get": "GET", "user.settings.cmds.request_type_post": "POST", + "user.settings.cmds.slashCmd_autocmp": "Habilitar que una aplicación externa ofrezca autocompletado", "user.settings.cmds.token": "Token: ", "user.settings.cmds.trigger": "Palabra Gatilladora del Comando: ", "user.settings.cmds.trigger_desc": "Ejemplos: /paciente, /cliente, /empleado Reservadas: /echo, /join, /logout, /me, /shrug", @@ -1317,4 +1353,4 @@ "web.footer.terms": "Términos", "web.header.back": "Atrás", "web.root.singup_info": "Todas las comunicaciones del equipo en un sólo lugar, con búsquedas y accesible desde cualquier parte" -}
\ No newline at end of file +} |