mirror of https://github.com/vector-im/riot-web
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/piwik
commit
42e20c38f9
|
@ -141,6 +141,8 @@ foreach my $lang (grep { -f "$i18ndir/$_" && !/(basefile|en_EN)\.json/ } @files)
|
|||
sub read_i18n {
|
||||
my $path = shift;
|
||||
my $map = {};
|
||||
$path =~ /.*\/(.*)$/;
|
||||
my $lang = $1;
|
||||
|
||||
open(FILE, "<", $path) || die $!;
|
||||
while(<FILE>) {
|
||||
|
@ -148,6 +150,10 @@ sub read_i18n {
|
|||
my ($indent, $src, $colon, $dst, $comma) = ($1, $2, $3, $4, $5);
|
||||
$src =~ s/\\"/"/g;
|
||||
$dst =~ s/\\"/"/g;
|
||||
|
||||
if ($map->{$src}) {
|
||||
printf ("%10s %24s\t%s\n", $lang, "Duplicate translation!", $src);
|
||||
}
|
||||
$map->{$src} = $dst;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ const commands = {
|
|||
|
||||
dis.dispatch({
|
||||
action: 'view_room',
|
||||
roomAlias: roomAlias,
|
||||
room_alias: roomAlias,
|
||||
auto_join: true,
|
||||
});
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ export default React.createClass({
|
|||
render: function() {
|
||||
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
|
||||
|
||||
const title = "Confirm Redaction";
|
||||
const title = "Confirm Removal";
|
||||
|
||||
const confirmButtonClass = classnames({
|
||||
'mx_Dialog_primary': true,
|
||||
|
@ -55,12 +55,12 @@ export default React.createClass({
|
|||
title={title}
|
||||
>
|
||||
<div className="mx_Dialog_content">
|
||||
Are you sure you wish to redact (delete) this event?
|
||||
Note that if you redact a room name or topic change, it could undo the change.
|
||||
Are you sure you wish to remove (delete) this event?
|
||||
Note that if you delete a room name or topic change, it could undo the change.
|
||||
</div>
|
||||
<div className="mx_Dialog_buttons">
|
||||
<button className={confirmButtonClass} onClick={this.onOk}>
|
||||
Redact
|
||||
Remove
|
||||
</button>
|
||||
|
||||
<button onClick={this.onCancel}>
|
||||
|
|
|
@ -24,7 +24,7 @@ module.exports = React.createClass({
|
|||
render: function() {
|
||||
const text = this.props.mxEvent.getContent().body;
|
||||
return (
|
||||
<span className="mx_UnknownBody" title="Redacted or unknown message type">
|
||||
<span className="mx_UnknownBody" title="Removed or unknown message type">
|
||||
{text}
|
||||
</span>
|
||||
);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { _t } from '../../../languageHandler';
|
||||
import MatrixClientPeg from '../../../MatrixClientPeg';
|
||||
import dis from '../../../dispatcher';
|
||||
import KeyCode from '../../../KeyCode';
|
||||
|
@ -88,7 +89,7 @@ module.exports = React.createClass({
|
|||
render: function() {
|
||||
return (
|
||||
<div className="mx_ForwardMessage">
|
||||
<h1>Please select the destination room for this message</h1>
|
||||
<h1>{_t('Please select the destination room for this message')}</h1>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
|
|
|
@ -927,7 +927,7 @@ module.exports = React.createClass({
|
|||
<PowerSelector ref="ban" value={ban_level} controlled={false} disabled={!can_change_levels || current_user_level < ban_level} onChange={this.onPowerLevelsChanged}/>
|
||||
</div>
|
||||
<div className="mx_RoomSettings_powerLevel">
|
||||
<span className="mx_RoomSettings_powerLevelKey">{ _t('To redact other users\' messages') }, { _t('you must be a') } </span>
|
||||
<span className="mx_RoomSettings_powerLevelKey">{ _t('To remove other users\' messages') }, { _t('you must be a') } </span>
|
||||
<PowerSelector ref="redact" value={redact_level} controlled={false} disabled={!can_change_levels || current_user_level < redact_level} onChange={this.onPowerLevelsChanged}/>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
"an address": "an Adresse",
|
||||
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Dein Passwort wurde erfolgreich geändert. Du wirst keine Benachrichtigungen an anderen Geräten empfangen bis du dich dort erneut anmeldest",
|
||||
"all room members": "Alle Raum-Mitglieder",
|
||||
"all room members, from the point they are invited": "Alle Raum-Mitglieder - seitdem sie eingeladen wurden",
|
||||
"all room members, from the point they are invited": "Alle Raum-Mitglieder, ab dem Zeitpunkt, an dem sie eingeladen werden",
|
||||
"answered the call.": "beantwortete den Anruf.",
|
||||
"Can't load user settings": "Kann Nutzereinstellungen nicht laden",
|
||||
"changed name": "änderte Namen",
|
||||
|
@ -133,7 +133,7 @@
|
|||
"Homeserver is": "Der Homeserver ist",
|
||||
"Identity Server is": "Der Identitätsserver ist",
|
||||
"I have verified my email address": "Ich habe meine E-Mail-Adresse verifiziert",
|
||||
"Import E2E room keys": "Importe E2E-Raum-Schlüssel",
|
||||
"Import E2E room keys": "E2E-Raum-Schlüssel importieren",
|
||||
"Invalid Email Address": "Ungültige E-Mail-Adresse",
|
||||
"invited": "eingeladen",
|
||||
"Invite new room members": "Lade neue Raum-Mitglieder ein",
|
||||
|
@ -211,7 +211,7 @@
|
|||
"Start Chat": "Starte Chat",
|
||||
"Success": "Erfolg",
|
||||
"tag direct chat": "Zum kennzeichnen als direkten Chat",
|
||||
"The default role for new room members is": "Die Standard-Rolle for neue Raum-Mitglieder ist",
|
||||
"The default role for new room members is": "Die Standard-Rolle für neue Raum-Mitglieder ist",
|
||||
"their invitations": "ihre Einladungen",
|
||||
"their invitation": "ihre Einladung",
|
||||
"These are experimental features that may break in unexpected ways. Use with caution": "Dies sind experimentelle Funktionen die in unerwarteter Weise Fehler verursachen können. Mit Vorsicht benutzen",
|
||||
|
@ -349,7 +349,7 @@
|
|||
"To send events of type": "Zum Senden von Ereignissen mit Typ",
|
||||
"%(names)s and %(lastPerson)s are typing": "%(names)s und %(lastPerson)s schreiben",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s akzeptierte eine Einladung.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte eine Einladung für %(displayName)s.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte die Einladung für %(displayName)s.",
|
||||
"%(names)s and one other are typing": "%(names)s und eine weitere Person tippen",
|
||||
"%(names)s and %(count)s others are typing": "%(names)s und %(count)s weitere Personen tippen",
|
||||
"%(senderName)s answered the call.": "%(senderName)s beantwortete den Anruf.",
|
||||
|
@ -428,7 +428,7 @@
|
|||
"to tag direct chat": "als direkten Chat markieren",
|
||||
"You're not in any rooms yet! Press": "Du bist noch keinem Raum beigetreten! Drücke",
|
||||
"click to reveal": "Klicke zum anzeigen",
|
||||
"To redact other users' messages": "Um Nachrichten anderer zu verbergen",
|
||||
"To remove other users' messages": "Um Nachrichten anderer zu verbergen",
|
||||
"You are trying to access %(roomName)s": "Du versuchst auf %(roomName)s zuzugreifen",
|
||||
"af": "Afrikaans",
|
||||
"ar-ae": "Arabisch (U.A.E.)",
|
||||
|
@ -719,5 +719,12 @@
|
|||
"riot-web version:": "Version von riot-web:",
|
||||
"Scroll to bottom of page": "Zum Ende der Seite springen",
|
||||
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Zeige Zeitstempel im 12-Stunden format",
|
||||
"to tag as %(tagName)s": "um als \"%(tagName)s\" zu markieren"
|
||||
"to tag as %(tagName)s": "um als \"%(tagName)s\" zu markieren",
|
||||
"Email address": "E-Mail-Adresse",
|
||||
"Error decrypting attachment": "Fehler beim Entschlüsseln des Anhangs",
|
||||
"Mute": "Stummschalten",
|
||||
"Operation failed": "Aktion fehlgeschlagen",
|
||||
"You need to enter a user name.": "Du musst einen Benutzernamen eingeben.",
|
||||
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Eine Änderung des Passworts setzt derzeit alle Schlüssel für die E2E-Verschlüsselung auf allen verwendeten Geräten zurück. Bereits verschlüsselte Chat-Inhalte sind somit nur noch lesbar, wenn du zunächst alle Schlüssel exportierst und später wieder importierst. Wir arbeiten an einer Verbesserung dieser momentan noch notwendigen Vorgehensweise.",
|
||||
"Unmute": "Stummschalten aufheben"
|
||||
}
|
||||
|
|
|
@ -80,7 +80,6 @@
|
|||
"ja":"Japanese",
|
||||
"ji":"Yiddish",
|
||||
"ko":"Korean",
|
||||
"ko":"Korean (Johab)",
|
||||
"lt":"Lithuanian",
|
||||
"lv":"Latvian",
|
||||
"mk":"Macedonian (FYROM)",
|
||||
|
@ -101,8 +100,7 @@
|
|||
"sk":"Slovak",
|
||||
"sl":"Slovenian",
|
||||
"sq":"Albanian",
|
||||
"sr":"Serbian (Cyrillic)",
|
||||
"sr":"Serbian (Latin)",
|
||||
"sr":"Serbian",
|
||||
"sv-fi":"Swedish (Finland)",
|
||||
"sv":"Swedish",
|
||||
"sx":"Sutu",
|
||||
|
@ -285,7 +283,6 @@
|
|||
"Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.",
|
||||
"Guest users can't create new rooms. Please register to create room and start a chat": "Guest users can't create new rooms. Please register to create room and start a chat",
|
||||
"Guest users can't upload files. Please register to upload": "Guest users can't upload files. Please register to upload",
|
||||
"Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.",
|
||||
"Guests can't use labs features. Please register.": "Guests can't use labs features. Please register.",
|
||||
"Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
|
||||
"had": "had",
|
||||
|
@ -371,7 +368,6 @@
|
|||
"Once you've followed the link it contains, click below": "Once you've followed the link it contains, click below",
|
||||
"Only people who have been invited": "Only people who have been invited",
|
||||
"Operation failed": "Operation failed",
|
||||
"or": "or",
|
||||
"Password": "Password",
|
||||
"Passwords can't be empty": "Passwords can't be empty",
|
||||
"People": "People",
|
||||
|
@ -483,7 +479,7 @@
|
|||
"To kick users": "To kick users",
|
||||
"To link to a room it must have": "To link to a room it must have",
|
||||
"to make a room or": "to make a room or",
|
||||
"To redact other users' messages": "To redact other users' messages",
|
||||
"To remove other users' messages": "To remove other users' messages",
|
||||
"To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
|
||||
"to restore": "to restore",
|
||||
"To send events of type": "To send events of type",
|
||||
|
@ -604,8 +600,6 @@
|
|||
"Encrypt room": "Encrypt room",
|
||||
"There are no visible files in this room": "There are no visible files in this room",
|
||||
"Room": "Room",
|
||||
"Room name (optional)": "Room name (optional)",
|
||||
"Who would you like to add to this room?": "Who would you like to add to this room?",
|
||||
"Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
|
||||
"Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
|
||||
"Auto-complete": "Auto-complete",
|
||||
|
@ -681,5 +675,6 @@
|
|||
"%(oneUser)schanged their avatar": "%(oneUser)schanged their avatar",
|
||||
"Analytics": "Analytics",
|
||||
"Opt out of analytics": "Opt out of analytics",
|
||||
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application."
|
||||
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
|
||||
"Please select the destination room for this message": "Please select the destination room for this message"
|
||||
}
|
||||
|
|
|
@ -174,7 +174,6 @@
|
|||
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un message texte a été envoyé à +%(msisdn)s. Merci d'entrer le code de vérification qu'il contient",
|
||||
"accept": "Accepter",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s a accepté une invitation.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s a accepté une invitation de %(displayName)s.",
|
||||
"Account": "Compte",
|
||||
"Add email address": "Ajouter une adresse e-mail",
|
||||
"Add phone number": "Ajouter un numéro de téléphone",
|
||||
|
@ -196,7 +195,6 @@
|
|||
"%(names)s and %(count)s others are typing": "%(names)s et %(count)s d'autres sont en train de taper",
|
||||
"An email has been sent to": "Un e-mail a été envoyé à",
|
||||
"A new password must be entered.": "Un nouveau mot de passe doit être entré.",
|
||||
"%(senderName)s answered the call.": "%(senderName)s a répondu à l’appel.",
|
||||
"Anyone who knows the room's link, apart from guests": "Tout ceux qui connaissent le lien du salon, à part les invités",
|
||||
"Anyone who knows the room's link, including guests": "Tout ceux qui connaissent le lien du salon, y compris les invités",
|
||||
"Are you sure?": "Êtes-vous sûr ?",
|
||||
|
@ -281,7 +279,6 @@
|
|||
"Authentication": "Authentification",
|
||||
"%(senderName)s answered the call.": "%(senderName)s a répondu à l’appel.",
|
||||
"An error has occurred.": "Une erreur est survenue.",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s a banni %(targetName)s.",
|
||||
"Email": "E-mail",
|
||||
"Failed to send request.": "Erreur lors de l'envoi de la requête.",
|
||||
"Failed to unban": "Échec de l'amnistie",
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"af": "Afrikaans",
|
||||
"ar-ae": "Arabisch (U.A.E.)"
|
||||
}
|
|
@ -16,7 +16,6 @@
|
|||
"An email has been sent to": "Um email foi enviado para",
|
||||
"A new password must be entered.": "Uma nova senha precisa ser informada.",
|
||||
"answered the call.": "respondeu à chamada.",
|
||||
"anyone": "qualquer um",
|
||||
"Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes",
|
||||
"Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes",
|
||||
"Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?",
|
||||
|
@ -354,7 +353,6 @@
|
|||
"Power level must be positive integer.": "O nível de permissões tem que ser um número inteiro e positivo.",
|
||||
"Press": "Aperte",
|
||||
"Reason": "Razão",
|
||||
"Refer a friend to Riot:": "Recomende Riot a um/a amigo/a",
|
||||
"%(targetName)s rejected the invitation.": "%(targetName)s recusou o convite.",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removeu o seu nome público (%(oldDisplayName)s).",
|
||||
"%(senderName)s removed their profile picture.": "%(senderName)s removeu sua imagem de perfil.",
|
||||
|
@ -379,7 +377,7 @@
|
|||
"to demote": "para reduzir prioridade",
|
||||
"to favourite": "para favoritar",
|
||||
"to make a room or": "para criar uma sala ou",
|
||||
"To redact other users' messages": "Para apagar mensagens de outras pessoas",
|
||||
"To remove other users' messages": "Para apagar mensagens de outras pessoas",
|
||||
"to restore": "para restaurar",
|
||||
"to start a chat with someone": "para iniciar uma conversa com alguém",
|
||||
"to tag direct chat": "para marcar a conversa como pessoal",
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
"New passwords don't match": "As novas senhas não conferem",
|
||||
"A new password must be entered.": "Uma nova senha precisa ser informada.",
|
||||
"answered the call.": "respondeu à chamada.",
|
||||
"anyone": "qualquer um",
|
||||
"Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes",
|
||||
"Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes",
|
||||
"Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?",
|
||||
|
@ -358,7 +357,6 @@
|
|||
"Power level must be positive integer.": "O nível de permissões tem que ser um número inteiro e positivo.",
|
||||
"Press": "Aperte",
|
||||
"Reason": "Razão",
|
||||
"Refer a friend to Riot:": "Recomende Riot a um/a amigo/a",
|
||||
"%(targetName)s rejected the invitation.": "%(targetName)s recusou o convite.",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removeu o seu nome público (%(oldDisplayName)s).",
|
||||
"%(senderName)s removed their profile picture.": "%(senderName)s removeu sua imagem de perfil.",
|
||||
|
@ -383,7 +381,7 @@
|
|||
"to demote": "para reduzir prioridade",
|
||||
"to favourite": "para favoritar",
|
||||
"to make a room or": "para criar uma sala ou",
|
||||
"To redact other users' messages": "Para apagar mensagens de outras pessoas",
|
||||
"To remove other users' messages": "Para apagar mensagens de outras pessoas",
|
||||
"to restore": "para restaurar",
|
||||
"to start a chat with someone": "para iniciar uma conversa com alguém",
|
||||
"to tag as %(tagName)s": "para marcar como %(tagName)s",
|
||||
|
|
|
@ -251,7 +251,7 @@
|
|||
"click to reveal": "нажать для открытия",
|
||||
"%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.",
|
||||
"%(displayName)s is typing": "%(displayName)s вводит текст",
|
||||
"%(targetName)s joined the room.": "%(targetName)s присоединенный к комнате.",
|
||||
"%(targetName)s joined the room.": "%(targetName)s вошёл в комнату.",
|
||||
"%(senderName)s kicked %(targetName)s.": "%(senderName)s выкинул %(targetName)s.",
|
||||
"%(targetName)s left the room.": "%(targetName)s покинул комнату.",
|
||||
"%(senderName)s made future room history visible to": "%(senderName)s история сделаной будущей комнаты, видимая для",
|
||||
|
@ -508,7 +508,6 @@
|
|||
"'%(alias)s' is not a valid format for an address": "'%(alias)s' неверный формат для адреса",
|
||||
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' неверный формат для привязки",
|
||||
"Join Room": "Войти в комнату",
|
||||
"%(targetName)s joined the room.": "%(targetName)s вошёл в комнату.",
|
||||
"Kick": "Выгнать",
|
||||
"Level": "Уровень",
|
||||
"Local addresses for this room:": "Местный адрес этой комнаты:",
|
||||
|
@ -560,7 +559,7 @@
|
|||
"Sender device information": "Информация об устройстве отправителя",
|
||||
"Send Invites": "Отправить приглашения",
|
||||
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s отправил изображение.",
|
||||
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderDisplayName)s отправил приглашение для %(targetDisplayName)s войти в комнату.",
|
||||
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s отправил приглашение для %(targetDisplayName)s войти в комнату.",
|
||||
"sent a video": "отправил видео",
|
||||
"Show panel": "Показать панель",
|
||||
"Sign in": "Войти",
|
||||
|
@ -651,5 +650,6 @@
|
|||
"%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)sизменили своё изображение %(repeats)s раз",
|
||||
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sизменил своё изображение %(repeats)s раз",
|
||||
"%(severalUsers)schanged their avatar": "%(severalUsers)sизменили своё изображение",
|
||||
"%(oneUser)schanged their avatar": "%(oneUser)sизменил своё изображение"
|
||||
"%(oneUser)schanged their avatar": "%(oneUser)sизменил своё изображение",
|
||||
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Не возможно подключиться к серверу через HTTP, когда в строке браузера HTTPS. Используйте HTTPS или %(urlStart) включив небезопасные скрипты %(urlEnd)"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"An email has been sent to": "電郵已經發送至",
|
||||
"A new password must be entered.": "必須輸入新密碼。",
|
||||
"anyone": "任何人",
|
||||
"An error has occurred.": "發生了一個錯誤。",
|
||||
"Anyone who knows the room's link, apart from guests": "任何知道房間連結的人,但訪客除外",
|
||||
"Anyone who knows the room's link, including guests": "任何知道房間連結的人,包括訪客",
|
||||
"Are you sure?": "您確認嗎?",
|
||||
"Are you sure you want to reject the invitation?": "您確認要謝絕邀請嗎?",
|
||||
"Are you sure you want upload the following files?": "您確認要上傳以下文件嗎?",
|
||||
"Attachment": "附件",
|
||||
"Autoplay GIFs and videos": "自動播放GIF和影片",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s。",
|
||||
"Ban": "封禁",
|
||||
"Banned users": "已被封禁的使用者",
|
||||
"Blacklisted": "已列入黑名單",
|
||||
"Bug Report": "錯誤報告",
|
||||
"Call Timeout": "通話超時",
|
||||
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "無法連結主伺服器 - 請檢查網路狀況並確保您的 %(urlStart)s 主伺服器 SSL 證書 %(urlEnd)s 得到信任",
|
||||
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "當瀏覽器網址列里有 HTTPS URL 時,不能使用 HTTP 連結主伺服器。請採用 HTTPS 或者%(urlStart)s 允許不安全的腳本 %(urlEnd)s",
|
||||
"Can't load user settings": "無法載入使用者設定",
|
||||
"Change Password": "變更密碼",
|
||||
"%(targetName)s left the room.": "%(targetName)s 離開了聊天室。"
|
||||
}
|
Loading…
Reference in New Issue