Merge remote-tracking branch 'origin/develop' into google-vision

# Conflicts:
#	packages/rocketchat-lib/server/functions/sendMessage.js
#	packages/rocketchat-theme/client/imports/general/base_old.css
pull/6301/head
Rodrigo Nascimento 8 years ago
commit 51c653e110
  1. 2
      .docker/Dockerfile
  2. 2
      .github/changelog.js
  3. 1
      .gitignore
  4. 1
      .meteor/packages
  5. 16
      .meteor/versions
  6. 5
      .postcssrc
  7. 2
      .sandstorm/sandstorm-pkgdef.capnp
  8. 3
      .scripts/set-version.js
  9. 221
      .stylelintrc
  10. 2
      .travis/snap.sh
  11. 15
      HISTORY.md
  12. 4
      README.md
  13. 13
      client/routes/router.js
  14. 32
      example-build-run.sh
  15. 16
      example-build.sh
  16. 2
      package-lock.json
  17. 36
      package.json
  18. 40
      packages/meteor-autocomplete/client/autocomplete-client.js
  19. 1
      packages/meteor-autocomplete/client/collection.js
  20. 3
      packages/meteor-autocomplete/client/templates.js
  21. 13
      packages/meteor-autocomplete/package.js
  22. 22
      packages/rocketchat-action-links/client/stylesheets/actionLinks.css
  23. 3
      packages/rocketchat-action-links/package.js
  24. 28
      packages/rocketchat-analytics/client/loadScript.js
  25. 2
      packages/rocketchat-analytics/client/trackEvents.js
  26. 26
      packages/rocketchat-analytics/server/settings.js
  27. 11
      packages/rocketchat-api/server/v1/channels.js
  28. 17
      packages/rocketchat-api/server/v1/users.js
  29. 46
      packages/rocketchat-authorization/client/stylesheets/permissions.css
  30. 14
      packages/rocketchat-authorization/client/usersNameChanged.js
  31. 7
      packages/rocketchat-authorization/package.js
  32. 6
      packages/rocketchat-autolinker/client/client.js
  33. 4
      packages/rocketchat-autolinker/package.js
  34. 0
      packages/rocketchat-autolinker/server/settings.js
  35. 2
      packages/rocketchat-autotranslate/client/lib/tabBar.js
  36. 41
      packages/rocketchat-autotranslate/client/stylesheets/autotranslate.css
  37. 3
      packages/rocketchat-autotranslate/package.js
  38. 0
      packages/rocketchat-cas/client/cas_client.js
  39. 7
      packages/rocketchat-cas/package.js
  40. 0
      packages/rocketchat-cas/server/cas_rocketchat.js
  41. 0
      packages/rocketchat-cas/server/cas_server.js
  42. 2
      packages/rocketchat-channel-settings/client/startup/tabBar.js
  43. 8
      packages/rocketchat-channel-settings/client/startup/trackSettingsChange.js
  44. 76
      packages/rocketchat-channel-settings/client/stylesheets/channel-settings.css
  45. 33
      packages/rocketchat-channel-settings/client/views/channelSettings.js
  46. 3
      packages/rocketchat-channel-settings/package.js
  47. 34
      packages/rocketchat-channel-settings/server/functions/saveRoomName.js
  48. 10
      packages/rocketchat-chatops/client/tabBar.js
  49. 0
      packages/rocketchat-colors/client/client.js
  50. 12
      packages/rocketchat-colors/client/style.css
  51. 6
      packages/rocketchat-colors/package.js
  52. 0
      packages/rocketchat-colors/server/settings.js
  53. 0
      packages/rocketchat-custom-oauth/client/custom_oauth_client.js
  54. 4
      packages/rocketchat-custom-oauth/package.js
  55. 0
      packages/rocketchat-custom-oauth/server/custom_oauth_server.js
  56. 73
      packages/rocketchat-custom-sounds/assets/stylesheets/customSoundsAdmin.css
  57. 0
      packages/rocketchat-custom-sounds/client/admin/adminSoundEdit.html
  58. 0
      packages/rocketchat-custom-sounds/client/admin/adminSoundInfo.html
  59. 0
      packages/rocketchat-custom-sounds/client/admin/adminSounds.html
  60. 4
      packages/rocketchat-custom-sounds/client/admin/adminSounds.js
  61. 0
      packages/rocketchat-custom-sounds/client/admin/route.js
  62. 0
      packages/rocketchat-custom-sounds/client/admin/soundEdit.html
  63. 0
      packages/rocketchat-custom-sounds/client/admin/soundEdit.js
  64. 0
      packages/rocketchat-custom-sounds/client/admin/soundInfo.html
  65. 0
      packages/rocketchat-custom-sounds/client/admin/soundInfo.js
  66. 0
      packages/rocketchat-custom-sounds/client/admin/startup.js
  67. 25
      packages/rocketchat-custom-sounds/package.js
  68. 5
      packages/rocketchat-dolphin/login-button.css
  69. 2
      packages/rocketchat-drupal/login-button.css
  70. 4
      packages/rocketchat-emoji-custom/admin/adminEmoji.js
  71. 97
      packages/rocketchat-emoji-custom/assets/stylesheets/emojiCustomAdmin.css
  72. 3
      packages/rocketchat-emoji-custom/package.js
  73. 6
      packages/rocketchat-emoji-emojione/callbacks.js
  74. 5
      packages/rocketchat-emoji-emojione/package.js
  75. 27
      packages/rocketchat-emoji-emojione/sprites.css
  76. 25
      packages/rocketchat-emoji/client/emoji.css
  77. 34
      packages/rocketchat-emoji/client/emojiButton.js
  78. 0
      packages/rocketchat-emoji/client/emojiParser.js
  79. 133
      packages/rocketchat-emoji/client/emojiPicker.css
  80. 0
      packages/rocketchat-emoji/client/emojiPicker.html
  81. 0
      packages/rocketchat-emoji/client/emojiPicker.js
  82. 0
      packages/rocketchat-emoji/client/function-isSet.js
  83. 0
      packages/rocketchat-emoji/client/keyboardFix.js
  84. 0
      packages/rocketchat-emoji/client/lib/EmojiPicker.js
  85. 0
      packages/rocketchat-emoji/client/lib/emojiRenderer.js
  86. 0
      packages/rocketchat-emoji/client/rocketchat.js
  87. 29
      packages/rocketchat-emoji/emojiButton.js
  88. 23
      packages/rocketchat-emoji/package.js
  89. 4
      packages/rocketchat-file-upload/server/methods/sendFileMessage.js
  90. 6
      packages/rocketchat-github-enterprise/github-enterprise-login-button.css
  91. 198
      packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json
  92. 0
      packages/rocketchat-highlight-words/client/client.js
  93. 2
      packages/rocketchat-highlight-words/package.js
  94. 464
      packages/rocketchat-i18n/i18n/ar.i18n.json
  95. 197
      packages/rocketchat-i18n/i18n/ca.i18n.json
  96. 201
      packages/rocketchat-i18n/i18n/cs.i18n.json
  97. 8
      packages/rocketchat-i18n/i18n/de.i18n.json
  98. 348
      packages/rocketchat-i18n/i18n/en.i18n.json
  99. 1
      packages/rocketchat-i18n/i18n/es.i18n.json
  100. 2
      packages/rocketchat-i18n/i18n/fr.i18n.json
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,6 +1,6 @@
FROM rocketchat/base:4
ENV RC_VERSION 0.57.0-develop
ENV RC_VERSION 0.59.0-develop
MAINTAINER buildmaster@rocket.chat

@ -70,7 +70,7 @@ var writerOpts = {
// GitHub issue URLs.
commit.subject = commit.subject.replace(/#([0-9]+)/g, function(_, issue) {
issues.push(issue);
return '[#' + issue + '](' + gitUrl + '/issue/' + issue + ')';
return '[#' + issue + '](' + gitUrl + '/issues/' + issue + ')';
});
// GitHub user URLs.
commit.subject = commit.subject.replace(/@([a-zA-Z0-9_]+)/g, '[@$1](https://github.com/$1)');

1
.gitignore vendored

@ -36,6 +36,7 @@
.env
.externalToolBuilders
.idea
.vscode
.loadpath
.map
.metadata

@ -111,6 +111,7 @@ rocketchat:slashcommands-mute
rocketchat:slashcommands-open
rocketchat:slashcommands-topic
rocketchat:slashcommands-unarchive
rocketchat:slider
rocketchat:smarsh-connector
rocketchat:spotify
rocketchat:statistics

@ -22,7 +22,8 @@ caching-html-compiler@1.1.2
callback-hook@1.0.10
cfs:http-methods@0.0.32
check@1.2.5
coffeescript@1.12.6_1
coffeescript@1.12.7_1
coffeescript-compiler@1.12.7_1
dandv:caret-position@2.1.1
ddp@1.3.0
ddp-client@2.0.0
@ -75,7 +76,7 @@ localstorage@1.1.1
logging@1.1.17
matb33:collection-hooks@0.8.4
mdg:validation-error@0.5.1
meteor@1.7.0
meteor@1.7.1
meteor-base@1.1.0
meteor-developer-oauth@1.2.0
meteorhacks:inject-initial@1.0.4
@ -88,9 +89,9 @@ mizzao:autocomplete@0.5.1
mizzao:timesync@0.3.4
mobile-experience@1.0.4
mobile-status-bar@1.0.14
modules@0.9.2
modules@0.9.4
modules-runtime@0.8.0
mongo@1.1.19
mongo@1.1.22
mongo-id@1.0.6
mongo-livedata@1.0.12
mrt:reactive-store@0.0.1
@ -98,13 +99,13 @@ mystor:device-detection@0.2.0
nimble:restivus@0.8.12
nooitaf:colors@1.1.2_1
npm-bcrypt@0.9.3
npm-mongo@2.2.24
npm-mongo@2.2.30
oauth@1.1.13
oauth1@1.1.11
oauth2@1.1.11
observe-sequence@1.0.16
ordered-dict@1.0.9
ostrio:cookies@2.2.1
ostrio:cookies@2.2.2
pauli:accounts-linkedin@2.1.3
pauli:linkedin-oauth@1.1.0
percolate:synced-cron@1.3.2
@ -203,6 +204,7 @@ rocketchat:slashcommands-mute@0.0.1
rocketchat:slashcommands-open@0.0.1
rocketchat:slashcommands-topic@0.0.1
rocketchat:slashcommands-unarchive@0.0.1
rocketchat:slider@0.0.1
rocketchat:smarsh-connector@0.0.1
rocketchat:sms@0.0.1
rocketchat:spotify@0.0.1
@ -232,7 +234,7 @@ shell-server@0.2.4
simple:json-routes@2.1.0
smoral:sweetalert@1.1.1
spacebars@1.0.15
spacebars-compiler@1.1.2
spacebars-compiler@1.1.3
srp@1.0.10
standard-minifier-js@2.1.1
steffo:meteor-accounts-saml@0.0.1

@ -2,6 +2,11 @@
"plugins": {
"postcss-smart-import": {},
"postcss-cssnext": {
"features": {
"customProperties": {
"preserve": true
}
},
"browsers": [
"ie > 10",
"last 2 Edge versions",

@ -21,7 +21,7 @@ const pkgdef :Spk.PackageDefinition = (
appVersion = 62, # Increment this for every release.
appMarketingVersion = (defaultText = "0.57.0-develop"),
appMarketingVersion = (defaultText = "0.59.0-develop"),
# Human-readable representation of appVersion. Should match the way you
# identify versions of your app in documentation and marketing.

@ -56,6 +56,9 @@ git.status()
if (status.current === 'master') {
return semver.inc(pkgJson.version, 'patch');
}
if (status.current === 'develop') {
return semver.inc(semver.inc(pkgJson.version, 'minor'), 'minor')+'-develop';
}
return Promise.reject(`No release action for branch ${ status.current }`);
})
.then(nextVersion => inquirer.prompt([{

@ -1,5 +1,8 @@
{
"rules": {
"plugins": [
"stylelint-order"
],
"rules": {
"at-rule-empty-line-before": [ "always", {
except: [
"blockless-after-same-name-blockless",
@ -43,7 +46,6 @@
"declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-empty-line-before": "never",
"font-family-no-duplicate-names": true,
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "always-multi-line",
@ -107,5 +109,220 @@
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never",
"value-list-max-empty-lines": 0,
"order/properties-order": [
[
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"position",
"z-index",
"top",
"right",
"bottom",
"left"
]
},
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"display",
"visibility",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"clip",
"zoom",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"flex"
]
},
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"box-sizing",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left"
]
},
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"table-layout",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image"
]
},
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"cursor",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"text-align",
"text-align-last",
"vertical-align",
"white-space",
"text-decoration",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"text-justify",
"text-transform",
"letter-spacing",
"word-spacing",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"word-wrap",
"word-break",
"tab-size",
"hyphens",
"pointer-events"
]
},
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"color",
"border",
"border-collapse",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"background",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"background-color",
"background-image",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-size",
"box-decoration-break",
"box-shadow",
"filter:progid:DXImageTransform.Microsoft.gradient",
"text-shadow"
]
},
{
"emptyLineBefore": "always",
"order": "strict",
"properties": [
"font",
"font-family",
"font-size",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"line-height"
]
}
],
{ unspecified: "bottomAlphabetical" }
]
}
}

@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then
RC_VERSION=$TRAVIS_TAG
else
CHANNEL=edge
RC_VERSION=0.57.0-develop
RC_VERSION=0.59.0-develop
fi
echo "Preparing to trigger a snap release for $CHANNEL channel"

@ -1,3 +1,18 @@
<a name="0.57.2"></a>
## 0.57.2 (2017-07-14)
### Bug Fixes
- [#7472](https://github.com/RocketChat/Rocket.Chat/pull/7472) Always set LDAP properties on login
- [#7431](https://github.com/RocketChat/Rocket.Chat/pull/7431) Fix Emails in User Admin View
- [#7469](https://github.com/RocketChat/Rocket.Chat/pull/7469) Fix file upload on Slack import
- [#7432](https://github.com/RocketChat/Rocket.Chat/pull/7432) Fix Private Channel List Submit
- [#7403](https://github.com/RocketChat/Rocket.Chat/pull/7403) Fix Unread Bar Disappearing
- [#7443](https://github.com/RocketChat/Rocket.Chat/pull/7443) S3 uploads not working for custom URLs
<a name="0.57.1"></a>
## 0.57.1 (2017-07-06)
- :hand: [#7428](https://github.com/RocketChat/Rocket.Chat/pull/7428) Fix migration of avatars from version 0.57.0

@ -85,7 +85,7 @@ Install Rocket.Chat in seconds on Linux (Ubuntu and others) with:
sudo snap install rocketchat-server
```
[![Rocket.Chat Snap is recommended for Linux deployments](https://github.com/Sing-Li/bbug/raw/master/images/ubuntulogo.png)](https://uappexplorer.com/app/rocketchat-server.rocketchat)
[![Rocket.Chat Snap is recommended for Linux deployments](https://github.com/Sing-Li/bbug/raw/master/images/ubuntulogo.png)](https://uappexplorer.com/snap/ubuntu/rocketchat-server)
Installing snaps is very quick. By running that command you have your full Rocket.Chat server up and running. Snaps are secure. They are isolated with all of their dependencies. Snaps also auto update when we release new versions.
@ -119,7 +119,7 @@ Get your Rocket.Chat instance hosted in a "as a Service" style. You register and
[![Rocket.Chat on IndieHosters](https://indie.host/signup.png)](https://indiehosters.net/shop/product/rocket-chat-21)
## Ubuntu 16.04
[![Ubuntu Apps Explorer](https://raw.githubusercontent.com/Sing-Li/bbug/master/images/uappexplorer.png)](https://uappexplorer.com/app/rocketchat-server.rocketchat)
[![Ubuntu Apps Explorer](https://raw.githubusercontent.com/Sing-Li/bbug/master/images/uappexplorer.png)](https://uappexplorer.com/snap/ubuntu/rocketchat-server)
Deploy from shell:

@ -68,14 +68,6 @@ FlowRouter.route('/home', {
}
});
FlowRouter.route('/changeavatar', {
name: 'changeAvatar',
action() {
BlazeLayout.render('main', {center: 'avatarPrompt'});
}
});
FlowRouter.route('/account/:group?', {
name: 'account',
@ -85,7 +77,10 @@ FlowRouter.route('/account/:group?', {
}
params.group = _.capitalize(params.group, true);
BlazeLayout.render('main', { center: `account${ params.group }` });
}
},
triggersExit: [function() {
$('.main-content').addClass('rc-old');
}]
});
FlowRouter.route('/history/private', {

@ -0,0 +1,32 @@
#!/bin/bash
set -x
set -euvo pipefail
IFS=$'\n\t'
# Requies Node.js version 4.x
# Do not run as root
DEPLOY_DIR=/var/www/rocket.chat
### BUILD
meteor npm install
# on the very first build, meteor build command should fail due to a bug on emojione package (related to phantomjs installation)
# the command below forces the error to happen before build command (not needed on subsequent builds)
set +e
meteor add rocketchat:lib
set -e
meteor build --server-only --directory $DEPLOY_DIR
### RUN
cd $DEPLOY_DIR/bundle/programs/server
npm install
cd $DEPLOY_DIR/bundle
NODE_ENV=production \
PORT=3000 \
ROOT_URL=http://localhost:3000 \
MONGO_URL=mongodb://localhost:27017/rocketchat \
MONGO_OPLOG_URL=mongodb://localhost:27017/local \
node main.js

@ -1,16 +0,0 @@
#!/bin/bash
set -x
set -euvo pipefail
IFS=$'\n\t'
# Build
export NODE_ENV=production
meteor add rocketchat:internal-hubot
meteor build --server https://demo.rocket.chat --directory /var/www/rocket.chat
# Run
export METEOR_SETTINGS=$(cat settings.json)
cd /var/www/rocket.chat/bundle/programs/server
npm install
cd /var/www/rocket.chat/current
pm2 startOrRestart /var/www/rocket.chat/current/pm2.json

2
package-lock.json generated

@ -4062,7 +4062,7 @@
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
},
"phantomjs-prebuilt": {
"version": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz",
"version": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz",
"integrity": "sha1-ZlVq2ell2JPKWn3J52PffoaX920=",
"dev": true,
"dependencies": {

@ -1,7 +1,7 @@
{
"name": "Rocket.Chat",
"description": "The Ultimate Open Source WebChat Platform",
"version": "0.57.0-develop",
"version": "0.59.0-develop",
"author": {
"name": "Rocket.Chat",
"url": "https://rocket.chat/"
@ -23,6 +23,14 @@
"name": "Gabriel Engel",
"email": "gabriel.engel@rocket.chat"
},
{
"name": "Guilherme Gazzo",
"email": "guilherme.gazzo@rocket.chat"
},
{
"name": "Karl Prieb",
"email": "karl.priebk@rocket.chat"
},
{
"name": "Marcelo Schmidt",
"email": "marcelo.schmidt@rocket.chat"
@ -54,7 +62,7 @@
"start": "meteor npm i && meteor",
"lint": "eslint .",
"lint-fix": "eslint . --fix",
"stylelint": "stylelint 'packages/**/*.{less,css}'",
"stylelint": "stylelint packages/**/*.css",
"test": "node .scripts/start.js",
"deploy": "npm run build && pm2 startOrRestart pm2.json",
"chimp-watch": "chimp --ddp=http://localhost:3000 --watch --mocha --path=tests/end-to-end",
@ -81,20 +89,21 @@
"babel-plugin-array-includes": "^2.0.3",
"chimp": "^0.49.1",
"conventional-changelog-cli": "^1.3.2",
"eslint": "^4.2.0",
"eslint": "^4.5.0",
"postcss-cssnext": "^2.11.0",
"postcss-smart-import": "^0.7.5",
"simple-git": "^1.73.0",
"stylelint": "^7.13.0",
"simple-git": "^1.75.0",
"stylelint": "^8.0.0",
"stylelint-order": "^0.6.0",
"supertest": "^3.0.0"
},
"dependencies": {
"@google-cloud/storage": "^1.2.0",
"aws-sdk": "^2.86.0",
"babel-runtime": "^6.23.0",
"@google-cloud/storage": "^1.2.1",
"aws-sdk": "^2.100.0",
"babel-runtime": "^6.26.0",
"bcrypt": "^1.0.2",
"codemirror": "^5.27.4",
"file-type": "^5.2.0",
"codemirror": "^5.28.0",
"file-type": "^6.1.0",
"highlight.js": "^9.12.0",
"jquery": "^3.2.1",
"mime-db": "^1.29.0",
@ -102,8 +111,9 @@
"moment": "^2.18.1",
"moment-timezone": "^0.5.13",
"photoswipe": "^4.1.2",
"prom-client": "^10.0.2",
"semver": "^5.3.0",
"toastr": "^2.1.2"
"prom-client": "^10.0.3",
"semver": "^5.4.1",
"toastr": "^2.1.2",
"wolfy87-eventemitter": "^5.2.2"
}
}

@ -1,5 +1,5 @@
/* globals Deps, getCaretCoordinates*/
const AutoCompleteRecords = new Mongo.Collection('autocompleteRecords');
import AutoCompleteRecords from './collection';
const isServerSearch = function(rule) {
return _.isString(rule.collection);
@ -74,6 +74,11 @@ this.AutoComplete = class {
this.limit = settings.limit || 5;
this.position = settings.position || 'bottom';
this.rules = settings.rules;
this.selector = {
constainer: '.-autocomplete-container',
item: '.-autocomplete-item',
...settings.selector
};
const rules = this.rules;
Object.keys(rules).forEach(key => {
@ -258,8 +263,8 @@ this.AutoComplete = class {
}
onItemHover(doc, e) {
this.tmplInst.$('.-autocomplete-item').removeClass('selected');
$(e.target).closest('.-autocomplete-item').addClass('selected');
this.tmplInst.$(this.selector.item).removeClass('selected');
$(e.target).closest(this.selector.item).addClass('selected');
}
filteredList() {
@ -305,7 +310,7 @@ this.AutoComplete = class {
// Replace text with currently selected item
select() {
const node = this.tmplInst.find('.-autocomplete-item.selected');
const node = this.tmplInst.find(`${ this.selector.item }.selected`);
if (node == null) {
return false;
}
@ -376,7 +381,7 @@ this.AutoComplete = class {
positionContainer() {
// First render; Pick the first item and set css whenever list gets shown
let pos;
let pos = {};
const position = this.$element.position();
const rule = this.matchedRule();
const offset = getCaretCoordinates(this.element, this.element.selectionStart);
@ -384,10 +389,11 @@ this.AutoComplete = class {
// In whole-field positioning, we don't move the container and make it the
// full width of the field.
if (rule && isWholeField(rule)) {
pos = {
left: position.left,
width: this.$element.outerWidth() //position.offsetWidth
};
pos.left = position.left;
if (rule.doNotChangeWidth !== false) {
pos.width = this.$element.outerWidth(); //position.offsetWidth
}
} else { //Normal positioning, at token word
pos = { left: position.left + offset.left };
}
@ -398,36 +404,36 @@ this.AutoComplete = class {
} else {
pos.top = position.top + offset.top + parseInt(this.$element.css('font-size'));
}
this.tmplInst.$('.-autocomplete-container').css(pos);
this.tmplInst.$(this.selector.container).css(pos);
}
ensureSelection() {
// Re-render; make sure selected item is something in the list or none if list empty
const selectedItem = this.tmplInst.$('.-autocomplete-item.selected');
const selectedItem = this.tmplInst.$(`${ this.selector.item }.selected`);
if (!selectedItem.length) {
// Select anything
this.tmplInst.$('.-autocomplete-item:first-child').addClass('selected');
this.tmplInst.$(`${ this.selector.item }:first-child`).addClass('selected');
}
}
// Select next item in list
next() {
const currentItem = this.tmplInst.$('.-autocomplete-item.selected');
const currentItem = this.tmplInst.$(`${ this.selector.item }.selected`);
if (!currentItem.length) {
return;
return this.tmplInst.$(`${ this.selector.item }:first-child`).addClass('selected');
}
currentItem.removeClass('selected');
const next = currentItem.next();
if (next.length) {
next.addClass('selected');
} else { //End of list or lost selection; Go back to first item
this.tmplInst.$('.-autocomplete-item:first-child').addClass('selected');
this.tmplInst.$(`${ this.selector.item }:first-child`).addClass('selected');
}
}
//Select previous item in list
prev() {
const currentItem = this.tmplInst.$('.-autocomplete-item.selected');
const currentItem = this.tmplInst.$(`${ this.selector.item }.selected`);
if (!currentItem.length) {
return; //Don't try to iterate an empty list
}
@ -436,7 +442,7 @@ this.AutoComplete = class {
if (prev.length) {
prev.addClass('selected');
} else { //Beginning of list or lost selection; Go to end of list
this.tmplInst.$('.-autocomplete-item:last-child').addClass('selected');
this.tmplInst.$(`${ this.selector.item }:last-child`).addClass('selected');
}
}

@ -0,0 +1 @@
export default new Mongo.Collection('autocompleteRecords');

@ -62,7 +62,7 @@ Template._autocompleteContainer.destroyed = function() {
Template._autocompleteContainer.events({
// t.data is the AutoComplete instance; `this` is the data item
'click .-autocomplete-item'(e, t) {
'click .-autocomplete-item, click [data-autocomplete]'(e, t) {
t.data.onItemClick(this, e);
},
'mouseenter .-autocomplete-item'(e, t) {
@ -78,3 +78,4 @@ Template._autocompleteContainer.helpers({
return this.matchedRule().noMatchTemplate || Template._noMatch;
}
});
export { acEvents, attributes, autocompleteHelpers };

@ -25,17 +25,4 @@ Package.onUse(function(api) {
], 'server');
api.export('Autocomplete', 'server');
api.export('AutocompleteTest', {testOnly: true});
});
Package.onTest(function(api) {
api.use('mizzao:autocomplete');
api.use('mongo');
api.use('tinytest');
api.addFiles('tests/rule_tests.coffee', 'client');
api.addFiles('tests/regex_tests.coffee', 'client');
api.addFiles('tests/param_tests.coffee', 'client');
api.addFiles('tests/security_tests.coffee');
});

@ -1,25 +1,31 @@
.message {
.actionLinks {
padding: 0;
& .actionLinks {
margin-top: 4px;
margin-bottom: 4px;
padding: 0;
text-align: center;
li {
cursor: pointer;
& li {
position: relative;
display: inline;
padding-right: 2px;
list-style: none;
display: inline;
.action-link {
cursor: pointer;
& .action-link {
margin: 0 2px;
padding: 5px;
border-radius: 7px;
margin: 0 2px;
}
}
li:last-child::after {
& li:last-child::after {
content: none;
}
}

@ -11,14 +11,13 @@ Package.onUse(function(api) {
api.use('rocketchat:lib');
api.use('rocketchat:theme');
api.use('rocketchat:ui');
api.use('less');
api.addFiles('both/lib/actionLinks.js');
api.addFiles('client/lib/actionLinks.js', 'client');
api.addFiles('client/init.js', 'client');
api.addFiles('client/stylesheets/actionLinks.less', 'client');
api.addFiles('client/stylesheets/actionLinks.css', 'client');
api.addFiles('server/actionLinkHandler.js', 'server');
});

@ -2,6 +2,10 @@ Template.body.onRendered(() => {
Tracker.autorun((c) => {
const piwikUrl = RocketChat.settings.get('PiwikAnalytics_enabled') && RocketChat.settings.get('PiwikAnalytics_url');
const piwikSiteId = piwikUrl && RocketChat.settings.get('PiwikAnalytics_siteId');
const piwikPrependDomain = piwikUrl && RocketChat.settings.get('PiwikAnalytics_prependDomain');
const piwikCookieDomain = piwikUrl && RocketChat.settings.get('PiwikAnalytics_cookieDomain');
const piwikDomains = piwikUrl && RocketChat.settings.get('PiwikAnalytics_domains');
const piwikAdditionalTracker = piwikUrl && RocketChat.settings.get('PiwikAdditionalTrackers');
const googleId = RocketChat.settings.get('GoogleAnalytics_enabled') && RocketChat.settings.get('GoogleAnalytics_ID');
if (piwikSiteId || googleId) {
c.stop();
@ -14,7 +18,31 @@ Template.body.onRendered(() => {
window._paq.push(['trackPageView']);
window._paq.push(['enableLinkTracking']);
if (piwikPrependDomain) {
window._paq.push(['setDocumentTitle', `${ window.location.hostname }/${ document.title }`]);
}
const upperLevelDomain = `*.${ window.location.hostname.split('.').slice(1).join('.') }`;
if (piwikCookieDomain) {
window._paq.push(['setCookieDomain', upperLevelDomain]);
}
if (piwikDomains) {
// array
const domainsArray = piwikDomains.split(/\n/);
const domains = [];
for (let i = 0; i < domainsArray.length; i++) {
// only push domain if it contains a non whitespace character.
if (/\S/.test(domainsArray[i])) {
domains.push(`*.${ domainsArray[i].trim() }`);
}
}
window._paq.push(['setDomains', domains]);
}
(() => {
const addTrackers = JSON.parse(piwikAdditionalTracker);
for (let i = 0; i < addTrackers.length; i++) {
const tracker = addTrackers[i];
window._paq.push(['addTracker', `${ tracker['trackerURL'] }piwik.php`, tracker['siteId']]);
}
window._paq.push(['setTrackerUrl', `${ piwikUrl }piwik.php`]);
window._paq.push(['setSiteId', Number.parseInt(piwikSiteId)]);
const d = document;

@ -8,7 +8,7 @@ function trackEvent(category, action, label) {
}
if (!window._paq || window.ga) {
//Trigger the trackPageView manually as the page views don't seem to be tracked
//Trigger the trackPageView manually as the page views are only loaded when the loadScript.js code is executed
FlowRouter.triggers.enter([(route) => {
if (window._paq) {
const http = location.protocol;

@ -18,6 +18,32 @@ RocketChat.settings.addGroup('Analytics', function addSettings() {
i18nLabel: 'Client_ID',
enableQuery
});
this.add('PiwikAdditionalTrackers', '', {
type: 'string',
multiline: true,
public: true,
i18nLabel: 'PiwikAdditionalTrackers',
enableQuery
});
this.add('PiwikAnalytics_prependDomain', false, {
type: 'boolean',
public: true,
i18nLabel: 'PiwikAnalytics_prependDomain',
enableQuery
});
this.add('PiwikAnalytics_cookieDomain', false, {
type: 'boolean',
public: true,
i18nLabel: 'PiwikAnalytics_cookieDomain',
enableQuery
});
this.add('PiwikAnalytics_domains', '', {
type: 'string',
multiline: true,
public: true,
i18nLabel: 'PiwikAnalytics_domains',
enableQuery
});
});
this.section('Analytics_Google', function() {

@ -332,13 +332,22 @@ RocketChat.API.v1.addRoute('channels.leave', { authRequired: true }, {
RocketChat.API.v1.addRoute('channels.list', { authRequired: true }, {
get: {
//This is like this only to provide an example of how we routes can be defined :X
//This is defined as such only to provide an example of how the routes can be defined :X
action() {
const { offset, count } = this.getPaginationItems();
const { sort, fields, query } = this.parseJsonQuery();
const ourQuery = Object.assign({}, query, { t: 'c' });
//Special check for the permissions
if (RocketChat.authz.hasPermission(this.userId, 'view-joined-room')) {
ourQuery.usernames = {
$in: [ this.user.username ]
};
} else if (!RocketChat.authz.hasPermission(this.userId, 'view-c-room')) {
return RocketChat.API.v1.unauthorized();
}
const rooms = RocketChat.models.Rooms.find(ourQuery, {
sort: sort ? sort : { name: 1 },
skip: offset,

@ -19,12 +19,17 @@ RocketChat.API.v1.addRoute('users.create', { authRequired: true }, {
this.bodyParams.joinDefaultChannels = true;
}
if (this.bodyParams.customFields) {
RocketChat.validateCustomFields(this.bodyParams.customFields);
}
const newUserId = RocketChat.saveUser(this.userId, this.bodyParams);
if (this.bodyParams.customFields) {
RocketChat.saveCustomFields(newUserId, this.bodyParams.customFields);
RocketChat.saveCustomFieldsWithoutValidation(newUserId, this.bodyParams.customFields);
}
if (typeof this.bodyParams.active !== 'undefined') {
Meteor.runAsUser(this.userId, () => {
Meteor.call('setUserActiveStatus', newUserId, this.bodyParams.active);
@ -105,6 +110,10 @@ RocketChat.API.v1.addRoute('users.info', { authRequired: true }, {
RocketChat.API.v1.addRoute('users.list', { authRequired: true }, {
get() {
if (!RocketChat.authz.hasPermission(this.userId, 'view-d-room')) {
return RocketChat.API.v1.unauthorized();
}
const { offset, count } = this.getPaginationItems();
const { sort, fields, query } = this.parseJsonQuery();
@ -186,7 +195,11 @@ RocketChat.API.v1.addRoute('users.resetAvatar', { authRequired: true }, {
RocketChat.API.v1.addRoute('users.setAvatar', { authRequired: true }, {
post() {
check(this.bodyParams, { avatarUrl: Match.Maybe(String), userId: Match.Maybe(String) });
check(this.bodyParams, Match.ObjectIncluding({
avatarUrl: Match.Maybe(String),
userId: Match.Maybe(String),
username: Match.Maybe(String)
}));
let user;
if (this.isUserFromParams()) {

@ -1,51 +1,61 @@
.permissions-manager {
h2 {
font-weight: bold !important;
font-size: 16px;
& h2 {
margin-top: 1em !important;
margin-bottom: 1em !important;
border-bottom-width: 1px;
font-size: 16px;
font-weight: bold !important;
}
.permission-grid {
th {
white-space: normal;
text-align: center;
& .permission-grid {
& th {
position: relative;
padding-top: 20px;
}
td {
text-align: center;
white-space: normal;
}
& td {
width: 10%;
text-align: center;
}
.icon-edit {
font-size: 80%;
& .icon-edit {
position: absolute;
padding-left: 2px;
top: 0;
left: 50%;
padding-left: 2px;
transform: translateX(-50%);
font-size: 80%;
}
.permission-name {
& .permission-name {
cursor: default;
}
}
.empty-role {
& .empty-role {
padding: 0.5em !important;
}
.form-role {
label {
width: 150px;
& .form-role {
& label {
display: inline-block;
width: 150px;
text-align: right;
}
.form-buttons {
& .form-buttons {
padding-left: 150px;
}
}

@ -0,0 +1,14 @@
/* globals RoomRoles */
Meteor.startup(function() {
RocketChat.Notifications.onLogged('Users:NameChanged', function({_id, name}) {
RoomRoles.update({
'u._id': _id
}, {
$set: {
'u.name': name
}
}, {
multi: true
});
});
});

@ -10,13 +10,11 @@ Package.onUse(function(api) {
api.use([
'ecmascript',
'underscore',
'rocketchat:lib',
'less'
'rocketchat:lib'
]);
api.use('mongo', ['client', 'server']);
api.use('kadira:flow-router', 'client');
api.use('less', 'client');
api.use('tracker', 'client');
api.use('templating', 'client');
@ -34,6 +32,7 @@ Package.onUse(function(api) {
api.addFiles('client/requiresPermission.html', ['client']);
api.addFiles('client/route.js', ['client']);
api.addFiles('client/usersNameChanged.js', ['client']);
// views
api.addFiles('client/views/permissions.html', ['client']);
@ -42,7 +41,7 @@ Package.onUse(function(api) {
api.addFiles('client/views/permissionsRole.js', ['client']);
// stylesheets
api.addFiles('client/stylesheets/permissions.less', 'client');
api.addFiles('client/stylesheets/permissions.css', 'client');
api.addFiles('server/models/Permissions.js', ['server']);
api.addFiles('server/models/Roles.js', ['server']);

@ -23,8 +23,10 @@ function AutoLinker(message) {
if (match.getType() === 'url') {
if (regUrls.test(match.matchedText)) {
if (match.matchedText.indexOf(Meteor.absoluteUrl()) === 0) {
const tag = match.buildTag(); // returns an `Autolinker.HtmlTag` instance for an <a> tag
tag.setAttr('target', ''); // sets target to empty, instead of _blank
// returns an `Autolinker.HtmlTag` instance for an <a> tag
const tag = match.buildTag();
// sets target to empty, instead of _blank
tag.setAttr('target', '');
return tag;
}

@ -13,7 +13,7 @@ Package.onUse(function(api) {
api.use('ecmascript');
api.use('rocketchat:lib');
api.addFiles('client.js', 'client');
api.addFiles('client/client.js', 'client');
api.addFiles('settings.js', 'server');
api.addFiles('server/settings.js', 'server');
});

@ -5,7 +5,7 @@ Meteor.startup(function() {
groups: ['channel', 'group', 'direct'],
id: 'autotranslate',
i18nTitle: 'Auto_Translate',
icon: 'icon-language',
icon: 'language',
template: 'autoTranslateFlexTab',
order: 20
});

@ -1,56 +1,63 @@
.flex-tab {
.autotranslate {
ul {
li {
& .autotranslate {
& ul {
& li {
margin-bottom: 20px;
}
}
form {
label {
& form {
& label {
display: block;
font-weight: bold;
margin-bottom: 5px;
font-weight: bold;
}
div span {
& div span {
font-size: 14px;
i.icon-pencil {
font-size: 12px;
& i.icon-pencil {
margin-left: 3px;
font-size: 12px;
}
}
}
.submit {
& .submit {
margin-top: 30px;
text-align: center;
}
[data-edit] {
& [data-edit] {
cursor: pointer;
}
}
}
.message {
.translated {
border-left: 1px dotted;
padding-left: 3px;
& .translated {
margin-left: 3px;
padding-left: 3px;
border-left: 1px dotted;
i.icon-language.loading {
& i.icon-language.loading {
display: inline-block;
animation: spinh 2000ms infinite linear;
}
}
&.sequential {
.translated {
border-left: 0;
& .translated {
position: absolute;
left: 5px;
border-left: 0;
}
}
}

@ -9,14 +9,13 @@ Package.onUse(function(api) {
api.use([
'ecmascript',
'ddp-rate-limiter',
'less',
'rocketchat:lib'
]);
api.use('templating', 'client');
api.addFiles([
'client/stylesheets/autotranslate.less',
'client/stylesheets/autotranslate.css',
'client/lib/autotranslate.js',
'client/lib/actionButton.js',
'client/lib/tabBar.js',

@ -18,12 +18,11 @@ Package.onUse(function(api) {
api.use('ecmascript');
// Server files
api.add_files('cas_rocketchat.js', 'server');
api.add_files('cas_server.js', 'server');
api.add_files('server/cas_rocketchat.js', 'server');
api.add_files('server/cas_server.js', 'server');
// Client files
api.add_files('cas_client.js', 'client');
api.add_files('client/cas_client.js', 'client');
});
Npm.depends({

@ -4,7 +4,7 @@ Meteor.startup(() => {
id: 'channel-settings',
anonymous: true,
i18nTitle: 'Room_Info',
icon: 'icon-info-circled',
icon: 'info-circled',
template: 'channelSettings',
order: 0
});

@ -22,9 +22,11 @@ Meteor.startup(function() {
Tracker.nonreactive(() => {
if (msg.t === 'r') {
if (Session.get('openedRoom') === msg.rid) {
const type = FlowRouter.current().route.name === 'channel' ? 'c' : 'p';
RoomManager.close(type + FlowRouter.getParam('name'));
FlowRouter.go(FlowRouter.current().route.name, { name: msg.msg }, FlowRouter.current().queryParams);
const room = ChatRoom.findOne(msg.rid);
if (room.name !== FlowRouter.getParam('name')) {
RoomManager.close(room.t + FlowRouter.getParam('name'));
RocketChat.roomTypes.openRouteLink(room.t, room, FlowRouter.current().queryParams);
}
}
}
});

@ -1,97 +1,113 @@
.flex-tab {
.channel-settings {
ul {
li {
& .channel-settings {
& ul {
& li {
margin-bottom: 20px;
}
}
label {
& label {
display: block;
font-weight: bold;
margin-bottom: 5px;
font-size: 14px;
font-weight: bold;
}
.current-setting {
font-size: 14px;
width: calc(~"100% - 38px");
& .current-setting {
display: inline-block;
vertical-align: middle;
width: calc(100% - 38px);
min-height: 20px;
cursor: pointer;
margin-top: 3px;
cursor: pointer;
vertical-align: middle;
font-size: 14px;
&[data-edit="false"] {
cursor: inherit;
user-select: initial;
}
}
.editing {
& .editing {
margin: -2px 0 -1px -9px;
padding-right: 80px;
font-size: 14px;
margin: -2px 0 -1px -9px;
}
.buttons {
& .buttons {
position: absolute;
top: -1px;
bottom: 0;
right: 10px;
bottom: 0;
border-radius: 0 4px 4px 0;
.button {
& .button {
padding: 8px;
}
}
.button.edit {
padding: 8px;
font-size: 12px;
vertical-align: middle;
& .button.edit {
display: inline-block;
visibility: hidden;
padding: 8px;
vertical-align: middle;
font-size: 12px;
}
.submit {
& .submit {
margin-top: 30px;
text-align: center;
}
.boolean {
& .boolean {
font-size: 0;
> label {
width: calc(~"100% - 45px");
& > label {
display: inline-block;
width: calc(100% - 45px);
vertical-align: middle;
}
.setting-block {
width: 40px;
& .setting-block {
display: inline-block;
vertical-align: middle;
width: 40px;
margin-left: -5px;
vertical-align: middle;
}
}
.setting-block {
& .setting-block {
position: relative;
font-size: 0;
.loading-animation {
& .loading-animation {
top: 30px;
}
&:hover {
.button.edit {
& .button.edit {
visibility: visible;
}
}
}
nav {
& nav {
text-align: right;
}
}

@ -16,6 +16,9 @@ Template.channelSettings.helpers({
}
return true;
}
if (this.$value.getValue) {
return this.$value.getValue(obj, key);
}
return obj && obj[key];
},
showSetting(setting, room) {
@ -152,22 +155,30 @@ Template.channelSettings.onCreated(function() {
canEdit(room) {
return RocketChat.authz.hasAllPermission('edit-room', room._id);
},
getValue(room) {
if (RocketChat.settings.get('UI_Allow_room_names_with_special_chars')) {
return room.fname || room.name;
}
return room.name;
},
save(value, room) {
let nameValidation;
if (!RocketChat.authz.hasAllPermission('edit-room', room._id) || (room.t !== 'c' && room.t !== 'p')) {
return toastr.error(t('error-not-allowed'));
}
try {
nameValidation = new RegExp(`^${ RocketChat.settings.get('UTF8_Names_Validation') }$`);
} catch (error1) {
nameValidation = new RegExp('^[0-9a-zA-Z-_.]+$');
}
if (!nameValidation.test(value)) {
return toastr.error(t('error-invalid-room-name', {
room_name: {
name: value
}
}));
if (!RocketChat.settings.get('UI_Allow_room_names_with_special_chars')) {
try {
nameValidation = new RegExp(`^${ RocketChat.settings.get('UTF8_Names_Validation') }$`);
} catch (error1) {
nameValidation = new RegExp('^[0-9a-zA-Z-_.]+$');
}
if (!nameValidation.test(value)) {
return toastr.error(t('error-invalid-room-name', {
room_name: {
name: value
}
}));
}
}
Meteor.call('saveRoomSettings', room._id, 'roomName', value, function(err) {
if (err) {

@ -11,7 +11,6 @@ Package.onUse(function(api) {
'reactive-var',
'tracker',
'templating',
'less',
'rocketchat:lib'
]);
@ -22,7 +21,7 @@ Package.onUse(function(api) {
'client/startup/trackSettingsChange.js',
'client/views/channelSettings.html',
'client/views/channelSettings.js',
'client/stylesheets/channel-settings.less'
'client/stylesheets/channel-settings.css'
], 'client');
api.addFiles([

@ -1,35 +1,21 @@
RocketChat.saveRoomName = function(rid, name, user, sendMessage = true) {
RocketChat.saveRoomName = function(rid, displayName, user, sendMessage = true) {
const room = RocketChat.models.Rooms.findOneById(rid);
if (room.t !== 'c' && room.t !== 'p') {
throw new Meteor.Error('error-not-allowed', 'Not allowed', {
'function': 'RocketChat.saveRoomName'
'function': 'RocketChat.saveRoomdisplayName'
});
}
let nameValidation;
try {
nameValidation = new RegExp(`^${ RocketChat.settings.get('UTF8_Names_Validation') }$`);
} catch (error) {
nameValidation = new RegExp('^[0-9a-zA-Z-_.]+$');
}
if (!nameValidation.test(name)) {
throw new Meteor.Error('error-invalid-room-name', `${ name } is not a valid room name. Use only letters, numbers, hyphens and underscores`, {
'function': 'RocketChat.saveRoomName',
room_name: name
});
}
if (name === room.name) {
if (displayName === room.name) {
return;
}
if (RocketChat.models.Rooms.findOneByName(name)) {
throw new Meteor.Error('error-duplicate-channel-name', `A channel with name '${ name }' exists`, {
'function': 'RocketChat.saveRoomName',
channel_name: name
});
}
const update = RocketChat.models.Rooms.setNameById(rid, name) && RocketChat.models.Subscriptions.updateNameAndAlertByRoomId(rid, name);
const slugifiedRoomName = RocketChat.getValidRoomName(displayName, rid);
const update = RocketChat.models.Rooms.setNameById(rid, slugifiedRoomName, displayName) && RocketChat.models.Subscriptions.updateNameAndAlertByRoomId(rid, slugifiedRoomName, displayName);
if (update && sendMessage) {
RocketChat.models.Messages.createRoomRenamedWithRoomIdRoomNameAndUser(rid, name, user);
RocketChat.models.Messages.createRoomRenamedWithRoomIdRoomNameAndUser(rid, displayName, user);
}
return name;
return displayName;
};

@ -2,29 +2,27 @@ Meteor.startup(() =>
Tracker.autorun(function() {
if (RocketChat.TabBar) {
if (RocketChat.settings && RocketChat.settings.get('Chatops_Enabled')) {
console.log('Adding chatops to tabbar');
RocketChat.TabBar.addButton({
groups: ['channel', 'group', 'direct'],
id: 'chatops-button2',
i18nTitle: 'rocketchat-chatops:Chatops_Title',
icon: 'icon-hubot',
icon: 'hubot',
template: 'chatops-dynamicUI',
order: 4
});
console.log('Adding chatops to tabbar');
return RocketChat.TabBar.addButton({
RocketChat.TabBar.addButton({
groups: ['channel', 'group', 'direct'],
id: 'chatops-button3',
i18nTitle: 'rocketchat-chatops:Chatops_Title',
icon: 'icon-inbox',
icon: 'inbox',
template: 'chatops_droneflight',
width: 675,
order: 5
});
} else {
RocketChat.TabBar.removeButton('chatops-button2');
return RocketChat.TabBar.removeButton('chatops-button3');
RocketChat.TabBar.removeButton('chatops-button3');
}
}
})

@ -1,16 +1,20 @@
.message-color {
display: inline-block;
font-weight: 100;
}
.message-color-sample {
position: relative;
top: 2px;
display: inline-block;
width: 14px;
height: 14px;
display: inline-block;
border-radius: 3px;
margin-right: 3px;
margin-left: 2px;
border: 1px solid rgba(0, 0, 0, 0.2);
position: relative;
top: 2px;
border-radius: 3px;
}

@ -9,7 +9,7 @@ Package.onUse(function(api) {
api.use('rocketchat:lib');
api.use('ecmascript');
api.addFiles('client.js', ['client']);
api.addFiles('style.css', ['client']);
api.addFiles('settings.js', ['server']);
api.addFiles('client/client.js', 'client');
api.addFiles('client/style.css', 'client');
api.addFiles('server/settings.js', 'server');
});

@ -20,9 +20,9 @@ Package.onUse(function(api) {
api.use('http', 'server');
api.mainModule('custom_oauth_client.js', 'client');
api.mainModule('client/custom_oauth_client.js', 'client');
api.mainModule('custom_oauth_server.js', 'server');
api.mainModule('server/custom_oauth_server.js', 'server');
api.export('CustomOAuth');
});

@ -1,83 +1,91 @@
.sound-info {
.icon-play-circled {
& .icon-play-circled {
cursor: pointer;
}
}
.sound-view {
z-index: 15;
overflow-y: auto;
overflow-x: hidden;
overflow-y: auto;
.thumb {
& .thumb {
width: 100%;
height: 350px;
padding: 20px;
}
nav {
& nav {
padding: 0 20px;
}
.info {
white-space: normal;
& .info {
padding: 0 20px;
h3 {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
white-space: normal;
& h3 {
overflow: hidden;
width: 100%;
margin: 8px 0;
user-select: text;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 24px;
margin: 8px 0;
line-height: 27px;
text-overflow: ellipsis;
width: 100%;
overflow: hidden;
white-space: nowrap;
i::after {
content: " ";
& i::after {
display: inline-block;
width: 8px;
height: 8px;
border-radius: 4px;
content: " ";
vertical-align: middle;
border-radius: 4px;
}
}
p {
& p {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
line-height: 18px;
font-size: 12px;
font-weight: 300;
line-height: 18px;
}
}
.edit-form {
& .edit-form {
padding: 20px 20px 0;
white-space: normal;
h3 {
font-size: 24px;
& h3 {
margin-bottom: 8px;
font-size: 24px;
line-height: 22px;
}
p {
line-height: 18px;
& p {
font-size: 12px;
font-weight: 300;
line-height: 18px;
}
> .input-line {
& > .input-line {
margin-top: 20px;
}
nav {
& nav {
padding: 0;
&.buttons {
@ -85,18 +93,19 @@
}
}
.form-divisor {
text-align: center;
margin: 2em 0;
& .form-divisor {
height: 9px;
margin: 2em 0;
text-align: center;
> span {
& > span {
padding: 0 1em;
}
}
}
.room-info-content > div {
& .room-info-content > div {
margin: 0 0 20px;
}
}

@ -46,7 +46,7 @@ Template.adminSounds.onCreated(function() {
groups: ['custom-sounds', 'custom-sounds-selected'],
id: 'add-sound',
i18nTitle: 'Custom_Sound_Add',
icon: 'icon-plus',
icon: 'plus',
template: 'adminSoundEdit',
openClick(/*e, t*/) {
instance.tabBarData.set();
@ -59,7 +59,7 @@ Template.adminSounds.onCreated(function() {
groups: ['custom-sounds-selected'],
id: 'admin-sound-info',
i18nTitle: 'Custom_Sound_Info',
icon: 'icon-cog',
icon: 'customize',
template: 'adminSoundInfo',
order: 2
});

@ -8,7 +8,6 @@ Package.describe({
Package.onUse(function(api) {
api.use([
'ecmascript',
'less',
'rocketchat:file',
'rocketchat:lib',
'templating',
@ -33,18 +32,18 @@ Package.onUse(function(api) {
'server/methods/uploadCustomSound.js'
], 'server');
api.addFiles('assets/stylesheets/customSoundsAdmin.less', 'client');
api.addFiles('admin/startup.js', 'client');
api.addFiles('admin/adminSounds.html', 'client');
api.addFiles('admin/adminSounds.js', 'client');
api.addFiles('admin/adminSoundEdit.html', 'client');
api.addFiles('admin/adminSoundInfo.html', 'client');
api.addFiles('admin/soundEdit.html', 'client');
api.addFiles('admin/soundEdit.js', 'client');
api.addFiles('admin/soundInfo.html', 'client');
api.addFiles('admin/soundInfo.js', 'client');
api.addFiles('admin/route.js', 'client');
api.addFiles('assets/stylesheets/customSoundsAdmin.css', 'client');
api.addFiles('client/admin/startup.js', 'client');
api.addFiles('client/admin/adminSounds.html', 'client');
api.addFiles('client/admin/adminSounds.js', 'client');
api.addFiles('client/admin/adminSoundEdit.html', 'client');
api.addFiles('client/admin/adminSoundInfo.html', 'client');
api.addFiles('client/admin/soundEdit.html', 'client');
api.addFiles('client/admin/soundEdit.js', 'client');
api.addFiles('client/admin/soundInfo.html', 'client');
api.addFiles('client/admin/soundInfo.js', 'client');
api.addFiles('client/admin/route.js', 'client');
api.addFiles('client/lib/CustomSounds.js', 'client');
api.addFiles('client/models/CustomSounds.js', 'client');

@ -1,10 +1,13 @@
.icon-dolphin {
display: inline-block;
width: 30px;
height: 20px;
vertical-align: middle;
background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDMwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGlkPSJzaWduLWluIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgMCAwIDAuNSAwIDApIj4NCjxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik02NjAuNjcyIDUwMC4wMzJxMCAxNC41MDggLTEwLjYwMiAyNS4xMWwtMzAzLjU1MiAzMDMuNTUycS0xMC42MDIgMTAuNjAyIC0yNS4xMSAxMC42MDJ0LTI1LjExIC0xMC42MDIgLTEwLjYwMiAtMjUuMTF2LTE2MC43MDRoLTI0OS45ODRxLTE0LjUwOCAwIC0yNS4xMSAtMTAuNjAydC0xMC42MDIgLTI1LjExdi0yMTQuMjcycTAgLTE0LjUwOCAxMC42MDIgLTI1LjExdDI1LjExIC0xMC42MDJoMjQ5Ljk4NHYtMTYwLjcwNHEwIC0xNC41MDggMTAuNjAyIC0yNS4xMXQyNS4xMSAtMTAuNjAyIDI1LjExIDEwLjYwMmwzMDMuNTUyIDMwMy41NTJxMTAuNjAyIDEwLjYwMiAxMC42MDIgMjUuMTF6bTE5Ni40MTYgLTE5Ni40MTZ2MzkyLjgzMnEwIDY2LjQwMiAtNDcuMTUxIDExMy41NTN0LTExMy41NTMgNDcuMTUxaC0xNzguNTZxLTcuMjU0IDAgLTEyLjU1NSAtNS4zMDF0LTUuMzAxIC0xMi41NTVxMCAtMi4yMzIgLS41NTggLTExLjE2dC0uMjc5IC0xNC43ODcgMS42NzQgLTEzLjExMyA1LjU4IC0xMC44ODEgMTEuNDM5IC0zLjYyN2gxNzguNTZxMzYuODI4IDAgNjMuMDU0IC0yNi4yMjZ0MjYuMjI2IC02My4wNTR2LTM5Mi44MzJxMCAtMzYuODI4IC0yNi4yMjYgLTYzLjA1NHQtNjMuMDU0IC0yNi4yMjZoLTE3NC4wOTZ0LTYuNDE3IC0uNTU4IC02LjQxNyAtMS42NzQgLTQuNDY0IC0zLjA2OSAtMy45MDYgLTUuMDIyIC0xLjExNiAtNy41MzNxMCAtMi4yMzIgLS41NTggLTExLjE2dC0uMjc5IC0xNC43ODcgMS42NzQgLTEzLjExMyA1LjU4IC0xMC44ODEgMTEuNDM5IC0zLjYyN2gxNzguNTZxNjYuNDAyIDAgMTEzLjU1MyA0Ny4xNTF0NDcuMTUxIDExMy41NTN6Ii8+DQo8L2c+DQo8L3N2Zz4=);
background-repeat: no-repeat;
vertical-align: middle;
}
.icon-dolphin ~ .icon-spin,

@ -1,7 +1,9 @@
.icon-drupal.service-icon {
display: inline-block;
width: 21px;
height: 28px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAcCAYAAACOGPReAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAcNJREFUSMetlbFrFFEQh7/dJnhpDHcx6SyiRLhLkUKDsRZB8S9IWi2Syj8iVooQ0FLBNlqJRpNO8Br7FLkoRDBooQHhNCr6WTjB48zd7d7uNI+d+c333pt9bx5kNPVGVm1WYF39rTbKhD7zr62XBVwI4MsYF4sCZ9S2uq6mMbbVmWGBx9WW+kGdCN+J+G6pY3mBo2pT/ape6IrNx2qb6mhW4Ii6qf5Ur/TQXI74pjoyCJioa3F8FgdoF0K3pib9hLfiDy9l3NVS6G/3EiyH4GbO+q9E3nJ3oKF+Vx/33Urvkj2K/EZn4JW6l/uY/MsfU9+rzUPHXCz/+jDADvC14Myhrqpf1EpB6LHgrCbqa+BzkiSXikAD/ByopcAUsFUUGLYFTKVABWiXBG0DlRTYB8ZLgo4D+ynQAuolQevAdgq8AM6rk0Vo0R7ngQ3UU+qvvNfzCOhKcE4fOu6r39TpIYHT0XsfdDon45puq7WcwFrk7f1XQvVsdPS3Wd+geMPeRN65XqJZdVf9od5Tz/TZ7t3Q7aqzg2avqnfUg2gQO+pT9WGMO+E/CF21m5H0gU8AV4GLwEmgCnwC3gEbwJMkST4elfsHJbIReGbv9uUAAAAASUVORK5CYII=);
background-repeat: no-repeat;
}

@ -46,7 +46,7 @@ Template.adminEmoji.onCreated(function() {
groups: ['emoji-custom'],
id: 'add-emoji',
i18nTitle: 'Custom_Emoji_Add',
icon: 'icon-plus',
icon: 'plus',
template: 'adminEmojiEdit',
order: 1
});
@ -55,7 +55,7 @@ Template.adminEmoji.onCreated(function() {
groups: ['emoji-custom'],
id: 'admin-emoji-info',
i18nTitle: 'Custom_Emoji_Info',
icon: 'icon-cog',
icon: 'customize',
template: 'adminEmojiInfo',
order: 2
});

@ -1,98 +1,112 @@
.emojiAdminPreview {
height: 100%;
width: 100%;
overflow: hidden;
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
border-radius: 4px;
.emojiAdminPreview-image {
height: 100%;
& .emojiAdminPreview-image {
position: relative;
display: block;
width: 100%;
min-height: 20px;
min-width: 20px;
display: block;
position: relative;
background-size: cover;
height: 100%;
min-height: 20px;
border-radius: 4px;
background-repeat: no-repeat;
background-position: center;
border-radius: 4px;
background-size: cover;
}
}
.emoji-view {
z-index: 15;
overflow-y: auto;
overflow-x: hidden;
overflow-y: auto;
.thumb {
& .thumb {
width: 100%;
height: 350px;
padding: 20px;
}
nav {
& nav {
padding: 0 20px;
}
.info {
white-space: normal;
& .info {
padding: 0 20px;
h3 {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
white-space: normal;
& h3 {
overflow: hidden;
width: 100%;
margin: 8px 0;
user-select: text;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 24px;
margin: 8px 0;
line-height: 27px;
text-overflow: ellipsis;
width: 100%;
overflow: hidden;
white-space: nowrap;
i::after {
content: " ";
& i::after {
display: inline-block;
width: 8px;
height: 8px;
border-radius: 4px;
content: " ";
vertical-align: middle;
border-radius: 4px;
}
}
p {
& p {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
line-height: 18px;
font-size: 12px;
font-weight: 300;
line-height: 18px;
}
}
.edit-form {
& .edit-form {
padding: 20px 20px 0;
white-space: normal;
h3 {
font-size: 24px;
& h3 {
margin-bottom: 8px;
font-size: 24px;
line-height: 22px;
}
p {
line-height: 18px;
& p {
font-size: 12px;
font-weight: 300;
line-height: 18px;
}
> .input-line {
& > .input-line {
margin-top: 20px;
}
nav {
& nav {
padding: 0;
&.buttons {
@ -100,18 +114,19 @@
}
}
.form-divisor {
text-align: center;
margin: 2em 0;
& .form-divisor {
height: 9px;
margin: 2em 0;
text-align: center;
> span {
& > span {
padding: 0 1em;
}
}
}
.room-info-content > div {
& .room-info-content > div {
margin: 0 0 20px;
}
}

@ -8,7 +8,6 @@ Package.describe({
Package.onUse(function(api) {
api.use([
'ecmascript',
'less',
'rocketchat:emoji',
'rocketchat:file',
'rocketchat:lib',
@ -34,7 +33,7 @@ Package.onUse(function(api) {
'server/methods/uploadEmojiCustom.js'
], 'server');
api.addFiles('assets/stylesheets/emojiCustomAdmin.less', 'client');
api.addFiles('assets/stylesheets/emojiCustomAdmin.css', 'client');
api.addFiles([
'admin/startup.js',

@ -0,0 +1,6 @@
/* globals emojione */
Meteor.startup(function() {
RocketChat.callbacks.add('beforeNotifyUser', (message) => {
return emojione.shortnameToUnicode(message);
});
});

@ -13,9 +13,10 @@ Package.onUse(function(api) {
'rocketchat:lib'
]);
api.addFiles('emojiPicker.js', 'client');
api.addFiles('emojiPicker.js');
api.addFiles('rocketchat.js', 'client');
api.addFiles('rocketchat.js');
api.addFiles('sprites.css', 'client');
api.addFiles('callbacks.js', 'server');
});

@ -1,25 +1,30 @@
.emojione {
image-rendering: -webkit-optimize-contrast;
image-rendering: optimizeQuality;
font-size: inherit;
height: 22px;
width: 22px;
position: relative;
display: inline-block;
overflow: hidden;
width: 22px;
height: 22px;
margin: 0 0.15em;
line-height: normal;
vertical-align: middle;
white-space: nowrap;
text-indent: 100%;
background-image: url("../../packages/emojione_emojione/assets/sprites/emojione.sprites.png");
background-size: 4365.625% 4365.625%;
background-repeat: no-repeat;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
background-size: 4365.625% 4365.625%;
font-size: inherit;
line-height: normal;
image-rendering: -webkit-optimize-contrast;
image-rendering: optimizeQuality;
}
.emojione.big {
height: 44px !important;
width: 44px !important;
height: 44px !important;
}
.emojione-0023-20e3 {

@ -1,22 +1,27 @@
.emoji {
image-rendering: auto;
font-size: inherit;
height: 22px;
width: 22px;
position: relative;
display: inline-block;
overflow: hidden;
width: 22px;
height: 22px;
margin: 0 0.15em;
line-height: normal;
vertical-align: middle;
background-position: center;
white-space: nowrap;
text-indent: 100%;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
font-size: inherit;
line-height: normal;
image-rendering: auto;
}
.emoji.big {
height: 44px !important;
width: 44px !important;
height: 44px !important;
}

@ -0,0 +1,34 @@
/* globals Template chatMessages*/
Template.messageBox.events({
'click .emoji-picker-icon'(event) {
event.stopPropagation();
event.preventDefault();
if (RocketChat.EmojiPicker.isOpened()) {
RocketChat.EmojiPicker.close();
} else {
RocketChat.EmojiPicker.open(event.currentTarget, (emoji) => {
const {input} = chatMessages[RocketChat.openedRoom];
const emojiValue = `:${ emoji }:`;
const caretPos = input.selectionStart;
const textAreaTxt = input.value;
input.focus();
if (document.execCommand) {
document.execCommand('insertText', false, emojiValue);
} else {
input.value = textAreaTxt.substring(0, caretPos) + emojiValue + textAreaTxt.substring(caretPos);
}
input.focus();
input.selectionStart = caretPos + emojiValue.length;
input.selectionEnd = caretPos + emojiValue.length;
});
}
}
});
Template.messageBox.onCreated(function() {
RocketChat.EmojiPicker.init();
});

@ -1,5 +1,6 @@
.emoji-picker-icon {
cursor: pointer;
font-size: 18px;
&::before {
@ -14,64 +15,75 @@
}
.emoji-picker {
position: absolute;
display: none;
width: 100%;
max-width: 365px;
border-radius: 5px;
box-shadow:
0 1px 1px 0 rgba(0, 0, 0, 0.2),
0 2px 10px 0 rgba(0, 0, 0, 0.16);
position: absolute;
display: none;
&.show {
display: block;
}
.filter {
& .filter {
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.2);
}
.filter-list {
& .filter-list {
display: flex;
width: 100%;
padding: 0 5px;
}
.filter-item {
& .filter-item {
display: flex;
padding: 6px 0;
border-style: solid;
border-width: 0 0 2px;
display: flex;
justify-content: center;
border-style: solid;
flex-grow: 1;
justify-content: center;
.category-icon {
& .category-icon {
font-size: 20px;
}
}
.current-category-header {
& .current-category-header {
padding: 3px 5px;
}
.emojis {
height: 160px;
& .emojis {
overflow-y: auto;
height: 160px;
padding: 3px 0 0 2px;
.emoji-list {
& .emoji-list {
display: none;
li {
& li {
display: inline-block;
margin: 2px;
padding: 4px 2px 2px;
border-radius: 4px;
cursor: pointer;
transition: transform 0.2s ease;
border-radius: 4px;
&:hover {
transform: scale(1.2);
background-color: #dddddd;
}
}
@ -85,88 +97,127 @@
.emoji-top {
display: flex;
align-items: center;
padding: 5px;
align-items: center;
& .emoji-filter {
position: relative;
.emoji-filter {
width: 90%;
margin-bottom: 0;
& .search {
position: relative;
width: 100%;
height: 35px;
padding: 2px 8px;
border-width: 1px;
border-style: solid;
border-radius: 5px;
outline: none;
line-height: normal;
appearance: none;
}
& .icon-search {
position: absolute;
top: 10px;
left: 7px;
}
}
.change-tone {
width: 10%;
& .change-tone {
position: relative;
display: flex;
width: 10%;
justify-content: center;
position: relative;
a {
& a {
position: relative;
z-index: 10;
}
.current-tone {
& .current-tone {
display: block;
width: 20px;
height: 20px;
border-radius: 10px;
}
.tone-selector {
& .tone-selector {
position: absolute;
border-radius: 4px;
box-shadow:
0 1px 1px 0 rgba(0, 0, 0, 0.2),
0 2px 10px 0 rgba(0, 0, 0, 0.16);
padding: 4px 2px;
top: 25px;
z-index: 1;
top: 25px;
visibility: hidden;
padding: 4px 2px;
transition: transform 0.2s ease, visibility 0.2s ease, opacity 0.2s ease;
transform: translateY(-20px);
opacity: 0;
visibility: hidden;
border-radius: 4px;
box-shadow:
0 1px 1px 0 rgba(0, 0, 0, 0.2),
0 2px 10px 0 rgba(0, 0, 0, 0.16);
&.show {
transform: translateY(0);
opacity: 1;
display: block;
visibility: visible;
transform: translateY(0);
opacity: 1;
}
li {
& li {
display: block;
padding: 0 4px;
}
span {
& span {
display: inline-block;
width: 20px;
height: 20px;
border-radius: 10px;
transition: transform 0.2s ease;
border-radius: 10px;
}
}
.tone-0 {
& .tone-0 {
background-color: #ffcf11;
}
.tone-1 {
& .tone-1 {
background-color: #fae3c3;
}
.tone-2 {
& .tone-2 {
background-color: #e2cfa1;
}
.tone-3 {
& .tone-3 {
background-color: #dba373;
}
.tone-4 {
& .tone-4 {
background-color: #a88054;
}
.tone-5 {
& .tone-5 {
background-color: #5f4e43;
}
}

@ -1,29 +0,0 @@
/* globals Template */
Template.messageBox.events({
'click .emoji-picker-icon'(event) {
event.stopPropagation();
if (RocketChat.EmojiPicker.isOpened()) {
RocketChat.EmojiPicker.close();
} else {
RocketChat.EmojiPicker.open(event.currentTarget, (emoji) => {
const input = $(event.currentTarget).parent().parent().find('.input-message');
const emojiValue = `:${ emoji }:`;
const caretPos = input.prop('selectionStart');
const textAreaTxt = input.val();
input.val(textAreaTxt.substring(0, caretPos) + emojiValue + textAreaTxt.substring(caretPos));
input.focus();
input.prop('selectionStart', caretPos + emojiValue.length);
input.prop('selectionEnd', caretPos + emojiValue.length);
});
}
}
});
Template.messageBox.onCreated(function() {
RocketChat.EmojiPicker.init();
});

@ -10,26 +10,25 @@ Package.onUse(function(api) {
'ecmascript',
'underscore',
'templating',
'less',
'rocketchat:lib',
'rocketchat:ui-message'
]);
api.addFiles('function-isSet.js', 'client');
api.addFiles('rocketchat.js', 'client');
api.addFiles('client/function-isSet.js', 'client');
api.addFiles('client/rocketchat.js');
api.addFiles('emojiParser.js', 'client');
api.addFiles('client/emojiParser.js', 'client');
api.addFiles('emojiPicker.html', 'client');
api.addFiles('emojiPicker.js', 'client');
api.addFiles('emojiPicker.less', 'client');
api.addFiles('client/emojiPicker.html', 'client');
api.addFiles('client/emojiPicker.js', 'client');
api.addFiles('client/emojiPicker.css', 'client');
api.addFiles('emoji.css', 'client');
api.addFiles('client/emoji.css', 'client');
api.addFiles('lib/emojiRenderer.js', 'client');
api.addFiles('lib/EmojiPicker.js', 'client');
api.addFiles('emojiButton.js', 'client');
api.addFiles('keyboardFix.js', 'client');
api.addFiles('client/lib/emojiRenderer.js', 'client');
api.addFiles('client/lib/EmojiPicker.js', 'client');
api.addFiles('client/emojiButton.js', 'client');
api.addFiles('client/keyboardFix.js', 'client');
api.export('renderEmoji');
});

@ -24,6 +24,7 @@ Meteor.methods({
const attachment = {
title: file.name,
type: 'file',
description: file.description,
title_link: fileUrl,
title_link_download: true
@ -54,7 +55,8 @@ Meteor.methods({
msg: '',
file: {
_id: file._id,
name: file.name
name: file.name,
type: file.type
},
groupable: false,
attachments: [attachment]

@ -1,7 +1,9 @@
.icon-github_enterprise::before {
height: 1em;
content: "";
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wJGBYxHYxl31wAAAHpSURBVDjLpZI/aFNRFMZ/973bJqGRPopV4qNq/+SpTYnWRhCKilShg9BGcHOM+GfQoZuLk4iLgw4qZNBaHLuIdBNHl7Ta1qdNFI3SihnaNG1MpH3vuiQYQnwZvHCG893zffc751z4z6PX5T5gA1DAKnAaOAQEgAfAVeCpl+CeCrlRuEC6maO4h0A1wl4tPAHMqNUthvrDdHYY7A3t4rDVjeO6rBU2FaABM1WCrBNoi48Mi+nH9yj+KtPibAKwJXfQ5vcRG7soUnYmWEuQgAEIYBv4cGpoILI0Z4tyYYPegS6UguyijZQ6J45GSNmZHzUcJYD2ii2Ajv7efZ8WZ6ZwXFj79hXpayW4O0SL1Nl/8jzZlZ9dQLFS70pgvZKIyGD0yvu5eRmMnrk1PjI81ir1qBACTdPevXj95mVuNX8XKDQc/+T334bZZ104cvzYw2s3J3qAL5WXSsDbf61NNMBu+wOBs+VSyQ84Nfhg028ZGx3/qyy0lC7lgi7lghBitoon03lvB8l0/k7Wnk+8mny0cyXzEcfZxgwfZPTyRMHsOzAFXE9YhtNQIJnOx4FpJXT1eSkn2g0frqMoFrfoCXcqlCOAGwnLuO/l4JymcWl5uRxzXUKghBAiZ5r+WaV4lrCM555zqO+x2d0ftGmpiA/0k70AAAAASUVORK5CYII=);
height: 1em;
background-position: center center;
background-repeat: no-repeat;
background-position: center center;
}

@ -10,11 +10,6 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"from": "ansi-regex@>=2.0.0 <3.0.0"
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"from": "ansi-styles@>=2.2.1 <3.0.0"
},
"arguejs": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/arguejs/-/arguejs-0.2.3.tgz",
@ -120,11 +115,6 @@
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"from": "caseless@>=0.12.0 <0.13.0"
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"from": "chalk@>=1.1.1 <2.0.0"
},
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@ -150,11 +140,6 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"from": "combined-stream@>=1.0.5 <1.1.0"
},
"commander": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
"from": "commander@>=2.9.0 <3.0.0"
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -218,8 +203,8 @@
"from": "dot-prop@>=4.1.0 <5.0.0"
},
"duplexify": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
"from": "duplexify@>=3.5.0 <4.0.0"
},
"ecc-jsbn": {
@ -233,36 +218,24 @@
"from": "ecdsa-sig-formatter@1.0.9"
},
"end-of-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
"from": "end-of-stream@1.0.0",
"dependencies": {
"once": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
"from": "once@>=1.3.0 <1.4.0"
}
}
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
"from": "end-of-stream@>=1.0.0 <2.0.0"
},
"ent": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
"from": "ent@>=2.2.0 <3.0.0"
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"from": "escape-string-regexp@>=1.0.2 <2.0.0"
},
"extend": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
"from": "extend@>=3.0.0 <4.0.0"
},
"extsprintf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
"from": "extsprintf@1.0.2"
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"from": "extsprintf@1.3.0"
},
"forever-agent": {
"version": "0.6.1",
@ -280,73 +253,21 @@
"from": "fs.realpath@>=1.0.0 <2.0.0"
},
"gcp-metadata": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.2.0.tgz",
"from": "gcp-metadata@>=0.2.0 <0.3.0"
},
"gcs-resumable-upload": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.0.tgz",
"from": "gcs-resumable-upload@>=0.8.0 <0.9.0",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.3.0.tgz",
"from": "gcp-metadata@>=0.3.0 <0.4.0",
"dependencies": {
"caseless": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
"from": "caseless@>=0.11.0 <0.12.0"
},
"gcp-metadata": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.1.0.tgz",
"from": "gcp-metadata@>=0.1.0 <0.2.0"
},
"google-auto-auth": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.6.1.tgz",
"from": "google-auto-auth@>=0.6.0 <0.7.0"
},
"har-validator": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
"from": "har-validator@>=2.0.6 <2.1.0"
},
"node-uuid": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
"from": "node-uuid@>=1.4.7 <1.5.0"
},
"qs": {
"version": "6.3.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
"from": "qs@>=6.3.0 <6.4.0"
},
"retry-request": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-1.3.2.tgz",
"from": "retry-request@>=1.3.2 <2.0.0",
"dependencies": {
"request": {
"version": "2.76.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz",
"from": "request@2.76.0"
}
}
},
"tunnel-agent": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
"from": "tunnel-agent@>=0.4.1 <0.5.0"
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.0.0.tgz",
"from": "retry-request@>=3.0.0 <4.0.0"
}
}
},
"generate-function": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
"from": "generate-function@>=2.0.0 <3.0.0"
},
"generate-object-property": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
"from": "generate-object-property@>=1.1.0 <2.0.0"
"gcs-resumable-upload": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.1.tgz",
"from": "gcs-resumable-upload@>=0.8.0 <0.9.0"
},
"getpass": {
"version": "0.1.7",
@ -371,8 +292,8 @@
"from": "google-auth-library@>=0.10.0 <0.11.0"
},
"google-auto-auth": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.1.tgz",
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.2.tgz",
"from": "google-auto-auth@>=0.7.1 <0.8.0"
},
"google-gax": {
@ -398,8 +319,8 @@
"from": "google-p12-pem@>=0.1.0 <0.2.0"
},
"google-proto-files": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.12.0.tgz",
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.12.1.tgz",
"from": "google-proto-files@>=0.12.0 <0.13.0"
},
"graceful-fs": {
@ -1164,11 +1085,6 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
"from": "har-validator@>=4.2.1 <4.3.0"
},
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"from": "has-ansi@>=2.0.0 <3.0.0"
},
"hash-stream-validation": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz",
@ -1219,21 +1135,11 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"from": "is-fullwidth-code-point@>=1.0.0 <2.0.0"
},
"is-my-json-valid": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
"from": "is-my-json-valid@>=2.12.4 <3.0.0"
},
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"from": "is-obj@>=1.0.0 <2.0.0"
},
"is-property": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"from": "is-property@>=1.0.0 <2.0.0"
},
"is-stream-ended": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz",
@ -1279,14 +1185,9 @@
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
"from": "jsonify@>=0.0.0 <0.1.0"
},
"jsonpointer": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
"from": "jsonpointer@>=4.0.0 <5.0.0"
},
"jsprim": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"from": "jsprim@>=1.2.2 <2.0.0",
"dependencies": {
"assert-plus": {
@ -1421,16 +1322,6 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"from": "pify@>=2.3.0 <3.0.0"
},
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
"from": "pinkie@>=2.0.0 <3.0.0"
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"from": "pinkie-promise@>=2.0.0 <3.0.0"
},
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
@ -1454,14 +1345,7 @@
"pump": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz",
"from": "pump@>=1.0.0 <2.0.0",
"dependencies": {
"end-of-stream": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
"from": "end-of-stream@>=1.1.0 <2.0.0"
}
}
"from": "pump@>=1.0.0 <2.0.0"
},
"pumpify": {
"version": "1.3.5",
@ -1503,10 +1387,10 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"from": "safe-buffer@>=5.1.1 <5.2.0"
},
"slide": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
"from": "slide@>=1.1.5 <2.0.0"
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"from": "signal-exit@>=3.0.2 <4.0.0"
},
"sntp": {
"version": "1.0.9",
@ -1563,18 +1447,13 @@
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"from": "strip-ansi@>=3.0.0 <4.0.0"
"from": "strip-ansi@>=3.0.1 <4.0.0"
},
"stubs": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
"from": "stubs@>=3.0.0 <4.0.0"
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"from": "supports-color@>=2.0.0 <3.0.0"
},
"through2": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
@ -1616,9 +1495,16 @@
"from": "uuid@>=3.0.0 <4.0.0"
},
"verror": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
"from": "verror@1.3.6"
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"from": "verror@1.10.0",
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"from": "assert-plus@>=1.0.0 <2.0.0"
}
}
},
"window-size": {
"version": "0.1.4",
@ -1636,8 +1522,8 @@
"from": "wrappy@>=1.0.0 <2.0.0"
},
"write-file-atomic": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
"from": "write-file-atomic@>=2.0.0 <3.0.0"
},
"xdg-basedir": {

@ -16,5 +16,5 @@ Package.onUse(function(api) {
'rocketchat:lib'
]);
api.addFiles('client.js', 'client');
api.addFiles('client/client.js', 'client');
});

File diff suppressed because it is too large Load Diff

@ -133,6 +133,7 @@
"Add_custom_oauth": "Afegeix OAuth personalitzat",
"Add_Domain": "Afegir domini",
"Add_manager": "Afegeix supervisor",
"Add_Role": "Afegeix rol",
"Add_user": "Afegeix usuari",
"Add_User": "Afegeix usuari",
"Add_users": "Afegeix usuaris",
@ -279,6 +280,7 @@
"Cancel": "Cancel·la",
"Cancel_message_input": "Cancel·la",
"Cannot_invite_users_to_direct_rooms": "No es pot convidar els usuaris a les sales directes",
"Cannot_open_conversation_with_yourself": "No es pot obrir una conversa amb un mateix",
"CAS_autoclose": "Tancar automàticament la finestra emergent d'inici de sessió",
"CAS_base_url": "Adreça URL SSO base",
"CAS_base_url_Description": "Adreça URL base del servei extern SSO. Ex: https://sso.example.undef/sso/",
@ -315,6 +317,7 @@
"Chat_button": "botó de xat",
"Chat_closed": "Xat tancat",
"Chat_closed_successfully": "Xat tancat correctament",
"Chat_Now": "Xateja ara",
"Chat_window": "finestra de xat",
"Chatops_Enabled": "Activa Chatops",
"Chatops_Title": "Tauler de Chatops",
@ -329,6 +332,8 @@
"Clear_all_unreads_question": "Esborrar tots els missatges no llegits?",
"Click_here": "Fes clic aquí",
"Click_here_for_more_info": "Fes clic aquí per a més informació",
"UI_Click_Direct_Message": "Clica per crear un missatge directe",
"UI_Click_Direct_Message_Description": "Evita obrir la pestanya del perfil, vés directe a la conversa",
"Client_ID": "Client ID",
"Client_Secret": "Client Secret",
"Clients_will_refresh_in_a_few_seconds": "Els clients es refrescaran en breus instants",
@ -413,10 +418,12 @@
"Desktop": "Escriptori",
"Desktop_Notification_Test": "Prova de notificació d'escriptori",
"Desktop_Notifications": "Notificacions d'escriptori",
"Desktop_Notifications_Default_Alert": "Alerta per defecte per a les notificacions d'escriptori",
"Desktop_Notifications_Disabled": "Les notificacions d'escriptori han estat desactivades. Canvia les preferències del navegador si vols tornar a activar-les.",
"Desktop_Notifications_Duration": "Durada de les notificacions d'escriptori",
"Desktop_Notifications_Duration_Description": "Segons de mostra de les notificacions d'escriptori. Això pot afectar al centre de notificacions del macOS. Introduïu 0 per utilitzar la configuració del navegador per defecte i no afectar al centre de notificacions.",
"Desktop_Notifications_Enabled": "Les notificacions d'escriptori estan activades",
"Different_Style_For_User_Mentions": "Estil diferent per les mencions d'usuari",
"Direct_message_someone": "Envia un missatge directe a algú",
"Direct_Messages": "Missatges directes",
"Disable_Notifications": "Desactiva notificacions",
@ -524,7 +531,7 @@
"error-invalid-redirectUri": "Redirecció URI invàlida",
"error-invalid-role": "Rol no vàlid",
"error-invalid-room": "Sala no vàlida",
"error-invalid-room-name": "<strong>__room_name__</strong> no és un nom de sala vàlid,<br/> utilitzeu només lletres, números, guions i guions baixos",
"error-invalid-room-name": "<strong>__room_name__</strong> no és un nom de sala vàlid",
"error-invalid-room-type": "<strong>__type__</strong> no és un tipus vàlid de sala.",
"error-invalid-settings": "La configuració proporcionada no és vàlida",
"error-invalid-subscription": "Subscripció no vàlida",
@ -592,10 +599,12 @@
"FileUpload_MediaTypeWhiteListDescription": "Llista de tipus d'arxiu separada per comes. Deixa-la en blanc per acceptar tots els tipus.",
"FileUpload_ProtectFiles": "Protegir els arxius pujats",
"FileUpload_ProtectFilesDescription": "Només els usuaris identificats hi tindran accés",
"FileUpload_S3_Acl": "Amazon S3 acl",
"FileUpload_S3_AWSAccessKeyId": "Amazon S3 AWSAccessKeyID",
"FileUpload_S3_AWSSecretAccessKey": "Amazon S3 AWSSecretAccessKey",
"FileUpload_S3_Bucket": "Amazon S3 BucketName",
"FileUpload_S3_Acl": "Acl",
"FileUpload_S3_AWSAccessKeyId": "Access Key",
"FileUpload_S3_AWSSecretAccessKey": "Secret Key",
"FileUpload_S3_Bucket": "Bucket Name",
"FileUpload_S3_SignatureVersion": "Signature Version",
"FileUpload_S3_ForcePathStyle": "Force Path Style",
"FileUpload_S3_BucketURL": "Bucket URL",
"FileUpload_S3_CDN": "Domini CDN per descàrregues",
"FileUpload_S3_Region": "Regió S3",
@ -634,6 +643,7 @@
"GoogleCloudStorage": "Emmagatzematge Google Cloud",
"GoogleNaturalLanguage_ServiceAccount_Description": "Arxiu JSON amb la clau del compte de servei (\"Service account key\"). Pots trobar més informació [aquí](https://cloud.google.com/natural-language/docs/common/auth#set_up_a_service_account)",
"GoogleTagManager_id": "ID de Google Tag Manager",
"Group_mentions_only": "Només mencions de grup",
"Guest_Pool": "Llista de clients",
"Hash": "Hash",
"Header": "Encapçalament",
@ -762,7 +772,7 @@
"Invalid_name": "El nom no ha d'estar buit",
"Invalid_notification_setting_s": "Configuració de notificació invàlida: %s",
"Invalid_pass": "La contrasenya no ha d'estar buida",
"Invalid_room_name": "<strong>%s</strong> no és un nom de sala vàlid,<br/> utilitza només lletres, números, guions i guions baixos",
"Invalid_room_name": "<strong>%s</strong> no és un nom de sala vàlid",
"Invalid_secret_URL_message": "L'adreça URL proporcionada no és vàlida.",
"Invalid_setting_s": "Opció invàlida: %s",
"Invalid_two_factor_code": "Codi de dos factors invàlid",
@ -807,6 +817,12 @@
"Join_default_channels": "Unir-se als canals predeterminats",
"Join_the_Community": "Uneix-te a la comunitat",
"Join_the_given_channel": "Unir-se al canal proporcionat",
"Show_the_keyboard_shortcut_list": "Mostra la llista de dreceres de teclat",
"Open_channel_user_search": "`%s` - Obre canal / Cerca usuari",
"Edit_previous_message": "`%s` - Edita el missatge anterior",
"Move_beginning_message": "`%s` - Anar al principi del missatge",
"Move_end_message": "`%s` - Anar al final del missatge",
"New_line_message_compose_input": "`%s` - Nova línia a l'entrada de missatge",
"Join_video_call": "Unir-se a la videotrucada",
"Joined": "Unit",
"Jump": "Vés",
@ -1006,6 +1022,7 @@
"Message_MaxAll": "Mida màxima de canal per al missatge ALL",
"Message_MaxAllowedSize": "Mida màxima de missatge",
"Message_pinning": "Fixació de missatges",
"Message_QuoteChainLimit": "Màxim nombre de cites encadenades",
"Message_removed": "Missatge eliminat",
"Message_SetNameToAliasEnabled": "Establir un nom d'usuari com àlies al missatge",
"Message_SetNameToAliasEnabled_Description": "Només si encara no s'ha establert àlies. Els àlies dels missatges antics no es canvien si l'usuari ha canviat el nom.",
@ -1032,6 +1049,7 @@
"Min_length_is": "La llargada mínima és %s",
"minutes": "minuts",
"Mobile": "Mòbil",
"Mobile_Notifications_Default_Alert": "Alerta per defecte notificacions mòbil",
"Monday": "dilluns",
"Monitor_history_for_changes_on": "Monitoritza l'historial per canvis a ",
"More_channels": "Més canals",
@ -1088,9 +1106,12 @@
"Not_found_or_not_allowed": "No trobat o no permès",
"Nothing": "Res",
"Nothing_found": "No s'ha trobat res",
"Notification_Desktop_Default_For": "Mostra notificacions d'escriptori per",
"Notification_Mobile_Default_For": "Notificacions push mòbil per",
"Notification_Duration": "Duració de la notificació",
"Notifications": "Notificacions",
"Notifications_Muted_Description": "Si esculls silenciar-ho tot, no veuràs la sala destacada a la llista quan hi hagi nous missatges, excepte si són mencions. Silenciar les notificacions sobreescriurà les opcions de notificació.",
"Notifications_Sound_Volume": "Volum del so de notificacions",
"Notify_all_in_this_room": "Notifica a tothom d'aquest canal",
"Notify_active_in_this_room": "Notifica als usuaris actius d'aquesta sala",
"Num_Agents": "# d'agents",
@ -1155,10 +1176,160 @@
"People": "Gent",
"Permalink": "Enllaç permanent (Permalink)",
"Permissions": "Permisos",
"access-mailer": "Accedir a la pantalla d'enviament",
"access-mailer_description": "Permís per enviar correu-e massiu a tots els usuaris",
"access-permissions": "Accés a la pantalla de permisos",
"access-permissions_description": "Modifica permisos per a diversos rols",
"add-oauth-service": "Afegir servei Oauth",
"add-oauth-service_description": "Permís per afegir nous serveis Oauth",
"add-user": "Afegir usuari",
"add-user_description": "Permís per afegir nous usuaris al servidor via la pantalla d'usuaris",
"add-user-to-any-c-room": "Afegir usuari a canal públic",
"add-user-to-any-c-room_description": "Permís per afegir un usuari a qualsevol canal públic",
"add-user-to-any-p-room": "Afegir usuari a canal privat",
"add-user-to-any-p-room_description": "Permís per afegir un usuari a qualsevol canal privat",
"add-user-to-joined-room": "Afegir usuari a canal on unit",
"add-user-to-joined-room_description": "Permís per afegir un usuari a un canal on està unit",
"archive-room": "Arxivar sala",
"archive-room_description": "Permís per arxivar un canal",
"assign-admin-role": "Assignar rol d'administrador",
"assign-admin-role_description": "Permís per assignar el rol d'administrador a altres usuaris",
"auto-translate": "Auto-traducció",
"auto-translate_description": "Permís per utilitzar l'eina d'auto-traducció",
"ban-user": "Banejar usuari",
"ban-user_description": "Permís per banejar un usuari d'un canal",
"bulk-create-c": "Crear canals en massa",
"bulk-create-c_description": "Permís per a crear canals en massa",
"bulk-register-user": "Crear canals en massa",
"bulk-register-user_description": "Permís per a crear canals en massa",
"clean-channel-history": "Esborrar l'historial de canal",
"clean-channel-history_description": "Permís per esborrar l'historial dels canals",
"close-livechat-room": "Tancar sala de xat en viu",
"close-livechat-room_description": "Permís per tancar el canal de xat en viu actiu",
"close-others-livechat-room": "Tancar sala de xat en viu",
"close-others-livechat-room_description": "Permís per tancar altres canals de xat en viu",
"create-c": "Crear canals públics",
"create-c_description": "Permís per crear canals públics",
"create-d": "Crear missatges directes",
"create-d_description": "Permís per a iniciar missatges directes",
"create-p": "Crear canals privats",
"create-p_description": "Permís per crear canals privats",
"create-user": "Crear usuari",
"create-user_description": "Permís per crear usuaris",
"delete-c": "Esborrar canals públics",
"delete-c_description": "Permís per esborrar canals públics",
"delete-d": "Esborrar missatges directes",
"delete-d_description": "Permís per esborrar missatges directes",
"delete-p": "Esborrar canals privats",
"delete-p_description": "Permís per esborrar canals privats",
"delete-message": "Esborrar missatge",
"delete-message_description": "Permís per esborrar un missatge d'una sala",
"delete-user": "Esborrar usuari",
"delete-user_description": "Permís per esborrar usuaris",
"edit-message": "Editar missatge",
"edit-message_description": "Permís per editar un missatge d'una sala",
"edit-other-user-active-status": "Editar l'estat actiu d'un altre usuari",
"edit-other-user-active-status_description": "Permís per activar o desactivar altres comptes",
"edit-other-user-info": "Editar la informació d'un altre usuari",
"edit-other-user-info_description": "Permís per canviar el nom, el nom d'usuari o l'adreça de correu-e d'altres usuaris",
"edit-other-user-password": "Editar la contrasenya d'un altre usuari",
"edit-other-user-password_description": "Permís per modificar la contrasenya d'altres usuaris. Requereix el permís edit-other-user-info.",
"edit-privileged-setting": "Editar opcions privilegiades",
"edit-privileged-setting_description": "Permís per editar la configuració",
"edit-room": "Editar sala",
"edit-room_description": "Permís per editar el nom d'una sala, el tema, el tipus (privada o pública) o l'estat (actiu o arxivat)",
"force-delete-message": "Forçar esborrar missatge",
"force-delete-message_description": "Permís per esborrar un missatge ignorant totes les restriccions",
"join-without-join-code": "Unir-se sense el codi",
"join-without-join-code_description": "Permís per unir-se a canals amb codi d'unió actiu sense tenir-lo",
"mail-messages": "Missatges via correu-e",
"mail-messages_description": "Permís per utilitzar l'opció d'enviament de missatges via correu-e",
"manage-assets": "Gestionar recursos",
"manage-assets_description": "Permís per gestionar els recursos del servidor",
"manage-emoji": "Gestionar emoticones",
"manage-emoji_description": "Permís per gestionar les emoticones del servidor",
"manage-integrations": "Gestionar les integracions",
"manage-integrations_description": "Permís per gestionar les integracions del servidor",
"manage-oauth-apps": "Gestionar apps Oauth",
"manage-oauth-apps_description": "Permís per gestionar les apps Oauth del servidor",
"manage-own-integrations": "Gestionar les pròpies integracions",
"manage-own-integrations_description": "Permís per permetre als usuaris crear i editar les seves pròpies integracions o webhooks",
"manage-sounds": "Gestionar sons",
"manage-sounds_description": "Permís per gestionar els sons del servidor",
"mention-all": "Mencionar tots",
"mention-all_description": "Permís per utilitzar la menció @all",
"mute-user": "Silenciar usuari",
"mute-user_description": "Permís per silenciar altres usuaris del mateix canal",
"pin-message": "Fixar missatge",
"pin-message_description": "Permís per fixar un missatge en un canal",
"post-readonly": "Publicar on només lectura",
"post-readonly_description": "Permís per publicar un missatge en canal de només lectura",
"preview-c-room": "Previsualitzar canal públic",
"preview-c-room_description": "Permís per veure els continguts d'un canal públic abans d'unir-s'hi",
"remove-user": "Expulsar usuari",
"remove-user_description": "Permís per expulsar un usuari d'una sala",
"run-import": "Executar importació",
"run-import_description": "Permís per executar els importadors",
"run-migration": "Executar migració",
"run-migration_description": "Permís per executar les migracions",
"save-others-livechat-room-info": "Guardar info altres xats en viu",
"save-others-livechat-room-info_description": "Permís per guardar informació d'altres canals de xat en viu",
"set-moderator": "Assignar moderador",
"set-moderator_description": "Permís per assignar altres usuaris com a moderadors d'un canal",
"set-owner": "Assignar propietari",
"set-owner_description": "Permís per assignar altres usuaris com a propietaris d'un canal",
"set-react-when-readonly": "Reaccions quan només lectura",
"set-react-when-readonly_description": "Permís per poder afegir reaccions a missatges en canals de només lectura",
"set-readonly": "Fer només lectura",
"set-readonly_description": "Permís per fer un canal de només lectura",
"snippet-message": "Retalls de missatge",
"snippet-message_description": "Permís per crear retalls de missatge",
"unarchive-room": "Desarxivar sala",
"unarchive-room_description": "Permís per desarxivar canals",
"user-generate-access-token": "Usuaris generen Access Tokens",
"user-generate-access-token_description": "Permís perquè els usuaris puguin generar access tokens",
"view-c-room": "Veure canal públic",
"view-c-room_description": "Permís per veure canals públics",
"view-d-room": "Veure missatges directes",
"view-d-room_description": "Permís per veure missatges directes",
"view-full-other-user-info": "Veure tota la info d'usuaris",
"view-full-other-user-info_description": "Permís per veure el perfil complet d'altres usuaris, incloent la data de creació del compte, el darrer accés, etcètera.",
"view-history": "Veure historial",
"view-history_description": "Permís per veure l'historial del canal",
"view-join-code": "Veure el codi per unir-se",
"view-join-code_description": "Permís per veure el codi per unir-se al canal",
"view-joined-room": "Veure sales on unit",
"view-joined-room_description": "Permís per veure els canals on actualment s'està unit",
"view-l-room": "Veure sales de xat en viu",
"view-l-room_description": "Permís per veure els canals de xat en viu",
"view-livechat-manager": "Veure el gestor de xats en viu",
"view-livechat-manager_description": "Permís per veure gestors d'altres xats en viu",
"view-livechat-rooms": "Veure xats en viu",
"view-livechat-rooms_description": "Permís per veure altres canals de xat en viu",
"view-logs": "Veure registres",
"view-logs_description": "Permís per veure els registres del servidor",
"view-p-room": "Veure sala privada",
"view-p-room_description": "Permís per veure canals privats",
"view-privileged-setting": "Veure opcions privilegiades",
"view-privileged-setting_description": "Permís per a veure la configuració",
"view-other-user-channels": "Veure canals d'altres usuaris",
"view-other-user-channels_description": "Permís per veure canals que pertanyen a altres usuaris",
"view-room-administration": "Veure administració de sala",
"view-room-administration_description": "Permís per veure estadístiques de missatges públics, privats i directes. No inclou veure converses o arxius",
"view-statistics": "Veure estadístiques",
"view-statistics_description": "Permís per veure estadístiques del sistema com el nombre d'usuaris autenticats, el nombre de sales o informació del sistema operatiu",
"view-user-administration": "Veure administració d'usuaris",
"view-user-administration_description": "Permís per veure una llista de només lectura parcial dels comptes d'usuari actualment autenticats al sistema. Amb aquest permís no és possible veure informació dels comptes d'usuari.",
"Pin_Message": "Fixa missatge",
"Pinned_a_message": "S'ha fixat un missatge:",
"Pinned_Messages": "Missatges fixats",
"PiwikAnalytics_siteId_Description": "L'ID de lloc a utilitzar per a la identificació d'aquest lloc. Exemple: 17",
"PiwikAdditionalTrackers": "Llocs piwik addicionals",
"PiwikAnalytics_prependDomain": "Prefixa domini",
"PiwikAnalytics_prependDomain_Description": "Prefixa el domini del lloc al títol de la pàgina",
"PiwikAnalytics_cookieDomain": "Tots els subdominis",
"PiwikAnalytics_cookieDomain_Description": "Segueix visitants per tots els subdominis",
"PiwikAnalytics_domains": "Amaga enllaços de sortida",
"PiwikAnalytics_url_Description": "L'adreça URL on es troba el Piwik, assegureu-vos d'incloure la barra del final. Exemple: //piwik.rocket.chat/",
"Placeholder_for_email_or_username_login_field": "Indicatiu per al camp d'inici de sessió (correu electrònic o nom d'usuari)",
"Placeholder_for_password_login_field": "Indicatiu per al camp de contrasenya (inici de sessió)",
@ -1242,6 +1413,7 @@
"Remove_Admin": "Treu admin",
"Remove_as_moderator": "Treu de moderador",
"Remove_as_owner": "Treu de propietari",
"Remove_as_leader": "Treure de líder",
"Remove_custom_oauth": "Esborra OAuth personalitzat",
"Remove_from_room": "Treu-lo de la sala",
"Remove_last_admin": "Eliminant el darrer admin",
@ -1296,6 +1468,7 @@
"Rooms": "Sales",
"Running_Instances": "Instàncies executant-se",
"S_new_messages_since_s": "%s nous des de: %s",
"Same_Style_For_Mentions": "Mateix estil per a mencions",
"SAML": "SAML",
"SAML_Custom_Cert": "Certificat personalitzat",
"SAML_Custom_Entry_point": "Punt d'entrada (Entry Point) personalitzat",
@ -1329,6 +1502,7 @@
"Select_an_avatar": "Selecciona un avatar",
"Select_file": "Selecciona un arxiu",
"Select_service_to_login": "Selecciona un servei per iniciar sessió i carregar la teva imatge o puja una foto del teu ordinador",
"Select_role": "Selecciona un rol",
"Select_user": "Selecciona usuari",
"Select_users": "Selecciona els usuaris",
"Selected_agents": "Agents seleccionats",
@ -1354,6 +1528,7 @@
"Service_account_key": "Service account key",
"Set_as_moderator": "Fes-lo moderador",
"Set_as_owner": "Fes-lo propietari",
"Set_as_leader": "Posar com a líder",
"Settings": "Configuració",
"Settings_updated": "S'ha actualitzat la configuració",
"Share_Location_Title": "Compartir localització?",
@ -1523,6 +1698,7 @@
"Two-factor_authentication_disabled": "Autenticació de dos factors desactivada",
"Two-factor_authentication_enabled": "Autenticació de dos factors activada",
"Two-factor_authentication_is_currently_disabled": "L'autenticació de dos factors actualment està desactivada",
"Two-factor_authentication_native_mobile_app_warning": "ATENCIÓ: Un cop activat això, no es podrà fer login des de les aplicacions mòbils natives (Rocket.Chat+) utilitzant la contrasenya fins que aquestes implementin el 2FA.",
"Thursday": "dijous",
"Time_in_seconds": "Temps en segons",
"Title": "Títol",
@ -1550,8 +1726,10 @@
"Type_your_message": "Introduïu el missatge",
"Type_your_name": "Escriu el teu nom",
"Type_your_new_password": "Escriu la nova contrasenya",
"UI_Allow_room_names_with_special_chars": "Permet caràcters especials als noms de sala",
"UI_DisplayRoles": "Mostra rols",
"UI_Merge_Channels_Groups": "Uneix grups privats amb canals",
"UI_Unread_Counter_Style": "Estil de comptador de no-llegits",
"UI_Use_Name_Avatar": "Utilitza les inicials del nom complet per generar l'avatar per defecte",
"UI_Use_Real_Name": "Utilitza el nom real",
"Unarchive": "Desarxiva",
@ -1560,6 +1738,7 @@
"Unmute_user": "Dóna veu a l'usuari",
"Unnamed": "Sense nom",
"Unpin_Message": "Desfixa el missatge",
"Unread_Count": "Comptador de no llegits",
"Unread_Tray_Icon_Alert": "Icona d'alerta de no llegits a la safata",
"Unread_Messages": "Missatges no llegits",
"Unread_Rooms": "Sales no llegides",
@ -1584,11 +1763,14 @@
"Use_User_Preferences_or_Global_Settings": "Usa les preferències d'usuari o la configuració global",
"User__username__is_now_a_moderator_of__room_name_": "L'usuari __username__ ara és moderador de la sala __room_name__",
"User__username__is_now_a_owner_of__room_name_": "L'usuari __username__ ara és un propietari de __room_name__",
"User__username__is_now_a_leader_of__room_name_": "L'usuari __username__ ara és líder de __room_name__",
"User__username__removed_from__room_name__moderators": "L'usuari __username__ ja no és moderador de la sala __room_name__",
"User__username__removed_from__room_name__owners": "L'usuari __username__ ja no és propietari de __room_name__",
"User__username__removed_from__room_name__leaders": "L'usuari __username__ ja no és líder de __room_name__",
"User_added": "Usuari afegit",
"User_added_by": "Usuari <em>__user_added__</em> afegit per <em>__user_by__</em>.",
"User_added_successfully": "Usuari afegit correctament",
"User_and_group_mentions_only": "Només mencions d'usuari i de grup",
"User_doesnt_exist": "No existeix cap usuari amb el nom `@%s`.",
"User_has_been_activated": "L'usuari s'ha activat",
"User_has_been_deactivated": "L'usuari s'ha desactivat",
@ -1609,6 +1791,7 @@
"User_left_male": "Ha sortit del canal.",
"User_logged_out": "L'usuari està desconnectat",
"User_management": "Administració d'usuaris",
"User_mentions_only": "Només mencions d'usuari",
"User_muted": "Usuari silenciat",
"User_muted_by": "Usuari <em>__user_muted__</em> silenciat per <em>__user_by__</em>.",
"User_not_found": "Usuari no trobat",
@ -1620,6 +1803,8 @@
"User_unmuted_by": "L'usuari <em>__user_by__</em> ha tornat la veu a <em>__user_unmuted__</em>.",
"User_unmuted_in_room": "L'usuari torna a tenir veu a la sala",
"User_updated_successfully": "L'usuari s'ha actualitzat correctament",
"User_uploaded_file": "Ha pujat un arxiu",
"User_uploaded_image": "Ha pujat una imatge",
"Username": "Nom d'usuari",
"Username_and_message_must_not_be_empty": "El nom d'usuari i el missatge no han d'estar buits.",
"Username_cant_be_empty": "El nom d'usuari no pot estar buit",

@ -10,7 +10,7 @@
"__username__is_no_longer__role__defined_by__user_by_": "__username__ již není __role__ (odebral/a __user_by__ )",
"__username__was_set__role__by__user_by_": "__username__ je nyní __role__ (nastavil/a __user_by__)",
"Accept": "Přijmout",
"Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Přijímat livechat požadavky i pokud není online žádný operátor",
"Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Přijímat LiveChat požadavky i pokud není online žádný operátor",
"Accept_with_no_online_agents": "Přijímat i bez aktivních operátorů",
"Access_not_authorized": "Přístup není povolen",
"Access_Token_URL": "Token přístupové adresy",
@ -279,6 +279,7 @@
"Cancel": "Zrušit",
"Cancel_message_input": "Zrušit",
"Cannot_invite_users_to_direct_rooms": "Do přímé konverzace nelze pozvat uživatele.",
"Cannot_open_conversation_with_yourself": "Nelze psát sám sobě",
"CAS_autoclose": "Automaticky zavřít přihlašovací popup",
"CAS_base_url": "SSO URL",
"CAS_base_url_Description": "Adresa vaší externí SSO služby např: https://sso.priklad.cz/sso/",
@ -592,10 +593,12 @@
"FileUpload_MediaTypeWhiteListDescription": "Čárkami oddělený seznam typů souborů. Pokud nechcete omezovat typy, ponechte pole prázdné.",
"FileUpload_ProtectFiles": "Chránit nahrané soubory",
"FileUpload_ProtectFilesDescription": "Pouze ověření uživatelé budou mít přístup",
"FileUpload_S3_Acl": "Amazon S3 acl",
"FileUpload_S3_AWSAccessKeyId": "Amazon S3 AWSAccessKeyId",
"FileUpload_S3_AWSSecretAccessKey": "Amazon S3 AWSSecretAccessKey",
"FileUpload_S3_Bucket": "Amazon S3 název bucketu",
"FileUpload_S3_Acl": "Acl",
"FileUpload_S3_AWSAccessKeyId": "Přístupový klíč",
"FileUpload_S3_AWSSecretAccessKey": "Tajný klíč",
"FileUpload_S3_Bucket": "Název bucketu",
"FileUpload_S3_SignatureVersion": "Verze Signature",
"FileUpload_S3_ForcePathStyle": "Vynutit Path Style",
"FileUpload_S3_BucketURL": "URL Bucketu",
"FileUpload_S3_CDN": "CDN doména",
"FileUpload_S3_Region": "Region",
@ -634,6 +637,7 @@
"GoogleCloudStorage": "Google Cloud Storage",
"GoogleNaturalLanguage_ServiceAccount_Description": "JSON klíč účtu služby. Více informací naleznete [zde](https://cloud.google.com/natural-language/docs/common/auth#set_up_a_service_account)",
"GoogleTagManager_id": "ID Google tag manageru",
"Group_mentions_only": "Pouze notifikace skupiny",
"Guest_Pool": "Skupina hostů",
"Hash": "Hash",
"Header": "Hlavička",
@ -697,7 +701,7 @@
"Importer_progress_error": "Nepodařilo se získat postup importu.",
"Importer_setup_error": "Při nastavování nástroje pro import došlo k chybě.",
"Importer_Source_File": "Výběr zdrojového souboru",
"Incoming_Livechats": "Příchozí požadavky na livechat",
"Incoming_Livechats": "Příchozí požadavky na LiveChat",
"inline_code": "vlozeny_kod",
"Install_Extension": "Nainstalovat rozšíření",
"Install_FxOs": "Nainstalovat Rocket.Chat do Vašeho Firefoxu",
@ -807,6 +811,12 @@
"Join_default_channels": "Připojit se k výchozím místnostem",
"Join_the_Community": "Zapojte se do komunity",
"Join_the_given_channel": "Přidejte se k dané místnosti",
"Show_the_keyboard_shortcut_list": "Zobrazit klávesové zkratky",
"Open_channel_user_search": "`%s` - Otevřít místnost / Hledat uživatele",
"Edit_previous_message": "`%s` - Editovat předchozí zprávu",
"Move_beginning_message": "`%s` - Přejít na začátek zprávy",
"Move_end_message": "`%s` - Přejít na konec zprávy",
"New_line_message_compose_input": "`%s` - Přidat řádek v editačním okně",
"Join_video_call": "Připojit k videohovoru",
"Joined": "Připojil",
"Jump": "Přejít",
@ -905,26 +915,26 @@
"line": "řádek",
"List_of_Channels": "Seznam místností",
"List_of_Direct_Messages": "Seznam přímých zpráv",
"Livechat_agents": "Livechat operátoři",
"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_Dashboard": "LiveChat Přehled",
"Livechat_enabled": "LiveChat povolen",
"Livechat_forward_open_chats": "Předat otevřené chaty",
"Livechat_forward_open_chats_timeout": "Časový limit (v sekundách), pro předání chatů",
"Livechat_guest_count": "Počet hostů",
"Livechat_Inquiry_Already_Taken": "Požadavek již vyřízen",
"Livechat_managers": "Manažeři Livechatu",
"Livechat_Inquiry_Already_Taken": "LiveChat požadavek již vyřízen",
"Livechat_managers": "Manažeři LiveChat",
"Livechat_offline": "Livechat offline",
"Livechat_online": "Livechat online",
"Livechat_open_inquiery_show_connecting": "Zobrazit informaci o čekajícím připojení místo pole zprávy pokud uživatel ještě nebyl propojen s operátorem",
"Livechat_Queue": "Livechat fronta",
"Livechat_room_count": "Livechat počet místností",
"Livechat_Routing_Method": "Metoda rozřazení livechatů",
"Livechat_Queue": "LiveChat fronta",
"Livechat_room_count": "LiveChat počet místností",
"Livechat_Routing_Method": "Metoda rozřazení LiveChat",
"Livechat_Take_Confirm": "Chcete převzít tohoto klienta",
"Livechat_title": "Livechat název",
"Livechat_title_color": "Livechat Barva pozadí názvu",
"Livechat_Users": "Livechat Uživatelé",
"Livechat_title": "LiveChat název",
"Livechat_title_color": "LiveChat Barva pozadí názvu",
"Livechat_Users": "LiveChat Uživatelé",
"Load_more": "Načíst další",
"Loading...": "Načítání...",
"Loading_more_from_history": "Načítání více položek z historie",
@ -1006,6 +1016,7 @@
"Message_MaxAll": "Maximální velikost místnosti pro všechny zprávy",
"Message_MaxAllowedSize": "Maximální povolená velikost zprávy",
"Message_pinning": "Připnutí zprávy",
"Message_QuoteChainLimit": "Maximální počet navazujících citací",
"Message_removed": "Zpráva odstraněna",
"Message_SetNameToAliasEnabled": "Změnit uživatelské jméno ve zprávě na alias",
"Message_SetNameToAliasEnabled_Description": "Jen pokud již není nastaven alias. Alias u starých zpráv nebude změněn",
@ -1155,6 +1166,150 @@
"People": "Lidé",
"Permalink": "Trvalý odkaz",
"Permissions": "Oprávnění",
"access-mailer": "Přístup k maileru",
"access-mailer_description": "Právo rozesílat hromadný email na všechny uživatele.",
"access-permissions": "Přístup k nastavení práv",
"access-permissions_description": "Měnít práva pro jednotlivé uživatelské role.",
"add-oauth-service": "Přidat Oauth službu",
"add-oauth-service_description": "Právo přidat novou Oauth službu",
"add-user": "Přidat uživatele",
"add-user_description": "Právo přidat nového uživatele přes seznam uživatelů",
"add-user-to-any-c-room": "Přidat uživatele do veřejných místností",
"add-user-to-any-c-room_description": "Právo přidat uživatele do jakékoliv veřejné místnosti",
"add-user-to-any-p-room": "Přidat uživatele do soukromých místností",
"add-user-to-any-p-room_description": "Právo přidat uživatele do jakékoliv soukromé místnosti",
"add-user-to-joined-room": "Přidat uživatele do místností ve kterých jsem",
"add-user-to-joined-room_description": "Právo přidat uživatele do jakékoliv aktuálně připojené místnosti",
"archive-room": "Archivovat místnost",
"archive-room_description": "Právo archivovat místnost",
"assign-admin-role": "Přiřadit roli administrátora",
"assign-admin-role_description": "Právo přiřadit roli administrátora dalším uživatelům",
"auto-translate": "Auto překlad",
"auto-translate_description": "Právo používat automatické překládání",
"ban-user": "Zabanovat uživatele",
"ban-user_description": "Právo vykázat uživatele z místnosti",
"bulk-create-c": "Hromadné vytvoření místností",
"bulk-create-c_description": "Právo hromadné vytvářet místnosti",
"bulk-register-user": "Hromadné vytvoření místností",
"bulk-register-user_description": "Právo hromadné vytvářet místnosti",
"clean-channel-history": "Pročistit historii místnosti",
"clean-channel-history_description": "Právo pročistit historii místnosti",
"close-livechat-room": "Uzavřít LiveChat místnost (aktuální)",
"close-livechat-room_description": "Právo uzavřít svou LiveChat místnost",
"close-others-livechat-room": "Uzavřít LiveChat místnost (ostatní)",
"close-others-livechat-room_description": "Právo uzavřít ostatní LiveChat místnosti",
"create-c": "Vytvářet veřejné místnosti",
"create-c_description": "Právo vytvářet veřejné místnosti",
"create-d": "Vytvářet soukromé zprávy",
"create-d_description": "Právo odesílat soukromé zprávy",
"create-p": "Vytvářet soukromé místnosti",
"create-p_description": "Právo vytvářet soukromé místnosti",
"create-user": "Vytvořit uživatele",
"create-user_description": "Právo vytvořit uživatele",
"delete-c": "Smazat veřejné místnosti",
"delete-c_description": "Právo smazat veřejné místnosti",
"delete-d": "Smazat přímé zprávy",
"delete-d_description": "Právo smazat přímé zprávy",
"delete-p": "Smazat soukromé místnosti",
"delete-p_description": "Právo smazat soukromé místnosti",
"delete-message": "Smazat zprávu",
"delete-message_description": "Právo smazat zprávu v místnosti",
"delete-user": "Smazat uživatele",
"delete-user_description": "Právo smazat uživatele",
"edit-message": "Editovat zprávu",
"edit-message_description": "Právo editovat zprávu v místnosti",
"edit-other-user-active-status": "Právo měnit aktivaci uživatelů",
"edit-other-user-active-status_description": "Právo povolit nebo zakázat jiné uživatelské účty",
"edit-other-user-info": "Upravit informace uživatelů",
"edit-other-user-info_description": "Právo měnit jméno, uživatelské jméno nebo email jiným uživatelům",
"edit-other-user-password": "Měnit hesla uživatelů",
"edit-other-user-password_description": "Právo měnit heslo jiným uživatelům. Vyžaduje právo `Upravit informace uživatelů`",
"edit-privileged-setting": "Měnit nastavení",
"edit-privileged-setting_description": "Právo měnit nastavení",
"edit-room": "Upravit místnost",
"edit-room_description": "Právo měnit jméno, téma, typ (soukromá/veřejná) a stav (aktivní/archivovaná) místnosti",
"force-delete-message": "Smazat zprávu",
"force-delete-message_description": "Právo smazat zprávu přes všechna omezení",
"join-without-join-code": "Připojit se i do místností bez kódu",
"join-without-join-code_description": "Právo přeskočit připojit bez zadávání kódu do místností, které jej vyžadují",
"mail-messages": "Odeslat zprávy",
"mail-messages_description": "Právo odesílat zprávy",
"manage-assets": "Spravovat statické zdroje",
"manage-assets_description": "Právo upravovat serverové statické soubory",
"manage-emoji": "Spravovat emotikony",
"manage-emoji_description": "Právo měnit emotikony",
"manage-integrations": "Spravovat integrace",
"manage-integrations_description": "Právo měnit integrace",
"manage-oauth-apps": "Spravovat Oauth aplikace",
"manage-oauth-apps_description": "Právo měnit Oauth aplikace",
"manage-own-integrations": "Spravovat vlastní integrace",
"manage-own-integrations_description": "Právo pro uživatele vytvářet a editovat vlastní integrace a webhooky",
"manage-sounds": "Spravovat zvuky",
"manage-sounds_description": "Právo měnit zvuky",
"mention-all": "Zmínit všechny",
"mention-all_description": "Právo použít `@all` zmínku",
"mute-user": "Ztišit uživatele",
"mute-user_description": "Právo ztišit jiné uživatele v aktuální místnosti",
"pin-message": "Připnout zprávu",
"pin-message_description": "Právo připnout zprávu",
"post-readonly": "Napsat do místnosti pouze ke čtení",
"post-readonly_description": "Právo napsat do místnosti pouze ke čtení",
"preview-c-room": "Náhled veřejné místnosti",
"preview-c-room_description": "Právo zobrazit obsah veřejné místnosti před připojení do ní",
"remove-user": "Odebrat uživatele",
"remove-user_description": "Právo odebrat uživatele z místnosti",
"run-import": "Pustit import",
"run-import_description": "Právo spustit importovací proces",
"run-migration": "Pustit migraci",
"run-migration_description": "Právo spustit migraci",
"save-others-livechat-room-info": "Upravit informace LiveChat místnosti",
"save-others-livechat-room-info_description": "Právo upravit informace jiné LiveChat místnosti",
"set-moderator": "Nastavit moderátora",
"set-moderator_description": "Právo nastavit uživatele jako moderátora místnosti",
"set-owner": "Nastavit vlastníka",
"set-owner_description": "Právo nastavit uživatele jako vlastníka místnosti",
"set-react-when-readonly": "Reagovat na zprávy v místnostech ke čtení",
"set-react-when-readonly_description": "Právo reagovat na zprávy v místnostech pouze ke čtení",
"set-readonly": "Nastavit pouze ke čtení",
"set-readonly_description": "Právo změni místnost na pouze ke čtení",
"snippet-message": "Šablona zprávy",
"snippet-message_description": "Právo vytvořit šablonu zprávy",
"unarchive-room": "Odarchivovat místnost",
"unarchive-room_description": "Právo odarchivovat místnost",
"user-generate-access-token": "Přístupový token uživatelů",
"user-generate-access-token_description": "Právo vytvářet uživatelský přístupový token",
"view-c-room": "Zobrazit veřejné místnosti",
"view-c-room_description": "Právo zobrazit veřejnou místnost",
"view-d-room": "Zobrazit soukromé zprávy",
"view-d-room_description": "Právo zobrazit soukromé zprávy",
"view-full-other-user-info": "Zobrazit veškeré informace uživatele",
"view-full-other-user-info_description": "Právo zobrazit veškeré informace uživatele včetně data vytvoření, posledního přihlášení, atd.",
"view-history": "Zobrazit historii",
"view-history_description": "Právo zobrazit historii místnosti",
"view-join-code": "Zobrazit kód místnosti",
"view-join-code_description": "Právo zobrazit kód místnosti",
"view-joined-room": "Zobrazit připojené místnosti",
"view-joined-room_description": "Právo zobrazit aktuálně připojené místnosti",
"view-l-room": "Zobrazit LiveChat místnosti",
"view-l-room_description": "Právo zobrazit LiveChat místnosti",
"view-livechat-manager": "Zobrazit LiveChat manažera",
"view-livechat-manager_description": "Právo zobrazit ostatní LiveChat manažery",
"view-livechat-rooms": "Zobrazit ostatní LiveChat místnosti",
"view-livechat-rooms_description": "Právo zobrazit ostatní LiveChat místnosti",
"view-logs": "Zobrazit logy",
"view-logs_description": "Právo zobrazit serverové logy",
"view-p-room": "Zobrazit soukromou místnost",
"view-p-room_description": "Právo zobrazit soukromou místnost",
"view-privileged-setting": "Zobrazit nastavení",
"view-privileged-setting_description": "Právo zobrazit nastavení",
"view-other-user-channels": "Zobrazit místnosti uživatelů",
"view-other-user-channels_description": "Právo zobrazit místnosti vlastněné ostatními uživateli",
"view-room-administration": "Zobrazit administraci místností",
"view-room-administration_description": "Právo zobrazit statistiky veřejných i soukromých místností a přímých konverzací. Nezahrnuje právo zobrazit obsah nebo archiv.",
"view-statistics": "Zobrazit statistiky",
"view-statistics_description": "Právo zobrazit statistiky jako počet přihlášených uživatelů, počet místností, informace o operačním systému",
"view-user-administration": "Zobrazit administraci uživatelů",
"view-user-administration_description": "Zobrazit částečný seznam (pouze ke čtení) uživatelů přihlášených do systému. Přes toto právo nelze přistupovat k informacím ostatních uživatelů",
"Pin_Message": "Připnout zprávu",
"Pinned_a_message": "Připnuta zpráva:",
"Pinned_Messages": "Připnuté zprávy",
@ -1242,6 +1397,7 @@
"Remove_Admin": "Odebrat Správce",
"Remove_as_moderator": "Odebrat moderátora",
"Remove_as_owner": "Odebrat vlastníka",
"Remove_as_leader": "Odebrat pozici vedoucího",
"Remove_custom_oauth": "Odebrat vlastní OAuth",
"Remove_from_room": "Odebrat z místnosti",
"Remove_last_admin": "Odebrat posledního administrátora",
@ -1354,6 +1510,7 @@
"Service_account_key": "Klíč účty služby",
"Set_as_moderator": "Nastavit jako moderátora",
"Set_as_owner": "Nastavit jako vlastníka",
"Set_as_leader": "Nastavit vedoucícho",
"Settings": "Nastavení",
"Settings_updated": "Nastavení aktualizováno",
"Share_Location_Title": "Sdílet polohu",
@ -1523,6 +1680,7 @@
"Two-factor_authentication_disabled": "Dvoufázová ověření zakázáno",
"Two-factor_authentication_enabled": "Dvoufázové ověření povoleno",
"Two-factor_authentication_is_currently_disabled": "Dvoufázová ověření je momentálně zakázáno",
"Two-factor_authentication_native_mobile_app_warning": "UPOZORNĚNÍ: Pokud povolíte dvoufázové ověření, nebudete se moci přihlásit přes nativní mobilní aplikace (Rocket.Chat+) dokud v těchto nebude 2FA implementována.",
"Thursday": "Čtvrtek",
"Time_in_seconds": "Čas v sekundách",
"Title": "Název",
@ -1537,7 +1695,7 @@
"Travel_and_Places": "Cestování & Místa",
"Transcript_Enabled": "Zeptat se po skončení chatu, zda uživateli odeslat kopii konverzace",
"Transcript_message": "Zpráva kterou zobrazit jako dotaz zda odeslat kopii konverzace",
"Transcript_of_your_livechat_conversation": "Kopie Vaší livechat konverzace",
"Transcript_of_your_livechat_conversation": "Kopie Vaší LiveChat konverzace",
"Translated": "Přeloženo",
"Translations": "Překlady",
"Trigger_removed": "Trigger odstraněn",
@ -1560,6 +1718,7 @@
"Unmute_user": "Zrušit ztlumení uživatele",
"Unnamed": "Nepojmenovaný",
"Unpin_Message": "Odepnout Zprávu",
"Unread_Count": "Počet nepřečtených",
"Unread_Tray_Icon_Alert": "Ikona v oznamovací oblasti upozorňuje na nepřečtené zprávy",
"Unread_Messages": "Nepřečtěné zprávy",
"Unread_Rooms": "Nepřečtené místnosti",
@ -1584,11 +1743,14 @@
"Use_User_Preferences_or_Global_Settings": "Použít nastavení uživatele nebo obecné nastavení",
"User__username__is_now_a_moderator_of__room_name_": "Uživatel __username__ je nyní moderátorem __room_name__",
"User__username__is_now_a_owner_of__room_name_": "Uživatel __username__ je nyní vlastníkem __room_name__",
"User__username__is_now_a_leader_of__room_name_": "Uživatel __username__ je nyní vedoucím místnosti __room_name__",
"User__username__removed_from__room_name__moderators": "Uživatel __username__ odebrán z moderátorů __room_name__",
"User__username__removed_from__room_name__owners": "Uživatel __username__ odebrán z vlastníků __room_name__",
"User__username__removed_from__room_name__leaders": "Uživatel __username__ byl odebrán z vedoucích místnosti __room_name__",
"User_added": "Přidán uživatel",
"User_added_by": "<em>__user_by__</em> přidal uživatele <em>__user_added__</em>.",
"User_added_successfully": "Uživatel byl úspěšně přidán",
"User_and_group_mentions_only": "Pouze notifikace skupiny a uživatele",
"User_doesnt_exist": "Žádný uživatel `@%s`.",
"User_has_been_activated": "Uživatel byl aktivován",
"User_has_been_deactivated": "Uživatel byl deaktivován",
@ -1609,6 +1771,7 @@
"User_left_male": "Opustil místnost",
"User_logged_out": "Uživatel je odhlášen",
"User_management": "Správa uživatelů",
"User_mentions_only": "Pouze notifikace Uživatele",
"User_muted": "Uživatel ztišen",
"User_muted_by": "Uživatel <em>__user_muted__</em> ztlumen (uživatelem <em>__user_by__.</em>)",
"User_not_found": "Uživatel nenalezen",
@ -1699,7 +1862,7 @@
"You_can_search_using_RegExp_eg": "Můžete vyhledávat pomocí regulárních výrazů např.",
"You_can_use_an_emoji_as_avatar": "Můžete také použít emotikonu jako avatar.",
"You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "Webhooky můžete použít pro jednoduchou integraci s Vaším CRM",
"You_cant_leave_a_livechat_room_Please_use_the_close_button": "Livechat místnost nelze opustit. Použijte prosím tlačítko zavřít.",
"You_cant_leave_a_livechat_room_Please_use_the_close_button": "LiveChat místnost nelze opustit. Použijte prosím tlačítko zavřít.",
"You_have_been_muted": "Byli jste ztišeni a nemůžete v této místnosti mluvit",
"You_have_n_codes_remaining": "Zbývá vám __number__ kódů.",
"You_have_not_verified_your_email": "Neověřili jste svůj e-mail.",

@ -991,6 +991,14 @@
"Pinned_a_message": "hat eine Nachricht angeheftet:",
"Pinned_Messages": "Fixierte Nachrichten",
"PiwikAnalytics_siteId_Description": "Die Website-ID zur Identifizierung dieser Website. Beispiel: 17",
"PiwikAdditionalTrackers": "Zusätzliche Piwik Websites",
"PiwikAdditionalTrackers_Description": "Geben Sie hier weitere Piwik Website URLs und SiteIDs in folgendem Format an, wenn Sie dieselben Daten in verschiedene Piwik Instanzen tracken möchten: [ { \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]",
"PiwikAnalytics_prependDomain": "Domain voranstellen",
"PiwikAnalytics_prependDomain_Description": "Domain der Seite beim Tracken dem Seitentitel voranstellen",
"PiwikAnalytics_cookieDomain": "Alle Subdomains",
"PiwikAnalytics_cookieDomain_Description": "Besucher aufzeichnen auf allen Subdomains",
"PiwikAnalytics_domains": "Verberge ausgehende Links",
"PiwikAnalytics_domains_Description": "Verberge im Bericht über 'ausgehende Verweise' alle Klicks auf bekannte Alias-URLs. Bitte tragen Sie pro Zeile einen Domainnamen ein, verwenden Sie dabei keine Trennzeichen.",
"PiwikAnalytics_url_Description": "Die Piwik URL benötigt ein trailing slash. Beispiel: //piwik.rocket.chat/",
"Placeholder_for_email_or_username_login_field": "Platzhalter für das Feld der E-Mail-Adresse und des Benutzernamen",
"Placeholder_for_password_login_field": "Platzhalter für das Feld des Anmeldepassworts",

@ -132,7 +132,9 @@
"Add_agent": "Add agent",
"Add_custom_oauth": "Add custom oauth",
"Add_Domain": "Add Domain",
"Add_files_from": "Add files from",
"Add_manager": "Add manager",
"Add_Role": "Add Role",
"Add_user": "Add user",
"Add_User": "Add User",
"Add_users": "Add users",
@ -179,6 +181,7 @@
"API_Drupal_URL": "Drupal Server URL",
"API_Drupal_URL_Description": "Example: https://domain.com (excluding trailing slash)",
"API_Embed": "Embed Link Previews",
"API_Embed_UserAgent": "Embed request user agent",
"API_Embed_Description": "Whether embedded link previews are enabled or not when a user posts a link to a website.",
"API_EmbedCacheExpirationDays": "Embed cache expiration days",
"API_EmbedDisabledFor": "Disable Embed for Users",
@ -219,6 +222,7 @@
"AtlassianCrowd": "Atlassian Crowd",
"Attachment_File_Uploaded": "File Uploaded",
"Attribute_handling": "Attribute handling",
"Audio_message": "Audio message",
"Auth_Token": "Auth Token",
"Author": "Author",
"Authorization_URL": "Authorization URL",
@ -253,6 +257,7 @@
"Away_male": "Away",
"Back": "Back",
"Back_to_applications": "Back to applications",
"Back_to_chat": "Back to chat",
"Back_to_integrations": "Back to integrations",
"Back_to_integration_detail": "Back to the integration detail",
"Back_to_login": "Back to login",
@ -306,17 +311,21 @@
"channel": "channel",
"Channel": "Channel",
"Channel_already_exist": "The channel `#%s` already exists.",
"Channel_already_exist_static": "The channel already exists.",
"Channel_created": "Channel `#%s` created.",
"Channel_already_Unarchived": "Channel with name `#%s` is already in Unarchived state",
"Channel_Archived": "Channel with name `#%s` has been archived successfully",
"Channel_doesnt_exist": "The channel `#%s` does not exist.",
"Channel_name": "Channel name",
"Channel_to_listen_on": "Channel to listen on",
"Channel_Unarchived": "Channel with name `#%s` has been Unarchived successfully",
"Channels": "Channels",
"Channels_list": "List of public channels",
"Channels_are_where_your_team_communicate": "Channels are where your team communicate.",
"Chat_button": "Chat button",
"Chat_closed": "Chat closed",
"Chat_closed_successfully": "Chat closed successfully",
"Chat_Now": "Chat Now",
"Chat_window": "Chat window",
"Chatops_Enabled": "Enable Chatops",
"Chatops_Title": "Chatops Panel",
@ -331,6 +340,8 @@
"Clear_all_unreads_question": "Clear all unreads?",
"Click_here": "Click here",
"Click_here_for_more_info": "Click here for more info",
"UI_Click_Direct_Message": "Click to Create Direct Message",
"UI_Click_Direct_Message_Description": "Skip opening profile tab, instead go straight to conversation",
"Client_ID": "Client ID",
"Client_Secret": "Client Secret",
"Clients_will_refresh_in_a_few_seconds": "Clients will refresh in a few seconds",
@ -415,10 +426,12 @@
"Desktop": "Desktop",
"Desktop_Notification_Test": "Desktop Notification Test",
"Desktop_Notifications": "Desktop Notifications",
"Desktop_Notifications_Default_Alert": "Desktop Notifications Default Alert",
"Desktop_Notifications_Disabled": "Desktop Notifications are Disabled. Change your browser preferences if you need Notifications enabled.",
"Desktop_Notifications_Duration": "Desktop Notifications Duration",
"Desktop_Notifications_Duration_Description": "Seconds to display desktop notification. This may affect OS X Notification Center. Enter 0 to use default browser settings and not affect OS X Notification Center.",
"Desktop_Notifications_Enabled": "Desktop Notifications are Enabled",
"Different_Style_For_User_Mentions": "Different style for user mentions",
"Direct_message_someone": "Direct message someone",
"Direct_Messages": "Direct Messages",
"Disable_Notifications": "Disable Notifications",
@ -526,7 +539,7 @@
"error-invalid-redirectUri": "Invalid redirectUri",
"error-invalid-role": "Invalid role",
"error-invalid-room": "Invalid room",
"error-invalid-room-name": "<strong>__room_name__</strong> is not a valid room name,<br/> use only letters, numbers, hyphens and underscores",
"error-invalid-room-name": "<strong>__room_name__</strong> is not a valid room name",
"error-invalid-room-type": "<strong>__type__</strong> is not a valid room type.",
"error-invalid-settings": "Invalid settings provided",
"error-invalid-subscription": "Invalid subscription",
@ -562,6 +575,7 @@
"every_30_minutes": "Once every 30 minutes",
"every_hour": "Once every hour",
"every_six_hours": "Once every six hours",
"Everyone_can_access_this_channel": "Everyone can access this channel",
"Example_s": "Example: <code class=\"inline\">%s</code>",
"Exclude_Botnames": "Exclude bots",
"Exclude_Botnames_Description": "Do not propagate messages from bots whose name matches the regular expression above. If left empty, all messages from bots will be propagated.",
@ -720,7 +734,7 @@
"Importer_setup_error": "An error occurred while setting up the importer.",
"Importer_Source_File": "Source File Selection",
"Incoming_Livechats": "Incoming Livechats",
"inline_code": "inline_code",
"inline_code": "inline code",
"Install_Extension": "Install Extension",
"Install_FxOs": "Install Rocket.Chat on your Firefox",
"Install_FxOs_done": "Great! You can now use Rocket.Chat via the icon on your homescreen. Have fun with Rocket.Chat!",
@ -784,7 +798,7 @@
"Invalid_name": "The name must not be empty",
"Invalid_notification_setting_s": "Invalid notification setting: %s",
"Invalid_pass": "The password must not be empty",
"Invalid_room_name": "<strong>%s</strong> is not a valid room name,<br/> use only letters, numbers, hyphens and underscores",
"Invalid_room_name": "<strong>%s</strong> is not a valid room name",
"Invalid_secret_URL_message": "The URL provided is invalid.",
"Invalid_setting_s": "Invalid setting: %s",
"Invalid_two_factor_code": "Invalid two factor code",
@ -841,6 +855,7 @@
"Jump_to_first_unread": "Jump to first unread",
"Jump_to_message": "Jump to message",
"Jump_to_recent_messages": "Jump to recent messages",
"Just_invited_people_can_access_this_channel": "Just invited people can access this channel",
"Katex_Dollar_Syntax": "Allow Dollar Syntax",
"Katex_Dollar_Syntax_Description": "Allow using $$katex block$$ and $inline katex$ syntaxes",
"Katex_Enabled": "Katex Enabled",
@ -956,7 +971,7 @@
"Load_more": "Load more",
"Loading...": "Loading...",
"Loading_more_from_history": "Loading more from history",
"Loading_suggestion": "Loading suggestions...",
"Loading_suggestion": "Loading suggestions",
"Localization": "Localization",
"Log_Exceptions_to_Channel": "Log Exceptions to Channel",
"Log_Exceptions_to_Channel_Description": "A channel that will receive all captured exceptions. Leave empty to ignore exceptions.",
@ -997,6 +1012,7 @@
"Members_List": "Members List",
"Mentions": "Mentions",
"Mentions_default": "Mentions (default)",
"Mentions_only": "Mentions only",
"Message": "Message",
"Message_AllowBadWordsFilter": "Allow Message bad words filtering",
"Message_AllowDeleting": "Allow Message Deleting",
@ -1061,6 +1077,7 @@
"Min_length_is": "Min length is %s",
"minutes": "minutes",
"Mobile": "Mobile",
"Mobile_Notifications_Default_Alert": "Mobile Notifications Default Alert",
"Monday": "Monday",
"Monitor_history_for_changes_on": "Monitor history for changes on",
"More_channels": "More channels",
@ -1069,10 +1086,12 @@
"More_unreads": "More unreads",
"Msgs": "Msgs",
"multi": "multi",
"multi_line": "multi line",
"Mute_someone_in_room": "Mute someone in the room",
"Mute_user": "Mute user",
"Muted": "Muted",
"My_Account": "My Account",
"My_location": "My location",
"n_messages": "%s messages",
"N_new_messages": "%s new messages",
"Name": "Name",
@ -1117,9 +1136,14 @@
"Not_found_or_not_allowed": "Not Found or Not Allowed",
"Nothing": "Nothing",
"Nothing_found": "Nothing found",
"Notification_Desktop_Default_For": "Show Desktop Notifications For",
"Notification_Mobile_Default_For": "Push Mobile Notifications For",
"Notification_Duration": "Notification Duration",
"Notifications": "Notifications",
"Notifications_Muted_Description": "If you choose to mute everything, you won't see the room highlight in the list when there are new messages, except for mentions. Muting notifications will override notifications settings.",
"Notifications_Max_Room_Members": "Max room members before disabling all message notifications",
"Notifications_Max_Room_Members_Description": "Max number of members in room when notifications for all messages gets disabled. Users can still change per room setting to receive all notifications on an individual basis. (0 to disable)",
"Notifications_Sound_Volume": "Notifications sound volume",
"Notify_all_in_this_room": "Notify all in this room",
"Notify_active_in_this_room": "Notify active users in this room",
"Num_Agents": "# Agents",
@ -1139,6 +1163,7 @@
"Offline_form_unavailable_message": "Offline form unavailable message",
"Offline_Link_Message": "GO TO MESSAGE",
"Offline_Mention_Email": "You have been mentioned by __user__ in #__room__",
"Offline_Mention_All_Email": "__user__ has posted a message in #__room__",
"Offline_message": "Offline message",
"Offline_success_message": "Offline success message",
"Offline_unavailable": "Offline unavailable",
@ -1184,154 +1209,162 @@
"People": "People",
"Permalink": "Permalink",
"Permissions": "Permissions",
"access-mailer":"Access Mailer Screen",
"access-mailer_description":"Permission to send mass email to all users.",
"access-permissions":"Access Permissions Screen",
"access-permissions_description":"Modify permissions for various roles.",
"add-oauth-service":"Add Oauth Service",
"add-oauth-service_description":"Permission to add a new Oauth service",
"add-user":"Add User",
"add-user_description":"Permission to add new users to the server via users screen",
"add-user-to-any-c-room":"Add User to Any Public Channel",
"add-user-to-any-c-room_description":"Permission to add a user to any public channel",
"add-user-to-any-p-room":"Add User to Any Private Channel",
"add-user-to-any-p-room_description":"Permission to add a user to any private channel",
"add-user-to-joined-room":"Add User to Any Joined Channel",
"add-user-to-joined-room_description":"Permission to add a user to a currently joined channel",
"archive-room":"Archive Room",
"archive-room_description":"Permission to archive a channel",
"assign-admin-role":"Assign Admin Role",
"assign-admin-role_description":"Permission to assign the admin role to other users",
"auto-translate":"Auto Translate",
"auto-translate_description":"Permission to use the auto translate tool",
"ban-user":"Ban User",
"ban-user_description":"Permission to ban a user from a channel",
"bulk-create-c":"Bulk Create Channels",
"bulk-create-c_description":"Permission to create channels in bulk",
"bulk-register-user":"Bulk Create Channels",
"bulk-register-user_description":"Permission to create channels in bulk",
"clean-channel-history":"Clean Channel History",
"clean-channel-history_description":"Permission to Clear the history from channels",
"close-livechat-room":"Close Livechat Room",
"close-livechat-room_description":"Permission to close the current LiveChat channel",
"close-others-livechat-room":"Close Livechat Room",
"close-others-livechat-room_description":"Permission to close other LiveChat channels",
"create-c":"Create Public Channels",
"create-c_description":"Permission to create public channels",
"create-d":"Create Direct Messages",
"create-d_description":"Permission to start direct messages",
"create-p":"Create Private Channels",
"create-p_description":"Permission to create private channels",
"create-user":"Create User",
"create-user_description":"Permission to create users",
"delete-c":"Delete Public Channels",
"delete-c_description":"Permission to delete public channels",
"delete-d":"Delete Direct Messages",
"delete-d_description":"Permission to delete direct messages",
"delete-p":"Delete Private Channels",
"delete-p_description":"Permission to delete private channels",
"delete-message":"Delete Message",
"delete-message_description":"Permission to delete a message within a room",
"delete-user":"Delete User",
"delete-user_description":"Permission to delete users",
"edit-message":"Edit Message",
"edit-message_description":"Permission to edit a message within a room",
"edit-other-user-active-status":"Edit Other User Active Status",
"edit-other-user-active-status_description":"Permission to enable or disable other accounts",
"edit-other-user-info":"Edit Other User Information",
"edit-other-user-info_description":"Permission to change other user’s name, username or email address.",
"edit-other-user-password":"Edit Other User Password",
"edit-other-user-password_description":"Permission to modify other user’s passwords. Requires edit-other-user-info permission.",
"edit-privileged-setting":"Edit privileged Setting",
"edit-privileged-setting_description":"Permission to edit settings",
"edit-room":"Edit Room",
"edit-room_description":"Permission to edit a room’s name, topic, type (private or public status) and status (active or archived)",
"force-delete-message":"Force Delete Message",
"force-delete-message_description":"Permission to delete a message bypassing all restrictions",
"join-without-join-code":"Join Without Join Code",
"join-without-join-code_description":"Permission to bypass the join code in channels with join code enabled",
"mail-messages":"Mail Messages",
"mail-messages_description":"Permission to use the mail messages option",
"manage-assets":"Manage Assets",
"manage-assets_description":"Permission to manage the server assets",
"manage-emoji":"Manage Emoji",
"manage-emoji_description":"Permission to manage the server emojis",
"manage-integrations":"Manage Integrations",
"manage-integrations_description":"Permission to manage the server integrations",
"manage-oauth-apps":"Manage Oauth Apps",
"manage-oauth-apps_description":"Permission to manage the server Oauth apps",
"manage-own-integrations":"Manage Own Integrations",
"manage-own-integrations_description":"Permition to allow users to create and edit their own integration or webhooks",
"manage-sounds":"Manage Sounds",
"manage-sounds_description":"Permission to manage the server sounds",
"mention-all":"Mention All",
"mention-all_description":"Permission to use the @all mention",
"mute-user":"Mute User",
"mute-user_description":"Permission to mute other users in the same channel",
"pin-message":"Pin Message",
"pin-message_description":"Permission to pin a message in a channel",
"post-readonly":"Post ReadOnly",
"post-readonly_description":"Permission to post a message in a read-only channel",
"preview-c-room":"Preview Public Channel",
"preview-c-room_description":"Permission to view the contents of a public channel before joining",
"remove-user":"Remove User",
"remove-user_description":"Permission to remove a user from a room",
"run-import":"Run Import",
"run-import_description":"Permission to run the importers",
"run-migration":"Run Migration",
"run-migration_description":"Permission to run the migrations",
"save-others-livechat-room-info":"Save Others Livechat Room Info",
"save-others-livechat-room-info_description":"Permission to save information from other livechat channels",
"set-moderator":"Set Moderator",
"set-moderator_description":"Permission to set other users as moderator of a channel",
"set-owner":"Set Owner",
"set-owner_description":"Permission to set other users as owner of a channel",
"set-react-when-readonly":"Set React When ReadOnly",
"set-react-when-readonly_description":"Permission to set the ability to react to messages in a read only channel",
"set-readonly":"Set ReadOnly",
"set-readonly_description":"Permission to set a channel to read only channel",
"snippet-message":"Snippet Message",
"snippet-message_description":"Permission to create snippet message",
"unarchive-room":"Unarchive Room",
"unarchive-room_description":"Permission to unarchive channels",
"user-generate-access-token":"User Generate Access Token",
"user-generate-access-token_description":"Permission for users to generate access tokens",
"view-c-room":"View Public Channel",
"view-c-room_description":"Permission to view public channels",
"view-d-room":"View Direct Messages",
"view-d-room_description":"Permission to view direct messages",
"view-full-other-user-info":"View Full Other User Info",
"view-full-other-user-info_description":"Permission to view full profile of other users including account creation date, last login, etc.",
"view-history":"View History",
"view-history_description":"Permission to view the channel history",
"view-join-code":"View Join Code",
"view-join-code_description":"Permission to view the channel join code",
"view-joined-room":"View Joined Room",
"view-joined-room_description":"Permission to view the currently joined channels",
"view-l-room":"View Livechat Rooms",
"view-l-room_description":"Permission to view livechat channels",
"view-livechat-manager":"View Livechat Manager",
"view-livechat-manager_description":"Permission to view other livechat managers",
"view-livechat-rooms":"View Livechat Rooms",
"view-livechat-rooms_description":"Permission to view other livechat channels",
"view-logs":"View Logs",
"view-logs_description":"Permission to view the server logs ",
"view-p-room":"View Private Room",
"view-p-room_description":"Permission to view private channels",
"view-privileged-setting":"View Privileged Setting",
"view-privileged-setting_description":"Permission to view settings",
"view-other-user-channels":"View Other User Channels",
"view-other-user-channels_description":"Permission to view channels owned by other users",
"view-room-administration":"View Room Administration",
"view-room-administration_description":"Permission to view public, private and direct message statistics. Does not include the ability to view conversations or archives",
"view-statistics":"View Statistics",
"view-statistics_description":"Permission o view system statistics such as number of users logged in, number of rooms, operating system information",
"view-user-administration":"View User Administration",
"view-user-administration_description":"Permission to partial, read-only list view of other user accounts currently logged into the system. No user account information is accessible with this permission",
"access-mailer": "Access Mailer Screen",
"access-mailer_description": "Permission to send mass email to all users.",
"access-permissions": "Access Permissions Screen",
"access-permissions_description": "Modify permissions for various roles.",
"add-oauth-service": "Add Oauth Service",
"add-oauth-service_description": "Permission to add a new Oauth service",
"add-user": "Add User",
"add-user_description": "Permission to add new users to the server via users screen",
"add-user-to-any-c-room": "Add User to Any Public Channel",
"add-user-to-any-c-room_description": "Permission to add a user to any public channel",
"add-user-to-any-p-room": "Add User to Any Private Channel",
"add-user-to-any-p-room_description": "Permission to add a user to any private channel",
"add-user-to-joined-room": "Add User to Any Joined Channel",
"add-user-to-joined-room_description": "Permission to add a user to a currently joined channel",
"archive-room": "Archive Room",
"archive-room_description": "Permission to archive a channel",
"assign-admin-role": "Assign Admin Role",
"assign-admin-role_description": "Permission to assign the admin role to other users",
"auto-translate": "Auto Translate",
"auto-translate_description": "Permission to use the auto translate tool",
"ban-user": "Ban User",
"ban-user_description": "Permission to ban a user from a channel",
"bulk-create-c": "Bulk Create Channels",
"bulk-create-c_description": "Permission to create channels in bulk",
"bulk-register-user": "Bulk Create Channels",
"bulk-register-user_description": "Permission to create channels in bulk",
"clean-channel-history": "Clean Channel History",
"clean-channel-history_description": "Permission to Clear the history from channels",
"close-livechat-room": "Close Livechat Room",
"close-livechat-room_description": "Permission to close the current LiveChat channel",
"close-others-livechat-room": "Close Livechat Room",
"close-others-livechat-room_description": "Permission to close other LiveChat channels",
"create-c": "Create Public Channels",
"create-c_description": "Permission to create public channels",
"create-d": "Create Direct Messages",
"create-d_description": "Permission to start direct messages",
"create-p": "Create Private Channels",
"create-p_description": "Permission to create private channels",
"create-user": "Create User",
"create-user_description": "Permission to create users",
"delete-c": "Delete Public Channels",
"delete-c_description": "Permission to delete public channels",
"delete-d": "Delete Direct Messages",
"delete-d_description": "Permission to delete direct messages",
"delete-p": "Delete Private Channels",
"delete-p_description": "Permission to delete private channels",
"delete-message": "Delete Message",
"delete-message_description": "Permission to delete a message within a room",
"delete-user": "Delete User",
"delete-user_description": "Permission to delete users",
"edit-message": "Edit Message",
"edit-message_description": "Permission to edit a message within a room",
"edit-other-user-active-status": "Edit Other User Active Status",
"edit-other-user-active-status_description": "Permission to enable or disable other accounts",
"edit-other-user-info": "Edit Other User Information",
"edit-other-user-info_description": "Permission to change other user’s name, username or email address.",
"edit-other-user-password": "Edit Other User Password",
"edit-other-user-password_description": "Permission to modify other user’s passwords. Requires edit-other-user-info permission.",
"edit-privileged-setting": "Edit privileged Setting",
"edit-privileged-setting_description": "Permission to edit settings",
"edit-room": "Edit Room",
"edit-room_description": "Permission to edit a room’s name, topic, type (private or public status) and status (active or archived)",
"force-delete-message": "Force Delete Message",
"force-delete-message_description": "Permission to delete a message bypassing all restrictions",
"join-without-join-code": "Join Without Join Code",
"join-without-join-code_description": "Permission to bypass the join code in channels with join code enabled",
"mail-messages": "Mail Messages",
"mail-messages_description": "Permission to use the mail messages option",
"manage-assets": "Manage Assets",
"manage-assets_description": "Permission to manage the server assets",
"manage-emoji": "Manage Emoji",
"manage-emoji_description": "Permission to manage the server emojis",
"manage-integrations": "Manage Integrations",
"manage-integrations_description": "Permission to manage the server integrations",
"manage-oauth-apps": "Manage Oauth Apps",
"manage-oauth-apps_description": "Permission to manage the server Oauth apps",
"manage-own-integrations": "Manage Own Integrations",
"manage-own-integrations_description": "Permition to allow users to create and edit their own integration or webhooks",
"manage-sounds": "Manage Sounds",
"manage-sounds_description": "Permission to manage the server sounds",
"mention-all": "Mention All",
"mention-all_description": "Permission to use the @all mention",
"mute-user": "Mute User",
"mute-user_description": "Permission to mute other users in the same channel",
"pin-message": "Pin Message",
"pin-message_description": "Permission to pin a message in a channel",
"post-readonly": "Post ReadOnly",
"post-readonly_description": "Permission to post a message in a read-only channel",
"preview-c-room": "Preview Public Channel",
"preview-c-room_description": "Permission to view the contents of a public channel before joining",
"remove-user": "Remove User",
"remove-user_description": "Permission to remove a user from a room",
"run-import": "Run Import",
"run-import_description": "Permission to run the importers",
"run-migration": "Run Migration",
"run-migration_description": "Permission to run the migrations",
"save-others-livechat-room-info": "Save Others Livechat Room Info",
"save-others-livechat-room-info_description": "Permission to save information from other livechat channels",
"set-moderator": "Set Moderator",
"set-moderator_description": "Permission to set other users as moderator of a channel",
"set-owner": "Set Owner",
"set-owner_description": "Permission to set other users as owner of a channel",
"set-react-when-readonly": "Set React When ReadOnly",
"set-react-when-readonly_description": "Permission to set the ability to react to messages in a read only channel",
"set-readonly": "Set ReadOnly",
"set-readonly_description": "Permission to set a channel to read only channel",
"snippet-message": "Snippet Message",
"snippet-message_description": "Permission to create snippet message",
"unarchive-room": "Unarchive Room",
"unarchive-room_description": "Permission to unarchive channels",
"user-generate-access-token": "User Generate Access Token",
"user-generate-access-token_description": "Permission for users to generate access tokens",
"view-c-room": "View Public Channel",
"view-c-room_description": "Permission to view public channels",
"view-d-room": "View Direct Messages",
"view-d-room_description": "Permission to view direct messages",
"view-full-other-user-info": "View Full Other User Info",
"view-full-other-user-info_description": "Permission to view full profile of other users including account creation date, last login, etc.",
"view-history": "View History",
"view-history_description": "Permission to view the channel history",
"view-join-code": "View Join Code",
"view-join-code_description": "Permission to view the channel join code",
"view-joined-room": "View Joined Room",
"view-joined-room_description": "Permission to view the currently joined channels",
"view-l-room": "View Livechat Rooms",
"view-l-room_description": "Permission to view livechat channels",
"view-livechat-manager": "View Livechat Manager",
"view-livechat-manager_description": "Permission to view other livechat managers",
"view-livechat-rooms": "View Livechat Rooms",
"view-livechat-rooms_description": "Permission to view other livechat channels",
"view-logs": "View Logs",
"view-logs_description": "Permission to view the server logs ",
"view-p-room": "View Private Room",
"view-p-room_description": "Permission to view private channels",
"view-privileged-setting": "View Privileged Setting",
"view-privileged-setting_description": "Permission to view settings",
"view-other-user-channels": "View Other User Channels",
"view-other-user-channels_description": "Permission to view channels owned by other users",
"view-room-administration": "View Room Administration",
"view-room-administration_description": "Permission to view public, private and direct message statistics. Does not include the ability to view conversations or archives",
"view-statistics": "View Statistics",
"view-statistics_description": "Permission o view system statistics such as number of users logged in, number of rooms, operating system information",
"view-user-administration": "View User Administration",
"view-user-administration_description": "Permission to partial, read-only list view of other user accounts currently logged into the system. No user account information is accessible with this permission",
"Pin_Message": "Pin Message",
"Pinned_a_message": "Pinned a message:",
"Pinned_Messages": "Pinned Messages",
"PiwikAnalytics_siteId_Description": "The site id to use for identifying this site. Example: 17",
"PiwikAdditionalTrackers": "Additional piwik sites",
"PiwikAdditionalTrackers_Description": "Enter addtitional Piwik website URLs and SiteIDs in the following format, if you wnat to track the same data into different websites: [ { \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]",
"PiwikAnalytics_prependDomain": "Prepend domain",
"PiwikAnalytics_prependDomain_Description": "Prepend the site domain to the page title when tracking",
"PiwikAnalytics_cookieDomain": "All subdomains",
"PiwikAnalytics_cookieDomain_Description": "Track visitors across all subdomains",
"PiwikAnalytics_domains": "Hide outgoing links",
"PiwikAnalytics_domains_Description": "In the 'Outlinks' report, hide clicks to known alias URLs. Please insert one domain per line and do not use any separators.",
"PiwikAnalytics_url_Description": "The url where the Piwik resides, be sure to include the trailing slash. Example: //piwik.rocket.chat/",
"Placeholder_for_email_or_username_login_field": "Placeholder for email or username login field",
"Placeholder_for_password_login_field": "Placeholder for password login field",
@ -1361,12 +1394,16 @@
"Preferences_saved": "Preferences saved",
"Privacy": "Privacy",
"Private": "Private",
"Private_Channel": "Private Channel",
"Private_Group": "Private Group",
"Private_Groups": "Private Groups",
"Private_Groups_list": "List of Private Groups",
"Profile": "Profile",
"Profile_details": "Profile details",
"Profile_picture": "Profile picture",
"Profile_saved_successfully": "Profile saved successfully",
"Public": "Public",
"Public_Channel": "Public Channel",
"Push": "Push",
"Push_apn_cert": "APN Cert",
"Push_apn_dev_cert": "APN Dev Cert",
@ -1470,6 +1507,7 @@
"Rooms": "Rooms",
"Running_Instances": "Running Instances",
"S_new_messages_since_s": "%s new messages since %s",
"Same_Style_For_Mentions": "Same style for mentions",
"SAML": "SAML",
"SAML_Custom_Cert": "Custom Certificate",
"SAML_Custom_Entry_point": "Custom Entry Point",
@ -1503,6 +1541,7 @@
"Select_an_avatar": "Select an avatar",
"Select_file": "Select file",
"Select_service_to_login": "Select a service to login to load your picture or upload one directly from your computer",
"Select_role": "Select a Role",
"Select_user": "Select user",
"Select_users": "Select users",
"Selected_agents": "Selected agents",
@ -1545,6 +1584,7 @@
"Showing_archived_results": "<p>Showing <b>%s</b> archived results</p>",
"Showing_online_users": "Showing: <b>__total_showing__</b>, Online: __online__, Total: __total__ users",
"Showing_results": "<p>Showing <b>%s</b> results</p>",
"Sidebar_list_mode": "Sidebar channel list mode",
"Sign_in_to_start_talking": "Sign in to start talking",
"since_creation": "since %s",
"Site_Name": "Site Name",
@ -1586,8 +1626,10 @@
"Snippet_Added": "Created on %s",
"Snippet_Messages": "Snippet Messages",
"Snippeted_a_message": "Created a snippet __snippetLink__",
"Sort_by_activity": "Sort by Activity",
"Sound": "Sound",
"Sound_File_mp3": "Sound File (mp3)",
"Split_by_categories": "Split by categories",
"SSL": "SSL",
"Star_Message": "Star Message",
"Starred_Messages": "Starred Messages",
@ -1641,6 +1683,7 @@
"Take_it": "Take it!",
"TargetRoom": "Target Room",
"TargetRoom_Description": "The room where messages will be sent which are a result of this event being fired. Only one target room is allowed and it must exist.",
"Team": "Team",
"Test_Connection": "Test Connection",
"Test_Desktop_Notifications": "Test Desktop Notifications",
"Thank_you_exclamation_mark": "Thank you!",
@ -1698,7 +1741,7 @@
"Two-factor_authentication_disabled": "Two-factor authentication disabled",
"Two-factor_authentication_enabled": "Two-factor authentication enabled",
"Two-factor_authentication_is_currently_disabled": "Two-factor authentication is currently disabled",
"Two-factor_authentication_native_mobile_app_warning" : "WARNING: Once you enable this, you will not be able to login on the native mobile apps (Rocket.Chat+) using your password until they implement the 2FA.",
"Two-factor_authentication_native_mobile_app_warning": "WARNING: Once you enable this, you will not be able to login on the native mobile apps (Rocket.Chat+) using your password until they implement the 2FA.",
"Thursday": "Thursday",
"Time_in_seconds": "Time in seconds",
"Title": "Title",
@ -1726,8 +1769,10 @@
"Type_your_message": "Type your message",
"Type_your_name": "Type your name",
"Type_your_new_password": "Type your new password",
"UI_Allow_room_names_with_special_chars": "Allow special chars on room names",
"UI_DisplayRoles": "Display Roles",
"UI_Merge_Channels_Groups": "Merge private groups with channels",
"UI_Unread_Counter_Style": "Unread counter style",
"UI_Use_Name_Avatar": "Use full name initials to generate default avatar",
"UI_Use_Real_Name": "Use Real Name",
"Unarchive": "Unarchive",
@ -1737,6 +1782,7 @@
"Unnamed": "Unnamed",
"Unpin_Message": "Unpin Message",
"Unread_Count": "Unread Count",
"Unread_Count_DM": "Unread Count for Direct Messages",
"Unread_Tray_Icon_Alert": "Unread Tray Icon Alert",
"Unread_Messages": "Unread Messages",
"Unread_Rooms": "Unread Rooms",
@ -1759,6 +1805,7 @@
"Use_uploaded_avatar": "Use uploaded avatar",
"Use_url_for_avatar": "Use url for avatar",
"Use_User_Preferences_or_Global_Settings": "Use User Preferences or Global Settings",
"User": "User",
"User__username__is_now_a_moderator_of__room_name_": "User __username__ is now a moderator of __room_name__",
"User__username__is_now_a_owner_of__room_name_": "User __username__ is now a owner of __room_name__",
"User__username__is_now_a_leader_of__room_name_": "User __username__ is now a leader of __room_name__",
@ -1801,6 +1848,8 @@
"User_unmuted_by": "User <em>__user_unmuted__</em> unmuted by <em>__user_by__</em>.",
"User_unmuted_in_room": "User unmuted in room",
"User_updated_successfully": "User updated successfully",
"User_uploaded_file": "Uploaded a file",
"User_uploaded_image": "Uploaded an image",
"Username": "Username",
"Username_and_message_must_not_be_empty": "Username and message must not be empty.",
"Username_cant_be_empty": "The username cannot be empty",
@ -1831,6 +1880,7 @@
"Version": "Version",
"Video_Chat_Window": "Video Chat",
"Video_Conference": "Video Conference",
"Video_message": "Video message",
"Videocall_declined": "Videocall declined.",
"Videocall_enabled": "Videocall enabled",
"View_All": "View All",

@ -872,6 +872,7 @@
"Nothing_found": "No se encontró nada",
"Notification_Duration": "Duración de la notificación",
"Notifications": "Notificaciones",
"Notifications_Sound_Volume": "Volumen del sonido de las notificaciones",
"Notify_all_in_this_room": "Notificar a todos en este canal",
"Num_Agents": "# de Agentes",
"Number_of_messages": "Número de mensajes",

@ -1129,12 +1129,14 @@
"Redirect_URI": "URI de redirection",
"Refresh_keys": "Rafraîchir les clefs",
"Refresh_your_page_after_install_to_enable_screen_sharing": "Actualisez votre page après l'installation pour permettre le partage d'écran",
"Regenerate_codes": "Regénérer les codes",
"Register": "Créer un nouveau compte",
"Registration": "Enregistrement",
"Registration_Succeeded": "Enregistrement réussi",
"Registration_via_Admin": "Enregistrement par un administrateur",
"Regular_Expressions": "Expressions régulières",
"Release": "Version",
"Reload": "Recharger",
"Remove": "Supprimer",
"Remove_Admin": "Supprimer administrateur",
"Remove_as_moderator": "Supprimer de la liste des modérateurs",

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save