diff --git a/.meteor/packages b/.meteor/packages index a03390cdce3274998e29e6f2db753795492ecbe0..091b4db9524722d0423633022bf835326bc5e4be 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -4,39 +4,39 @@ # but you can also edit it by hand. rocketchat:cors -accounts-facebook@1.0.11 -accounts-github@1.0.11 -accounts-google@1.0.11 -accounts-meteor-developer@1.0.11 -accounts-password@1.3.3 -accounts-twitter@1.1.12 +accounts-facebook +accounts-github +accounts-google +accounts-meteor-developer +accounts-password +accounts-twitter blaze-html-templates -check@1.2.4 -coffeescript@1.11.1_4 -ddp-rate-limiter@1.0.6 -ecmascript@0.6.1 -ejson@1.0.13 -email@1.1.18 -fastclick@1.0.13 -http@1.2.10 -jquery@1.11.10 -less@2.7.8 -logging@1.1.16 -meteor-base@1.0.4 -mobile-experience@1.0.4 -mongo@1.1.14 -random@1.0.10 -rate-limit@1.0.6 -reactive-dict@1.1.8 -reactive-var@1.0.11 -reload@1.1.11 -service-configuration@1.0.11 -session@1.1.7 -shell-server@0.2.1 +check +coffeescript +ddp-rate-limiter +ecmascript +ejson +email +fastclick +http +jquery +less +logging +meteor-base +mobile-experience +mongo +random +rate-limit +reactive-dict +reactive-var +reload +service-configuration +session +shell-server spacebars -standard-minifier-css@1.3.2 -standard-minifier-js@1.2.1 -tracker@1.1.1 +standard-minifier-css +standard-minifier-js +tracker rocketchat:action-links rocketchat:api @@ -152,7 +152,7 @@ ostrio:cookies pauli:accounts-linkedin percolate:synced-cron raix:handlebar-helpers -raix:push@3.0.3-rc.7 +raix:push raix:ui-dropped-event smoral:sweetalert steffo:meteor-accounts-saml diff --git a/.meteor/versions b/.meteor/versions index 869496bc7389df3a2bc5600971e398585ffcd0a3..14831c65abe173d8eef32a8a12e888e46a313877 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -92,7 +92,7 @@ mongo-id@1.0.6 mongo-livedata@1.0.12 mrt:reactive-store@0.0.1 mystor:device-detection@0.2.0 -nimble:restivus@0.8.11 +nimble:restivus@0.8.12 nooitaf:colors@1.1.2_1 npm-bcrypt@0.9.2 npm-mongo@2.2.16_1 @@ -101,7 +101,7 @@ oauth1@1.1.11 oauth2@1.1.11 observe-sequence@1.0.14 ordered-dict@1.0.9 -ostrio:cookies@2.1.0 +ostrio:cookies@2.1.2 pauli:accounts-linkedin@1.3.1 pauli:linkedin@1.3.1 peerlibrary:aws-sdk@2.4.9_1 diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp index 7c501eb6a8d18eeeb5ab42914c4fc3faca370f63..99c6419fc5e2e62d951c319ba96c01998dd597f0 100644 --- a/.sandstorm/sandstorm-pkgdef.capnp +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -19,9 +19,9 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Rocket.Chat"), - appVersion = 53, # Increment this for every release. + appVersion = 56, # Increment this for every release. - appMarketingVersion = (defaultText = "0.50.0-develop"), + appMarketingVersion = (defaultText = "0.51.0-develop"), # Human-readable representation of appVersion. Should match the way you # identify versions of your app in documentation and marketing. diff --git a/.snapcraft/edge/snapcraft.yaml b/.snapcraft/edge/snapcraft.yaml index 7d33d391785cdd33fe148341e887f3511d8e324e..a30e279d3d77df8e555ba8e405e2f25c18b50636 100644 --- a/.snapcraft/edge/snapcraft.yaml +++ b/.snapcraft/edge/snapcraft.yaml @@ -7,7 +7,7 @@ # 5. `snapcraft snap` name: rocketchat-server -version: 0.50.0-develop +version: 0.51.0-develop summary: Rocket.Chat server description: Have your own Slack like online chat, built with Meteor. https://rocket.chat/ confinement: strict @@ -21,7 +21,7 @@ apps: daemon: simple plugs: [network, network-bind] rocketchat-caddy: - command: env LC_ALL=C caddy -conf=$SNAP_DATA/Caddyfile -host=localhost:8080 + command: env LC_ALL=C caddy -conf=$SNAP_DATA/Caddyfile -host=localhost:8080 daemon: simple plugs: [network, network-bind] backupdb: @@ -56,11 +56,13 @@ parts: stage: - programs - main.js + - .node_version.txt - usr - lib snap: - programs - main.js + - .node_version.txt - usr - lib mongodb: diff --git a/.snapcraft/stable/snapcraft.yaml b/.snapcraft/stable/snapcraft.yaml index d253e0fa8dfe529aeb1ce34fca4aa8d74926f311..d6e57bbcee40ab9904d0c8607b37905e95170a32 100644 --- a/.snapcraft/stable/snapcraft.yaml +++ b/.snapcraft/stable/snapcraft.yaml @@ -7,7 +7,7 @@ # 5. `snapcraft snap` name: rocketchat-server -version: 0.50.0-develop +version: 0.51.0-develop summary: Rocket.Chat server description: Have your own Slack like online chat, built with Meteor. https://rocket.chat/ confinement: strict @@ -21,7 +21,7 @@ apps: daemon: simple plugs: [network, network-bind] rocketchat-caddy: - command: env LC_ALL=C caddy -conf=$SNAP_DATA/Caddyfile -host=localhost:8080 + command: env LC_ALL=C caddy -conf=$SNAP_DATA/Caddyfile -host=localhost:8080 daemon: simple plugs: [network, network-bind] backupdb: @@ -56,11 +56,13 @@ parts: stage: - programs - main.js + - .node_version.txt - usr - lib snap: - programs - main.js + - .node_version.txt - usr - lib mongodb: diff --git a/HISTORY.md b/HISTORY.md index 3267b856a8825b6192017f5d18c053340b2b0464..34204667a728dac5e1ac49c04c97ff44f8035425 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,60 @@ # History +## 0.50.0 - 2017-Jan-24 + +- Add APIs for users.register and users.getAvatar +- Add error and exit process when nodejs version is impatible +- Add option to use real name for avatar +- Fix chat.postMessage not behaving like the web client (#5477) +- Fix files uploaded by other users not being able to be deleted by users with permission +- Fix Slack Importer incorrectly logging missed types and add slackbot_response to the import +- Fix to prevent create 2 upload bars +- Fix undefined language seting issue on reload +- Improve message of multiple instances without oplog + +## 0.49.4 - 2017-Jan-19 + +- Add customFields to groups.create api (#5639) +- Add RoomManager to list of globals +- Add support to inbox style push notifications for Android +- Add support to msapplication oembed metadata +- Fix Zapier oAuthApp settings to enable it and update the redirectUri +- Fix admin info to only count recenlty updated instances +- Fix exception in template helper, iframe login +- Fix Further disallowance of changing the password, this time on the client side +- Fix groups.setReadOnly and groups.setType not returning the correct group via rest api +- Fix hover size on edit messages +- Fix joinDefaultChannels for Custom OAuth +- Fix prevent error with positional operator +- Fix room’s info panel at Admin Rooms +- Fix sidenav in window resize +- Fix the incorrect default url for new instances. +- Fix to remove _normal and _bigger from twitter avatar url +- Fix to sync createPrivateGroup and createChannel parameter order for readOnly and customFields +- Fix to use eval to execute loggedIn and loggedOut scripts +- Fix to use favicon 192 for push notifications +- Fix users being able to change their passwords when the setting disabled that + +## 0.49.3 - 2017-Jan-18 + +- Add Drupal 7 and 8 plug-in information +- Add option to get group by name in api/v1/groups.info?roomName=testing +- Add forgot password template +- Add verification email template +- Allow retrieveDirectMessageInfo with rid +- Fix outgoing integration to require channel +- Fix to not ser userLanguage as undefined +- Fix cannot set property input of undefined (#5619) +- Fix agents not being able to see queue list page +- Fix error preventing showing error on upload to s3 +- Fix flex-tab on cordova +- Fix processWebhookMessage and Loki $in/$nin +- Fix tab-bar position on swipe +- Make Internal Hubot disabled by default +- Meteor update blaze upgraded from 2.2.1 to 2.3.0 and related packages +- Show correct data at admin/rooms +- Show the oplog status on admin and an error alert when necessary + ## 0.49.2 - 2017-Jan-16 - Add findOneById and findOneByIds to all layers of the models diff --git a/LICENSE b/LICENSE index 2ff8b359044f2a1ee20c33057c1dc6de1bad0687..b3435a1048855d99da67c746c6f5ea4ab63506f1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015-2016 Rocket.Chat Technologies Corp. +Copyright (c) 2015-2017 Rocket.Chat Technologies Corp. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 8f556c33a66dc0d40ae9be2f9f4f4baf39878990..82841dd36192d1e880e5e3d1f7a63771d03e3d33 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,12 @@ * [Mobile apps](#mobile-apps) * [Desktop apps](#desktop-apps) * [Deployment](#deployment) - * [Snaps](#snaps) + * [Snaps](#instant-server-intallation-with-snaps) * [Sandstorm.io](#sandstormio) * [DPlatform](#dplatform) * [IndieHosters](#indiehosters) * [Ubuntu 16.04](#ubuntu-1604) * [Cloudron.io](#cloudronio) - * [Nitrous.io](#nitrousio) * [Heroku](#heroku) * [Scalingo](#scalingo) * [Sloppy.io](#sloppyio) @@ -314,6 +313,7 @@ Read about [how it all started](http://osdelivers.blackducksoftware.com/2016/06/ [](https://info.blackducksoftware.com/OpenSourceRookies2015.html) +[](http://www.softpedia.com/get/Internet/Chat/Other-Chat-Tools/Rocket-Chat.shtml#status) ## Issues diff --git a/package.json b/package.json index f74bac6cd9ee50dd69a2eb20bb3b34026db8ba1d..1a3106592e5c6d2db7366dc3af7eae18f58649d9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "0.50.0-develop", + "version": "0.51.0-develop", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" @@ -60,21 +60,22 @@ "email": "support@rocket.chat" }, "devDependencies": { - "chimp": "^0.47.0", - "eslint": "^3.13.1", + "chimp": "^0.47.1", + "eslint": "^3.14.0", "stylelint": "^7.7.1", "supertest": "^2.0.1" }, "dependencies": { "jquery": "^2.1.0", - "babel-runtime": "^6.20.0", + "babel-runtime": "^6.22.0", "bcrypt": "^1.0.2", "moment": "^2.17.1", "moment-timezone": "^0.5.11", "toastr": "^2.1.2", - "mime-types": "2.1.14", - "file-type": "4.0.0", + "mime-types": "^2.1.14", + "file-type": "^4.1.0", "semver": "^5.3.0", - "codemirror": "5.22.2" + "codemirror": "^5.23.0", + "prom-client": "^7.0.1" } } diff --git a/packages/rocketchat-api/package.js b/packages/rocketchat-api/package.js index 023e3b6a3c75e2a9df8c8fddf7b6dfd07f8c9330..006a3d764e4d7cec193d471cb9880c4edb39705b 100644 --- a/packages/rocketchat-api/package.js +++ b/packages/rocketchat-api/package.js @@ -22,6 +22,7 @@ Package.onUse(function(api) { api.addFiles('server/v1/helpers/parseJsonQuery.js', 'server'); api.addFiles('server/default/info.js', 'server'); + api.addFiles('server/default/metrics.js', 'server'); //Add v1 routes api.addFiles('server/v1/channels.js', 'server'); diff --git a/packages/rocketchat-api/server/default/metrics.js b/packages/rocketchat-api/server/default/metrics.js new file mode 100644 index 0000000000000000000000000000000000000000..bae94b3f3f02d14d9c855a27b01c5521b3aebf57 --- /dev/null +++ b/packages/rocketchat-api/server/default/metrics.js @@ -0,0 +1,8 @@ +RocketChat.API.default.addRoute('metrics', { authRequired: false }, { + get: function() { + return { + headers: { 'Content-Type': 'text/plain' }, + body: RocketChat.promclient.register.metrics() + }; + } +}); diff --git a/packages/rocketchat-i18n/i18n/ca.i18n.json b/packages/rocketchat-i18n/i18n/ca.i18n.json index 95fa0b974fac89a41121c7527ca521de0bbec20f..d3b5ad35e10c6e9b10c2788f031cecd89c7cae5f 100644 --- a/packages/rocketchat-i18n/i18n/ca.i18n.json +++ b/packages/rocketchat-i18n/i18n/ca.i18n.json @@ -410,6 +410,7 @@ "Enable": "Activa", "Enable_Desktop_Notifications": "Activa notificacions d'escriptori", "Enabled": "Activa", + "Enable_Svg_Favicon": "Activa el favicon SVG", "Encrypted_message": "Missatge xifrat", "End_OTR": "Finalitza OTR", "Enter_a_regex": "Introdueix una RegExp", diff --git a/packages/rocketchat-i18n/i18n/cs.i18n.json b/packages/rocketchat-i18n/i18n/cs.i18n.json index 95d9f6284f20f063d252b31caa90aa99f730abc8..df2522bcedf9a3b11c2e1417df9043efccc863bb 100644 --- a/packages/rocketchat-i18n/i18n/cs.i18n.json +++ b/packages/rocketchat-i18n/i18n/cs.i18n.json @@ -109,6 +109,8 @@ "Accounts_RegistrationForm_SecretURL_Description": "Vložte náhodný retÄ›zec, který bude pÅ™idán do vaÅ¡Ã registraÄnà URL. PÅ™Ãklad: https://demo.rocket.chat/register/[tajny_kod]", "Accounts_RequireNameForSignUp": "Vyžadovat jméno", "Accounts_RequirePasswordConfirmation": "Vyžadovat potvrzenà hesla", + "Accounts_SetDefaultAvatar": "Nastavit výchozà avatar", + "Accounts_SetDefaultAvatar_Description": "Pokusà se urÄit výchozà avatar na základÄ› OAuth úÄtu nebo gravataru", "Accounts_ShowFormLogin": "Zobrazit formulářové pÅ™ihlášenÃ", "Accounts_UseDefaultBlockedDomainsList": "PoužÃt výchozà seznam blokovaných domén", "Accounts_UseDNSDomainCheck": "PoužÃt ověřenà DNS domény", @@ -120,6 +122,7 @@ "Add": "PÅ™idat", "Add_agent": "PÅ™idat operátora", "Add_custom_oauth": "PÅ™idat vlastnà OAuth", + "Add_Domain": "PÅ™idat Doménu", "Add_manager": "PÅ™idat správce", "Add_user": "PÅ™idat uživatele", "Add_User": "PÅ™idat uživatele", @@ -153,7 +156,11 @@ "And_more": "A dalÅ¡Ã __length __", "Animals_and_Nature": "ZvÃÅ™ata & PÅ™Ãroda", "API": "API", + "API_Allow_Infinite_Count": "Povolit zÃskánà vÅ¡eho", + "API_Allow_Infinite_Count_Description": "MÄ›la by volánà REST API mÃt povoleno vrátit vÅ¡echno v jedné odpovÄ›di?", "API_Analytics": "Analytika", + "API_Default_Count": "Výchozà poÄet", + "API_Default_Count_Description": "Výchozà poÄet výsledků v REST API pokud nenà zažádáno konkrétnà ÄÃslo", "API_Embed": "Náhled vložených odkazů", "API_Embed_Description": "Zda zobrazit náhled stránky když uživatel poÅ¡le odkaz", "API_EmbedCacheExpirationDays": "PoÄet dnà expirace cache embed", @@ -167,6 +174,8 @@ "API_GitHub_Enterprise_URL_Description": "PÅ™Ãklad: http://domain.com (bez lomÃtka na konci)", "API_Gitlab_URL": "GitLab URL", "API_Token": "API Token", + "API_Upper_Count_Limit": "Maximálnà poÄet", + "API_Upper_Count_Limit_Description": "Kolik nejvÃce záznamů smà REST API vrátit (pokud nenà limitovaná)", "API_User_Limit": "Maximálnà poÄet uživatelů pÅ™idaných do mÃstnosti", "API_Wordpress_URL": "WordPress URL", "Apiai_Key": "Api.ai KlÃÄ", @@ -217,6 +226,7 @@ "Back_to_login": "ZpÄ›t na pÅ™ihlaÅ¡ovacà formulář", "Back_to_permissions": "ZpÄ›t na práva", "Beta_feature_Depends_on_Video_Conference_to_be_enabled": "Beta funkcionalita. Videohovory musà být povoleny.", + "Block_User": "Blokovat uživatele", "Body": "Obsah", "bold": "tuÄný", "bot_request": "Request bota", @@ -262,6 +272,7 @@ "Channel_already_Unarchived": "MÃstnost `#%s` je již v odarchivovaném stavu", "Channel_Archived": "MÃstnost `#%s` byla úspěšnÄ› archivována", "Channel_doesnt_exist": "MÃstnost `# %s` neexistuje.", + "Channel_to_listen_on": "Poslouchat mÃstnost", "Channel_Unarchived": "MÃstnost `#%s` byla úspěšnÄ› odarchivována", "Channels": "MÃstnosti", "Channels_list": "Seznam veÅ™ejných mÃstnosti", @@ -329,6 +340,8 @@ "Custom_Translations_Description": "Validnà JSON obsahujÃcà slovnÃk. NapÅ™Ãklad <br/><code>{\n \"en\": {\n  \"key\": \"translation\"\n },\n \"pt\": {\n  \"key\": \"tradução\"\n }\n}</code>", "Dashboard": "Hlavnà panel", "Date": "Datum", + "Date_From": "Od", + "Date_to": "Komu", "days": "dny", "DB_Migration": "Migrace databáze", "DB_Migration_Date": "Datum migrace databáze", @@ -359,6 +372,8 @@ "Displays_action_text": "Zobrazuje text akce", "Do_you_want_to_change_to_s_question": "Chcete zmÄ›nit na <strong>%s?</strong>", "Domain": "Doména", + "Domain_added": "Doména pÅ™idána", + "Domain_removed": "Doména odebrána", "Domains": "Domény", "Download_Snippet": "Stáhnout", "Drop_to_upload_file": "PusÅ¥e soubor do okna pro jeho nahránÃ", @@ -396,6 +411,7 @@ "Enable": "Povolit", "Enable_Desktop_Notifications": "Aktivovat oznámenà na ploÅ¡e", "Enabled": "Povoleno", + "Enable_Svg_Favicon": "Povolit SVG favikonu", "Encrypted_message": "Å ifrovaná zpráva", "End_OTR": "UkonÄit konverzaci mimo záznam", "Enter_a_regex": "Zadejte regulárnà výraz", @@ -433,6 +449,7 @@ "error-invalid-description": "Neplatný popis", "error-invalid-domain": "Neplatná doména", "error-invalid-email": "Neplatný email __email__", + "error-invalid-email-address": "Nevalidnà email", "error-invalid-file-height": "Neplatná výška souboru", "error-invalid-file-type": "Neplatný typ souboru", "error-direct-message-file-upload-not-allowed": "SdÃlenà souborů nenà v pÅ™Ãmé konverzaci povoleno", @@ -519,9 +536,14 @@ "Food_and_Drink": "JÃdlo & pitÃ", "Footer": "ZápatÃ", "For_your_security_you_must_enter_your_current_password_to_continue": "Pro vaÅ¡i bezpeÄnost, je nutné znovu zadat heslo pro pokraÄovánÃ", + "Force_Disable_OpLog_For_Cache": "Vynucené vypnutà OpLogu pro cache", + "Force_Disable_OpLog_For_Cache_Description": "I pokud je dostupný OpLog se nebude použÃvat pro synchronizaci cache", "Force_SSL": "Vynutit SSL", "Force_SSL_Description": "* Pozor! * volba _Vynutit SSL_ by nikdy nemÄ›la být použÃvána s reverznà proxy. Máte-li reverznà proxy, Å™eÅ¡te pÅ™esmÄ›rovánà tam. Tato možnost je pouze pro služby jako Heroku které toto neumožňujÃ", "Forgot_password": "ZapomnÄ›li jste heslo?", + "Forgot_Password_Description": "Můžete použÃt následujÃcà zástupné symboly: <br/><ul><li>[Forgot_Password_Url] pro adresu stránky na obnovu hesla</li><li>[name] pro celé jméno, [fname] pro kÅ™estnà jméno a [lname] pro pÅ™Ãjmenà uživatele.</li><li>[email] pro email uživatelé.</li><li>[Site_Name] pro název a [Site_URL] pro a URL stránky.</li></ul>", + "Forgot_Password_Email_Subject": "[Site_Name] - Obnova Hesla", + "Forgot_Password_Email": "KliknÄ›te na <a href=\"[Forgot_Password_Url]\">tento odkaz</a> pro obnovenà vaÅ¡eho hesla.", "Forward": "PÅ™eposlat", "Forward_chat": "PÅ™eposlat konverzaci", "Forward_to_department": "PÅ™eposlat oddÄ›lenÃ", @@ -761,6 +783,8 @@ "List_of_Channels": "Seznam mÃstnostÃ", "List_of_Direct_Messages": "Seznam pÅ™Ãmých zpráv", "Livechat_agents": "Livechat operátoÅ™i", + "Livechat_AllowedDomainsList": "Povolené domény pro Livechat", + "Domains_allowed_to_embed_the_livechat_widget": "Čárkou oddÄ›lený seznam domén, kde se smà zobrazovat livechat. Pro povolenà vÅ¡ech domén nechte prázdné", "Livechat_Dashboard": "Livechat PÅ™ehled", "Livechat_enabled": "Livechat povolen", "Livechat_forward_open_chats": "PÅ™edat otevÅ™ené chaty", @@ -878,6 +902,7 @@ "Meta_robots": "Roboti", "Min_length_is": "Minimálnà délka je %s", "minutes": "minuty", + "Mobile": "MobilnÃ", "Monday": "PondÄ›lÃ", "Monitor_history_for_changes_on": "Sledovat historii na zmÄ›ny:", "More_channels": "VÃce mÃstnostÃ", @@ -1006,10 +1031,12 @@ "Please_enter_value_for_url": "ProsÃm, zadejte URL VaÅ¡eho avataru.", "Please_enter_your_new_password_below": "NÞe zadejte své nové heslo:", "Please_enter_your_password": "Zadejte prosÃm heslo znovu", + "please_enter_valid_domain": "ProsÃm zadejte platnou doménu", "Please_fill_a_label": "ProsÃm, vyplňte Å¡tÃtek", "Please_fill_a_name": "ProsÃm vyplňte název", "Please_fill_a_username": "ProsÃm vyplňte uživatelské jméno", "Please_fill_name_and_email": "ProsÃm vyplňte jméno a e-mail", + "Please_select_an_user": "ProsÃm vyberte uživatele", "Please_select_enabled_yes_or_no": "Zvolte hodnotu pro povoleno", "Please_wait": "ProsÃm, Äekejte", "Please_wait_activation": "ProsÃm, vyÄkejte, může to chvilku trvat", @@ -1086,6 +1113,7 @@ "Require_password_change": "Vyžadovat zmÄ›nu hesla", "Resend_verification_email": "OpÄ›tovné zaslánà ověřovacÃho e-mailu", "Reset": "Obnovit", + "Reset_section_settings": "Vymazat nastavenà sekce", "Reset_password": "Obnovit heslo", "Restart": "Restartovat", "Restart_the_server": "Restartovat server", @@ -1105,6 +1133,7 @@ "Room_has_been_archived": "MÃstnost byla archivována", "Room_has_been_unarchived": "MÃstnost již nenà archivována", "Room_Info": "Informace o mÃstnosti", + "room_is_blocked": "MÃstnost je blokována", "room_is_read_only": "Tato mÃstnost je pouze pro ÄtenÃ", "room_name": "jméno mÃstnosti", "Room_name_changed": "<em>__user_by__</em> zmÄ›nil/a jméno mÃstnosti na: <em>__room_name__</em>", @@ -1355,6 +1384,7 @@ "UI_DisplayRoles": "Zobrazit Role", "UI_Merge_Channels_Groups": "SlouÄit privátnà skupiny s mÃstnostmi", "Unarchive": "ZruÅ¡it archivaci", + "Unblock_User": "Odblokovat uživatele", "Unmute_someone_in_room": "ZruÅ¡it ztlumenà nÄ›koho v mÃstnosti", "Unmute_user": "ZruÅ¡it ztlumenà uživatele", "Unnamed": "Nepojmenovaný", @@ -1363,10 +1393,13 @@ "Unread_Rooms": "NepÅ™eÄtené mÃstnosti", "Unread_Rooms_Mode": "Mód NepÅ™eÄtených mÃstnostÃ", "Unstar_Message": "Odebrat hvÄ›zdiÄku", + "Upload_file_description": "Popis souboru", + "Upload_file_name": "Název souboru", "Upload_file_question": "Nahrát soubor?", "Uploading_file": "Nahrávánà souboru...", "Uptime": "Doba od spuÅ¡tÄ›nÃ", "URL": "URL", + "URL_room_prefix": "Prefix URL mÃstnosti", "Use_account_preference": "PoužÃt nastavenà úÄtu", "Use_Emojis": "PoužÃt emotikony", "Use_Global_Settings": "PoužÃt obecné nastavenÃ", @@ -1390,8 +1423,10 @@ "User_has_been_muted_in_s": "Uživatel byl ztiÅ¡en v %s", "User_has_been_removed_from_s": "Uživatel byl odebrán z %s", "User_Info": "Informace o uživateli", + "User_is_blocked": "Uživatel je blokován", "User_is_no_longer_an_admin": "Uživatel už nenà admin", "User_is_now_an_admin": "Uživatel je nynà admin", + "User_is_unblocked": "Uživatel je odblokován", "User_joined_channel": "Se pÅ™ipojil do mÃstnosti.", "User_joined_channel_female": "Se pÅ™ipojila do mÃstnosti.", "User_joined_channel_male": "Se pÅ™ipojil do mÃstnosti.", @@ -1429,7 +1464,11 @@ "UTF8_Names_Slugify": "Url podoba UTF8 jmen", "UTF8_Names_Validation": "UTF8 validace jmen", "UTF8_Names_Validation_Description": "Regulárnà výraz validujÃcà uživatelská jména a jména mÃstnostÃ", + "Validate_email_address": "Validovat email", + "Verification_Description": "Můžete použÃt následujÃcà zástupné symboly: <br/><ul><li>[Verification_Url] pro adresu potvrzenÃ.</li><li>[name] pro celé jméno, [fname] pro kÅ™estnà jméno a [lname] pro pÅ™Ãjmenà uživatele.</li><li>[email] pro email uživatelé.</li><li>[Site_Name] pro název a [Site_URL] pro a URL stránky.</li></ul>", "Verification_email_sent": "Ověřovacà email odeslán", + "Verification_Email_Subject": "[Site_Name] - PotvrÄte svůj úÄet", + "Verification_Email": "KliknÄ›te na <a href=\"[Verification_Url]\">tento odkaz</a> pro potvrzenà svého úÄtu.", "Verified": "Ověřený", "Version": "Verze", "Video_Chat_Window": "Video chat", diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index ef1c490097d047160bb040dd5f66f38ec6c212c5..67cd7eb274b01a0b06a5ad410d02f32f1954d152 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -170,8 +170,8 @@ "API_EmbedIgnoredHosts_Description": "Comma-separated list of hosts or CIDR addresses, eg. localhost, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", "API_EmbedSafePorts": "Safe Ports", "API_EmbedSafePorts_Description": "Comma-separated list of ports allowed for previewing.", - "API_Enable_Direct_Message_History_EndPoint": "Enable Direct Message History Endpoint", - "API_Enable_Direct_Message_History_EndPoint_Description": "This enables the `/api/v1/im.history.others` which allows the viewing of direct messages sent by other users that the caller is not part of.", + "API_Enable_Direct_Message_History_EndPoint": "Enable Direct Message History Endpoint", + "API_Enable_Direct_Message_History_EndPoint_Description": "This enables the `/api/v1/im.history.others` which allows the viewing of direct messages sent by other users that the caller is not part of.", "API_GitHub_Enterprise_URL": "Server URL", "API_GitHub_Enterprise_URL_Description": "Example: http://domain.com (excluding trailing slash)", "API_Gitlab_URL": "GitLab URL", @@ -1553,4 +1553,4 @@ "your_message_optional": "your message (optional)", "Your_password_is_wrong": "Your password is wrong!", "Your_push_was_sent_to_s_devices": "Your push was sent to %s devices" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/es.i18n.json b/packages/rocketchat-i18n/i18n/es.i18n.json index 1c10333a76fc922f2aa85725ef16dba01c23a750..66cf244ca4ee910ff426cdbed6455f0f5155f4dd 100644 --- a/packages/rocketchat-i18n/i18n/es.i18n.json +++ b/packages/rocketchat-i18n/i18n/es.i18n.json @@ -5,8 +5,10 @@ "2_Erros_Information_and_Debug": "2 - Errores, Información y Depuración ", "403": "Prohibido", "500": "Error interno del servidor", + "@username": "@usuario", + "@username_message": "@usuario <message>", "__username__is_no_longer__role__defined_by__user_by_": "__username__ ya no es __role__ (por __user_by__)", - "__username__was_set__role__by__user_by_": "__username__ es __role__ (por __user_by__)", + "__username__was_set__role__by__user_by_": "__username__ fue establecido __role__ (por __user_by__)", "Accept": "Aceptar", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Aceptar solicitudes entrantes de chat en vivo aunque no haya agentes en lÃnea", "Accept_with_no_online_agents": "Aceptar sin agentes en lÃnea", @@ -33,7 +35,7 @@ "Accounts_BlockedUsernameList_Description": "Lista de nombres de usuarios bloqueados separada por comas (no distingue mayúsculas y minúsculas)", "Accounts_denyUnverifiedEmail": "Denegar correo electrónico sin verificar", "Accounts_EmailVerification": "Verificación de correo electrónico", - "Accounts_EmailVerification_Description": "Asegúrese de que tiene la configuración SMTP correctas a usar esta caracterÃstica", + "Accounts_EmailVerification_Description": "Asegúrese de que tiene la configuración SMTP correcta para usar esta caracterÃstica", "Accounts_Enrollment_Email": "Correo Electrónico de Inscripción ", "Accounts_Enrollment_Email_Default": "<h2> Bienvenido a </h2><h1> [Site_Name] </h1><p> Ve a [Site_URL] y prueba la mejor solución de chat de código abierto disponible en la actualidad! </p>", "Accounts_Enrollment_Email_Description": "Puedes utilizar los siguientes marcadores: <br/><ul><li>[name], [fname], [lname] para el nombre completo, nombre o apellidos, respectivamente.</li><li>[email] para el correo electrónico del usuario</li><li>[Site_Name] y [Site_URL] para el nombre del sitio web y la URL, respectivamente.</li></ul>", @@ -50,12 +52,13 @@ "Accounts_OAuth_Custom_Button_Label_Text": "Texto del Botón ", "Accounts_OAuth_Custom_Enable": "Habilitar", "Accounts_OAuth_Custom_id": "Id", - "Accounts_OAuth_Custom_Identity_Path": "Ruta de la Identidad", + "Accounts_OAuth_Custom_Identity_Path": "Ruta de Identidad", "Accounts_OAuth_Custom_Login_Style": "Estilos del login", "Accounts_OAuth_Custom_Scope": "Ãmbito (scope)", "Accounts_OAuth_Custom_Secret": "Secreto", "Accounts_OAuth_Custom_Token_Path": "Ruta del Token", "Accounts_OAuth_Custom_Token_Sent_Via": "Token enviado vÃa", + "Accounts_OAuth_Custom_Username_Field": "Campo de Nombre de Usuario", "Accounts_OAuth_Facebook": "Iniciar de sesión con Facebook", "Accounts_OAuth_Facebook_callback_url": "URL de retorno (callback) de Facebook", "Accounts_OAuth_Facebook_id": "App Id de Facebook", @@ -72,7 +75,7 @@ "Accounts_OAuth_Gitlab_callback_url": "URL de retorno (callback) de GitLab", "Accounts_OAuth_Gitlab_id": "Id de GitLab", "Accounts_OAuth_Gitlab_secret": "Secreto de Cliente", - "Accounts_OAuth_Google": "Iniciar de Sesión con Google", + "Accounts_OAuth_Google": "Iniciar Sesión con Google", "Accounts_OAuth_Google_callback_url": "URL de retorno (callback) de Google", "Accounts_OAuth_Google_id": "Id de Google", "Accounts_OAuth_Google_secret": "Secreto de Google", @@ -84,16 +87,16 @@ "Accounts_OAuth_Meteor_callback_url": "URL de retorno (callback) de Meteor", "Accounts_OAuth_Meteor_id": "Id de Meteor", "Accounts_OAuth_Meteor_secret": "Secreto de Meteor", - "Accounts_OAuth_Twitter": "Inicio de Sesión con Twitter", + "Accounts_OAuth_Twitter": "Iniciar Sesión con Twitter", "Accounts_OAuth_Twitter_callback_url": "URL de retorno (callback) de Twitter", "Accounts_OAuth_Twitter_id": "Id de Twitter", - "Accounts_OAuth_Twitter_secret": "Twitter Secret", + "Accounts_OAuth_Twitter_secret": "Secreto de Twitter", "Accounts_OAuth_Wordpress": "Inicio de Sesion con Wordpress", "Accounts_OAuth_Wordpress_callback_url": "URL de retorno (callback) de Wordpress", "Accounts_OAuth_Wordpress_id": "Id de Wordpress", "Accounts_OAuth_Wordpress_secret": "Secreto de Wordpress", "Accounts_PasswordReset": "Restablecer Contraseña", - "Accounts_Registration_AuthenticationServices_Enabled": "Registro mediante Servicios de Autenticacion", + "Accounts_Registration_AuthenticationServices_Enabled": "Registro mediante Servicios de Autenticación", "Accounts_RegistrationForm": "Formulario de Registro", "Accounts_RegistrationForm_Disabled": "Deshabilitado", "Accounts_RegistrationForm_LinkReplacementText": "Texto de Remplazo de Enlaces del Formulario de Registro", @@ -105,8 +108,8 @@ "Accounts_ShowFormLogin": "Mostrar Inicio de sesión basado en formulario", "Accounts_UseDefaultBlockedDomainsList": "Usar lista predeterminada de dominios bloqueados", "Accounts_UseDNSDomainCheck": "Utilizar la comprobación de dominio DNS", - "Accounts_UserAddedEmail_Default": "<h2> Bienvenido a </h2><h1>[Site_Name] </h1><p>Ve a [Site_URL] y prueba la mejor solución de chat de código abierto disponible en la actualidad! </p><p>Puede iniciar sesión utilizando su correo electrónico: [email] y contraseña: [password]. Puede cambiarlo después de su primer login.</p>", - "Accounts_UserAddedEmail_Description": "Es posible utilizar los siguientes marcadores: <br /><ul><li> [name], [fname], [lname] para el nombre completo del usuario, el nombre o el apellido, respectivamente. </li><li> [email] para el correo electrónico del usuario. </li><li> [password] para la contraseña del usuario. </li><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", + "Accounts_UserAddedEmail_Default": "<h2> Bienvenido a </h2><h1>[Site_Name] </h1><p>Ve a [Site_URL] y prueba la mejor solución de chat de código abierto disponible en la actualidad! </p><p>Puede iniciar sesión utilizando su correo electrónico: [email] y contraseña: [password]. Se le puede solicitar que lo cambie al iniciar sesion por primera vez.</p>", + "Accounts_UserAddedEmail_Description": "Es posible utilizar los siguientes marcadores: <br/><ul><li> [name], [fname], [lname] para el nombre completo del usuario, el nombre o el apellido, respectivamente. </li><li> [email] para el correo electrónico del usuario. </li><li> [password] para la contraseña del usuario. </li><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", "Accounts_UserAddedEmailSubject_Default": "Has sido añadido a [Site_Name]", "Activate": "Activar", "Activity": "Actividad", @@ -119,7 +122,7 @@ "Add_users": "Agrerar usuarios", "Adding_OAuth_Services": "Añadir servicios OAuth", "Adding_permission": "Añadiendo permiso", - "Adding_user": "Añadiendo de usuarios", + "Adding_user": "Añadiendo usuario", "Additional_emails": "Correos electrónicos adicionales", "Additional_Feedback": "Retroalimentación adicional", "Administration": "Administración", @@ -147,8 +150,8 @@ "API_Analytics": "Analiticas", "API_Embed": "Incrustar (embed)", "API_EmbedDisabledFor": "Deshabilitar el insertar vinculos para los Usuarios", - "API_EmbedDisabledFor_Description": "Lista separados por comas de nombres de usuarios ", - "API_EmbedIgnoredHosts": "Hosts que ignoran incrustación (embed)", + "API_EmbedDisabledFor_Description": "Lista separada por comas de nombres de usuarios ", + "API_EmbedIgnoredHosts": "Incrusta hosts ignorados", "API_EmbedIgnoredHosts_Description": "Lista de equipos o direcciones CIDR, separada por comas. Ej: localhost, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", "API_EmbedSafePorts": "Puertos seguros", "API_EmbedSafePorts_Description": "Lista de puertos permitidos para la previsualización, separada por comas.", @@ -170,7 +173,7 @@ "are_typing": "están escribiendo", "Are_you_sure": "Estás seguro?", "Are_you_sure_you_want_to_delete_your_account": "¿Estás seguro de que quieres eliminar tu cuenta?", - "at": "a", + "at": "en", "Auth_Token": "Auth Token", "Author": "Autor", "Authorization_URL": "URL de Autorización", @@ -187,7 +190,7 @@ "AutoLinker_UrlsRegExp": "AutoLinker URL de expresiones regulares", "Available": "Disponible", "Available_agents": "Agentes disponibles", - "Avatar": "Cambiar avatar", + "Avatar": "Avatar", "Avatar_changed_successfully": "Avatar cambiado correctamente", "Avatar_URL": "URL del Avatar", "Avatar_url_invalid_or_error": "El url proporcionado es invalido o no es accesible. Por favor intente otra vez, pero con un url diferente.", @@ -235,7 +238,7 @@ "Chatops_Username": "Nombre de Usuario Chatops", "Choose_a_room": "Elija una sala", "Choose_messages": "Elija mensajes", - "Choose_the_alias_that_will_appear_before_the_username_in_messages": "Elije el alias que aparecerá antes del nombre de usuario en los mensajes.", + "Choose_the_alias_that_will_appear_before_the_username_in_messages": "Elige el alias que aparecerá antes del nombre de usuario en los mensajes.", "Choose_the_username_that_this_integration_will_post_as": "Elige el nombre de usuario con el cual esta integración publicara.", "Clear_all_unreads_question": "Borrar todos los mensajes no leÃdos?", "Click_here": "Haga clic aquÃ", @@ -257,7 +260,7 @@ "Convert_Ascii_Emojis": "Convierte ASCII a Emoji", "Copied": "Copiado", "Copy": "Copia", - "Copy_to_clipboard": "Copiar el Porta-papeles ", + "Copy_to_clipboard": "Copiar el Porta-papeles ", "COPY_TO_CLIPBOARD": "COPIAR AL PORTAPAPELES", "Count": "Contar", "Cozy": "Acogedor", @@ -265,14 +268,14 @@ "Create_A_New_Channel": "Crear un nuevo canal", "Create_new": "Crear nuevo", "Created_at": "Creado en", - "Created_at_s_by_s": "Creado a las <strong>%s</strong> por <strong>%s</strong>", + "Created_at_s_by_s": "Creado a las <strong>%s</strong> por <strong>%s</strong>", "Current_Chats": "Chats actuales", "Custom": "Personalizado", "Custom_Fields": "Campos Personalizados", "Custom_oauth_helper": "Mientras configura el Proveedor de OAuth, tendra que establecer un URL de Devolucion. Use <pre>%s</pre>.", - "Custom_oauth_unique_name": "Nombre único de oauth personalizado", - "Custom_Script_Logged_In": "Script personalizado para los usuarios que se conectan", - "Custom_Script_Logged_Out": "Script personalizado para los usuarios que se desconectan", + "Custom_oauth_unique_name": "Nombre único de oauth personalizado", + "Custom_Script_Logged_In": "Script personalizado para los usuarios que han iniciado sesión", + "Custom_Script_Logged_Out": "Script personalizado para los usuarios que han cerrado sesión", "Dashboard": "Tablero", "Date": "Fecha", "days": "dÃas", @@ -290,7 +293,7 @@ "Department_removed": "Departamento eliminado", "Departments": "Departamentos", "Deployment_ID": "ID de despliegue", - "Description": "Descripción ", + "Description": "Descripción ", "Desktop": "Escritorio", "Desktop_Notification_Test": "Prueba de notificación en el escritorio", "Desktop_Notifications": "Notificaciones de Escritorio", @@ -300,18 +303,18 @@ "Desktop_Notifications_Enabled": "Las Notificaciones de Escritorio están Habilitadas", "Direct_message_someone": "Mensaje directo a alguien", "Direct_Messages": "Mensajes Directos", - "Display_offline_form": "Mostrar formulario en fuera lÃnea", + "Display_offline_form": "Mostrar formulario fuera lÃnea", "Displays_action_text": "Mostrar texto de la acción", - "Do_you_want_to_change_to_s_question": "Desea cambiar a <strong>%s</strong>", + "Do_you_want_to_change_to_s_question": "Desea cambiar a <strong>%s</strong>", "Domain": "Dominio", "Domains": "Dominios", "Drop_to_upload_file": "Arrastra aqui para subir el archivo", "Dry_run": "Funcionamiento en seco", "Dry_run_description": "Se enviara únicamente un correo electrónico, a la misma dirección establecida en el campo De. El correo electrónico debe pertenecer a un usuario valido.", - "Duplicate_archived_channel_name": "Existe un canal archivada con el nombre ' %s'", - "Duplicate_archived_private_group_name": "Un grupo privado comprimidos con el nombre existe ' %s'", - "Duplicate_channel_name": "Existe un canal con el nombre '% s'", - "Duplicate_private_group_name": "Un Grupo Privado con el nombre  '%s' ya existe", + "Duplicate_archived_channel_name": "Ya existe un canal archivado con el nombre ' %s' ", + "Duplicate_archived_private_group_name": "Ya existe un grupo privado archivado con el nombre ' %s' ", + "Duplicate_channel_name": "Ya existe un canal con el nombre '% s' ", + "Duplicate_private_group_name": "Ya existe un Grupo Privado con el nombre '%s' ", "Duration": "Duración", "Edit": "Editar", "Edit_Custom_Field": "Editar campo personalizado", @@ -320,11 +323,11 @@ "Editing_room": "Edición de sala", "Editing_user": "Edición de usuario", "Email": "Email", - "Email_address_to_send_offline_messages": "dirección de correo electrónico para enviar mensajes fuera de lÃnea", + "Email_address_to_send_offline_messages": "Dirección de correo electrónico para enviar mensajes fuera de lÃnea", "Email_already_exists": "El correo electrónico ya existe", "Email_body": "Cuerpo del Correo electrónico", - "Email_Change_Disabled": "Su administrador ha deshabilitado la Rocket.Chat el cambio de correo electrónico", - "Email_Footer_Description": "Es posible utilizar los siguientes marcadores: <br /><ul><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", + "Email_Change_Disabled": "Su administrador ha deshabilitado el hacer cambios de correo electrónico", + "Email_Footer_Description": "Es posible utilizar los siguientes marcadores: <br/><ul><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", "Email_from": "De", "Email_Header_Description": "Es posible utilizar los siguientes marcadores: <br /><ul><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", "Email_Notification_Mode": "Notificaciones por correo electrónico fuera de lÃnea", @@ -366,13 +369,13 @@ "error-invalid-actionlink": "enlace de acción no válida", "error-invalid-arguments": "Los argumentos inválidos", "error-invalid-asset": "Activo invalido", - "error-invalid-channel": "canal no válido.", - "error-invalid-channel-start-with-chars": "canal no válido. Comience con @ o #", - "error-invalid-custom-field": "campo personalizado no válido", + "error-invalid-channel": "Canal no válido.", + "error-invalid-channel-start-with-chars": "Canal no válido. Comience con @ o #", + "error-invalid-custom-field": "Campo personalizado no válido", "error-invalid-custom-field-name": "No válido nombre de campo personalizado. Utilice sólo letras, números, guiones y guiones bajos.", - "error-invalid-description": "Descripción inválida", - "error-invalid-domain": "dominio no válido", - "error-invalid-email": "__email__ email no es válida", + "error-invalid-description": "Descripción no valida", + "error-invalid-domain": "Dominio no válido", + "error-invalid-email": "__email__ email no es válido", "error-invalid-file-height": "Altura Invalida de Archivo", "error-invalid-file-type": "Tipo Invalido de Archivo", "error-invalid-file-width": "Anchura Invalida de Archivo", @@ -385,18 +388,18 @@ "error-invalid-redirectUri": "inválida redirectUri", "error-invalid-role": "función no válida", "error-invalid-room": "Sala no válida", - "error-invalid-room-name": "<strong> %s</strong> no es un nombre válido de Sala, <br/> utilizar sólo letras, números, guiones y guiones bajos", + "error-invalid-room-name": "<strong> %s</strong> no es un nombre válido de Sala, <br/> utilice sólo letras, números, guiones y guiones bajos", "error-invalid-room-type": "<strong>__type__</strong> no es un tipo valido de Sala.", "error-invalid-settings": "La configuración proporcionada no es valida", "error-invalid-subscription": "Suscripción invalida", "error-invalid-token": "Token invalido", "error-invalid-triggerWords": "triggerWords invalido", - "error-invalid-urls": "URLs invalida", + "error-invalid-urls": "URLs invalidos", "error-invalid-user": "Usuario invalido", "error-invalid-username": "Nombre de usuario invalido", "error-invalid-webhook-response": "URL Webhook respondió con un estado distinto de 200", - "error-message-deleting-blocked": "Borrar el mensaje está bloqueado", - "error-message-editing-blocked": "La edición del mensaje está bloqueado", + "error-message-deleting-blocked": "La eliminación de mensajes se encuentra bloqueada", + "error-message-editing-blocked": "La edición de mensajes está bloqueada", "error-message-size-exceeded": "El tamaño del mensaje excede de Message_MaxAllowedSize", "error-missing-unsubscribe-link": "Debe proporcionar el enlace [unsubscribe].", "error-no-tokens-for-this-user": "No hay ningún token para este usuario", @@ -405,26 +408,26 @@ "error-push-disabled": "Push está desactivado", "error-remove-last-owner": "Este es el último propietario. Por favor, establece un nuevo propietario antes de eliminar este.", "error-role-in-use": "No puede eliminar el rol porque esta en uso", - "error-role-name-required": "Se requiere nombre de rol", - "error-the-field-is-required": "Se requiere que el campo __field__.", + "error-role-name-required": "El nombre de rol es requerido", + "error-the-field-is-required": " E campo __field__. es requerido", "error-too-many-requests": "Error, demasiadas peticiones. Por favor más despacio. Debe esperar __seconds__ segundos antes de volver a intentarlo.", "error-user-is-not-activated": "El usuario no ha sido activado", "error-user-not-in-room": "El usuario no se encuentra en esta sala", "error-user-registration-disabled": "El registro de usuarios está desactivado", "error-user-registration-secret": "El registro de usuario sólo se permite a través de URL Secreta", - "error-you-are-last-owner": "Usted es el último propietario. Por favor, establece nuevo propietario antes de salir de la Sala.", + "error-you-are-last-owner": "Usted es el último propietario. Por favor, establezca un nuevo propietario antes de salir de la Sala.", "Error_changing_password": "Error al cambiar de contraseña", "Esc_to": "Esc a", "Example_s": "Ejemplo: <code class=\"inline\">%s</code>", "Exclude_Botnames": "Excluir bots", - "Exclude_Botnames_Description": "No procesar mensajes de bots el nombre de los cuales encaja con la expresión regular superior. Si se deja en blanco, todos los mensajes de los bots se propagarán.", + "Exclude_Botnames_Description": "No propagar los mensajes de bots cuyos nombres coincidan con la expresión regular. Se se deja en blanco, todos los mensajes de los bots se propagarán.", "False": "Falso", "Favorite_Rooms": "Habilitar salas favoritas", "Favorites": "Favoritos", "Features_Enabled": "Funcionalidades habilitadas", "Field": "Campo", "Field_removed": "Campo eliminado", - "File_exceeds_allowed_size_of_bytes": "El archivo supera el tamaño permitido de __size__ bytes ", + "File_exceeds_allowed_size_of_bytes": "El archivo supera el tamaño permitido de __size__ ", "FileUpload": "Subir archivos", "FileUpload_Enabled": "Habilitar subir archivos", "FileUpload_File_Empty": "Archivo Vacio", @@ -434,7 +437,7 @@ "FileUpload_MediaTypeWhiteList": "Tipos de Archivos Aceptados", "FileUpload_MediaTypeWhiteListDescription": "Lista separada por comas de los tipos de archivos multimedia. Deje en blanco para aceptar todos los tipos.", "FileUpload_ProtectFiles": "Proteger archivos cargados", - "FileUpload_ProtectFilesDescription": "Únicamente usuarios autenticados tendrán acceso ", + "FileUpload_ProtectFilesDescription": "Únicamente usuarios autenticados tendrán acceso ", "FileUpload_S3_Acl": "Amazon S3 acl", "FileUpload_S3_AWSAccessKeyId": "Amazon S3 AWSAccessKeyID", "FileUpload_S3_AWSSecretAccessKey": "Amazon S3 AWSSecretAccessKey", @@ -444,7 +447,7 @@ "FileUpload_S3_Region": "Región", "FileUpload_S3_URLExpiryTimeSpan": "Caducidad de las URLs", "FileUpload_S3_URLExpiryTimeSpan_Description": "Tiempo después el cual las direcciones de Amazon S3 generadas dejarán de ser válidas (en segundos). Si se establece a menos de 5 segundos, este campo será ignorado.", - "FileUpload_Storage_Type": "Tipo de almacenamiento", + "FileUpload_Storage_Type": "Tipo de Almacenamiento", "Flags": "Indicadores", "Follow_social_profiles": "Sigue nuestros perfiles sociales, realiza un fork en github y comparte tus pensamientos acerca de la aplicación rocket.chat en nuestro tablero de Trello.", "Food_and_Drink": "Comer y beber", @@ -466,10 +469,10 @@ "Give_a_unique_name_for_the_custom_oauth": "Establezca un nombre único para el oauth personalizado", "Give_the_application_a_name_This_will_be_seen_by_your_users": "Dar a la aplicación un nombre. Esto será visto por los usuarios.", "Global": "Global", - "GoogleTagManager_id": "Id Google Administrador de etiquetas", + "GoogleTagManager_id": "Id del Administrador de etiquetas de Google", "Guest_Pool": "Pool de invitados", - "Hash": "Picadillo", - "Header": "Encabezamiento", + "Hash": "Hash", + "Header": "Encabezado", "Hidden": "Oculto", "Hide_Avatars": "Ocultar avatares", "Hide_flextab": "Esconder barra lateral derecha al hacer clic", @@ -479,7 +482,7 @@ "Hide_Room_Warning": "¿Seguro que desea ocultar la Sala \" %s\"?", "Hide_usernames": "Ocultar nombres de usuario", "Highlights": "Reflejos", - "Highlights_How_To": "Para ser notificado cuando alguien menciona una palabra o frase, añadir aquÃ. Puede separar las palabras o frases con comas. Resaltar palabras no distinguen entre mayúsculas y minúsculas.", + "Highlights_How_To": "Para ser notificado cuando alguien menciona una palabra o frase, añadir aquÃ. Puede separar las palabras o frases con comas. Resaltar palabras no distingue entre mayúsculas y minúsculas.", "Highlights_List": "Resaltar palabras", "History": "Historial", "Host": "Anfitrión", @@ -489,8 +492,8 @@ "How_responsive_was_the_chat_agent": "Cómo de rápido ha respondido nuestro agente de chat?", "How_satisfied_were_you_with_this_chat": "Cómo de satisfecho está con esta conversación?", "If_you_are_sure_type_in_your_password": "Si está seguro escriba su contraseña:", - "If_you_are_sure_type_in_your_username": "Si está seguro de tipo en su nombre de usuario:", - "Importer_Archived": "archivado", + "If_you_are_sure_type_in_your_username": "Si está seguro ingrese su nombre de usuario:", + "Importer_Archived": "Archivado", "Importer_done": "Importación completa!", "Importer_finishing": "Finalizar la importación.", "Importer_From_Description": "Las importaciones __from datos __ 's en Rocket.Chat.", @@ -526,26 +529,26 @@ "InternalHubot": "hubot interna", "InternalHubot_ScriptsToLoad": "Secuencias de comandos para cargar", "InternalHubot_ScriptsToLoad_Description": "Por favor, introduzca una lista separada por comas de secuencias de comandos para cargar desde https://github.com/github/hubot-scripts/tree/master/src/scripts", - "InternalHubot_Username_Description": "Este debe ser un nombre de usuario válido de un bot registrada en su servidor.", + "InternalHubot_Username_Description": "Este debe ser un nombre de usuario válido de un bot registrado en su servidor.", "Invalid_confirm_pass": "La confirmación de la contraseña no coincide con la contraseña", "Invalid_email": "El e-mail ingresado es invalido", "Invalid_Export_File": "El archivo subido no es un fichero de exportación válida %s.", - "Invalid_Import_File_Type": "Inválida tipo de archivo de importación.", + "Invalid_Import_File_Type": "Tipo de archivo de importación inválido", "Invalid_name": "El nombre no debe estar vacÃo", - "Invalid_notification_setting_s": "configuración de la notificación no válido: %s", - "Invalid_pass": "El password no debe estar vacio", - "Invalid_room_name": "<strong>%s</strong> no es un nombre de sala válido,<br/> usa solo letras, números y guiones", + "Invalid_notification_setting_s": "Configuración de la notificación inválido: %s", + "Invalid_pass": "La contraseña no debe estar vacia", + "Invalid_room_name": "<strong>%s</strong> no es un nombre de sala válido,<br/> use solo letras, números y guiones", "Invalid_secret_URL_message": "El URL proporcionado es invalido.", "invisible": "invisible", "Invisible": "Invisible", "Invitation_HTML": "HTML de la Invitación", "Invitation_HTML_Default": "<h2> Se le ha invitado a <h1> [Site_Name] </h1></h2><p> Ir a [Site_URL] y probar la mejor solución de chat de código abierto disponibles en la actualidad! </p>", - "Invitation_HTML_Description": "Es posible utilizar los siguientes marcadores: <br /><ul><li> [email] para el correo electrónico del destinatario. </li><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", + "Invitation_HTML_Description": "Es posible utilizar los siguientes marcadores: <br/><ul><li> [email] para el correo electrónico del destinatario. </li><li> [Site_Name] y [Site_URL] para el nombre de la aplicación y la URL, respectivamente. </li></ul>", "Invitation_Subject": "Asunto de la Invitación", "Invitation_Subject_Default": "Se le ha invitado a [Site_Name]", "Invite_user_to_join_channel": "Invitar a un usuario a unirse a este canal", "Invite_Users": "Invitar Usuarios", - "is_also_typing": "está también escribiendo", + "is_also_typing": "también esta escribiendo", "is_also_typing_female": "tambien esta escribiendo", "is_also_typing_male": "tambien esta escribiendo", "is_typing": "está escribiendo", @@ -567,10 +570,10 @@ "Jump_to_message": "Ir al mensaje", "Jump_to_recent_messages": "Ir a mensajes recientes", "Katex_Dollar_Syntax": "Permitir Dólar Sintaxis", - "Katex_Dollar_Syntax_Description": "Permitir el uso de $$ bloque katex $$ $ y $ Katex lÃnea sintaxis", - "Katex_Enabled": "katex Habilitado", + "Katex_Dollar_Syntax_Description": "Permitir el uso de $$katex block$$ y $inline katex$ sintaxis", + "Katex_Enabled": "Katex Habilitado", "Katex_Enabled_Description": "Permitir el uso de <a target=\"_blank\" href=\"http://khan.github.io/KaTeX/\">katex</a> para la composición tipográfica de matemáticas en los mensajes", - "Katex_Parenthesis_Syntax": "Permitir Paréntesis Sintaxis", + "Katex_Parenthesis_Syntax": "Permitir el Sintaxis de Paréntesis", "Katex_Parenthesis_Syntax_Description": "Permitir el uso de \\ [bloque katex \\] \\ sintaxis y (en lÃnea katex \\)", "Knowledge_Base": "Base de conocimiento", "Label": "Etiqueta", @@ -582,7 +585,7 @@ "Layout": "Diseño", "Layout_Home_Body": "Cuerpo de pagina de inicio", "Layout_Home_Title": "Titulo de pagina de inicio", - "Layout_Login_Terms": "Términos de Inicio de Sesión ", + "Layout_Login_Terms": "Términos de Inicio de Sesión ", "Layout_Privacy_Policy": "PolÃtica de Privacidad", "Layout_Sidenav_Footer": "Pie de Pagina de la Barra de Navegación Lateral", "Layout_Sidenav_Footer_description": "El tamaño del Pie de Pagina es de 260 x 70px", @@ -591,7 +594,7 @@ "LDAP_CA_Cert": "CA Cert", "LDAP_Custom_Domain_Search": "Dominio Personalizado de Busqueda", "LDAP_Custom_Domain_Search_Description": "Un pedazo de JSON que gobierna se unen y la conexión y la información es de la forma: <br/> <code>{\"filter\": \"(&(objectCategory=person)(objectclass=user)(memberOf=CN=ROCKET_ACCESS,CN=Users,DC=domain,DC=com)(sAMAccountName=#{username}))\", \"scope\": \"sub\", \"userDN\": \"rocket.service@domain.com\", \"password\": \"urpass\"}</code>", - "LDAP_Default_Domain": "dominio predeterminado", + "LDAP_Default_Domain": "Dominio Predeterminado", "LDAP_Description": "LDAP es una base de datos jerárquica que muchas empresas utilizan para proporcionar inicio de sesión único - una instalación para compartir una contraseña entre múltiples sitios y servicios. Para obtener información avanzada de configuración y ejemplos, consulte nuestra wiki: https://rocket.chat/docs/administrator-guides/authentication/ldap/.", "LDAP_Domain_Base": "Dominio Base", "LDAP_Domain_Base_Description": "El nombre completo (DN) de un sub-árbol LDAP que desea buscar usuarios y grupos. Se pueden añadir tantos como quiera; sin embargo, cada grupo se debe definir en la misma base de dominio que los usuarios que pertenecen a la misma. Si especifica los grupos de usuarios restringidos, sólo los usuarios que pertenecen a esos grupos serán de alcance. Recomendamos que se especifica el nivel superior del árbol de directorios LDAP como su base de dominio y utiliza filtro de búsqueda para controlar el acceso.", @@ -667,11 +670,11 @@ "Login": "Iniciar Sesión", "Login_with": "Inicia sesión con %s", "Logout": "Cerrar sesión", - "Logout_Others": "Cerrar sesión De Otros Lugares de sesión", - "Mail_Message_Invalid_emails": "Correos electrónicos que nos ha proporcionado uno o más válidos: %s", + "Logout_Others": "Cerrar sesión en todos los lugares donde se ha abierto una", + "Mail_Message_Invalid_emails": "Ha proporcionado uno o mas correos electronicos invalidos %s", "Mail_Message_Missing_to": "Debe seleccionar uno o más usuarios o proporcionar una o más direcciones de correo electrónico, separadas por comas.", - "Mail_Message_No_messages_selected_select_all": "No ha seleccionado ningún mensaje. ¿Le gustarÃa <a href='#' class='select-all'>seleccionar todos los</a> mensajes visibles?", - "Mail_Messages": "Los mensajes de correo", + "Mail_Message_No_messages_selected_select_all": "No ha seleccionado ningún mensaje. ¿Le gustarÃa <a href=\"#\" class=\"select-all\">seleccionar todos los</a> mensajes visibles?", + "Mail_Messages": "Mensajes de correo", "Mail_Messages_Instructions": "Seleccione los mensajes que desea enviar por correo electrónico haciendo clic en los mensajes", "Mail_Messages_Subject": "Aquà hay una parte seleccionada de %s mensajes", "Mailer": "Remitente", @@ -691,16 +694,16 @@ "Mentions": "Menciones", "Mentions_default": "Menciones (por defecto)", "Message": "Mensaje", - "Message_AllowBadWordsFilter": "Permiten malas palabras filtrado de mensajes", + "Message_AllowBadWordsFilter": "Permitir el filtrado de lenguaje en los Mensajes", "Message_AllowDeleting": "Permitir la eliminación de mensajes", - "Message_AllowDeleting_BlockDeleteInMinutes": "Después de bloque de mensajes Eliminación de (n) Minutos", + "Message_AllowDeleting_BlockDeleteInMinutes": "Bloquear la Eliminación de Mensajes Despues de (n) Minutos", "Message_AllowDeleting_BlockDeleteInMinutes_Description": "Introduzca 0 para desactivar el bloqueo.", "Message_AllowEditing": "Permitir la edición de mensajes", "Message_AllowEditing_BlockEditInMinutes": "Bloquear la Edicion de Mensajes Despues de (n) Minutos", "Message_AllowEditing_BlockEditInMinutesDescription": "Ingrese 0 para deshabilitar el bloqueo.", - "Message_AllowPinning": "Permitir que se fijen los mensajes", + "Message_AllowPinning": "Permitir que se fijen/anclen los mensajes", "Message_AllowPinning_Description": "Permitir que los mensajes se puedan anclar a cualquier canal.", - "Message_AllowStarring": "Permitir Destacar  un Mensaje", + "Message_AllowStarring": "Permitir Destacar un Mensaje", "Message_AlwaysSearchRegExp": "Siempre buscar utilizando RegExp", "Message_AlwaysSearchRegExp_Description": "Recomendamos establecer `TRUE si el idioma no es compatible con <a target=\"_blank\" href=\"https://docs.mongodb.org/manual/reference/text-search-languages/#text-search-languages\">la búsqueda de texto MongoDB</a> .", "Message_AudioRecorderEnabled": "Grabadora de audio habilitada", @@ -710,25 +713,25 @@ "Message_DateFormat": "Formato de fecha", "Message_DateFormat_Description": "Ver también: <a href=\"http://momentjs.com/docs/#/displaying/format/\" target=\"momemt\">Moment.js</a>", "Message_deleting_blocked": "Este mensaje no se puede eliminar más", - "Message_editing": "edición de mensajes", + "Message_editing": "Edición de mensajes", "Message_GroupingPeriod": "Periodo de agrupamiento (en segundos)", "Message_GroupingPeriodDescription": "Los mensajes se agruparan con mensajes previos si ambos provienen del mismo usuario y el tiempo transcurrido fue menor al tiempo informado en segundos.", - "Message_KeepHistory": "Mantener el historial de mensajes", - "Message_MaxAll": "El tamaño máximo de canales para el mensaje ALL", + "Message_KeepHistory": "Mantener el historial de de edición por mensaje", + "Message_MaxAll": "Tamaño máximo de canal para el mensaje ALL", "Message_MaxAllowedSize": "Tamaño Máximo Permitido de Mensaje", - "Message_pinning": "mensaje fijando", + "Message_pinning": "Anclado de Mensajes", "Message_removed": "Mensaje removido", "Message_SetNameToAliasEnabled": "Establecer el nombre de usuario al alias en el mensaje", "Message_SetNameToAliasEnabled_Description": "Sólo si no se ha establecido alias. Los alias de los mensajes antiguos no cambian si el usuario ha cambiado de nombre.", "Message_ShowDeletedStatus": "Mostrar el estado de eliminación", "Message_ShowEditedStatus": "Mostrar el estado de edición", "Message_ShowFormattingTips": "Mostrar Sugerencias de Formato", - "Message_starring": "mensaje protagonizada", + "Message_starring": "Mensaje Destacado", "Message_TimeFormat": "Formato de tiempo", "Message_TimeFormat_Description": "Ver también: <a href=\"http://momentjs.com/docs/#/displaying/format/\" target=\"momemt\">Moment.js</a>", "Message_too_long": "Mensaje demasiado largo", "Message_VideoRecorderEnabled": "Activar grabador de video", - "Message_VideoRecorderEnabledDescription": "Requerir que los ficheros de tipo 'video/webm' sean admitidos a la configuración de 'Subida ficheros'.", + "Message_VideoRecorderEnabledDescription": "Requer que los archivos de tipo 'video/webm' sean un tipo de medio aceptado en la configuracion 'Subida ficheros'.", "Messages": "Mensajes", "Messages_that_are_sent_to_the_Incoming_WebHook_will_be_posted_here": "Los mensajes enviados al WebHook de entrada serán publicados aquÃ.", "Meta": "Meta", @@ -781,11 +784,11 @@ "No_such_command": "No existe el comando: `/__command__`", "No_user_with_username_%s_was_found": "Ningún usuario con el nombre <strong>\"%s\"</strong> ha sido encontrado!", "Nobody_available": "Nadie disponible", - "Node_version": "versión nodo", + "Node_version": "Versiond de Node", "Normal": "Normal", "Not_authorized": "No autorizado", "Not_Available": "No disponible", - "Not_found_or_not_allowed": "No encontrado o no permitido", + "Not_found_or_not_allowed": "No Encontrado o No Permitido", "Nothing": "Nada", "Nothing_found": "No se encontró nada", "Notification_Duration": "Duración de la notificación", @@ -801,11 +804,11 @@ "Off_the_record_conversation_is_not_available_for_your_browser_or_device": "Off-the-record conversación no está disponible para el navegador o dispositivo.", "Offline": "Desconectado", "Offline_DM_Email": "Se le ha contactado directamente por __user__", - "Offline_form": "formulario en lÃnea", + "Offline_form": "Formulario fuera de lÃnea", "Offline_form_unavailable_message": "formulario en lÃnea mensaje inasequible", "Offline_Link_Message": "IR AL MENSAJE", "Offline_Mention_Email": "Usted ha sido mencionado por __user__ en #__room__", - "Offline_message": "mensaje fuera de lÃnea", + "Offline_message": "Mensaje fuera de lÃnea", "Offline_success_message": "Mensaje fuera de lÃnea correcto", "Offline_unavailable": "disponible sin conexión", "On": "Activar", @@ -815,7 +818,7 @@ "Open": "Abierto", "Open_Livechats": "LiveChats abiertos", "Opened": "Abierto", - "Opens_a_channel_group_or_direct_message": "Abrir un canal, grupo o mensaje directo", + "Opens_a_channel_group_or_direct_message": "Abre un canal, grupo o mensaje directo", "optional": "opcional", "or": "o", "Order": "Orden", @@ -897,31 +900,31 @@ "Push_show_username_room": "Mostrar canal / grupo / nombre de usuario en la notificación", "Push_test_push": "Prueba", "Query": "Consulta", - "Query_description": "Condiciones adicionales para determinar a que usuarios enviar el correo electrónico. Los usuarios que optaron por cancelar su suscripción serán eliminados de la consulta. Debe ser JSON valido. Ejemplo: \"{\"createdAt\":{\"$gt\":{\"$date\": \"2015-01-01T00:00:00.000Z\"}}}\"", + "Query_description": "Condiciones adicionales para determinar a que usuarios enviar el correo electrónico. Los usuarios que optaron por cancelar su suscripción serán eliminados de la consulta. Debe ser JSON valido. Ejemplo: \"{\"createdAt\":{\"$gt\":{\"$date\": \"2015-01-01T00:00:00.000Z\"}}}\"", "Queue": "Cola", "quote": "cita", - "Quote": "Citar", + "Quote": "Cita", "Random": "Aleatorio", - "Reacted_with": "se hace reaccionar con", - "Reactions": "reacciones", + "Reacted_with": "Reacciono con", + "Reactions": "Reacciones", "Record": "Grabar", "Redirect_URI": "URI de redireccionamiento", - "Refresh_keys": "llaves de refresco", - "Refresh_your_page_after_install_to_enable_screen_sharing": "Refresque su pantalla después de la instalación para permitir compartir su pantalla", + "Refresh_keys": "Actualizar llaves", + "Refresh_your_page_after_install_to_enable_screen_sharing": "Actualizar su pantalla después de la instalación para permitir compartir su pantalla", "Register": "Registrar una nueva cuenta", "Registration_Succeeded": "Registro Exitoso", "Release": "Lanzamiento", "Remove": "Borrar", "Remove_Admin": "Eliminar Admin", - "Remove_as_moderator": "Retire como moderador", - "Remove_as_owner": "Retire como propietario", + "Remove_as_moderator": "Retirar como moderador", + "Remove_as_owner": "Retirar como propietario", "Remove_custom_oauth": "Eliminar oauth personalizado", - "Remove_from_room": "Eliminado de la sala", + "Remove_from_room": "Eliminar de la sala", "Remove_someone_from_room": "Eliminar a alguien de la sala", "Removed": "Eliminado", "Report_Abuse": "Reportar abuso", "Report_exclamation_mark": "¡Informe!", - "Report_sent": "reporte enviado", + "Report_sent": "Reporte enviado", "Report_this_message_question_mark": "Reportar este mensaje?", "Require_password_change": "Requerir el cambio de contraseña", "Resend_verification_email": "Reenviar correo electrónico de verificación", @@ -974,7 +977,7 @@ "Search_Messages": "Buscar Mensajes", "Search_Private_Groups": "Grupos privados", "seconds": "segundos", - "Secret_token": "token secreto", + "Secret_token": "Token secreto", "Select_a_department": "Seleccionar un departamento", "Select_a_user": "Seleccione un usuario", "Select_an_avatar": "Selecciona un avatar", @@ -982,16 +985,16 @@ "Select_service_to_login": "Selecciona un servicio para iniciar sesión y cargar tu imagen o sube una foto de tu computadora", "Select_user": "Seleccionar usuario", "Select_users": "Seleccione los usuarios", - "Selected_agents": "agentes seleccionados", + "Selected_agents": "Agentes seleccionados", "Send": "Enviar", "Send_a_message": "Enviar mensaje", - "Send_a_test_mail_to_my_user": "Enviar un mensaje de prueba a mi usuario", - "Send_a_test_push_to_my_user": "Enviar un push de prueba para mi usuario", + "Send_a_test_mail_to_my_user": "Enviar un email de prueba a mi usuario", + "Send_a_test_push_to_my_user": "Enviar una notificacion push de prueba para mi usuario", "Send_confirmation_email": "Enviar email de confirmación", "Send_data_into_RocketChat_in_realtime": "Enviar datos a Rocket.Chat en tiempo real.", "Send_email": "Enviar Correo electrónico", "Send_invitation_email": "Enviar invitación por correo electrónico", - "Send_invitation_email_error": "No has proporcionado ninguna dirección de correo electrónico valida. ", + "Send_invitation_email_error": "No has proporcionado ninguna dirección de correo electrónico valida. ", "Send_invitation_email_info": "Puede enviar múltiples invitaciones por correo electrónico a la vez", "Send_invitation_email_success": "Has enviado con éxito una invitación por correo electrónico a las siguientes direcciones:", "Send_request_on_chat_close": "Enviar solicitud de charla cierre", @@ -1001,20 +1004,20 @@ "Send_your_JSON_payloads_to_this_URL": "EnvÃe sus payloads JSON a esta dirección URL.", "Sending": "Enviando...", "Service": "Servicio", - "Set_as_moderator": "Establezca como moderador", + "Set_as_moderator": "Establecer como moderador", "Set_as_owner": "Establecer como propietario", "Settings": "Configuración", - "Settings_updated": "Se han actualización las opciones ", - "Should_be_a_URL_of_an_image": "Debe de ser un URL de una imagen. ", + "Settings_updated": "Se han actualización las opciones ", + "Should_be_a_URL_of_an_image": "Debe de ser un URL de una imagen. ", "Should_exists_a_user_with_this_username": "Ya debe existir el usuario.", "Show_all": "Mostrar todo", "Show_more": "Mostrar más", "show_offline_users": "Mostrar usuarios desconectados", - "Show_only_online": "Mostrar sólo la lÃnea", + "Show_only_online": "Mostrar sólo en linea", "Show_preregistration_form": "Mostrar formulario de inscripción previa", "Show_queue_list_to_all_agents": "Mostrar la cola de todos los agentes", "Showing_archived_results": "<p> Mostrando resultados <b>archivados %s</b> </p>", - "Showing_online_users": "Mostrando <b>__total_showing__</b> de __total__ usuarios", + "Showing_online_users": "Mostrando: <b>__total_showing__</b>En linea: __online__ Total:__total__ ", "Showing_results": "<p>Mostrando <b>%s</b> resultados</p>", "since_creation": "desde %s", "Site_Name": "Nombre del Sitio", diff --git a/packages/rocketchat-i18n/i18n/fr.i18n.json b/packages/rocketchat-i18n/i18n/fr.i18n.json index 007c6d710d960913c03cf04b585b42e136722a66..fa6f7648f5143edba2601bf3fd45ba9c61a356bd 100644 --- a/packages/rocketchat-i18n/i18n/fr.i18n.json +++ b/packages/rocketchat-i18n/i18n/fr.i18n.json @@ -285,6 +285,7 @@ "clear_cache_now": "Effacer le cache maintenant", "Clear_all_unreads_question": "Marquer tout comme lu ?", "Click_here": "Cliquez ici", + "Click_here_for_more_info": "Cliquer ici pour plus d'information", "Client_ID": "ID du client", "Client_Secret": "Secret du client", "Clients_will_refresh_in_a_few_seconds": "Les clients vont être rechargés dans quelques secondes", @@ -381,6 +382,7 @@ "Edit": "Modifier", "Edit_Custom_Field": "Modifier le champ personnalisé", "Edit_Department": "Éditer le département", + "Edit_Trigger": "Éditer le déclencheur", "edited": "modifié", "Editing_room": "Modification des salons", "Editing_user": "Modification des utilisateurs", @@ -399,10 +401,12 @@ "Email_subject": "Sujet", "Email_verified": "Adresse e-mail vérifiée", "Emoji": "Emoji", + "EmojiCustomFilesystem": "Système de fichier d'émoticones personnalisés", "Empty_title": "Titre vide", "Enable": "Activer", "Enable_Desktop_Notifications": "Activer les notifications sur le bureau", "Enabled": "Activé", + "Enable_Svg_Favicon": "Activer les favicon en format SVG", "Encrypted_message": "Message chiffré", "End_OTR": "Arrêter OTR", "Enter_a_regex": "Entrez une expression rationnelle", @@ -411,6 +415,8 @@ "Enter_name_here": "Saisissez le nom ici", "Enter_to": "Entrée pour", "Error": "Erreur", + "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances": "Erreur: Rocket.chat requiert l'activation de la fonction \"oplog tailing\" lorsqu'il fonctionne sur plusieurs instances", + "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details": "Veuillez vous assurer que MongoDB est en mode ReplicaSet et que la variable d'environnement MONGO_OPLOG_URL est définie correctement sur le serveur de l'application", "error-action-not-allowed": "__action__ n'est pas autorisée", "error-application-not-found": "Application introuvable", "error-archived-duplicate-name": "Il y a un canal archivé avec le nom '__room_name__'", @@ -424,6 +430,7 @@ "error-department-not-found": "Département introuvable", "error-duplicate-channel-name": "Un canal avec le nom '__channel_name__' existe déjà ", "error-email-domain-blacklisted": "Le domaine de l'adresse e-mail est sur liste noire", + "error-email-send-failed": "Erreur lors de la tentative d'envoi d'email: __message__", "error-field-unavailable": "<strong>__field__</strong> est déjà utilisé :(", "error-file-too-large": "Le fichier est trop lourd", "error-importer-not-defined": "L'importateur n'a pas été défini correctement, il manque la classe Import.", @@ -435,11 +442,14 @@ "error-invalid-channel-start-with-chars": "Canal non valide. Commencez par @ ou #", "error-invalid-custom-field": "Champ personnalisé invalide", "error-invalid-custom-field-name": "Nom de champ personnalisé invalide. Utilisez des lettres, des chiffres et des tirets (milieu et bas).", + "error-invalid-date": "Date fournie invalide.", "error-invalid-description": "Description non valide", "error-invalid-domain": "Domaine non valide", "error-invalid-email": "Adresse e-mail __email__ non valide", + "error-invalid-email-address": "Adresse email invalide", "error-invalid-file-height": "Hauteur du fichier non valide", "error-invalid-file-type": "Type de fichier non valide", + "error-direct-message-file-upload-not-allowed": "L'envoi de fichier n'est pas autorisé dans les messages directs", "error-invalid-file-width": "Largeur du fichier non valide", "error-invalid-from-address": "Vous avez entré un expéditeur invalide (champ De).", "error-invalid-integration": "Intégration non valide", @@ -494,8 +504,12 @@ "Field_removed": "Champ supprimé", "Field_required": "Champs requis", "File_exceeds_allowed_size_of_bytes": "Le fichier dépasse la taille maximale autorisée : __size__ octets", + "File_not_allowed_direct_messages": "L'envoi de fichier n'est pas autorisé dans les messages directs.", + "File_type_is_not_accepted": "Ce tye de fichier n'est pas accepté.", "FileUpload": "Envoi de fichiers", "FileUpload_Enabled": "Envois de fichiers activés", + "FileUpload_Disabled": "L'envoi de fichiers n'est pas activé.", + "FileUpload_Enabled_Direct": "L'envoi de fichiers est activé dans les messages directs", "FileUpload_File_Empty": "Fichier vide", "FileUpload_FileSystemPath": "Chemin d'accès", "FileUpload_MaxFileSize": "Taille maximale pour l'envoi de fichier (en octets)", @@ -519,9 +533,13 @@ "Food_and_Drink": "Nourriture & Boissons", "Footer": "Bas de page", "For_your_security_you_must_enter_your_current_password_to_continue": "Pour votre sécurité, vous devez ré-entrer votre mot de passe pour continuer", + "Force_Disable_OpLog_For_Cache": "Forcer la désactivation de la fonction OpLog pour le cache", + "Force_Disable_OpLog_For_Cache_Description": "N'utlisera pas la fonction OpLog pour syncroniser le cache même si elle est disponible.", "Force_SSL": "Forcer l'utilisation de SSL", "Force_SSL_Description": "*Attention !* _ForceSSL_ ne devrait jamais être utilisé avec un reverse proxy. Si vous utilisez un reverse proxy, vous devriez y gérer la redirection. Cette option existe pour des déploiements tels que Heroku, qui n'autorisent pas la configuration de redirection au niveau des reverse proxy.", "Forgot_password": "Mot de passe oublié", + "Forgot_Password_Email_Subject": "[Site_Name] - Récupération du mot de passe", + "Forgot_Password_Email": "Cliquez <a href=\"[Forgot_Password_Url]\">ici</a> pour remettre à zéro votre mot de passe.", "Forward": "Transmettre", "Forward_chat": "Transmettre la conversation", "Forward_to_department": "Transmettre au département", @@ -557,6 +575,7 @@ "Hours": "Heures", "How_friendly_was_the_chat_agent": "L'assistant du chat était-il amical ?", "How_knowledgeable_was_the_chat_agent": "L'assistant du chat était-il clair ?", + "How_long_to_wait_after_agent_goes_offline": "Délai d'attente après que l'agent soit hors ligne", "How_responsive_was_the_chat_agent": "L'assistant du chat avait-il des réponses adaptées ?", "How_satisfied_were_you_with_this_chat": "Étiez-vous satisfait de ce chat?", "If_you_are_sure_type_in_your_password": "Si vous êtes sûr(e), entrez votre mot de passe :", @@ -586,6 +605,7 @@ "Importer_Prepare_Uncheck_Deleted_Users": "Désélectionner les Utilisateurs Supprimés", "Importer_progress_error": "Impossible d'obtenir l'état de l'importation.", "Importer_setup_error": "Une erreur est survenue lors du paramétrage de l'importateur.", + "Importer_Source_File": "Sélection du fichier source", "Incoming_Livechats": "Arrivée de nouveaux Livechats", "inline_code": "Ligne de code", "Install_Extension": "Installer l'extension", @@ -631,6 +651,7 @@ "is_typing": "est en train d'écrire", "is_typing_female": "est en train d'écrire", "is_typing_male": "est en train d'écrire", + "IRC_Hostname": "Le serveur d'hôte IRC auquel se sonnecter", "It_works": "Ça marche", "italics": "italique", "Jitsi_Chrome_Extension": "Chrome Extension Id", @@ -713,6 +734,7 @@ "LDAP_Use_Custom_Domain_Search_Description": "Écrivez vos propres filtres pour rechercher les utilisateurs dans le serveur LDAP.", "LDAP_Username_Field": "Champs du nom d'utilisateur", "LDAP_Username_Field_Description": "Le champ qui sera utilisé en tant que *nom d'utilisateur* pour les nouveaux utilisateurs. Laisser vide pour utiliser le nom d'utilisateur renseigné sur la page de connexion.<br/>La valeur par défaut est `sAMAccountName`.", + "LDAP_Group_Filter_Group_Name": "Nom du groupe", "Least_Amount": "Le minimum", "Leave_Group_Warning": "Êtes-vous sûr(e) de vouloir quitter le groupe \"%s\" ?", "Leave_Private_Warning": "Êtes-vous sûr(e) de vouloir quitter la discussion avec \"%s\" ?", diff --git a/packages/rocketchat-importer-slack/server.coffee b/packages/rocketchat-importer-slack/server.coffee index ccd1975175cc941fcdecc8a5272b13c64c2f6857..04ca574ac1a1fff152737d8e16d993c681c023b5 100644 --- a/packages/rocketchat-importer-slack/server.coffee +++ b/packages/rocketchat-importer-slack/server.coffee @@ -229,7 +229,7 @@ Importer.Slack = class Importer.Slack extends Importer.Base msg: "_#{@convertSlackMessageToRocketChat(message.text)}_" _.extend msgObj, msgDataDefaults RocketChat.sendMessage @getRocketUser(message.user), msgObj, room, true - else if message.subtype is 'bot_message' + else if message.subtype is 'bot_message' or message.subtype is 'slackbot_response' botUser = RocketChat.models.Users.findOneById 'rocket.cat', { fields: { username: 1 }} botUsername = if @bots[message.bot_id] then @bots[message.bot_id]?.name else message.username msgObj = @@ -320,7 +320,10 @@ Importer.Slack = class Importer.Slack extends Importer.Base Meteor.call 'setReaction', ":#{reaction.name}:", msgDataDefaults._id @addCountCompleted 1 - console.log 'Missed import types:', missedTypes + + if not _.isEmpty missedTypes + console.log 'Missed import types:', missedTypes + @updateProgress Importer.ProgressStep.FINISHING for channel in @channels.channels when channel.do_import and channel.is_archived do (channel) => diff --git a/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee b/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee index 06655c651879466940003bf2422c6e50e1f7085f..e35e5ebaed93da3a6a09c1283bc4a239d8dfd706 100644 --- a/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee +++ b/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee @@ -91,7 +91,7 @@ Template.integrationsIncoming.helpers for key, value of data delete data[key] if value in [null, ""] - return "curl -X POST --data-urlencode 'payload=#{JSON.stringify(data)}' #{record.url}" + return "curl -X POST -H 'Content-Type: application/json' --data '#{JSON.stringify(data)}' #{record.url}" editorOptions: -> return {} = diff --git a/packages/rocketchat-integrations/server/api/api.coffee b/packages/rocketchat-integrations/server/api/api.coffee index ff2a99e96da47912e779a152a81bf6c243d4f9bb..49774f5c270c558676a53fa1fe418d3ace2b4fc1 100644 --- a/packages/rocketchat-integrations/server/api/api.coffee +++ b/packages/rocketchat-integrations/server/api/api.coffee @@ -54,7 +54,18 @@ Api = new Restivus payloadIsWrapped = @bodyParams?.payload? and payloadKeys.length == 1 if payloadIsWrapped and @request.headers['content-type'] is 'application/x-www-form-urlencoded' - @bodyParams = JSON.parse @bodyParams.payload + try + @bodyParams = JSON.parse @bodyParams.payload + catch e + return { + error: { + statusCode: 400 + body: { + success: false + error: e.message + } + } + } @integration = RocketChat.models.Integrations.findOne _id: @request.params.integrationId @@ -71,7 +82,7 @@ Api = new Restivus createIntegration = (options, user) -> - logger.incoming.info 'Add integration' + logger.incoming.info 'Add integration', options.name logger.incoming.debug options Meteor.runAsUser user._id, => @@ -115,7 +126,7 @@ removeIntegration = (options, user) -> executeIntegrationRest = -> - logger.incoming.info 'Post integration' + logger.incoming.info 'Post integration', @integration.name logger.incoming.debug '@urlParams', @urlParams logger.incoming.debug '@bodyParams', @bodyParams diff --git a/packages/rocketchat-lib/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-lib/.npm/package/npm-shrinkwrap.json index d2ac7e3c6b8c266d560b99c4069a68147fded02c..1f3369640defeb34162f9fdce4306826d10e2e0b 100644 --- a/packages/rocketchat-lib/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-lib/.npm/package/npm-shrinkwrap.json @@ -6,13 +6,13 @@ "from": "acorn@>=1.0.3 <2.0.0" }, "amdefine": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "from": "amdefine@>=0.0.4" }, "ansi-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "from": "ansi-regex@>=2.0.0 <3.0.0" }, "ansi-styles": { @@ -75,6 +75,11 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0" }, + "bintrees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", + "from": "bintrees@1.0.1" + }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -116,8 +121,8 @@ "from": "cryptiles@>=2.0.0 <3.0.0" }, "dashdash": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "from": "dashdash@>=1.12.0 <2.0.0", "dependencies": { "assert-plus": { @@ -183,8 +188,8 @@ "from": "forever-agent@>=0.6.1 <0.7.0" }, "form-data": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.1.tgz", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", "from": "form-data@>=2.1.1 <2.2.0" }, "generate-function": { @@ -300,8 +305,8 @@ "from": "json-stringify-safe@>=5.0.1 <5.1.0" }, "jsonpointer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "from": "jsonpointer@>=4.0.0 <5.0.0" }, "jsprim": { @@ -330,13 +335,13 @@ "from": "lokijs@1.4.1" }, "mime-db": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz", - "from": "mime-db@>=1.24.0 <1.25.0" + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", + "from": "mime-db@>=1.26.0 <1.27.0" }, "mime-types": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", "from": "mime-types@>=2.1.7 <2.2.0" }, "node-dogstatsd": { @@ -344,11 +349,6 @@ "resolved": "https://registry.npmjs.org/node-dogstatsd/-/node-dogstatsd-0.0.6.tgz", "from": "node-dogstatsd@0.0.6" }, - "node-uuid": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "from": "node-uuid@>=1.4.7 <1.5.0" - }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -379,6 +379,11 @@ "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", "from": "private@>=0.1.5 <0.2.0" }, + "prom-client": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-7.0.1.tgz", + "from": "prom-client@7.0.1" + }, "promise": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", @@ -417,8 +422,8 @@ } }, "request": { - "version": "2.76.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "from": "request@>=2.0.0 <3.0.0" }, "sntp": { @@ -432,8 +437,8 @@ "from": "source-map@0.1.31" }, "sshpk": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", "from": "sshpk@>=1.7.0 <2.0.0", "dependencies": { "assert-plus": { @@ -468,6 +473,11 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "from": "supports-color@>=2.0.0 <3.0.0" }, + "tdigest": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", + "from": "tdigest@>=0.1.1 <0.2.0" + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -489,8 +499,8 @@ "from": "tunnel-agent@>=0.4.1 <0.5.0" }, "tweetnacl": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "from": "tweetnacl@>=0.14.0 <0.15.0" }, "unreachable-branch-transform": { @@ -498,6 +508,16 @@ "resolved": "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz", "from": "unreachable-branch-transform@>=0.3.0 <0.4.0" }, + "util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "from": "util-extend@>=1.0.1 <2.0.0" + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "from": "uuid@>=3.0.0 <4.0.0" + }, "verror": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", @@ -506,7 +526,7 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "from": "xtend@>=4.0.0 <4.1.0-0" + "from": "xtend@>=4.0.0 <5.0.0" } } } diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index e97a859c80b123f62b83f83ac062c3bab1aff494..424d0da5916956b21c714b367e5cd321e1f1a570 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -11,7 +11,8 @@ Npm.depends({ 'node-dogstatsd': '0.0.6', 'localforage': '1.4.2', 'lokijs': '1.4.1', - 'bugsnag': '1.8.0' + 'bugsnag': '1.8.0', + 'prom-client': '7.0.1' }); Package.onUse(function(api) { @@ -62,6 +63,7 @@ Package.onUse(function(api) { api.addFiles('lib/MessageTypes.coffee'); api.addFiles('server/lib/bugsnag.js', 'server'); + api.addFiles('server/lib/metrics.js', 'server'); api.addFiles('server/lib/RateLimiter.coffee', 'server'); diff --git a/packages/rocketchat-lib/rocketchat.info b/packages/rocketchat-lib/rocketchat.info index b276990b92a8de47ed536c9895c39f37e4aaf44a..db1d7979a7eaf8d60e8cba067706f8d1338f24d3 100644 --- a/packages/rocketchat-lib/rocketchat.info +++ b/packages/rocketchat-lib/rocketchat.info @@ -1,3 +1,3 @@ { - "version": "0.50.0-develop" + "version": "0.51.0-develop" } diff --git a/packages/rocketchat-lib/server/lib/PushNotification.js b/packages/rocketchat-lib/server/lib/PushNotification.js index 410af01cd6034100b3ecbe5777d828fae3a335d9..ec754b4d05869c543b4702521cf24bbe9a9d37e0 100644 --- a/packages/rocketchat-lib/server/lib/PushNotification.js +++ b/packages/rocketchat-lib/server/lib/PushNotification.js @@ -28,7 +28,7 @@ class PushNotification { const config = { from: 'push', badge: 1, - sound: 'chime', + sound: 'default', title: title, text: message, payload, diff --git a/packages/rocketchat-lib/server/lib/metrics.js b/packages/rocketchat-lib/server/lib/metrics.js new file mode 100644 index 0000000000000000000000000000000000000000..0ae0ed29eafc84e45c603bc342867314c09f0245 --- /dev/null +++ b/packages/rocketchat-lib/server/lib/metrics.js @@ -0,0 +1,9 @@ +var client = require('prom-client'); + +RocketChat.promclient = client; + +RocketChat.metrics = {}; + +// one sample metrics only - a counter + +RocketChat.metrics.messagesSent = new client.Counter('messages_sent', 'cumulated number of messages sent'); diff --git a/packages/rocketchat-lib/server/methods/sendMessage.coffee b/packages/rocketchat-lib/server/methods/sendMessage.coffee index e8defe8ed2e8e1fdc0436ba02f10459927932e2d..2d121dc4ed221839988a22811c5d6192dd979290 100644 --- a/packages/rocketchat-lib/server/methods/sendMessage.coffee +++ b/packages/rocketchat-lib/server/methods/sendMessage.coffee @@ -49,8 +49,9 @@ Meteor.methods message.alias = user.name if not message.alias? and RocketChat.settings.get 'Message_SetNameToAliasEnabled' if Meteor.settings.public.sandstorm message.sandstormSessionId = this.connection.sandstormSessionId() - + RocketChat.sendMessage user, message, room + RocketChat.metrics.messagesSent.inc() # Limit a user, who does not have the "bot" role, to sending 5 msgs/second DDPRateLimiter.addRule diff --git a/packages/rocketchat-lib/server/models/_BaseCache.js b/packages/rocketchat-lib/server/models/_BaseCache.js index 3affbac1faab79923b36164f20cfc9c2d775ab5c..6f9cd4a2ac0d90c511a38dad6890bbe0a4b956a7 100644 --- a/packages/rocketchat-lib/server/models/_BaseCache.js +++ b/packages/rocketchat-lib/server/models/_BaseCache.js @@ -7,6 +7,7 @@ import objectPath from 'object-path'; const logger = new Logger('BaseCache'); const lokiEq = loki.LokiOps.$eq; +const lokiNe = loki.LokiOps.$ne; loki.LokiOps.$eq = function(a, b) { if (Array.isArray(a)) { @@ -19,7 +20,7 @@ loki.LokiOps.$ne = function(a, b) { if (Array.isArray(a)) { return a.indexOf(b) === -1; } - return lokiEq(a, b); + return lokiNe(a, b); }; const lokiIn = loki.LokiOps.$in; diff --git a/packages/rocketchat-livechat/app/i18n/es.i18n.json b/packages/rocketchat-livechat/app/i18n/es.i18n.json index 811889ab807e883687e26ea023ec7af1e8181aa2..ecdcb5cefae6fbfa9e90f1613bfb24a0b05221b3 100644 --- a/packages/rocketchat-livechat/app/i18n/es.i18n.json +++ b/packages/rocketchat-livechat/app/i18n/es.i18n.json @@ -7,9 +7,9 @@ "Close_menu": "Cerrar menú", "Conversation_finished": "Conversación terminada", "End_chat": "Finalizar chat", - "How_friendly_was_the_chat_agent": "Como de amigable fue nuestro agente de chat?", - "How_knowledgeable_was_the_chat_agent": "Cuanto sabÃa nuestro agente de chat?", - "How_responsive_was_the_chat_agent": "Cómo de rápido rápido respondió nuestro agente de chat?", + "How_friendly_was_the_chat_agent": "Que tan amigable fue nuestro agente de chat?", + "How_knowledgeable_was_the_chat_agent": "Nuestro agente de chat mostró dominio sobre el tema?", + "How_responsive_was_the_chat_agent": "Que tan eficiente al responder sus preguntas fue nuestro agente de chat?", "How_satisfied_were_you_with_this_chat": "Que tan satisfecho quedo después de esta sesión de chat?", "Installation": "Instalación ", "New_messages": "Nuevos mensajes", @@ -35,5 +35,6 @@ "User_left": "El usuario ha abandonado la sala", "We_are_offline_Sorry_for_the_inconvenience": "Estamos fuera de lÃnea. Disculpe las molestias.", "Yes": "Si", + "You": "Tu", "You_must_complete_all_fields": "Debes completar todos los campos" } \ No newline at end of file diff --git a/packages/rocketchat-livechat/app/package.json b/packages/rocketchat-livechat/app/package.json index f875db3e9ced1620aaee20b36995db5c72f1ab42..39b8fc595778266c9d7a1b6cdf87f55dc519b33e 100644 --- a/packages/rocketchat-livechat/app/package.json +++ b/packages/rocketchat-livechat/app/package.json @@ -22,7 +22,7 @@ "dependencies": { "autolinker": "^1.4.0", "jquery": "^2.1.0", - "babel-runtime": "^6.20.0", + "babel-runtime": "^6.22.0", "bcrypt": "^1.0.2", "moment": "^2.17.1", "toastr": "^2.1.2" diff --git a/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.html b/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.html index 9755eed5a7a5ac66e2038a9a3c88384c8b6c9ed8..5afbeb99bde4878b33030deb45b60fa377a7efe1 100644 --- a/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.html +++ b/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.html @@ -1,8 +1,5 @@ <template name="snippetMessage"> <li id="{{_id}}" class="message background-transparent-dark-hover {{isSequential}} {{system}} {{t}} {{own}} {{isTemp}} {{chatops}} {{customClass}}" data-username="{{u.username}}" data-groupable="{{isGroupable}}" data-date="{{date}}" data-timestamp="{{timestamp}}"> - <div class="day-divider"> - <span>{{date}}</span> - </div> {{#if avatar}} {{#if avatarFromUsername}} <button class="thumb user-card-message" data-username="{{u.username}}" tabindex="1">{{> avatar username=avatarFromUsername}}</button> @@ -33,19 +30,19 @@ {{#each roleTags}} <span class="role-tag" data-role="{{description}}">{{description}}</span> {{/each}} - {{#if isBot}} - <span class="is-bot">BOT</span> - {{/if}} - <span class="time" title='{{date}} {{time}}'>{{time}}</span> - {{#if edited}} - <span class="edited" title='{{_ "edited"}} {{_ "at"}} {{editTime}} {{_ "by"}} {{editedBy}}'> + {{#if isBot}} + <span class="is-bot">BOT</span> + {{/if}} + <span class="time" title='{{date}} {{time}}'>{{time}}</span> + {{#if edited}} + <span class="edited" title='{{_ "edited"}} {{_ "at"}} {{editTime}} {{_ "by"}} {{editedBy}}'> <i class="icon-edit" aria-label="{{_ "Edited"}}"></i> <button class="thumb thumb-small user-card-message" data-username="{{editedBy}}" tabindex="1">{{> avatar username=editedBy}}</button> </span> - {{/if}} - {{#if private}} - <span class="private">{{_ "Only_you_can_see_this_message"}}</span> - {{/if}} + {{/if}} + {{#if private}} + <span class="private">{{_ "Only_you_can_see_this_message"}}</span> + {{/if}} <div class="message-cog-container {{hideCog}}"> <i class="icon-cog message-cog" aria-label="{{_ "Actions"}}"></i> </div> @@ -61,7 +58,6 @@ {{injectIndex . @index}} {{> messageAttachment}} {{/each}} </div> - </li> </template> diff --git a/packages/rocketchat-theme/client/imports/base.less b/packages/rocketchat-theme/client/imports/base.less index 9fb4ccfd7ad9ab80af0209ec4afce488726d44c5..1f429c14618f3b7e723c3550bb590a5e71a221be 100644 --- a/packages/rocketchat-theme/client/imports/base.less +++ b/packages/rocketchat-theme/client/imports/base.less @@ -2644,37 +2644,6 @@ label.required::after { margin-top: 0; } - .day-divider { - height: 50px; - display: none; - text-align: center; - left: 0; - position: absolute; - top: 0; - right: 0; - align-items: center; - justify-content: center; - - span { - padding: 0 8px; - z-index: 1; - border-radius: 4px; - font-size: 12px; - font-weight: 600; - } - - &::before { - position: absolute; - content: " "; - display: block; - border-bottom-width: 1px; - border-bottom-style: solid; - top: 25px; - left: 0; - right: 0; - } - } - &.new-day { margin-top: 60px; @@ -4577,6 +4546,7 @@ body:not(.is-cordova) { .load-more { position: relative; padding: 1rem 0; + height: 10px; } .search-messages-list { diff --git a/packages/rocketchat-ui-message/message/message.html b/packages/rocketchat-ui-message/message/message.html index cb42e24f478d17ce76992f10259c39f94c5b3789..ac4d93ad90d0dbf61de67fa7640bf8090fb0aa0e 100644 --- a/packages/rocketchat-ui-message/message/message.html +++ b/packages/rocketchat-ui-message/message/message.html @@ -1,8 +1,5 @@ <template name="message"> <li id="{{_id}}" class="message background-transparent-dark-hover {{isSequential}} {{system}} {{t}} {{own}} {{isTemp}} {{chatops}} {{customClass}}" data-username="{{u.username}}" data-groupable="{{isGroupable}}" data-date="{{date}}" data-timestamp="{{timestamp}}"> - <div class="day-divider"> - <span>{{date}}</span> - </div> {{#if avatar}} {{#if avatarFromUsername}} <button class="thumb user-card-message" data-username="{{u.username}}" tabindex="1">{{> avatar username=avatarFromUsername}}</button> diff --git a/packages/rocketchat-ui/lib/notification.coffee b/packages/rocketchat-ui/lib/notification.coffee index 43f84117f7d45d418bb88926e55930c71988beba..dcf6425bb13a5c2f1edc7d6ace8a53a084aad9fe 100644 --- a/packages/rocketchat-ui/lib/notification.coffee +++ b/packages/rocketchat-ui/lib/notification.coffee @@ -19,12 +19,20 @@ body: _.stripTags(message.msg) tag: notification.payload._id, silent: true + canReply: true notificationDuration = (notification.duration - 0) or (Meteor.user()?.settings?.preferences?.desktopNotificationDuration - 0) or RocketChat.settings.get('Desktop_Notifications_Duration') if notificationDuration > 0 setTimeout ( -> n.close() ), notificationDuration * 1000 if notification.payload?.rid? + if n.addEventListener? + n.addEventListener 'reply', ({response}) -> + Meteor.call 'sendMessage', + _id: Random.id() + rid: notification.payload.rid + msg: response + n.onclick = -> this.close() window.focus() diff --git a/packages/rocketchat-ui/views/app/room.coffee b/packages/rocketchat-ui/views/app/room.coffee index 8a9f59f4eb10bfae9c1ed3de4813f070dfd57f57..57f6c4d24da07476e591718e703307d752bd36c1 100644 --- a/packages/rocketchat-ui/views/app/room.coffee +++ b/packages/rocketchat-ui/views/app/room.coffee @@ -314,9 +314,6 @@ Template.room.events RoomHistoryManager.getMoreNext(@_id) , 200 - 'click .load-more > button': -> - RoomHistoryManager.getMore(@_id) - 'click .new-message': (e) -> Template.instance().atBottom = true Template.instance().find('.input-message').focus() diff --git a/packages/rocketchat-ui/views/app/room.html b/packages/rocketchat-ui/views/app/room.html index af611e282cdd93065dca0fff039b0809cddec865..5597d136e02a067a0e9729b3026dcdbaa4bc0466 100644 --- a/packages/rocketchat-ui/views/app/room.html +++ b/packages/rocketchat-ui/views/app/room.html @@ -84,7 +84,9 @@ {{#if canPreview}} {{#if hasMore}} <li class="load-more"> - {{> loading}} + {{#if isLoading}} + {{> loading}} + {{/if}} </li> {{else}} <li class="start color-info-font-color"> @@ -97,7 +99,9 @@ {{/each}} {{#if hasMoreNext}} <li class="load-more"> - {{> loading}} + {{#if isLoading}} + {{> loading}} + {{/if}} </li> {{/if}} </ul> diff --git a/server/lib/cordova.coffee b/server/lib/cordova.coffee index 1a0aab0e35cd5b60b62c9b40ffc9c0173e75455b..dd5f74aab66a56c8297434be073091cb84ff2ab8 100644 --- a/server/lib/cordova.coffee +++ b/server/lib/cordova.coffee @@ -35,7 +35,7 @@ Meteor.methods text: TAPi18n.__ "This_is_a_push_test_messsage" apn: text: "@#{user.username}:\n" + TAPi18n.__ "This_is_a_push_test_messsage" - sound: 'chime' + sound: 'default' query: userId: user._id diff --git a/server/startup/migrations/v082.js b/server/startup/migrations/v082.js new file mode 100644 index 0000000000000000000000000000000000000000..93e88d9830ed2070e74a3fa9529a9f7c975fb917 --- /dev/null +++ b/server/startup/migrations/v082.js @@ -0,0 +1,9 @@ +RocketChat.Migrations.add({ + version: 82, + up: function() { + const admins = RocketChat.authz.getUsersInRole('admin').fetch(); + if (admins.length === 1 && admins[0]._id === 'rocket.cat') { + RocketChat.authz.removeUserFromRoles('rocket.cat', 'admin'); + } + } +});