diff --git a/.circleci/config.yml b/.circleci/config.yml
index f398a7e2cdde..258256aabb0d 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,7 +6,7 @@ jobs:
build:
<<: *defaults
docker:
- - image: circleci/node:8
+ - image: circleci/node:8.9
steps:
- checkout
@@ -134,7 +134,7 @@ jobs:
test-with-oplog:
<<: *defaults
docker:
- - image: circleci/node:8-browsers
+ - image: circleci/node:8.9-browsers
- image: mongo:3.4
command: [mongod, --nojournal, --noprealloc, --smallfiles, --replSet=rs0]
@@ -179,7 +179,7 @@ jobs:
test-without-oplog:
<<: *defaults
docker:
- - image: circleci/node:8-browsers
+ - image: circleci/node:8.9-browsers
- image: circleci/mongo:3.4
environment:
@@ -208,7 +208,7 @@ jobs:
deploy:
<<: *defaults
docker:
- - image: circleci/node:4.8
+ - image: circleci/node:8.9
steps:
- attach_workspace:
@@ -247,6 +247,7 @@ jobs:
bash .circleci/update-releases.sh
bash .circleci/docker.sh
bash .circleci/snap.sh
+ bash .circleci/redhat-registry.sh
workflows:
version: 2
diff --git a/.circleci/redhat-registry.sh b/.circleci/redhat-registry.sh
new file mode 100755
index 000000000000..a206af991c19
--- /dev/null
+++ b/.circleci/redhat-registry.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -euvo pipefail
+IFS=$'\n\t'
+
+if [[ $CIRCLE_TAG ]]; then
+ curl -X POST \
+ https://connect.redhat.com/api/v2/projects/$REDHAT_REGISTRY_PID/build \
+ -H "Authorization: Bearer $REDHAT_REGISTRY_KEY" \
+ -H 'Cache-Control: no-cache' \
+ -H 'Content-Type: application/json' \
+ -d '{"tag":"'$CIRCLE_TAG'"}'
+fi
diff --git a/.docker/Dockerfile b/.docker/Dockerfile
index 681f04429a21..f356f252eda5 100644
--- a/.docker/Dockerfile
+++ b/.docker/Dockerfile
@@ -1,6 +1,6 @@
FROM rocketchat/base:8
-ENV RC_VERSION 0.63.0-develop
+ENV RC_VERSION 0.64.0-develop
MAINTAINER buildmaster@rocket.chat
diff --git a/.eslintrc b/.eslintrc
index 21792799a5c2..2510662072ce 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -132,6 +132,7 @@
"Promise" : false,
"Random" : false,
"ReactiveVar" : false,
+ "Reload" : false,
"RocketChat" : true,
"RocketChatFile" : false,
"RoomHistoryManager" : false,
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index c9f411fbc977..db905f2f947a 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -3,9 +3,6 @@
-
-@RocketChat/core
-
Closes #ISSUE_NUMBER
diff --git a/.github/bot-config.yml b/.github/bot-config.yml
index 7898d36372c7..2d181373504f 100644
--- a/.github/bot-config.yml
+++ b/.github/bot-config.yml
@@ -6,9 +6,14 @@ whitelist:
- theorenck
- JSzaszvari
labels:
+ - "Contributions: welcome"
+ - "Contributions: only core team"
+ - "Feature: Request"
+ - "Feature: Planned"
+ - "type: bug"
+ - "help wanted"
- duplicate
- enhancement
- - "help wanted"
- invalid
- question
- wontfix
diff --git a/.github/history.json b/.github/history.json
index e682ef04f3ac..1c523399eede 100644
--- a/.github/history.json
+++ b/.github/history.json
@@ -12107,7 +12107,36 @@
]
}
],
- "HEAD": [
+ "HEAD": [],
+ "0.63.0": [
+ {
+ "pr": "10303",
+ "title": "[FIX] Audio Message UI fixes",
+ "userLogin": "kb0304",
+ "contributors": [
+ "kb0304",
+ "ggazzo",
+ "web-flow"
+ ]
+ },
+ {
+ "pr": "10319",
+ "title": "[NEW] Improve history generation",
+ "userLogin": "rodrigok",
+ "milestone": "0.63.0",
+ "contributors": [
+ "rodrigok"
+ ]
+ },
+ {
+ "pr": "10323",
+ "title": "Fix: Reaction endpoint/api only working with regular emojis",
+ "userLogin": "graywolf336",
+ "milestone": "0.63.0",
+ "contributors": [
+ "graywolf336"
+ ]
+ },
{
"pr": "10313",
"title": "Bump snap version to include security fix",
@@ -12127,5 +12156,56 @@
"rodrigok"
]
}
+ ],
+ "0.63.1": [
+ {
+ "pr": "10348",
+ "title": "[FIX] Change deprecated Meteor._reload.reload method in favor of Reload._reload",
+ "userLogin": "tttt-conan",
+ "milestone": "0.63.1",
+ "contributors": [
+ "tttt-conan"
+ ]
+ },
+ {
+ "pr": "10351",
+ "title": "[FIX] Snaps crashing due to Node v8.11.1 Segfault",
+ "userLogin": "geekgonecrazy",
+ "milestone": "0.63.1",
+ "contributors": [
+ "geekgonecrazy",
+ "web-flow"
+ ]
+ },
+ {
+ "pr": "10084",
+ "title": "[FIX] Add '.value' in the SAML package to fix TypeErrors on SAML token validation",
+ "userLogin": "TechyPeople",
+ "milestone": "0.63.1",
+ "contributors": [
+ "TechyPeople",
+ "web-flow",
+ "rodrigok"
+ ]
+ },
+ {
+ "pr": "10356",
+ "title": "[FIX] Incorrect german translation of user online status",
+ "userLogin": "kaiiiiiiiii",
+ "milestone": "0.63.1",
+ "contributors": [
+ "kaiiiiiiiii"
+ ]
+ },
+ {
+ "pr": "10355",
+ "title": "[FIX] Incorrect French language usage for Disabled",
+ "userLogin": "graywolf336",
+ "milestone": "0.63.1",
+ "contributors": [
+ "graywolf336",
+ "web-flow"
+ ]
+ }
]
}
\ No newline at end of file
diff --git a/.github/issue-templates/release.md b/.github/issue-templates/release.md
new file mode 100644
index 000000000000..6918d52ab621
--- /dev/null
+++ b/.github/issue-templates/release.md
@@ -0,0 +1,59 @@
+# Release {version}
+We are releasing a new version, this issue will keep track of the progress between the first release candidate (20th of each month) to the final release (27th of each month).
+
+After the 20th of each month we start the release process that ends 7 days after, during that period we enter a Feature Freeze. While in the Feature Freeze, we will only be merging bug fixes and not new features.
+
+For any regression, open a new issue and link to this one.
+
+
+## Before Release - Preparation - 1 business day before the day 20th
+- [x] Create the issue to track the release progress
+- [ ] Define the highlights from release PRs as suggestion to be included on Blog Post
+- [ ] Talk to the Marketing Team about the Blog Post release
+- [ ] Talk to the Documentation Team about the Docs release
+- [ ] Sync translations from [LingoHub](https://translate.lingohub.com/rocketchat/rocket-dot-chat/dashboard)
+
+## Release Candidate 1 - On the 20th
+- [ ] Delete branch `release-candidate`
+- [ ] Create branch `release-candidate` based on `develop`
+- [ ] On branch `release-candidate` run `npm run release` and follow the steps
+- [ ] Publish the branch and the generated tag
+- [ ] Edit the tag on GitHub and paste the generated History removing the version from the first line and mark the checkbox **This is a pre-release**
+- [ ] Ensure the build is passing on CircleCI
+- [ ] Ensure the build is passing on Docker Hub
+
+
+
+## Final Release - On the 27th
+- [ ] Merge `develop` into `release-candidate` branch
+- [ ] Create a new branch `release-{version}` based on `release-candidate`
+- [ ] On branch `release-{version}` run `npm run release` and follow the steps **TODO: fix the history**
+- [ ] Publish only the branch
+- [ ] **Draft a new release** on GitHub
+ - [ ] Enter tag version as {version}
+ - [ ] Select target **master**
+ - [ ] Enter release title as {version}
+ - [ ] Paste the history removing the version from the first line
+ - [ ] Save as **draft**
+- [ ] Create a PR from the branch `release-{version}` with the same history from the tag/release
+- [ ] Ensure the build is passing on CircleCI
+- [ ] Ensure the build is passing on Docker Hub
+- [ ] When build is passing ask for approval
+- [ ] When approved merge it!
+- [ ] When merged edit the release/tag and publish it
+
+## After Release - Conclusion - 1 business day after the 27th
+- [ ] Check if related issues was closed
+- [ ] Check if related issues was assigned to the correct milestone
+- [ ] Check with the Marketing Team about the Blog Post release
+- [ ] Check with the Documentation Team about the Docs release
+- [ ] Create a Sync PR to merge back master to develop
+- [ ] Merge Sync PR
diff --git a/.openshift/rocket-chat-ephemeral.json b/.openshift/rocket-chat-ephemeral.json
index 2c5cd26e68fb..dd25e870ff64 100644
--- a/.openshift/rocket-chat-ephemeral.json
+++ b/.openshift/rocket-chat-ephemeral.json
@@ -151,7 +151,7 @@
"name": "rocketchat"
},
"spec": {
- "dockerImageRepository": "registry.connect.redhat.com/rocketchat/rocketchat",
+ "dockerImageRepository": "${ROCKETCHAT_IMAGE}",
"tags": [
{
"name": "latest",
@@ -241,7 +241,7 @@
"containers": [
{
"name": "rocketchat",
- "image": "registry.connect.redhat.com/rocketchat/rocketchat:latest",
+ "image": "${ROCKETCHAT_IMAGE}:latest",
"ports": [
{
"containerPort": 3000,
@@ -424,6 +424,13 @@
"value": "rocketchatdb",
"required": true
},
+ {
+ "name": "ROCKETCHAT_IMAGE",
+ "displayName": "RocketChat Image",
+ "description": "The RocketChat image to use for this deployment",
+ "required": true,
+ "value": "rocketchat/rocket.chat"
+ },
{
"name": "MONGODB_ADMIN_PASSWORD",
"displayName": "MongoDB Admin Password",
diff --git a/.openshift/rocket-chat-persistent.json b/.openshift/rocket-chat-persistent.json
index 150347e5165a..fe2a992ef232 100644
--- a/.openshift/rocket-chat-persistent.json
+++ b/.openshift/rocket-chat-persistent.json
@@ -171,7 +171,7 @@
"name": "rocketchat"
},
"spec": {
- "dockerImageRepository": "registry.connect.redhat.com/rocketchat/rocketchat",
+ "dockerImageRepository": "${ROCKETCHAT_IMAGE}",
"tags": [
{
"name": "latest",
@@ -261,7 +261,7 @@
"containers": [
{
"name": "rocketchat",
- "image": "registry.connect.redhat.com/rocketchat/rocketchat:latest",
+ "image": "${ROCKETCHAT_IMAGE}:latest",
"ports": [
{
"containerPort": 3000,
@@ -452,6 +452,13 @@
"from": "[a-zA-Z0-9]{16}",
"required": true
},
+ {
+ "name": "ROCKETCHAT_IMAGE",
+ "displayName": "RocketChat Image",
+ "description": "The RocketChat image to use for this deployment",
+ "required": true,
+ "value": "rocketchat/rocket.chat"
+ },
{
"name": "VOLUME_CAPACITY",
"displayName": "Volume Capacity",
diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp
index 1f51bd692104..b5e3e9786fe8 100644
--- a/.sandstorm/sandstorm-pkgdef.capnp
+++ b/.sandstorm/sandstorm-pkgdef.capnp
@@ -21,7 +21,7 @@ const pkgdef :Spk.PackageDefinition = (
appVersion = 62, # Increment this for every release.
- appMarketingVersion = (defaultText = "0.63.0-develop"),
+ appMarketingVersion = (defaultText = "0.64.0-develop"),
# Human-readable representation of appVersion. Should match the way you
# identify versions of your app in documentation and marketing.
diff --git a/.snapcraft/snapcraft.yaml b/.snapcraft/snapcraft.yaml
index e606118de206..ee09287ce2ef 100644
--- a/.snapcraft/snapcraft.yaml
+++ b/.snapcraft/snapcraft.yaml
@@ -16,7 +16,7 @@ apps:
rocketchat-server:
command: startRocketChat
daemon: simple
- plugs: [network, network-bind]
+ plugs: [network, network-bind, desktop]
rocketchat-mongo:
command: startmongo
daemon: simple
@@ -38,8 +38,8 @@ apps:
command: env LC_ALL=c initcaddy
parts:
node:
- plugin: nodejs
- node-engine: 8.11.1
+ plugin: dump
+ prepare: wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz; tar xvf node-v8.9.4-linux-x64.tar.xz --strip 1;
build-packages:
# For fibers
- python
diff --git a/.travis/snap.sh b/.travis/snap.sh
index e663baeb15d5..c8a57fb46834 100755
--- a/.travis/snap.sh
+++ b/.travis/snap.sh
@@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then
RC_VERSION=$TRAVIS_TAG
else
CHANNEL=edge
- RC_VERSION=0.63.0-develop
+ RC_VERSION=0.64.0-develop
fi
echo "Preparing to trigger a snap release for $CHANNEL channel"
diff --git a/HISTORY.md b/HISTORY.md
index e8fd062877f4..6b32486661bb 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,62 +1,28 @@
+
+# 0.64.0-develop (2018-04-07)
-# Next
-`2018-04-03 · 2 🔍`
-🔍 Minor changes
-
-- Bump snap version to include security fix ([#10313](https://github.com/RocketChat/Rocket.Chat/pull/10313))
-- Update Meteor to 1.6.1.1 ([#10314](https://github.com/RocketChat/Rocket.Chat/pull/10314))
-
-🔍 Minor changes
-
-- Fix: inputs for rocketchat apps ([#10274](https://github.com/RocketChat/Rocket.Chat/pull/10274))
-- Fix: chat.react api not accepting previous emojis ([#10290](https://github.com/RocketChat/Rocket.Chat/pull/10290))
-- Fix: Scroll on content page ([#10300](https://github.com/RocketChat/Rocket.Chat/pull/10300))
-
-🔍 Minor changes
-
-- Fix: Renaming channels.notifications Get/Post endpoints ([#10257](https://github.com/RocketChat/Rocket.Chat/pull/10257))
-- Fix caddy download link to pull from github ([#10260](https://github.com/RocketChat/Rocket.Chat/pull/10260))
-- Fix: possible errors on rocket.chat side of the apps ([#10252](https://github.com/RocketChat/Rocket.Chat/pull/10252))
-- Fix snap install. Remove execstack from sharp, and bypass grpc error ([#10015](https://github.com/RocketChat/Rocket.Chat/pull/10015))
-
-🔍 Minor changes
+- Fix: Reaction endpoint/api only working with regular emojis ([#10323](https://github.com/RocketChat/Rocket.Chat/pull/10323))
+- Bump snap version to include security fix ([#10313](https://github.com/RocketChat/Rocket.Chat/pull/10313))
+- Update Meteor to 1.6.1.1 ([#10314](https://github.com/RocketChat/Rocket.Chat/pull/10314))
- LingoHub based on develop ([#10243](https://github.com/RocketChat/Rocket.Chat/pull/10243))
- Rename migration name on 108 to match file name ([#10237](https://github.com/RocketChat/Rocket.Chat/pull/10237))
- Fix typo for Nextcloud login ([#10159](https://github.com/RocketChat/Rocket.Chat/pull/10159) by [@pierreozoux](https://github.com/pierreozoux))
@@ -133,6 +112,13 @@
- [OTHER] Reactivate API tests ([#9844](https://github.com/RocketChat/Rocket.Chat/pull/9844))
- Start 0.63.0-develop / develop sync from master ([#9985](https://github.com/RocketChat/Rocket.Chat/pull/9985))
- Release 0.62.2 ([#10087](https://github.com/RocketChat/Rocket.Chat/pull/10087))
+- Fix: Renaming channels.notifications Get/Post endpoints ([#10257](https://github.com/RocketChat/Rocket.Chat/pull/10257))
+- Fix caddy download link to pull from github ([#10260](https://github.com/RocketChat/Rocket.Chat/pull/10260))
+- Fix: possible errors on rocket.chat side of the apps ([#10252](https://github.com/RocketChat/Rocket.Chat/pull/10252))
+- Fix snap install. Remove execstack from sharp, and bypass grpc error ([#10015](https://github.com/RocketChat/Rocket.Chat/pull/10015))
+- Fix: inputs for rocketchat apps ([#10274](https://github.com/RocketChat/Rocket.Chat/pull/10274))
+- Fix: chat.react api not accepting previous emojis ([#10290](https://github.com/RocketChat/Rocket.Chat/pull/10290))
+- Fix: Scroll on content page ([#10300](https://github.com/RocketChat/Rocket.Chat/pull/10300))
Tài khoản của bạn đã được chấp thuận.
", - "Accounts_Email_Activated": "[tên]Tài khoản của bạn đã được kích hoạt.
", - "Accounts_Email_Deactivated": "[tên]Tài khoản của bạn đã bị vô hiệu hoá.
", + "Accounts_Email_Approved": "[name]Tài khoản của bạn đã được chấp thuận.
", + "Accounts_Email_Activated": "[name]Tài khoản của bạn đã được kích hoạt.
", + "Accounts_Email_Deactivated": "[name]Tài khoản của bạn đã bị vô hiệu hoá.
", "Accounts_Email_Approved_Subject": "Tài khoản được chấp thuận", "Accounts_Email_Activated_Subject": "Đã kích hoạt tài khoản", "Accounts_Email_Deactivated_Subject": "Tài khoản đã ngừng hoạt động", "Accounts_Enrollment_Email": "Email đăng ký", "Accounts_Enrollment_Email_Default": "Truy cập [Site_URL] và trải nghiệm nền tảng chat trực tuyến tốt nhất hiện nay!
", - "Accounts_Enrollment_Email_Description": "Bạn có thể các sử dụng quy tắc sau:Người dùng [tên] ([email])đã được đăng ký.
Vui lòng kiểm tra \"Quản trị ->Người dùng\" để kích hoạt hoặc xóa nó.
", - "Accounts_Admin_Email_Approval_Needed_With_Reason_Default": "Người dùng [tên] ([email])đã được đăng ký.
Lý do: [lý do]
Vui lòng kiểm tra \"Quản trị ->Người dùng\" để kích hoạt hoặc xóa nó.
", + "Accounts_Admin_Email_Approval_Needed_Default": "Người dùng [name] ([email])đã được đăng ký.
Vui lòng kiểm tra \"Quản trị ->Người dùng\" để kích hoạt hoặc xóa nó.
", + "Accounts_Admin_Email_Approval_Needed_With_Reason_Default": "Người dùng [name] ([email])đã được đăng ký.
Lý do: [lý do]
Vui lòng kiểm tra \"Quản trị ->Người dùng\" để kích hoạt hoặc xóa nó.
", "Accounts_Admin_Email_Approval_Needed_Subject_Default": "Đã đăng ký người dùng mới và cần phê duyệt", "Accounts_ForgetUserSessionOnWindowClose": "Xóa phiên đăng nhập của người dùng khi đóng cửa sổ", "Accounts_Iframe_api_method": "Phương thức API", @@ -65,7 +65,7 @@ "Accounts_iframe_enabled": "Đã bật", "Accounts_iframe_url": "Iframe Url", "Accounts_LoginExpiration": "Số ngày hết hạn đăng nhập", - "Accounts_ManuallyApproveNewUsers": "Xác thực người dùng mới thủ công", + "Accounts_ManuallyApproveNewUsers": "Xác thực người dùng mới một cách thủ công", "Accounts_OAuth_Custom_Authorize_Path": "Đường dẫn ủy quyền (Authorize)", "Accounts_OAuth_Custom_Button_Color": "Màu của nút", "Accounts_OAuth_Custom_Button_Label_Color": "Màu chữ của nút", @@ -86,41 +86,41 @@ "Accounts_OAuth_Drupal_id": "ID máy khách Drupal oAuth2", "Accounts_OAuth_Drupal_secret": "Drupal oAuth2 Client Secret", "Accounts_OAuth_Facebook": "Đăng nhập qua facebook", - "Accounts_OAuth_Facebook_callback_url": "URL gọi lại Facebook", + "Accounts_OAuth_Facebook_callback_url": "URL callback Facebook", "Accounts_OAuth_Facebook_id": "ID ứng dụng Facebook", - "Accounts_OAuth_Facebook_secret": "Facebook bí mật", + "Accounts_OAuth_Facebook_secret": "Facebook secret", "Accounts_OAuth_Github": "Đã cho phép đăng nhập qua OAuth", - "Accounts_OAuth_Github_callback_url": "URL gọi lại Github", + "Accounts_OAuth_Github_callback_url": "URL callback Github", "Accounts_OAuth_GitHub_Enterprise": "Đã cho phép đăng nhập qua OAuth", - "Accounts_OAuth_GitHub_Enterprise_callback_url": "URL gọi lại GitHub Enterprise", + "Accounts_OAuth_GitHub_Enterprise_callback_url": "URL callback GitHub Enterprise", "Accounts_OAuth_GitHub_Enterprise_id": "Client Id", - "Accounts_OAuth_GitHub_Enterprise_secret": "Khách hàng bí mật", + "Accounts_OAuth_GitHub_Enterprise_secret": "Client Secret", "Accounts_OAuth_Github_id": "Client Id", - "Accounts_OAuth_Github_secret": "Khách hàng bí mật", + "Accounts_OAuth_Github_secret": "Client Secret", "Accounts_OAuth_Gitlab": "Đã cho phép đăng nhập qua OAuth", - "Accounts_OAuth_Gitlab_callback_url": "URL gọi lại GitLab", + "Accounts_OAuth_Gitlab_callback_url": "URL callback GitLab", "Accounts_OAuth_Gitlab_id": "Id GitLab", - "Accounts_OAuth_Gitlab_secret": "Khách hàng bí mật", + "Accounts_OAuth_Gitlab_secret": "Client Secret", "Accounts_OAuth_Google": "Đăng nhập Google", - "Accounts_OAuth_Google_callback_url": "URL gọi lại của Google", + "Accounts_OAuth_Google_callback_url": "URL callback của Google", "Accounts_OAuth_Google_id": "Id của Google", "Accounts_OAuth_Google_secret": "Google Secret", "Accounts_OAuth_Linkedin": "Đăng nhập LinkedIn", - "Accounts_OAuth_Linkedin_callback_url": "URL gọi lại Linkedin", + "Accounts_OAuth_Linkedin_callback_url": "URL callback Linkedin", "Accounts_OAuth_Linkedin_id": "ID LinkedIn", "Accounts_OAuth_Linkedin_secret": "LinkedIn Secret", "Accounts_OAuth_Meteor": "Đăng nhập qua Meteor", - "Accounts_OAuth_Meteor_callback_url": "URL gọi lại của Meteor", + "Accounts_OAuth_Meteor_callback_url": "URL callback của Meteor", "Accounts_OAuth_Meteor_id": "Id Meteor", "Accounts_OAuth_Meteor_secret": "Meteor Secret", "Accounts_OAuth_Tokenpass": "Đăng nhập Tokenpass", - "Accounts_OAuth_Tokenpass_callback_url": "URL gọi lại Tokenpass", + "Accounts_OAuth_Tokenpass_callback_url": "URL callback Tokenpass", "Accounts_OAuth_Tokenpass_id": "Id Tokenpass", "Accounts_OAuth_Tokenpass_secret": "Tokenpass Secret", "Accounts_OAuth_Proxy_host": "Chủ Proxy", "Accounts_OAuth_Twitter": "Đăng nhập qua Twitter", "Accounts_OAuth_Wordpress": "Đăng nhập qua WordPress", - "Accounts_OAuth_Wordpress_callback_url": "URL gọi lại WordPress", + "Accounts_OAuth_Wordpress_callback_url": "URL callback WordPress", "Accounts_PasswordReset": "Đặt lại mật khẩu", "Accounts_Registration_AuthenticationServices_Default_Roles": "Vai trò mặc định của Authentication Services", "Accounts_Registration_AuthenticationServices_Default_Roles_Description": "Các vai trò (phân cách bằng dấu phẩy) của người dùng sau khi đăng ký thông qua authentication services", @@ -130,7 +130,7 @@ "Accounts_RegistrationForm_LinkReplacementText": "Chữ thay cho đường dẫn đến Form đăng ký ", "Accounts_RegistrationForm_Public": "Công khai", "Accounts_RegistrationForm_Secret_URL": "Bí mật", - "Accounts_RegistrationForm_SecretURL": "Đường dẫn bí mật đến form đăng ký", + "Accounts_RegistrationForm_SecretURL": "Đường dẫn Secret form đăng ký", "Accounts_RegistrationForm_SecretURL_Description": "Bạn phải sử dụng một chuỗi ký tự ngẫu nhiên để thêm vào đường dẫn đến form đăng ký. Ví dụ: https://demo.rocket.chat/register/[secret_hash]", "Accounts_RequireNameForSignUp": "Yêu cầu tên khi đăng ký", "Accounts_RequirePasswordConfirmation": "Yêu cầu xác nhận mật khẩu", @@ -143,6 +143,7 @@ "Accounts_UseDefaultBlockedDomainsList": "Sử dụng danh sách tên miền bị chặn mặc định", "Accounts_UseDNSDomainCheck": "Sử dụng DNS Domain Check", "Accounts_UserAddedEmail_Default": "Hãy truy cập [Site_URL] và trải nghiệm giải pháp mã nguồn mở tuyệt vời nhất hiện nay!
Bạn có thể đăng nhập sử dụng hòm thư: [email] và mật khẩu: [password]. Bạn có thể được yêu cầu thay đổi nó sau lần đăng nhập đầu tiên.",
+ "Accounts_UserAddedEmail_Description": "Bạn có thể sử dụng các placeholder sau:
\r\n Xin chào [fname], vui lòng bấm vào liên kết sau để tạo mật khẩu mới:\r\n [Forgot_Password_Url]\r\n <\/p>\r\n