summaryrefslogtreecommitdiffstats
path: root/comm/chat/locales
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /comm/chat/locales
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/chat/locales')
-rw-r--r--comm/chat/locales/Makefile.in6
-rw-r--r--comm/chat/locales/en-US/accounts.dtd33
-rw-r--r--comm/chat/locales/en-US/accounts.properties9
-rw-r--r--comm/chat/locales/en-US/commands.properties27
-rw-r--r--comm/chat/locales/en-US/contacts.properties8
-rw-r--r--comm/chat/locales/en-US/conversations.properties80
-rw-r--r--comm/chat/locales/en-US/facebook.properties6
-rw-r--r--comm/chat/locales/en-US/imtooltip.properties10
-rw-r--r--comm/chat/locales/en-US/irc.properties209
-rw-r--r--comm/chat/locales/en-US/logger.properties7
-rw-r--r--comm/chat/locales/en-US/matrix.ftl24
-rw-r--r--comm/chat/locales/en-US/matrix.properties255
-rw-r--r--comm/chat/locales/en-US/status.properties23
-rw-r--r--comm/chat/locales/en-US/twitter.properties9
-rw-r--r--comm/chat/locales/en-US/xmpp.properties274
-rw-r--r--comm/chat/locales/en-US/yahoo.properties5
-rw-r--r--comm/chat/locales/jar.mn24
-rw-r--r--comm/chat/locales/moz.build6
18 files changed, 1015 insertions, 0 deletions
diff --git a/comm/chat/locales/Makefile.in b/comm/chat/locales/Makefile.in
new file mode 100644
index 0000000000..adb18b6727
--- /dev/null
+++ b/comm/chat/locales/Makefile.in
@@ -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/.
+
+LOCALE_TOPDIR=$(commtopsrcdir)
+LOCALE_RELATIVEDIR=chat/locales
diff --git a/comm/chat/locales/en-US/accounts.dtd b/comm/chat/locales/en-US/accounts.dtd
new file mode 100644
index 0000000000..c555baeede
--- /dev/null
+++ b/comm/chat/locales/en-US/accounts.dtd
@@ -0,0 +1,33 @@
+<!-- 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 "Accounts - &brandShortName;">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Instant messaging status">
+
+<!ENTITY accountManager.newAccount.label "New Account">
+<!ENTITY accountManager.newAccount.accesskey "N">
+<!ENTITY accountManager.close.label "Close">
+<!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 "No account configured yet">
+<!ENTITY accountManager.noAccount.description "Click on the &accountManager.newAccount.label; button to let &brandShortName; guide you through the process of configuring one.">
+<!ENTITY account.autoSignOn.label "Sign-on at startup">
+<!ENTITY account.autoSignOn.accesskey "S">
+<!ENTITY account.connect.label "Connect">
+<!ENTITY account.connect.accesskey "o">
+<!ENTITY account.disconnect.label "Disconnect">
+<!ENTITY account.disconnect.accesskey "i">
+<!ENTITY account.edit.label "Properties">
+<!ENTITY account.edit.accesskey "P">
+<!ENTITY account.cancelReconnection.label "Cancel reconnection">
+<!ENTITY account.cancelReconnection.accesskey "A">
+<!ENTITY account.copyDebugLog.label "Copy Debug Log">
+<!ENTITY account.copyDebugLog.accesskey "C">
+<!ENTITY account.connecting "Connecting…">
+<!ENTITY account.disconnecting "Disconnecting…">
+<!ENTITY account.disconnected "Not Connected">
diff --git a/comm/chat/locales/en-US/accounts.properties b/comm/chat/locales/en-US/accounts.properties
new file mode 100644
index 0000000000..051ba0d496
--- /dev/null
+++ b/comm/chat/locales/en-US/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=Password for %S
+passwordPromptText=Please enter your password for %S in order to connect it.
+passwordPromptSaveCheckbox=Use Password Manager to remember this password.
diff --git a/comm/chat/locales/en-US/commands.properties b/comm/chat/locales/en-US/commands.properties
new file mode 100644
index 0000000000..d4e3a9122d
--- /dev/null
+++ b/comm/chat/locales/en-US/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=Commands: %S.\nUse /help &lt;command&gt; for more information.
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=No '%S' command.
+noHelp=No help message for the '%S' command, sorry!
+
+sayHelpString=say &lt;message&gt;: send a message without processing commands.
+rawHelpString=raw &lt;message&gt;: send a message without escaping HTML entities.
+helpHelpString=help &lt;name&gt;: show the help message for the &lt;name&gt; command, or the list of possible commands when used without parameter.
+
+# 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;status message&gt;: set the status to %2$S with an optional status message.
+back=available
+away=away
+busy=unavailable
+dnd=unavailable
+offline=offline
diff --git a/comm/chat/locales/en-US/contacts.properties b/comm/chat/locales/en-US/contacts.properties
new file mode 100644
index 0000000000..33af79c1d3
--- /dev/null
+++ b/comm/chat/locales/en-US/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=Contacts
diff --git a/comm/chat/locales/en-US/conversations.properties b/comm/chat/locales/en-US/conversations.properties
new file mode 100644
index 0000000000..1a5564a6ec
--- /dev/null
+++ b/comm/chat/locales/en-US/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=The conversation will continue with %1$S, using %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 is now %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 is now %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 is %2$S.
+statusChangedFromUnknownWithStatusText=%1$S is %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=Your account has been reconnected (%1$S is %2$S).
+statusKnownWithStatusText=Your account has been reconnected (%1$S is %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=Your account is disconnected (the status of %S is no longer known).
+
+accountDisconnected=Your account is disconnected.
+accountReconnected=Your account has been reconnected.
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Auto-reply - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=No topic message for this room.
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=The topic for %1$S is: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=There is no topic for %S.
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S has changed the topic to: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S has cleared the topic.
+
+# 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 is now known as %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=You are now known as %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=%time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
diff --git a/comm/chat/locales/en-US/facebook.properties b/comm/chat/locales/en-US/facebook.properties
new file mode 100644
index 0000000000..2e00cbcb2e
--- /dev/null
+++ b/comm/chat/locales/en-US/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=Facebook Chat
+facebook.disabled=Facebook Chat is no longer supported due to Facebook disabling their XMPP gateway.
diff --git a/comm/chat/locales/en-US/imtooltip.properties b/comm/chat/locales/en-US/imtooltip.properties
new file mode 100644
index 0000000000..bf08302100
--- /dev/null
+++ b/comm/chat/locales/en-US/imtooltip.properties
@@ -0,0 +1,10 @@
+# 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=Username
+buddy.account=Account
+contact.tags=Tags
+
+encryption.tag=Encryption Status
+message.status=Message encrypted
diff --git a/comm/chat/locales/en-US/irc.properties b/comm/chat/locales/en-US/irc.properties
new file mode 100644
index 0000000000..68e71b9332
--- /dev/null
+++ b/comm/chat/locales/en-US/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=nick
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=Lost connection with server
+connection.error.timeOut=Connection timed out
+connection.error.invalidUsername=%S is not an allowed username
+connection.error.invalidPassword=Invalid server password
+connection.error.passwordRequired=Password required
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Channel
+joinChat.password=_Password
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=Server
+options.port=Port
+options.ssl=Use SSL
+options.encoding=Character Set
+options.quitMessage=Quit message
+options.partMessage=Part message
+options.showServerTab=Show messages from the server
+options.alternateNicks=Alternate nicks
+
+# 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 is using "%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=The time for %1$S is %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;action to perform&gt;: Perform an action.
+command.ban=%S &lt;nick!user@host&gt;: Ban the users matching the given pattern.
+command.ctcp=%S &lt;nick&gt; &lt;msg&gt;: Sends a CTCP message to the nick.
+command.chanserv=%S &lt;command&gt;: Send a command to ChanServ.
+command.deop=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Remove channel operator status from someone. You must be a channel operator to do this.
+command.devoice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Remove channel voice status from someone, preventing them from speaking if the channel is moderated (+m). You must be a channel operator to do this.
+command.invite2=%S &lt;nick&gt;[ &lt;nick&gt;]* [&lt;channel&gt;]: Invite one or more nicks to join you in the current channel, or to join the specified channel.
+command.join=%S &lt;room1&gt;[ &lt;key1&gt;][,&lt;room2&gt;[ &lt;key2&gt;]]*: Enter one or more channels, optionally providing a channel key for each if needed.
+command.kick=%S &lt;nick&gt; [&lt;message&gt;]: Remove someone from a channel. You must be a channel operator to do this.
+command.list=%S: Display a list of chat rooms on the network. Warning, some servers may disconnect you upon doing this.
+command.memoserv=%S &lt;command&gt;: Send a command to MemoServ.
+command.modeUser2=%S &lt;nick&gt; [(+|-)&lt;mode&gt;]: Get, set or unset a user's mode.
+command.modeChannel2=%S [&lt;channel&gt;] [(+|-)&lt;new mode&gt; [&lt;parameter&gt;][,&lt;parameter&gt;]*]: Get, set, or unset a channel mode.
+command.msg=%S &lt;nick&gt; &lt;message&gt;: Send a private message to a user (as opposed to a channel).
+command.nick=%S &lt;new nickname&gt;: Change your nickname.
+command.nickserv=%S &lt;command&gt;: Send a command to NickServ.
+command.notice=%S &lt;target&gt; &lt;message&gt;: Send a notice to a user or channel.
+command.op=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Grant channel operator status to someone. You must be a channel operator to do this.
+command.operserv=%S &lt;command&gt;: Send a command to OperServ.
+command.part=%S [message]: Leave the current channel with an optional message.
+command.ping=%S [&lt;nick&gt;]: Asks how much lag a user (or the server if no user specified) has.
+command.quit=%S &lt;message&gt;: Disconnect from the server, with an optional message.
+command.quote=%S &lt;command&gt;: Send a raw command to the server.
+command.time=%S: Displays the current local time at the IRC server.
+command.topic=%S [&lt;new topic&gt;]: Set this channel's topic.
+command.umode=%S (+|-)&lt;new mode&gt;: Set or unset a user mode.
+command.version=%S &lt;nick&gt;: Request the version of a user's client.
+command.voice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Grant channel voice status to someone. You must be a channel operator to do this.
+command.whois2=%S [&lt;nick&gt;]: Get information on a user.
+
+# 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] entered the room.
+message.rejoined=You have rejoined the room.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=You have been kicked by %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 has been kicked by %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=Mode %1$S for %2$S set by %3$S.
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=Channel mode %1$S set by %2$S.
+# %S is the user's mode.
+message.yourmode=Your mode is %S.
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=Could not use the desired nickname. Your nick remains %S.
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=You have left the room (Part%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 has left the room (Part%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 has left the room (Quit%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 has invited you to %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 was successfully invited to %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 is already in %2$S.
+# %S is the nickname of the user who was summoned.
+message.summoned=%S was summoned.
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=WHOIS information for %S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S is offline. WHOWAS information for %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 is an unknown nickname.
+# %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 changed the channel password to %2$S.
+message.channelKeyRemoved=%S removed the channel password.
+# This will be followed by a list of ban masks.
+message.banMasks=Users connected from the following locations are banned from %S:
+message.noBanMasks=There are no banned locations for %S.
+message.banMaskAdded=Users connected from locations matching %1$S have been banned by %2$S.
+message.banMaskRemoved=Users connected from locations matching %1$S are no longer banned by %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 reply from %1$S in #2 millisecond.;Ping reply from %1$S in #2 milliseconds.
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=There is no channel: %S.
+error.tooManyChannels=Cannot join %S; you've joined too many channels.
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=Nick already in use, changing nick to %1$S [%2$S].
+error.erroneousNickname=%S is not an allowed nickname.
+error.banned=You are banned from this server.
+error.bannedSoon=You will soon be banned from this server.
+error.mode.wrongUser=You cannot change modes for other users.
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S is not online.
+error.wasNoSuchNick=There was no nickname: %S
+error.noSuchChannel=There is no channel: %S.
+error.unavailable=%S is temporarily unavailable.
+# %S is the channel name.
+error.channelBanned=You have been banned from %S.
+error.cannotSendToChannel=You cannot send messages to %S.
+error.channelFull=The channel %S is full.
+error.inviteOnly=You must be invited to join %S.
+error.nonUniqueTarget=%S is not a unique user@host or shortname or you have tried to join too many channels at once.
+error.notChannelOp=You are not a channel operator on %S.
+error.notChannelOwner=You are not a channel owner of %S.
+error.wrongKey=Cannot join %S, invalid channel password.
+error.sendMessageFailed=An error occurred while sending your last message. Please try again once the connection has been reestablished.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=You may not join %1$S, and were automatically redirected to %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' is not a valid user mode on this server.
+
+# 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=Name
+tooltip.server=Connected to
+# 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=Connected from
+tooltip.registered=Registered
+tooltip.registeredAs=Registered as
+tooltip.secure=Using a secure connection
+# The away message of the user
+tooltip.away=Away
+tooltip.ircOp=IRC Operator
+tooltip.bot=Bot
+tooltip.lastActivity=Last activity
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S ago
+tooltip.channels=Currently on
+
+# %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=Yes
+no=No
diff --git a/comm/chat/locales/en-US/logger.properties b/comm/chat/locales/en-US/logger.properties
new file mode 100644
index 0000000000..2228c50a4c
--- /dev/null
+++ b/comm/chat/locales/en-US/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=Empty or corrupt log file: %S
diff --git a/comm/chat/locales/en-US/matrix.ftl b/comm/chat/locales/en-US/matrix.ftl
new file mode 100644
index 0000000000..8fa0485239
--- /dev/null
+++ b/comm/chat/locales/en-US/matrix.ftl
@@ -0,0 +1,24 @@
+# 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 = Empty conversation
+
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Empty conversation (was { $oldName })
+
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others2 =
+ { $otherParticipantCount ->
+ [one] { $participant } and { $otherParticipantCount } other
+ *[other] { $participant } and { $otherParticipantCount } others
+ }
diff --git a/comm/chat/locales/en-US/matrix.properties b/comm/chat/locales/en-US/matrix.properties
new file mode 100644
index 0000000000..ba0d85dc8b
--- /dev/null
+++ b/comm/chat/locales/en-US/matrix.properties
@@ -0,0 +1,255 @@
+# 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=Store access token
+options.deviceDisplayName=Device display name
+options.homeserver=Server
+options.backupPassphrase=Key Backup Passphrase
+
+# 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.enabled=Cryptographic Functions: %S
+options.encryption.secretStorage=Secret Storage: %S
+options.encryption.keyBackup=Encryption Key Backup: %S
+options.encryption.crossSigning=Cross Signing: %S
+options.encryption.statusOk=ok
+options.encryption.statusNotOk=not ready
+options.encryption.needBackupPassphrase=Please enter your backup key passphrase in the protocol options.
+options.encryption.setUpSecretStorage=To set up secret storage, please use another client and afterwards enter the generated backup key passphrase in the "General" tab.
+options.encryption.setUpBackupAndCrossSigning=To activate encryption key backups and cross signing, enter your backup key passphrase in the "General" tab or verify the identity of one of the sessions below.
+# %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=Waiting for your authorization
+connection.requestAccess=Finalizing authentication
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=Server offers no compatible login flow.
+connection.error.authCancelled=You cancelled the authorization process.
+connection.error.sessionEnded=Session was logged out.
+connection.error.serverNotFound=Could not identify the Matrix server for the given Matrix account.
+
+# 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=_Room
+
+# 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=Display name
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S ago
+tooltip.lastActive=Last activity
+
+# 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=Default
+powerLevel.moderator=Moderator
+powerLevel.admin=Admin
+powerLevel.restricted=Restricted
+powerLevel.custom=Custom
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$S (%2$S)
+powerLevel.defaultRole=Default role: %S
+powerLevel.inviteUser=Invite users: %S
+powerLevel.kickUsers=Kick users: %S
+powerLevel.ban=Ban users: %S
+powerLevel.roomAvatar=Change room avatar: %S
+powerLevel.mainAddress=Change main address for the room: %S
+powerLevel.history=Change history visibility: %S
+powerLevel.roomName=Change room name: %S
+powerLevel.changePermissions=Change permissions: %S
+powerLevel.server_acl=Send m.room.server_acl events: %S
+powerLevel.upgradeRoom=Upgrade the room: %S
+powerLevel.remove=Remove messages: %S
+powerLevel.events_default=Events default: %S
+powerLevel.state_default=Change setting: %S
+powerLevel.encryption=Enable Room encryption: %S
+powerLevel.topic=Set room topic: %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=Name: %S
+# Example placeholder: "My first room"
+detail.topic=Topic: %S
+# Example placeholder: "5"
+detail.version=Room Version: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=RoomID: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=Admin: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=Moderator: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=Alias: %S
+# Example placeholder: "can_join"
+detail.guest=Guest Access: %S
+# This is a heading, followed by the powerLevel.* strings
+detail.power=Power Levels:
+
+# 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;]: Ban the user with the userId from the room with optional reason message. Requires permission to ban users.
+command.invite=%S &lt;userId&gt;: Invite the user to the room.
+command.kick=%S &lt;userId&gt; [&lt;reason&gt;]: Kick the user with the userId from the room with optional reason message. Requires permission to kick users.
+command.nick=%S &lt;display_name&gt;: Change your display name.
+command.op=%S &lt;userId&gt; [&lt;power level&gt;]: Define the power level of the user. Enter an integer value, User: 0, Moderator: 50 and Admin: 100. Default will be 50 if no argument is provided. Requires permission to change member's power levels. Does not work on admins other than yourself.
+command.deop=%S &lt;userId&gt;: Reset the user to power level 0 (User). Requires permission to change member's power levels. Does not work on admins other than yourself.
+command.leave=%S: Leave the current room.
+command.topic=%S &lt;topic&gt;: Set the topic for the room. Requires permissions to change the room topic.
+command.unban=%S &lt;userId&gt;: Unban a user who is banned from the room. Requires permission to ban users.
+command.visibility=%S [&lt;visibility&gt;]: Set the visibility of the current room in the current Home Server's room directory. Enter an integer value, Private: 0 and Public: 1. Default will be Private (0) if no argument is provided. Requires permission to change room visibility.
+command.guest=%S &lt;guest access&gt; &lt;history visibility&gt;: Set the access and history visibility of the current room for the guest users. Enter two integer values, the first for the guest access (not allowed: 0 and allowed: 1) and the second for the history visibility (not visible: 0 and visible: 1). Requires permission to change history visibility.
+command.roomname=%S &lt;name&gt;: Set the name for the room. Requires permission to change the room name.
+command.detail=%S: Display the details of the room.
+command.addalias=%S &lt;alias&gt;: Create an alias for the room. Expected room alias of the form '#localname:domain'. Requires permission to add aliases.
+command.removealias=%S &lt;alias&gt;: Remove the alias for the room. Expected room alias of the form '#localname:domain'. Requires permission to remove aliases.
+command.upgraderoom=%S &lt;newVersion&gt;: Upgrade room to given version. Requires permission to upgrade the room.
+command.me=%S &lt;action&gt;: Perform an action.
+command.msg=%S &lt;userId&gt; &lt;message&gt;: Send a direct message to the given user.
+command.join=%S &lt;roomId&gt;: Join the given room.
+
+# 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 banned %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S banned %2$S. Reason: %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 accepted the invitation for %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S accepted an invitation.
+# %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 invited %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 changed their display name from %2$S to %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 set their display name to %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 removed their display name %2$S.
+# %S is the name of the user who has joined the room.
+message.joined=%S has joined the room.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S has rejected the invitation.
+# %S is the name of the user who has left the room.
+message.left=%S has left the room.
+# %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 unbanned %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 kicked %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 kicked %2$S. Reason: %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 withdrew %2$S's invitation.
+# 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 withdrew %2$S's invitation. Reason: %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S removed the room name.
+# %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 changed the room name to %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.
+message.powerLevel.changed=%1$S changed the power level of %2$S.
+# %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 from %2$S to %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S has allowed guests to join the room.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S has prevented guests from joining the room.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S made future room history visible to anyone.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S made future room history visible to all room members.
+# %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 made future room history visible to all room members, from the point they are invited.
+# %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 made future room history visible to all room members, from the point they joined.
+# %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 set the main address for this room from %2$S to %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 added %2$S as alternative address for this room.
+# %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 removed %2$S as alternative address for this room.
+# %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 removed %2$S and added %3$S as address for this room.
+message.spaceNotSupported=This room is a space, which is not supported.
+message.encryptionStart=Messages in this conversation are now end-to-end encrypted.
+# %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 wants to verify %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 cancelled the verification with the reason: %2$S
+message.verification.done=Verification completed.
+message.decryptionError=Could not decrypt the contents of this message. To request encryption keys from your other devices, right click this message.
+message.decrypting=Decrypting…
+message.redacted=Message was redacted.
+# %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 reacted to %2$S with %3$S.
+
+# Label in the message context menu
+message.action.requestKey=Re-request Keys
+message.action.redact=Redact
+message.action.report=Report Message
+message.action.retry=Retry Sending
+message.action.cancel=Cancel Message
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=An error occurred while sending your message "%1$S".
diff --git a/comm/chat/locales/en-US/status.properties b/comm/chat/locales/en-US/status.properties
new file mode 100644
index 0000000000..af88441cd0
--- /dev/null
+++ b/comm/chat/locales/en-US/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=Available
+awayStatusType=Away
+unavailableStatusType=Unavailable
+offlineStatusType=Offline
+invisibleStatusType=Invisible
+idleStatusType=Idle
+mobileStatusType=Mobile
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Unknown
+
+# 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=I am currently away from the computer.
diff --git a/comm/chat/locales/en-US/twitter.properties b/comm/chat/locales/en-US/twitter.properties
new file mode 100644
index 0000000000..c379791459
--- /dev/null
+++ b/comm/chat/locales/en-US/twitter.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 (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+twitter.disabled=Twitter is no longer supported due to Twitter disabling their streaming protocol.
diff --git a/comm/chat/locales/en-US/xmpp.properties b/comm/chat/locales/en-US/xmpp.properties
new file mode 100644
index 0000000000..8a53616e36
--- /dev/null
+++ b/comm/chat/locales/en-US/xmpp.properties
@@ -0,0 +1,274 @@
+# 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=Initializing stream
+connection.initializingEncryption=Initializing encryption
+connection.authenticating=Authenticating
+connection.gettingResource=Getting resource
+connection.downloadingRoster=Downloading contact list
+connection.srvLookup=Looking up the SRV record
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Invalid username (your username should contain an '@' character)
+connection.error.failedToCreateASocket=Failed to create a socket (Are you offline?)
+connection.error.serverClosedConnection=The server closed the connection
+connection.error.resetByPeer=Connection reset by peer
+connection.error.timedOut=The connection timed out
+connection.error.receivedUnexpectedData=Received unexpected data
+connection.error.incorrectResponse=Received an incorrect response
+connection.error.startTLSRequired=The server requires encryption but you disabled it
+connection.error.startTLSNotSupported=The server doesn't support encryption but your configuration requires it
+connection.error.failedToStartTLS=Failed to start encryption
+connection.error.noAuthMec=No authentication mechanism offered by the server
+connection.error.noCompatibleAuthMec=None of the authentication mechanisms offered by the server are supported
+connection.error.notSendingPasswordInClear=The server only supports authentication by sending the password in cleartext
+connection.error.authenticationFailure=Authentication failure
+connection.error.notAuthorized=Not authorized (Did you enter the wrong password?)
+connection.error.failedToGetAResource=Failed to get a resource
+connection.error.failedMaxResourceLimit=This account is connected from too many places at the same time.
+connection.error.failedResourceNotValid=Resource is not valid.
+connection.error.XMPPNotSupported=This server does not support 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=This message could not be delivered: %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=Could not join: %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=Couldn't join %S as you are banned from this room.
+conversation.error.joinFailedNotAuthorized=Registration required: You are not authorized to join this room.
+conversation.error.creationFailedNotAllowed=Access restricted: You are not allowed to create rooms.
+# 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=Could not join the room %S as the server the room is hosted on could not be reached.
+conversation.error.changeTopicFailedNotAuthorized=You are not authorized to set the topic of this room.
+# 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=Message could not be sent to %1$S as you are no longer in the room: %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=Message could not be sent to %1$S as the recipient is no longer in the room: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=Could not reach the recipient's server.
+conversation.error.unknownSendError=An unknown error occurred on sending this message.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=It is not possible to send messages to %S at this time.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S is not in the room.
+conversation.error.banCommandAnonymousRoom=You can't ban participants from anonymous rooms. Try /kick instead.
+conversation.error.banKickCommandNotAllowed=You don't have the required privileges to remove this participant from the room.
+conversation.error.banKickCommandConflict=Sorry, you can't remove yourself from the room.
+conversation.error.changeNickFailedConflict=Could not change your nick to %S as this nick is already in use.
+conversation.error.changeNickFailedNotAcceptable=Could not change your nick to %S as nicks are locked down in this room.
+conversation.error.inviteFailedForbidden=You don't have the required privileges to invite users to this room.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=Could not reach %S.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S is an invalid jid (Jabber identifiers must be of the form user@domain).
+conversation.error.commandFailedNotInRoom=You have to rejoin the room to be able to use this command.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=You must talk first as %S could be connected with more than one client.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=%S's client does not support querying for its software version.
+
+# 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=Status (%S)
+tooltip.statusNoResource=Status
+tooltip.subscription=Subscription
+tooltip.fullName=Full Name
+tooltip.nickname=Nickname
+tooltip.email=Email
+tooltip.birthday=Birthday
+tooltip.userName=Username
+tooltip.title=Title
+tooltip.organization=Organization
+tooltip.locality=Locality
+tooltip.country=Country
+tooltip.telephone=Telephone number
+
+# 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=_Room
+chatRoomField.server=_Server
+chatRoomField.nick=_Nick
+chatRoomField.password=_Password
+
+# 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 has invited you to join %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 has invited you to join %2$S with password %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S has invited you to join %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S has invited you to join %2$S with password %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 entered the room.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=You have rejoined the room.
+
+# 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=You have left the room.
+conversation.message.parted.you.reason=You have left the room: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S has left the room.
+conversation.message.parted.reason=%1$S has left the room: %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 has declined your invitation.
+conversation.message.invitationDeclined.reason=%1$S has declined your invitation: %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 has been banned from the room.
+conversation.message.banned.reason=%1$S has been banned from the room: %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 has banned %2$S from the room.
+conversation.message.banned.actor.reason=%1$S has banned %2$S from the room: %3$S
+conversation.message.banned.you=You have been banned from the room.
+# %1$S is the reason.
+conversation.message.banned.you.reason=You have been banned from the room: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S has banned you from the room.
+conversation.message.banned.you.actor.reason=%1$S has banned you from the room: %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 has been kicked from the room.
+conversation.message.kicked.reason=%1$S has been kicked from the room: %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 has kicked %2$S from the room.
+conversation.message.kicked.actor.reason=%1$S has kicked %2$S from the room: %3$S
+conversation.message.kicked.you=You have been kicked from the room.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=You have been kicked from the room: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S has kicked you from the room.
+conversation.message.kicked.you.actor.reason=%1$S has kicked you from the room: %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 has been removed from the room because its configuration was changed to members-only.
+conversation.message.removedNonMember.actor=%1$S has been removed from the room because %2$S has changed it to members-only.
+conversation.message.removedNonMember.you=You have been removed from the room because its configuration has been changed to members-only.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=You have been removed from the room because %1$S has changed it to members-only.
+
+# 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=You have been removed from the room because of a system shutdown.
+
+# 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 is using "%2$S %3$S".
+conversation.message.versionWithOS=%1$S is using "%2$S %3$S" on %4$S.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=Resource
+options.priority=Priority
+options.connectionSecurity=Connection security
+options.connectionSecurity.requireEncryption=Require encryption
+options.connectionSecurity.opportunisticTLS=Use encryption if available
+options.connectionSecurity.allowUnencryptedAuth=Allow sending the password unencrypted
+options.connectServer=Server
+options.connectPort=Port
+options.domain=Domain
+
+# 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.disabled):
+# Google Talk was disabled on June 16, 2022. The message below is a localized
+# error message to be displayed to users with Google Talk accounts.
+gtalk.disabled=Google Talk is no longer supported due to Google disabling their XMPP gateway.
+
+# 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=Profile ID
+
+# 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;]: Join a room, optionally providing a different server, or nickname, or the room password.
+command.part2=%S [&lt;message&gt;]: Leave the current room with an optional message.
+command.topic=%S [&lt;new topic&gt;]: Set this room's topic.
+command.ban=%S &lt;nick&gt;[&lt;message&gt;]: Ban someone from the room. You must be a room administrator to do this.
+command.kick=%S &lt;nick&gt;[&lt;message&gt;]: Remove someone from the room. You must be a room moderator to do this.
+command.invite=%S &lt;jid&gt;[&lt;message&gt;]: Invite a user to join the current room with an optional message.
+command.inviteto=%S &lt;room jid&gt;[&lt;password&gt;]: Invite your conversation partner to join a room, together with its password if required.
+command.me=%S &lt;action to perform&gt;: Perform an action.
+command.nick=%S &lt;new nickname&gt;: Change your nickname.
+command.msg=%S &lt;nick&gt; &lt;message&gt;: Send a private message to a participant in the room.
+command.version=%S: Request information about the client your conversation partner is using.
diff --git a/comm/chat/locales/en-US/yahoo.properties b/comm/chat/locales/en-US/yahoo.properties
new file mode 100644
index 0000000000..89ee0093c1
--- /dev/null
+++ b/comm/chat/locales/en-US/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 is no longer supported due to Yahoo disabling their legacy protocol.
diff --git a/comm/chat/locales/jar.mn b/comm/chat/locales/jar.mn
new file mode 100644
index 0000000000..20d8c3c055
--- /dev/null
+++ b/comm/chat/locales/jar.mn
@@ -0,0 +1,24 @@
+#filter substitution
+# 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] @AB_CD@.jar:
+ chat (%**/*.ftl)
+
+@AB_CD@.jar:
+% locale chat @AB_CD@ %locale/@AB_CD@/chat/
+ locale/@AB_CD@/chat/accounts.dtd (%accounts.dtd)
+ locale/@AB_CD@/chat/accounts.properties (%accounts.properties)
+ locale/@AB_CD@/chat/imtooltip.properties (%imtooltip.properties)
+ locale/@AB_CD@/chat/commands.properties (%commands.properties)
+ locale/@AB_CD@/chat/contacts.properties (%contacts.properties)
+ locale/@AB_CD@/chat/conversations.properties (%conversations.properties)
+ locale/@AB_CD@/chat/facebook.properties (%facebook.properties)
+ locale/@AB_CD@/chat/irc.properties (%irc.properties)
+ locale/@AB_CD@/chat/logger.properties (%logger.properties)
+ locale/@AB_CD@/chat/matrix.properties (%matrix.properties)
+ locale/@AB_CD@/chat/status.properties (%status.properties)
+ locale/@AB_CD@/chat/twitter.properties (%twitter.properties)
+ locale/@AB_CD@/chat/xmpp.properties (%xmpp.properties)
+ locale/@AB_CD@/chat/yahoo.properties (%yahoo.properties)
diff --git a/comm/chat/locales/moz.build b/comm/chat/locales/moz.build
new file mode 100644
index 0000000000..de5cd1bf81
--- /dev/null
+++ b/comm/chat/locales/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+JAR_MANIFESTS += ["jar.mn"]