summaryrefslogtreecommitdiffstats
path: root/l10n-vi/chat
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--l10n-vi/chat/accounts.dtd41
-rw-r--r--l10n-vi/chat/accounts.properties9
-rw-r--r--l10n-vi/chat/commands.properties27
-rw-r--r--l10n-vi/chat/contacts.properties8
-rw-r--r--l10n-vi/chat/conversations.properties80
-rw-r--r--l10n-vi/chat/facebook.properties6
-rw-r--r--l10n-vi/chat/imtooltip.properties12
-rw-r--r--l10n-vi/chat/irc.properties209
-rw-r--r--l10n-vi/chat/logger.properties7
-rw-r--r--l10n-vi/chat/matrix.ftl23
-rw-r--r--l10n-vi/chat/matrix.properties245
-rw-r--r--l10n-vi/chat/status.properties23
-rw-r--r--l10n-vi/chat/twitter.properties122
-rw-r--r--l10n-vi/chat/xmpp.properties281
-rw-r--r--l10n-vi/chat/yahoo.properties5
15 files changed, 1098 insertions, 0 deletions
diff --git a/l10n-vi/chat/accounts.dtd b/l10n-vi/chat/accounts.dtd
new file mode 100644
index 0000000000..cedf72f383
--- /dev/null
+++ b/l10n-vi/chat/accounts.dtd
@@ -0,0 +1,41 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Account manager window for Instantbird -->
+<!ENTITY accounts.title "Tài khoản – &brandShortName;">
+<!ENTITY accountManager.width "450">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Trạng thái nhắn tin tức thời">
+<!ENTITY accountsWindow2.style "width: 41em; height: 27em;">
+
+<!ENTITY accountManager.newAccount.label "Tài khoản mới">
+<!ENTITY accountManager.newAccount.accesskey "N">
+<!ENTITY accountManager.close.label "Đóng">
+<!ENTITY accountManager.close.accesskey "l">
+<!-- This should match account.commandkey in instantbird.dtd -->
+<!ENTITY accountManager.close.commandkey "a">
+<!-- This title must be short, displayed with a big font size -->
+<!ENTITY accountManager.noAccount.title "Chưa có cấu hình tài khoản nào">
+<!ENTITY accountManager.noAccount.description "Nhấp vào nút &accountManager.newAccount.label; để &brandShortName; hướng dẫn bạn qua quá trình cấu hình một.">
+<!ENTITY account.autoSignOn.label "Đăng nhập khi khởi động">
+<!ENTITY account.autoSignOn.accesskey "S">
+<!ENTITY account.connect.label "Kết nối">
+<!ENTITY account.connect.accesskey "o">
+<!ENTITY account.disconnect.label "Ngắt kết nối">
+<!ENTITY account.disconnect.accesskey "i">
+<!ENTITY account.delete.label "Xóa">
+<!ENTITY account.delete.accesskey "D">
+<!ENTITY account.edit.label "Thuộc tính">
+<!ENTITY account.edit.accesskey "P">
+<!ENTITY account.moveup.label "Di chuyển lên">
+<!ENTITY account.movedown.label "Di chuyển xuống">
+<!ENTITY account.cancelReconnection.label "Hủy kết nối lại">
+<!ENTITY account.cancelReconnection.accesskey "A">
+<!ENTITY account.copyDebugLog.label "Sao chép nhật ký gỡ lỗi">
+<!ENTITY account.copyDebugLog.accesskey "C">
+<!ENTITY account.showDebugLog.label "Xem nhật ký gỡ lỗi">
+<!ENTITY account.showDebugLog.accesskey "H">
+<!ENTITY account.connecting "Đang kết nối…">
+<!ENTITY account.disconnecting "Đang ngắt kết nối…">
+<!ENTITY account.disconnected "Chưa được kết nối">
diff --git a/l10n-vi/chat/accounts.properties b/l10n-vi/chat/accounts.properties
new file mode 100644
index 0000000000..ec6d816317
--- /dev/null
+++ b/l10n-vi/chat/accounts.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=Mật khẩu cho %S
+passwordPromptText=Vui lòng nhập mật khẩu của bạn cho %S để kết nối nó.
+passwordPromptSaveCheckbox=Dùng trình quản lý mật khẩu để ghi nhớ mật khẩu này.
diff --git a/l10n-vi/chat/commands.properties b/l10n-vi/chat/commands.properties
new file mode 100644
index 0000000000..7b136a24b2
--- /dev/null
+++ b/l10n-vi/chat/commands.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (commands):
+# %S is a comma separated list of command names.
+commands=Các lệnh: %S.\nSử dụng &lt;lệnh&gt; /help để biết thêm thông tin.
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=Không có lệnh '%S'.
+noHelp=Không có trợ giúp cho lệnh '%S', xin lỗi!
+
+sayHelpString=say &lt;message&gt;: gửi tin nhắn mà không xử lý lệnh.
+rawHelpString=raw &lt;nội dung tin nhắn&gt;: gửi một tin nhắn mà không escape các thẻ HTML.
+helpHelpString=help &lt;tên lệnh&gt;: hiển thị trợ giúp với lệnh &lt;tên lệnh&gt;, hoặc danh sách các lệnh có thể sử dụng nếu không truyền tham số.
+
+# LOCALIZATION NOTE (statusCommand):
+# %1$S is replaced with a status command name
+# (one of "back", "away", "busy", "dnd", or "offline").
+# %2$S is replaced with the localized version of that status type
+# (one of the 5 strings below).
+statusCommand=%1$S &lt;thông báo trạng thái&gt;: đặt trạng thái cho %2$S với một thông báo trạng thái tùy chọn.
+back=khả dụng
+away=vắng mặt
+busy=không khả dụng
+dnd=không khả dụng
+offline=ngoại tuyến
diff --git a/l10n-vi/chat/contacts.properties b/l10n-vi/chat/contacts.properties
new file mode 100644
index 0000000000..a0f94fc7ae
--- /dev/null
+++ b/l10n-vi/chat/contacts.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=Liên hệ
diff --git a/l10n-vi/chat/conversations.properties b/l10n-vi/chat/conversations.properties
new file mode 100644
index 0000000000..4ebbe3788d
--- /dev/null
+++ b/l10n-vi/chat/conversations.properties
@@ -0,0 +1,80 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=Cuộc trò chuyện sẽ tiếp tục với %1$S, sử dụng %2$S.
+
+# LOCALIZATION NOTE (statusChanged):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S hiện là %2$S.
+# LOCALIZATION NOTE (statusChangedWithStatusText):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+# %3$S is the status text (eg. "I'm currently away from the computer").
+statusChangedWithStatusText=%1$S hiện là %2$S: %3$S.
+# LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
+# special case of the previous 2 strings for when the status was
+# previously unknown. These 2 strings should not mislead the user
+# into thinking the person's status has just changed.
+statusChangedFromUnknown=%1$S là %2$S.
+statusChangedFromUnknownWithStatusText=%1$S là %2$S: %3$S.
+# LOCALIZATION NOTE (statusKnown[WithStatusText]):
+# special case of the previous 2 strings for when an account has just
+# been reconnected, so the status is now known. These 2 strings should not
+# mislead the user into thinking the person's status has just changed.
+statusKnown=Tài khoản của bạn đã được kết nối lại (%1$S là %2$S).
+statusKnownWithStatusText=Tài khoản của bạn đã được kết nối lại (%1$S là %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=Tài khoản của bạn bị ngắt kết nối (trạng thái của %S không còn được biết đến).
+
+accountDisconnected=Tài khoản của bạn đã bị ngắt kết nối.
+accountReconnected=Tài khoản của bạn đã được kết nối lại.
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Tự động trả lời - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=Không có tin nhắn chủ đề cho phòng này.
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=Chủ đề cho %1$S là: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=Không có chủ đề cho %S.
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S đã thay đổi chủ đề thành: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S đã xóa chủ đề.
+
+# LOCALIZATION NOTE (nickSet):
+# This is displayed as a system message when a participant changes his/her
+# nickname in a conversation.
+# %1$S is the old nick.
+# %2$S is the new nick.
+nickSet=%1$S hiện được gọi là %2$S.
+# LOCALIZATION NOTE (nickSet.you):
+# This is displayed as a system message when your nickname is changed.
+# %S is your new nick.
+nickSet.you=Bây giờ bạn được gọi là %S.
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+# ellipsis is used when copying a part of a message to show that the message was cut
+messenger.conversations.selections.ellipsis=[…]
+
+# LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate):
+# These 3 templates are used to format selected messages before copying them.
+# Do not translate the texts between % characters, but feel free to adjust
+# whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%sender% - %time%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
diff --git a/l10n-vi/chat/facebook.properties b/l10n-vi/chat/facebook.properties
new file mode 100644
index 0000000000..ca099ca972
--- /dev/null
+++ b/l10n-vi/chat/facebook.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+facebook.chat.name=Trò chuyện Facebook
+facebook.disabled=Trò chuyện Facebook không còn được hỗ trợ do Facebook vô hiệu hóa cổng XMPP của họ.
diff --git a/l10n-vi/chat/imtooltip.properties b/l10n-vi/chat/imtooltip.properties
new file mode 100644
index 0000000000..a3699a1ae9
--- /dev/null
+++ b/l10n-vi/chat/imtooltip.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buddy.username=Tên đăng nhập
+buddy.account=Tài khoản
+contact.tags=Nhãn
+
+otr.tag=Trạng thái OTR
+
+encryption.tag=Trạng thái mã hóa
+message.status=Tin nhắn được mã hóa
diff --git a/l10n-vi/chat/irc.properties b/l10n-vi/chat/irc.properties
new file mode 100644
index 0000000000..9e3cc8c397
--- /dev/null
+++ b/l10n-vi/chat/irc.properties
@@ -0,0 +1,209 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (irc.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring an IRC account.
+irc.usernameHint=biệt danh
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=Mất kết nối với máy chủ
+connection.error.timeOut=Đã hết thời gian kết nối
+connection.error.invalidUsername=%S không được chấp nhận là tên đăng nhập
+connection.error.invalidPassword=Mật khẩu máy chủ không đúng
+connection.error.passwordRequired=Yêu cầu mật khẩu
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Kênh
+joinChat.password=_Mật khẩu
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=Máy chủ
+options.port=Cổng
+options.ssl=Sử dụng SSL
+options.encoding=Bảng mã
+options.quitMessage=Thoát tin nhắn
+options.partMessage=Phần tin nhắn
+options.showServerTab=Hiển thị tin nhắn từ máy chủ
+options.alternateNicks=Biệt danh thay thế
+
+# LOCALIZATION NOTE (ctcp.version):
+# %1$S is the nickname of the user whose version was requested.
+# %2$S is the version response from the client.
+ctcp.version=%1$S đang dùng "%2$S".
+# LOCALIZATION NOTE (ctcp.time):
+# %1$S is the nickname of the user whose time was requested.
+# %2$S is the time response.
+ctcp.time=Thời gian cho %1$S là %2$S.
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.action=%S &lt;hành động thực hiện&gt;: Thực hiện một hành động.
+command.ban=%S &lt;nick!user@host&gt;: Cấm người dùng khớp với mẫu đã cho.
+command.ctcp=%S &lt;nick&gt; &lt;msg&gt;: Gửi một tin nhắn CTCP tới nickname.
+command.chanserv=%S &lt;câu lệnh&gt;: Gửi một câu lệnh tới ChanServ.
+command.deop=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Xóa trạng thái điều hành kênh của một ai đó. Bạn phải là một điều hành kênh để làm được điều này.
+command.devoice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Xóa trạng thái thoại kênh của một ai đó, ngăn họ nói nếu kênh được kiểm duyệt (+m). Bạn phải là một nhà điều hành kênh để làm điều này.
+command.invite2=%S &lt;nick&gt;[ &lt;nick&gt;]* [&lt;kênh&gt;]: Mời một hoặc nhiều nickname tham gia cùng bạn trong kênh hiện tại, hoặc tham gia kênh đã được chỉ định.
+command.join=%S &lt;room1&gt;[ &lt;key1&gt;][,&lt;room2&gt;[ key2&gt;]]*: Nhập một hoặc nhiều kênh, tùy chọn cung cấp khóa cho mỗi kênh nếu cần.
+command.kick=%S &lt;nick&gt; [&lt;tin nhắn&gt;]: Xóa người nào đó từ một kênh. Bạn phải là nhà điều hành kênh để làm được điều này.
+command.list=%S: Hiển thị danh sách các phòng trò chuyện trên mạng. Cảnh báo, một số máy chủ có thể mất kết nối tới bạn khi thực hiện việc này.
+command.memoserv=%S &lt;câu lệnh&gt;: Gửi một câu lệnh tới MemoServ.
+command.modeUser2=%S &lt;nick&gt; [(+|-)&lt;chế độ&gt;]: Lấy, đặt hoặc hủy đặt một chế độ của người dùng.
+command.modeChannel2=%S [&lt;kênh&gt;] [(+|-)&lt;chế độ mới&gt; [&lt;tham số&gt;][,tham số&gt;]*]: Lấy, đặt, hoặc hủy đặt một chế độ kênh.
+command.msg=%S &lt;nick&gt; &lt;tin nhắn&gt;: Gửi một tin nhắn riêng tới người dùng (chứ không phải kênh).
+command.nick=%S &lt;nickname mới&gt;: Thay đổi nickname của bạn.
+command.nickserv=%S &lt;câu lệnh&gt;: Gửi một câu lệnh tới NickServ.
+command.notice=%S &lt;đối tượng&gt; &lt;tin nhắn&gt;: Gửi một thông báo đến một người dùng hoặc kênh.
+command.op=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Cấp một trạng thái điều hành kênh cho một ai đó. Bạn phải là một điều hành kênh để làm được điều này.
+command.operserv=%S &lt;câu lệnh&gt;: Gửi một câu lệnh tới OperServ.
+command.part=%S [tin nhắn]: Để lại một tin nhắn tùy chọn ở kênh hiện tại.
+command.ping=%S [&lt;nick&gt;]: Truy vấn mức độ trễ của người dùng (hoặc máy chủ nếu không có người dùng nào được chỉ định).
+command.quit=%S &lt;tin nhắn&gt;: Ngắt kết nối tới máy chủ, với một thông báo tùy chọn.
+command.quote=%S &lt;câu lệnh&gt;: Gửi một câu lệnh raw tới máy chủ.
+command.time=%S: Hiển thị giờ địa phương thời điểm hiện tại của máy chủ IRC.
+command.topic=%S [&lt;chủ đề mới&gt;]: Đặt chủ đề cho kênh này.
+command.umode=%S (+|-)&lt;chế độ mới&gt;: Đặt hoặc hủy một chế độ người dùng.
+command.version=%S &lt;nick&gt;: Truy vấn phiên bản ứng dụng máy khách của người dùng.
+command.voice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Cấp một trạng thái thoại kênh cho một ai đó. Bạn phải là một điều hành kênh để làm việc này.
+command.whois2=%S [&lt;nick&gt;]: Thu thập thông tin về một người dùng.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the nick and %2$S is the nick and host of the user who joined.
+message.join=%1$S [%2$S] đã vào phòng.
+message.rejoined=Bạn đã gia nhập lại phòng.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=Bạn đã bị đuổi ra khỏi phòng bởi %1$S%2$S.
+# %1$S is the nick that is kicked, %2$S the nick of the person who kicked
+# %1$S. %3$S is message.kicked.reason, if a kick message was given.
+message.kicked=%1$S đã bị đuổi ra khỏi phòng bởi %2$S%3$S.
+# %S is the kick message
+message.kicked.reason=: %S
+# %1$S is the new mode, %2$S is the nickname of the user whose mode
+# was changed, and %3$S is who set the mode.
+message.usermode=Chế độ %1$S cho %2$S được đặt bởi %3$S.
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=Chế độ kênh %1$S cài đặt bởi %2$S.
+# %S is the user's mode.
+message.yourmode=Chế độ của bạn là %S.
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=Không thể sử dụng biệt danh mong muốn. Biệt danh của bạn vẫn là %S.
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=Bạn đã rời khỏi phòng (Phần%1$S).
+# %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
+message.parted=%1$S đã rời khỏi phòng (Phần %2$S).
+# %S is the part message supplied by the user.
+message.parted.reason=: %S
+# %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
+message.quit=%1$S đã rời khỏi phòng (Thoát %2$S).
+# The parameter is the quit message given by the user.
+message.quit2=: %S
+# %1$S is the nickname of the user that invited us, %2$S is the conversation
+# name.
+message.inviteReceived=%1$S mời bạn tham dự %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to.
+message.invited=%1$S đã được mời thành công đến %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to but are already in
+message.alreadyInChannel=%1$S đã ở trong %2$S.
+# %S is the nickname of the user who was summoned.
+message.summoned=%S đã được triệu tập.
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=Thông tin WHOIS cho %S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S đang ngoại tuyến. Thông tin WHOWAS cho %1$S:
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+message.whoisEntry=\ua0\ua0\ua0\ua0%1$S: %2$S
+# %S is the nickname that is not known to the server.
+message.unknownNick=%S là một biệt danh không xác định.
+# %1$S is the nickname of the user who changed the mode and %2$S is the new
+# channel key (password).
+message.channelKeyAdded=%1$S đã thay đổi mật khẩu kênh thành %2$S.
+message.channelKeyRemoved=%S đã xóa mật khẩu kênh.
+# This will be followed by a list of ban masks.
+message.banMasks=Người dùng được kết nối từ các vị trí sau bị cấm khỏi %S:
+message.noBanMasks=Không có vị trí bị cấm cho %S.
+message.banMaskAdded=Những người dùng được kết nối từ các vị trí khớp với %1$S đã bị cấm bởi %2$S.
+message.banMaskRemoved=Những người dùng được kết nối từ các vị trí khớp với %1$S đã không còn bị cấm bởi %2$S.
+# LOCALIZATION NOTE (message.ping): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %1$S is the nickname of the user or the server that was pinged.
+# #2 is the delay (in milliseconds).
+message.ping=Ping trả lời từ %1$S trong #2 mili giây.
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=Ở đây không có kênh: %S.
+error.tooManyChannels=Không thể tham gia %S; bạn đã tham gia quá nhiều kênh.
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=Biệt danh đã được sử dụng, thay đổi biệt danh thành %1$S [%2$S].
+error.erroneousNickname=%S không được chấp nhận là biệt danh.
+error.banned=Bạn đã bị cấm từ máy chủ này.
+error.bannedSoon=Bạn sẽ sớm bị cấm từ máy chủ này.
+error.mode.wrongUser=Bạn không thể thay đổi chế độ cho người dùng khác.
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S không trực tuyến.
+error.wasNoSuchNick=Không có biệt danh: %S
+error.noSuchChannel=Ở đây không có kênh: %S.
+error.unavailable=%S tạm thời không có sẵn.
+# %S is the channel name.
+error.channelBanned=Bạn đã bị cấm khỏi %S.
+error.cannotSendToChannel=Bạn không thể gửi tin nhắn đến %S.
+error.channelFull=Kênh %S đã đầy.
+error.inviteOnly=Bạn phải được mời để tham gia %S.
+error.nonUniqueTarget=%S không phải là một user@host hoặc tên viết tắt duy nhất hoặc bạn cố gắng tham gia nhiều kênh cùng một lúc.
+error.notChannelOp=Bạn không phải là nhà điều hành kênh trên %S.
+error.notChannelOwner=Bạn không phải là một chủ sở hữu kênh của %S.
+error.wrongKey=Không thể tham gia %S, mật khẩu kênh không đúng.
+error.sendMessageFailed=Đã xảy ra lỗi trong khi gửi tin nhắn cuối cùng của bạn. Vui lòng thử lại sau khi kết nối đã được thiết lập lại.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=Bạn không được tham gia %1$S và được tự động chuyển hướng đến %2$S.
+# %S is the mode that the user tried to set but was not recognized
+# by the server as a valid mode.
+error.unknownMode='%S' không phải là chế độ người dùng hợp lệ trên máy chủ này.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from a whois response.
+# The human readable ("realname") description of the user.
+tooltip.realname=Tên
+tooltip.server=Kết nối với
+# The username and hostname that the user connects from (usually based on the
+# reverse DNS of the user's IP, but often mangled by the server to
+# protect users).
+tooltip.connectedFrom=Kết nối từ
+tooltip.registered=Đã đăng ký
+tooltip.registeredAs=Đã đăng ký là
+tooltip.secure=Sử dụng kết nối an toàn
+# The away message of the user
+tooltip.away=Vắng mặt
+tooltip.ircOp=Nhà điều hành IRC
+tooltip.bot=Bot
+tooltip.lastActivity=Lần hoạt động cuối
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S trước
+tooltip.channels=Hiện tại
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+tooltip.serverValue=%1$S (%2$S)
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Có
+no=Không
diff --git a/l10n-vi/chat/logger.properties b/l10n-vi/chat/logger.properties
new file mode 100644
index 0000000000..ce7a76a7e6
--- /dev/null
+++ b/l10n-vi/chat/logger.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (badLogfile):
+# %S is the filename of the log file.
+badLogfile=Tập tin nhật ký trống hoặc bị hỏng: %S
diff --git a/l10n-vi/chat/matrix.ftl b/l10n-vi/chat/matrix.ftl
new file mode 100644
index 0000000000..745567062f
--- /dev/null
+++ b/l10n-vi/chat/matrix.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Matrix Protocol strings
+
+
+## Conversation names when a room has no user readable name.
+
+room-name-empty = Cuộc trò chuyện trống
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Cuộc trò chuyện trống (tên mới của { $oldName })
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantsCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others =
+ { $otherParticipantsCount ->
+ *[other] { $participant } và { $otherParticipantCount } người khác
+ }
diff --git a/l10n-vi/chat/matrix.properties b/l10n-vi/chat/matrix.properties
new file mode 100644
index 0000000000..2cb4add47b
--- /dev/null
+++ b/l10n-vi/chat/matrix.properties
@@ -0,0 +1,245 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (matrix.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Matrix account.
+matrix.usernameHint=Matrix ID
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=Lưu trữ token truy cập
+options.deviceDisplayName=Tên hiển thị thiết bị
+options.homeserver=Máy chủ
+options.backupPassphrase=Cụm mật khẩu sao lưu chính
+
+# LOCALIZATION NOTE (options.encryption.*):
+# These are strings used to build the status information of the encryption
+# storage, shown in the account manager. %S is one of the statuses and the
+# strings are combined with a pipe (|) between.
+options.encryption.statusOk=ok
+options.encryption.statusNotOk=không sẵn sàng
+options.encryption.needBackupPassphrase=Vui lòng nhập cụm mật khẩu khóa dự phòng của bạn trong các tùy chọn giao thức.
+options.encryption.setUpSecretStorage=Để thiết lập bộ nhớ bí mật, vui lòng sử dụng một ứng dụng khách khác và sau đó nhập cụm mật khẩu khóa dự phòng đã tạo trong thẻ "Tổng quát".
+# %1$S is the session ID, %2$S is the session display name
+options.encryption.session=%1$S (%2$S)
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.requestAuth=Chờ đợi xác thực của bạn
+connection.requestAccess=Đang hoàn tất xác thực
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=Máy chủ không cung cấp luồng đăng nhập tương thích.
+connection.error.authCancelled=Bạn đã hủy quá trình xác thực.
+connection.error.sessionEnded=Phiên đã được đăng xuất.
+connection.error.serverNotFound=Không thể xác định máy chủ Matrix cho tài khoản Matrix đã nhập.
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for Matrix accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Phòng
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from the "User" object.
+# The human readable name of the user.
+tooltip.displayName=Tên hiển thị
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S trước
+tooltip.lastActive=Lần hoạt động cuối
+
+# LOCALIZATION NOTE (powerLevel.*):
+# These are the string representations of different standard power levels and strings.
+# %S are one of the power levels, Default/Moderator/Admin/Restricted/Custom.
+powerLevel.default=Mặc định
+powerLevel.moderator=Người kiểm duyệt
+powerLevel.admin=Quản trị viên
+powerLevel.restricted=Bị hạn chế
+powerLevel.custom=Tùy chọn
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$S (%2$S)
+powerLevel.defaultRole=Vai trò mặc định: %S
+powerLevel.inviteUser=Mời người dùng: %S
+powerLevel.kickUsers=Đuổi người dùng: %S
+powerLevel.ban=Cấm người dùng: %S
+powerLevel.roomAvatar=Thay đổi hình đại diện phòng: %S
+powerLevel.mainAddress=Thay đổi địa chỉ chính cho phòng: %S
+powerLevel.history=Thay đổi chế độ hiển thị lịch sử: %S
+powerLevel.roomName=Thay đổi tên phòng: %S
+powerLevel.changePermissions=Thay đổi quyền: %S
+powerLevel.server_acl=Gửi sự kiện m.room.server_acl: %S
+powerLevel.upgradeRoom=Nâng cấp phòng: %S
+powerLevel.remove=Xóa tin nhắn: %S
+powerLevel.events_default=Sự kiện mặc định: %S
+powerLevel.state_default=Thay đổi cài đặt: %S
+powerLevel.encryption=Bật mã hóa phòng: %S
+powerLevel.topic=Đặt chủ đề phòng: %S
+
+# LOCALIZATION NOTE (detail.*):
+# These are the string representations of different matrix properties.
+# %S will typically be strings with the actual values.
+# Example placeholder: "Foo bar"
+detail.name=Tên: %S
+# Example placeholder: "My first room"
+detail.topic=Chủ đề: %S
+# Example placeholder: "5"
+detail.version=Phiên bản phòng: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=RoomID: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=Quản trị viên: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=Người kiểm duyệt: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=Bí danh: %S
+# Example placeholder: "can_join"
+detail.guest=Quyền truy cập của khách: %S
+# This is a heading, followed by the powerLevel.* strings
+
+# LOCALIZATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.ban=%S &lt;userId&gt; [&lt;reason&gt;]: Cấm người dùng có userId khỏi phòng với thông báo lý do tùy chọn. Yêu cầu có quyền cấm người dùng.
+command.invite=%S &lt;userId&gt;: Mời người dùng vào phòng.
+command.kick=%S &lt;userId&gt; [&lt;reason&gt;]: Đuổi người dùng bằng userId khỏi phòng với thông báo lý do tùy chọn. Yêu cầu có quyền đuổi người dùng.
+command.nick=%S &lt;display_name&gt;: Thay đổi tên hiển thị của bạn.
+command.leave=%S: Rời khỏi phòng hiện tại.
+command.topic=%S &lt;topic&gt;: Đặt chủ đề cho phòng. Yêu cầu có quyền thay đổi chủ đề của phòng.
+command.unban=%S &lt;userId&gt;: Bỏ lệnh cấm người dùng bị cấm vào phòng. Yêu cầu có quyền cấm người dùng.
+command.visibility=%S [&lt;visibility&gt;]: Đặt khả năng hiển thị của căn phòng hiện tại trong thư mục phòng hiện tại của trang đầu máy chủ. Nhập một giá trị nguyên, Riêng tư: 0 và Công khai: 1. Mặc định là Riêng tư (0) nếu không có tham số nào được cung cấp. Yêu cầu có quyền thay đổi hiển thị của phòng.
+command.guest=%S &lt;quyền truy cập của khách&gt; &lt;khả năng hiển thị lịch sử&gt;: Đặt quyền truy cập và hiển thị lịch sử của phòng hiện tại cho người dùng khách. Nhập hai giá trị số nguyên, giá trị đầu tiên cho quyền truy cập của khách (không cho phép: 0 và cho phép: 1) và giá trị thứ hai cho khả năng hiển thị lịch sử (ẩn: 0 và hiện: 1). Yêu cầu có quyền thay đổi chế độ hiển thị lịch sử.
+command.roomname=%S &lt;tên&gt;: Đặt tên phòng. Yêu cầu quyền để thay đổi tên của phòng.
+command.detail=%S: Hiển thị thông tin chi tiết của phòng.
+command.addalias=%S &lt;alias&gt;: Tạo một bí danh cho phòng. Bí danh phòng mong đợi của biểu mẫu '#localname:domain'. Yêu cầu có quyền tạo bí danh.
+command.removealias=%S &lt;alias&gt;: Xóa bí danh cho phòng. Bí danh phòng mong đợi của biểu mẫu '#localname:domain'. Yêu cầu có quyền xóa bí danh.
+command.upgraderoom=%S &lt;newVersion&gt;: Nâng cấp phòng lên một phiên bản nhất định. Yêu cầu quyền để nâng cấp phòng.
+command.me=%S &lt;action&gt;: Thực hiện một hành động.
+command.msg=%S &lt;userId&gt; &lt;message&gt;: Gửi một tin nhắn trực tiếp tới một người dùng.
+command.join=%S &lt;roomId&gt;: Tham gia phòng được chỉ định.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the name of the user who banned.
+# %2$S is the name of the user who got banned.
+message.banned=%1$S đã cấm %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S đã cấm %2$S. Lý do: %3$S
+# %1$S is the name of the user who accepted the invitation.
+# %2$S is the name of the user who sent the invitation.
+message.acceptedInviteFor=%1$S đã chấp nhận lời mời của %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S đã chấp nhận lời mời.
+# %1$S is the name of the user who invited.
+# %2$S is the name of the user who got invited.
+message.invited=%1$S đã mời %2$S.
+# %1$S is the name of the user who changed their display name.
+# %2$S is the old display name.
+# %3$S is the new display name.
+message.displayName.changed=%1$S đã thay đổi tên hiển thị của họ từ %2$S thành %3$S.
+# %1$S is the name of the user who set their display name.
+# %2$S is the newly set display name.
+message.displayName.set=%1$S đã đặt tên hiển thị của họ thành %2$S.
+# %1$S is the name of the user who removed their display name.
+# %2$S is the old display name which has been removed.
+message.displayName.remove=%1$S đã xóa tên hiển thị %2$S của họ.
+# %S is the name of the user who has joined the room.
+message.joined=%S đã tham gia phòng.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S đã từ chối lời mời.
+# %S is the name of the user who has left the room.
+message.left=%S đã rời khỏi phòng.
+# %1$S is the name of the user who unbanned.
+# %2$S is the name of the user who got unbanned.
+message.unbanned=%1$S đã bỏ cấm %2$S.
+# %1$S is the name of the user who kicked.
+# %2$S is the name of the user who got kicked.
+message.kicked=%1$S đã đuổi %2$S.
+# Same as message.kicked but with a third parameter for the reason.
+# %3$S is the reason for the kick.
+message.kickedWithReason=%1$S đã đuổi %2$S. Lý do: %3$S
+# %1$S is the name of the user who withdrew invitation.
+# %2$S is the name of the user whose invitation has been withdrawn.
+message.withdrewInvite=%1$S đã rút lại lời mời với %2$S.
+# Same as message.withdrewInvite but with a third parameter for the reason.
+# %3$S is the reason the invite was withdrawn.
+message.withdrewInviteWithReason=%1$S đã rút lại lời mời của %2$S. Lý do: %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S đã xóa tên phòng.
+# %1$S is the name of the user who changed the room name.
+# %2$S is the new room name.
+message.roomName.changed=%1$S đã đổi tên phòng thành %2$S.
+# %1$S is the name of the user who changed the power level.
+# %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
+# power level changes, separated by commas if there are multiple changes.
+# %1$S is the name of the target user whose power level has been changed.
+# %2$S is the old power level.
+# %2$S is the new power level.
+message.powerLevel.fromTo=%1$S từ %2$S thành %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S đã cho phép khách tham gia phòng.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S đã ngăn không cho khách tham gia phòng.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành mọi người.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành tất cả các thành viên trong phòng.
+# %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
+message.history.invited=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành tất cả các thành viên trong phòng, kể từ thời điểm họ được mời.
+# %S is the name of the user who has made future room history visible to all room members, from the point they joined.
+message.history.joined=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành các thành viên trong phòng kể từ thời điểm họ tham gia.
+# %1$S is the name of the user who changed the address.
+# %2$S is the old address.
+# %3$S is the new address.
+message.alias.main=%1$S đặt địa chỉ chính cho phòng này từ %2$S thành %3$S.
+# %1$S is the name of the user who added the address.
+# %2$S is a comma delimited list of added addresses.
+message.alias.added=%1$S đã thêm %2$S làm địa chỉ thay thế cho phòng này.
+# %1$S is the name of the user who removed the address.
+# %2$S is a comma delimited list of removed addresses.
+message.alias.removed=%1$S đã xóa %2$S khỏi địa chỉ thay thế cho phòng này.
+# %1$S is the name of the user that edited the alias addresses.
+# %2$S is a comma delimited list of removed addresses.
+# %3$S is a comma delmited list of added addresses.
+message.alias.removedAndAdded=%1$S đã xóa %2$S và thêm %3$S làm địa chỉ cho phòng này.
+message.encryptionStart=Tin nhắn trong cuộc hội thoại này hiện đã được mã hóa đầu cuối.
+# %1$S is the name of the user who sent the verification request.
+# %2$S is the name of the user that is receiving the verification request.
+message.verification.request2=%1$S muốn xác minh %2$S.
+# %1$S is the name of the user who cancelled the verification request.
+# %2$S is the reason given why the verification was cancelled.
+message.verification.cancel2=%1$S đã hủy xác minh với lý do: %2$S
+message.verification.done=Đã hoàn tất xác minh.
+message.decryptionError=Không thể giải mã nội dung của tin nhắn này. Để yêu cầu khóa mã hóa từ các thiết bị khác của bạn, hãy nhấp chuột phải vào thông báo này.
+message.decrypting=Đang giải mã...
+message.redacted=Tin nhắn đã được chỉnh sửa lại.
+# %1$S is the username of the user that reacted.
+# %2$S is the username of the user that sent the message the reaction was added to.
+# %3$S is the content (typically an emoji) of the reaction.
+message.reaction=%1$S đã bày tỏ cảm xúc với %2$S bằng %3$S.
+
+# Label in the message context menu
+message.action.requestKey=Yêu cầu lại khóa
+message.action.redact=Chỉnh sửa
+message.action.report=Báo cáo tin nhắn
+message.action.retry=Thử gửi lại
+message.action.cancel=Hủy tin nhắn
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=Đã xảy ra lỗi khi gửi tin nhắn của bạn "%1$S".
diff --git a/l10n-vi/chat/status.properties b/l10n-vi/chat/status.properties
new file mode 100644
index 0000000000..44d034e0b3
--- /dev/null
+++ b/l10n-vi/chat/status.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+availableStatusType=Có mặt
+awayStatusType=Vắng mặt
+unavailableStatusType=Không sẵn sàng
+offlineStatusType=Ngoại tuyến
+invisibleStatusType=Ẩn
+idleStatusType=Yên lặng
+mobileStatusType=Di động
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Không rõ
+
+# LOCALIZATION NOTE (statusWithStatusMessage):
+# Used to display the status of a buddy together with its status message.
+# %1$S is the status type, %2$S is the status message text.
+statusWithStatusMessage=%1$S - %2$S
+
+# LOCALIZATION NOTE (messenger.status.defaultIdleAwayMessage):
+# This will be the away message put automatically when the user is idle.
+messenger.status.defaultIdleAwayMessage=Tôi hiện đang rời khỏi máy tính.
diff --git a/l10n-vi/chat/twitter.properties b/l10n-vi/chat/twitter.properties
new file mode 100644
index 0000000000..79297ad932
--- /dev/null
+++ b/l10n-vi/chat/twitter.properties
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+error.tooLong=Trạng thái vượt quá 140 ký tự.
+# LOCALIZATION NOTE (error.general, error.retweet, error.delete):
+# %1$S will be either the error string returned by the twitter server,
+# in English, inside parenthesis, or the empty string if we have no specific
+# message for the error.
+# %2$S is the message that caused the error.
+error.general=Đã xảy ra lỗi %1$S trong khi gửi: %2$S
+error.retweet=Đã xảy ra lỗi %1$S trong khi retweet: %2$S
+error.delete=Đã xảy ra lỗi %1$S trong khi xóa: %2$S
+error.like=Đã xảy ra lỗi %1$S trong khi thích: %2$S
+error.unlike=Đã xảy ra lỗi %1$S trong khi bỏ thích: %2$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=Mô tả vượt quá độ dài tối đa (160 ký tự), nó được tự động cắt ngắn thành: %S.
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @<username>.
+timeline=Dòng thời gian %S
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=Sao chép liên kết vào Tweet
+action.retweet=Retweet
+action.reply=Trả lời
+action.delete=Xóa
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=Theo dõi %S
+action.stopFollowing=Ngừng theo dõI %S
+action.like=Thích
+action.unlike=Bỏ thích
+
+# LOCALIZATION NOTE (event.follow, event.unfollow, event.followed):
+# This will be displayed in system messages inside the timeline conversation.
+# %S will be replaced by the screen name of a twitter user.
+event.follow=Bạn hiện đang theo dõi %S.
+event.unfollow=Bạn hiện không còn theo dõi %S.
+event.followed=%S hiện đang theo dõi bạn.
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=Bạn đã xóa tweet này: "%S".
+
+# LOCALIZATION NOTE (replyingToStatusText):
+# This will be visible in the status bar of the conversation window
+# while the user is typing a reply to a tweet.
+# %S will be replaced by the text of the tweet the user is replying to.
+replyingToStatusText=Trả lời đến: %S
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initAuth=Bắt đầu quá trình xác thực
+connection.requestAuth=Chờ đợi xác thực của bạn
+connection.requestAccess=Hoàn tất xác thực
+connection.requestTimelines=Yêu cầu mốc thời gian của người dùng
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=Tên người dùng không khớp.
+connection.error.failedToken=Không thể nhận mã token yêu cầu.
+connection.error.authCancelled=Bạn đã hủy quá trình xác thực.
+connection.error.authFailed=Không thể nhận được xác thực.
+connection.error.noNetwork=Không có kết nối internet.
+
+# LOCALIZATION NOTE (authPrompt):
+# This is the prompt in the browser window that pops up to authorize us
+# to use a Twitter account. It is shown in the title bar of the authorization
+# window.
+authPrompt=Cho phép quyền để sử dụng tài khoản Twitter của bạn
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=Từ khóa được theo dõi
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the Twitter information that will appear in the tooltip
+# for each participant on the home timeline.
+# LOCALIZATION NOTE (tooltip.created_at): the date the user joined.
+tooltip.created_at=Người dùng kể từ
+tooltip.location=Địa chỉ
+tooltip.lang=Ngôn ngữ
+tooltip.time_zone=Múi giờ
+tooltip.url=Trang chủ
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=Giữ kín các Tweet
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=Hiện đang theo dõi
+tooltip.name=Tên
+tooltip.description=Mô tả
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=Đang theo dõi
+tooltip.statuses_count=Tweet
+tooltip.followers_count=Người theo dõi
+tooltip.listed_count=Liệt kê
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Có
+no=Không
+
+command.follow=%S &lt;username&gt;[ &lt;username&gt;]*: Bắt đầu theo dõi người dùng.
+command.unfollow=%S &lt;username&gt;[ &lt;username&gt;]*: Dừng theo dõi người dùng.
+
+twitter.disabled=Twitter không còn được hỗ trợ do Twitter vô hiệu hóa giao thức phát trực tuyến của họ.
diff --git a/l10n-vi/chat/xmpp.properties b/l10n-vi/chat/xmpp.properties
new file mode 100644
index 0000000000..d30effa4f3
--- /dev/null
+++ b/l10n-vi/chat/xmpp.properties
@@ -0,0 +1,281 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=Đang khởi tạo luồng
+connection.initializingEncryption=Đang khởi tạo tiến trình mã hóa
+connection.authenticating=Đang xác thực
+connection.gettingResource=Đang nhận tài nguyên
+connection.downloadingRoster=Đang tải danh sách lên hệ
+connection.srvLookup=Đang tìm kiếm bản ghi SRV
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Tên người dùng không hợp lệ (tên người dùng của bạn phải chứa ký tự '@')
+connection.error.failedToCreateASocket=Không thể tạo được socket (Bạn có đang ngoại tuyến không?)
+connection.error.serverClosedConnection=Máy chủ đã ngắt kết nối
+connection.error.resetByPeer=Kết nối đã thiết lập lại bởi ngang hàng
+connection.error.timedOut=Đã hết thời gian kết nối
+connection.error.receivedUnexpectedData=Đã nhận dữ liệu không mong muốn
+connection.error.incorrectResponse=Đã nhận được phản hồi sai
+connection.error.startTLSRequired=Máy chủ cần mã hóa nhưng mà bạn đã tắt
+connection.error.startTLSNotSupported=Máy chủ không hỗ trợ mã hóa nhưng mà cấu hình của bạn yêu cầu nó
+connection.error.failedToStartTLS=Không thể khởi tạo mã hóa
+connection.error.noAuthMec=Máy chủ không cung cấp cơ chế xác thực
+connection.error.noCompatibleAuthMec=Không có cơ chế xác thực nào do máy chủ cung cấp được hỗ trợ
+connection.error.notSendingPasswordInClear=Máy chủ chỉ hỗ trợ xác thực bằng cách gửi mật khẩu trong văn bản thô
+connection.error.authenticationFailure=Lỗi xác thực
+connection.error.notAuthorized=Chưa được uỷ quyền (Sai mật khẩu?)
+connection.error.failedToGetAResource=Không thể lấy được tài nguyên
+connection.error.failedMaxResourceLimit=Tài khoản này được kết nối từ quá nhiều nơi cùng một lúc.
+connection.error.failedResourceNotValid=Nguồn không hợp lệ.
+connection.error.XMPPNotSupported=Máy chủ này không hỗ trợ XMPP
+
+# LOCALIZATION NOTE (conversation.error.notDelivered):
+# This is displayed in a conversation as an error message when a message
+# the user has sent wasn't delivered.
+# %S is replaced by the text of the message that wasn't delivered.
+conversation.error.notDelivered=Không thể gửi tin nhắn này: %S
+# This is displayed in a conversation as an error message when joining a MUC
+# fails.
+# %S is the name of the MUC.
+conversation.error.joinFailed=Không thể tham gia: %S
+# This is displayed in a conversation as an error message when the user is
+# banned from a room.
+# %S is the name of the MUC room.
+conversation.error.joinForbidden=Không được vào %S tại vì bạn bị cấm vào phòng này.
+conversation.error.joinFailedNotAuthorized=Yêu cầu đăng ký: Bạn không được phép tham gia phòng này.
+conversation.error.creationFailedNotAllowed=Quyền truy cập bị hạn chế: Bạn không được phép tạo phòng.
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC room.
+conversation.error.joinFailedRemoteServerNotFound=Không thể vào phòng %S vì không thể truy cập được máy chủ lưu trữ của phòng này.
+conversation.error.changeTopicFailedNotAuthorized=Bạn không được phép đặt chủ đề của căn phòng này.
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that he is not in.
+# %1$S is the name of MUC room.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsNotInRoom=Không thể gửi tin nhắn đến %1$S vì bạn không còn ở trong phòng: %2$S
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that the recipient is not in.
+# %1$S is the jid of the recipient.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsRecipientNotInRoom=Không thể gửi tin nhắn đến %1$S vì người nhận không còn ở trong phòng: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=Không thể kết nối với máy chủ của người nhận.
+conversation.error.unknownSendError=Đã xảy ra lỗi không xác định khi gửi tin nhắn này.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=Không thể gửi tin nhắn cho %S vào lúc này.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S không ở trong phòng.
+conversation.error.banCommandAnonymousRoom=Bạn không thể cấm người tham gia từ các phòng ẩn danh. Thử /kick.
+conversation.error.banKickCommandNotAllowed=Bạn không có các quyền để xóa người này khỏi phòng.
+conversation.error.banKickCommandConflict=Xin lỗi, bạn không thể tự xóa mình khỏi phòng.
+conversation.error.changeNickFailedConflict=Không thể đổi tên gọi của bạn thành %S vì tên gọi này đã được sử dụng.
+conversation.error.changeNickFailedNotAcceptable=Không thể đổi biệt danh của bạn thành %S vì biệt danh này bị khóa trong phòng này.
+conversation.error.inviteFailedForbidden=Bạn không có quyền để mời người dùng vào phòng này.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=Không thể tiếp cận %S.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S là jid không hợp lệ (số nhận dạng Jabber phải có dạng user@domain).
+conversation.error.commandFailedNotInRoom=Bạn phải tham gia lại phòng để có thể sử dụng lệnh này.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=Bạn cần nói chuyện trước, vì %S có thể kết nối với nhiều hơn một máy khách.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=Máy khách của %S không hỗ trợ truy vấn cho phiên bản phần mềm của nó.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the titles of lines of information that will appear in
+# the tooltip showing details about a contact or conversation.
+# LOCALIZATION NOTE (tooltip.status):
+# %S will be replaced by the XMPP resource identifier
+tooltip.status=Trạng thái (%S)
+tooltip.statusNoResource=Trạng thái
+tooltip.subscription=Đăng ký
+tooltip.fullName=Họ và tên
+tooltip.nickname=Tên hiệu
+tooltip.email=Email
+tooltip.birthday=Sinh nhật
+tooltip.userName=Tên đăng nhập
+tooltip.title=Chức danh
+tooltip.organization=Tổ chức
+tooltip.locality=Địa phương
+tooltip.country=Quốc gia
+tooltip.telephone=Số điện thoại
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for XMPP accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Phòng
+chatRoomField.server=_Máy chủ
+chatRoomField.nick=Tên _hiệu
+chatRoomField.password=Mật _khẩu
+
+# LOCALIZATION NOTE (conversation.muc.*):
+# These are displayed as a system message when a chatroom invitation is
+# received.
+# %1$S is the inviter.
+# %2$S is the room.
+# %3$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2=%1$S đã mời bạn tham gia %2$S: %3$S
+# %3$S is the password of the room.
+# %4$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2.password=%1$S đã mời bạn tham gia %2$S với mật khẩu %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S đã mời bạn tham gia %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S đã mời bạn tham gia %2$S với mật khẩu %3$S
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+conversation.message.join=%S đã vào phòng.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=Bạn đã gia nhập lại phòng.
+
+# LOCALIZATION NOTE (conversation.message.parted.*):
+# These are displayed as a system message when a participant parts a room.
+# %S is the part message supplied by the user.
+conversation.message.parted.you=Bạn đã rời khỏi phòng.
+conversation.message.parted.you.reason=Bạn đã rời khỏi phòng: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S đã rời khỏi phòng.
+conversation.message.parted.reason=%1$S đã rời khỏi phòng: %2$S
+
+# LOCALIZATION NOTE (conversation.message.invitationDeclined*):
+# %1$S is the invitee that declined the invitation.
+# %2$S is the decline message supplied by the invitee.
+conversation.message.invitationDeclined=%1$S đã từ chối lời mời của bạn.
+conversation.message.invitationDeclined.reason=%1$S đã từ chối lời mời của bạn: %2$S
+
+# LOCALIZATION NOTE (conversation.message.banned.*):
+# These are displayed as a system message when a participant is banned from
+# a room.
+# %1$S is the participant that is banned.
+# %2$S is the reason.
+# %3$S is the person who is banning.
+conversation.message.banned=%1$S đã bị cấm vào phòng.
+conversation.message.banned.reason=%1$S đã bị cấm vào phòng: %2$S
+# %1$S is the person who is banning.
+# %2$S is the participant that is banned.
+# %3$S is the reason.
+conversation.message.banned.actor=%1$S đã cấm %2$S vào phòng.
+conversation.message.banned.actor.reason=%1$S đã cấm %2$S vào phòng: %3$S
+conversation.message.banned.you=Bạn đã bị cấm vào phòng.
+# %1$S is the reason.
+conversation.message.banned.you.reason=Bạn đã bị cấm vào phòng: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S đã cấm bạn vào phòng.
+conversation.message.banned.you.actor.reason=%1$S đã cấm bạn vào phòng: %2$S
+
+# LOCALIZATION NOTE (conversation.message.kicked.*):
+# These are displayed as a system message when a participant is kicked from
+# a room.
+# %1$S is the participant that is kicked.
+# %2$S is the reason.
+conversation.message.kicked=%1$S đã bị đuổi ra khỏi phòng.
+conversation.message.kicked.reason=%1$S đã bị kick khỏi phòng: %2$S
+# %1$S is the person who is kicking.
+# %2$S is the participant that is kicked.
+# %3$S is the reason.
+conversation.message.kicked.actor=%1$S đã đuổi %2$S khỏi phòng.
+conversation.message.kicked.actor.reason=%1$S đã đuổi %2$S khỏi phòng: %3$S
+conversation.message.kicked.you=Bạn đã bị đuổi ra khỏi phòng.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=Bạn đã bị đuổi khỏi phòng: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S đã đuổi bạn khỏi phòng.
+conversation.message.kicked.you.actor.reason=%1$S đã đuổi bạn khỏi phòng: %2$S
+
+# LOCALIZATION NOTE (conversation.message.removedNonMember.*):
+# These are displayed as a system message when a participant is removed from
+# a room because the room has been changed to members-only.
+# %1$S is the participant that is removed.
+# %2$S is the person who changed the room configuration.
+conversation.message.removedNonMember=%1$S đã bị xóa khỏi phòng vì cấu hình của nó đã được thay đổi thành chỉ dành cho hội viên.
+conversation.message.removedNonMember.actor=%1$S đã bị đuổi ra khỏi phòng vì %2$S đã thay đổi thành chỉ dành cho thành viên.
+conversation.message.removedNonMember.you=Bạn đã bị đuổi ra khỏi phòng vì cấu hình của phòng đã được thay đổi thành chỉ dành cho thành viên.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=Bạn đã bị đuổi ra khỏi phòng vì %1$S đã thay đổi phòng thành chỉ dành cho thành viên.
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=Bạn đã bị đuổi ra khỏi phòng do hệ thống ngừng hoạt động.
+
+# LOCALIZATION NOTE (conversation.message.version*):
+# %1$S is the name of the user whose version was requested.
+# %2$S is the client name response from the client.
+# %3$S is the client version response from the client.
+# %4$S is the operating system(OS) response from the client.
+conversation.message.version=%1$S đang dùng "%2$S %3$S".
+conversation.message.versionWithOS=%1$S đang dùng "%2$S %3$S" trên %4$S.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=Tài nguyên
+options.priority=Ưu tiên
+options.connectionSecurity=Bảo mật kết nối
+options.connectionSecurity.requireEncryption=Yêu cầu mã hóa
+options.connectionSecurity.opportunisticTLS=Sử dụng mã hóa nếu có
+options.connectionSecurity.allowUnencryptedAuth=Cho phép gửi mật khẩu chưa được mã hóa
+options.connectServer=Máy chủ
+options.connectPort=Cổng
+options.domain=Tên miền
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=địa chỉ email
+
+# LOCALIZATION NOTE (gtalk.disabled):
+# It is reported that Google Talk will be disabled on June 16, 2022. The message
+# below is being pre-emptively included so a localized error message can be
+# displayed to users if this happens.
+gtalk.disabled=Google Talk không còn được hỗ trợ do Google vô hiệu hóa cổng XMPP của họ.
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+odnoklassniki.usernameHint=ID Hồ sơ
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [&lt;room&gt;[@&lt;server&gt;][/&lt;nick&gt;]] [&lt;password&gt;]: Tham gia một phòng, tùy chọn cung cấp máy chủ hoặc biệt hiệu hoặc mật khẩu phòng.
+command.part2=%S [&lt;tin nhắn&gt;]: Rời khỏi phòng hiện tại và để lại tin nhắn.
+command.topic=%S [&lt;chủ đề mới&gt;]: Đặt chủ đề cho căn phòng này.
+command.ban=%S &lt;biệt danh&gt;[&lt;tin nhắn&gt;]: Cấm ai đó vào phòng. Bạn phải là quản trị viên phòng để làm điều này.
+command.kick=%S &lt;biệt danh&gt;[&lt;tin nhắn&gt;]: Xóa ai đó khỏi phòng. Bạn phải là người kiểm duyệt phòng để làm điều này.
+command.invite=%S &lt;jid&gt;[&lt;tin nhắn&gt;]: Mời người dùng tham gia phòng hiện tại bằng một tin nhắn tùy chọn.
+command.inviteto=%S &lt;phòng jid&gt;[&lt;mật khẩu&gt;]: Mời đối tác trò chuyện của bạn tham gia một phòng, cùng với mật khẩu của phòng đó nếu được yêu cầu.
+command.me=%S &lt;hành động thực hiện&gt;: Thực hiện một hành động.
+command.nick=%S &lt;new nickname&gt;: Thay đổi nickname của bạn.
+command.msg=%S &lt;nick&gt; &lt;message&gt;: Gửi một tin nhắn riêng tới một thành viên trong phòng.
+command.version=%S: Yêu cầu thông tin về khách hàng mà đối tác trò chuyện của bạn đang sử dụng.
diff --git a/l10n-vi/chat/yahoo.properties b/l10n-vi/chat/yahoo.properties
new file mode 100644
index 0000000000..b43b547039
--- /dev/null
+++ b/l10n-vi/chat/yahoo.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+yahoo.disabled=Yahoo Messenger không còn được hỗ trợ do Yahoo vô hiệu hóa giao thức kế thừa của họ.