mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-17 05:55:00 +08:00
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/piwik
This commit is contained in:
commit
45cd80dedb
186
scripts/check-i18n.pl
Executable file
186
scripts/check-i18n.pl
Executable file
@ -0,0 +1,186 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Cwd 'abs_path';
|
||||
|
||||
# script which checks how out of sync the i18ns are drifting
|
||||
|
||||
# example i18n format:
|
||||
# "%(oneUser)sleft": "%(oneUser)sleft",
|
||||
|
||||
$|=1;
|
||||
|
||||
$0 =~ /^(.*\/)/;
|
||||
my $i18ndir = abs_path($1."/../src/i18n/strings");
|
||||
my $srcdir = abs_path($1."/../src");
|
||||
|
||||
my $en = read_i18n($i18ndir."/en_EN.json");
|
||||
|
||||
my $src_strings = read_src_strings($srcdir);
|
||||
my $src = {};
|
||||
|
||||
print "Checking strings in src\n";
|
||||
foreach my $tuple (@$src_strings) {
|
||||
my ($s, $file) = (@$tuple);
|
||||
$src->{$s} = $file;
|
||||
if (!$en->{$s}) {
|
||||
if ($en->{$s . '.'}) {
|
||||
printf ("%50s %24s\t%s\n", $file, "en_EN has fullstop!", $s);
|
||||
}
|
||||
else {
|
||||
$s =~ /^(.*)\.?$/;
|
||||
if ($en->{$1}) {
|
||||
printf ("%50s %24s\t%s\n", $file, "en_EN lacks fullstop!", $s);
|
||||
}
|
||||
else {
|
||||
printf ("%50s %24s\t%s\n", $file, "Translation missing!", $s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print "\nChecking en_EN\n";
|
||||
my $count = 0;
|
||||
my $remaining_src = {};
|
||||
foreach (keys %$src) { $remaining_src->{$_}++ };
|
||||
|
||||
foreach my $k (sort keys %$en) {
|
||||
# crappy heuristic to ignore country codes for now...
|
||||
next if ($k =~ /^(..|..-..)$/);
|
||||
|
||||
if ($en->{$k} ne $k) {
|
||||
printf ("%50s %24s\t%s\n", "en_EN", "en_EN is not symmetrical", $k);
|
||||
}
|
||||
|
||||
if (!$src->{$k}) {
|
||||
if ($src->{$k. '.'}) {
|
||||
printf ("%50s %24s\t%s\n", $src->{$k. '.'}, "src has fullstop!", $k);
|
||||
}
|
||||
else {
|
||||
$k =~ /^(.*)\.?$/;
|
||||
if ($src->{$1}) {
|
||||
printf ("%50s %24s\t%s\n", $src->{$1}, "src lacks fullstop!", $k);
|
||||
}
|
||||
else {
|
||||
printf ("%50s %24s\t%s\n", '???', "Not present in src?", $k);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$count++;
|
||||
delete $remaining_src->{$k};
|
||||
}
|
||||
}
|
||||
printf ("$count/" . (scalar keys %$src) . " strings found in src are present in en_EN\n");
|
||||
foreach (keys %$remaining_src) {
|
||||
print "missing: $_\n";
|
||||
}
|
||||
|
||||
opendir(DIR, $i18ndir) || die $!;
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
foreach my $lang (grep { -f "$i18ndir/$_" && !/(basefile|en_EN)\.json/ } @files) {
|
||||
print "\nChecking $lang\n";
|
||||
|
||||
my $map = read_i18n($i18ndir."/".$lang);
|
||||
my $count = 0;
|
||||
|
||||
my $remaining_en = {};
|
||||
foreach (keys %$en) { $remaining_en->{$_}++ };
|
||||
|
||||
foreach my $k (sort keys %$map) {
|
||||
{
|
||||
no warnings 'uninitialized';
|
||||
my $vars = {};
|
||||
while ($k =~ /%\((.*?)\)s/g) {
|
||||
$vars->{$1}++;
|
||||
}
|
||||
while ($map->{$k} =~ /%\((.*?)\)s/g) {
|
||||
$vars->{$1}--;
|
||||
}
|
||||
foreach my $var (keys %$vars) {
|
||||
if ($vars->{$var} != 0) {
|
||||
printf ("%10s %24s\t%s\n", $lang, "Broken var ($var)s", $k);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($en->{$k}) {
|
||||
if ($map->{$k} eq $k) {
|
||||
printf ("%10s %24s\t%s\n", $lang, "Untranslated string?", $k);
|
||||
}
|
||||
$count++;
|
||||
delete $remaining_en->{$k};
|
||||
}
|
||||
else {
|
||||
if ($en->{$k . "."}) {
|
||||
printf ("%10s %24s\t%s\n", $lang, "en_EN has fullstop!", $k);
|
||||
next;
|
||||
}
|
||||
|
||||
$k =~ /^(.*)\.?$/;
|
||||
if ($en->{$1}) {
|
||||
printf ("%10s %24s\t%s\n", $lang, "en_EN lacks fullstop!", $k);
|
||||
next;
|
||||
}
|
||||
|
||||
printf ("%10s %24s\t%s\n", $lang, "Not present in en_EN", $k);
|
||||
}
|
||||
}
|
||||
|
||||
if (scalar keys %$remaining_en < 100) {
|
||||
foreach (keys %$remaining_en) {
|
||||
printf ("%10s %24s\t%s\n", $lang, "Not yet translated", $_);
|
||||
}
|
||||
}
|
||||
|
||||
printf ("$count/" . (scalar keys %$en) . " strings translated\n");
|
||||
}
|
||||
|
||||
sub read_i18n {
|
||||
my $path = shift;
|
||||
my $map = {};
|
||||
|
||||
open(FILE, "<", $path) || die $!;
|
||||
while(<FILE>) {
|
||||
if ($_ =~ m/^(\s+)"(.*?)"(: *)"(.*?)"(,?)$/) {
|
||||
my ($indent, $src, $colon, $dst, $comma) = ($1, $2, $3, $4, $5);
|
||||
$src =~ s/\\"/"/g;
|
||||
$dst =~ s/\\"/"/g;
|
||||
$map->{$src} = $dst;
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
|
||||
return $map;
|
||||
}
|
||||
|
||||
sub read_src_strings {
|
||||
my $path = shift;
|
||||
|
||||
use File::Find;
|
||||
use File::Slurp;
|
||||
|
||||
my $strings = [];
|
||||
|
||||
my @files;
|
||||
find( sub { push @files, $File::Find::name if (-f $_ && /\.jsx?$/) }, $path );
|
||||
foreach my $file (@files) {
|
||||
my $src = read_file($file);
|
||||
$src =~ s/'\s*\+\s*'//g;
|
||||
$src =~ s/"\s*\+\s*"//g;
|
||||
|
||||
$file =~ s/^.*\/src/src/;
|
||||
while ($src =~ /_t\(\s*'(.*?[^\\])'/sg) {
|
||||
my $s = $1;
|
||||
$s =~ s/\\'/'/g;
|
||||
push @$strings, [$s, $file];
|
||||
}
|
||||
while ($src =~ /_t\(\s*"(.*?[^\\])"/sg) {
|
||||
push @$strings, [$1, $file];
|
||||
}
|
||||
}
|
||||
|
||||
return $strings;
|
||||
}
|
91
scripts/fix-i18n.pl
Executable file
91
scripts/fix-i18n.pl
Executable file
@ -0,0 +1,91 @@
|
||||
#!/usr/bin/perl -ni
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
# script which synchronises i18n strings to include punctuation.
|
||||
# i've cherry-picked ones which seem to have diverged between the different translations
|
||||
# from TextForEvent, causing missing events all over the place
|
||||
|
||||
BEGIN {
|
||||
$::fixups = [split(/\n/, <<EOT
|
||||
%(targetName)s accepted the invitation for %(displayName)s.
|
||||
%(targetName)s accepted an invitation.
|
||||
%(senderName)s requested a VoIP conference.
|
||||
%(senderName)s invited %(targetName)s.
|
||||
%(senderName)s banned %(targetName)s.
|
||||
%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.
|
||||
%(senderName)s set their display name to %(displayName)s.
|
||||
%(senderName)s removed their display name (%(oldDisplayName)s).
|
||||
%(senderName)s removed their profile picture.
|
||||
%(senderName)s changed their profile picture.
|
||||
%(senderName)s set a profile picture.
|
||||
VoIP conference started.
|
||||
%(targetName)s joined the room.
|
||||
VoIP conference finished.
|
||||
%(targetName)s rejected the invitation.
|
||||
%(targetName)s left the room.
|
||||
%(senderName)s unbanned %(targetName)s.
|
||||
%(senderName)s kicked %(targetName)s.
|
||||
%(senderName)s withdrew %(targetName)s's inivitation.
|
||||
%(targetName)s left the room.
|
||||
%(senderDisplayName)s changed the topic to "%(topic)s".
|
||||
%(senderDisplayName)s changed the room name to %(roomName)s.
|
||||
%(senderDisplayName)s sent an image.
|
||||
%(senderName)s answered the call.
|
||||
%(senderName)s ended the call.
|
||||
%(senderName)s placed a %(callType)s call.
|
||||
%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.
|
||||
%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).
|
||||
%(senderName)s changed the power level of %(powerLevelDiffText)s.
|
||||
For security, this session has been signed out. Please sign in again.
|
||||
You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.
|
||||
A new password must be entered.
|
||||
Guests can't set avatars. Please register.
|
||||
Failed to set avatar.
|
||||
Unable to verify email address.
|
||||
Guests can't use labs features. Please register.
|
||||
A new password must be entered.
|
||||
Resetting 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.
|
||||
Guests cannot join this room even if explicitly invited.
|
||||
EOT
|
||||
)];
|
||||
}
|
||||
|
||||
# example i18n format:
|
||||
# "%(oneUser)sleft": "%(oneUser)sleft",
|
||||
|
||||
# script called with the line of the file to be checked
|
||||
my $sub = 0;
|
||||
if ($_ =~ m/^(\s+)"(.*?)"(: *)"(.*?)"(,?)$/) {
|
||||
my ($indent, $src, $colon, $dst, $comma) = ($1, $2, $3, $4, $5);
|
||||
$src =~ s/\\"/"/g;
|
||||
$dst =~ s/\\"/"/g;
|
||||
|
||||
foreach my $fixup (@{$::fixups}) {
|
||||
my $dotless_fixup = substr($fixup, 0, -1);
|
||||
|
||||
if ($src eq $dotless_fixup) {
|
||||
print STDERR "fixing up src: $src\n";
|
||||
$src .= '.';
|
||||
$sub = 1;
|
||||
}
|
||||
|
||||
if ($src eq $fixup && $dst !~ /\.$/) {
|
||||
print STDERR "fixing up dst: $dst\n";
|
||||
$dst .= '.';
|
||||
$sub = 1;
|
||||
}
|
||||
|
||||
if ($sub) {
|
||||
$src =~ s/"/\\"/g;
|
||||
$dst =~ s/"/\\"/g;
|
||||
print qq($indent"$src"$colon"$dst"$comma\n);
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$sub) {
|
||||
print $_;
|
||||
}
|
@ -232,10 +232,8 @@ function _handleRestoreFailure(e) {
|
||||
let msg = e.message;
|
||||
if (msg == "OLM.BAD_LEGACY_ACCOUNT_PICKLE") {
|
||||
msg = _t(
|
||||
'You need to log back in to generate end-to-end ' +
|
||||
'encryption keys for this device and submit the public key to your homeserver. ' +
|
||||
'This is a once off; sorry for the inconvenience'
|
||||
) + '.';
|
||||
'You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.'
|
||||
);
|
||||
|
||||
_clearLocalStorage();
|
||||
|
||||
|
@ -39,7 +39,7 @@ function textForMemberEvent(ev) {
|
||||
}
|
||||
else {
|
||||
if (ConferenceHandler && ConferenceHandler.isConferenceUser(ev.getStateKey())) {
|
||||
return _t('%(senderName)s requested a VoIP conference', {senderName: senderName});
|
||||
return _t('%(senderName)s requested a VoIP conference.', {senderName: senderName});
|
||||
}
|
||||
else {
|
||||
return _t('%(senderName)s invited %(targetName)s.', {senderName: senderName, targetName: targetName});
|
||||
@ -53,17 +53,17 @@ function textForMemberEvent(ev) {
|
||||
case 'join':
|
||||
if (ev.getPrevContent() && ev.getPrevContent().membership == 'join') {
|
||||
if (ev.getPrevContent().displayname && ev.getContent().displayname && ev.getPrevContent().displayname != ev.getContent().displayname) {
|
||||
return _t('%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s', {senderName: ev.getSender(), oldDisplayName: ev.getPrevContent().displayname, displayName: ev.getContent().displayname});
|
||||
return _t('%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.', {senderName: ev.getSender(), oldDisplayName: ev.getPrevContent().displayname, displayName: ev.getContent().displayname});
|
||||
} else if (!ev.getPrevContent().displayname && ev.getContent().displayname) {
|
||||
return _t('%(senderName)s set their display name to %(displayName)s', {senderName: ev.getSender(), displayName: ev.getContent().displayname});
|
||||
return _t('%(senderName)s set their display name to %(displayName)s.', {senderName: ev.getSender(), displayName: ev.getContent().displayname});
|
||||
} else if (ev.getPrevContent().displayname && !ev.getContent().displayname) {
|
||||
return _t('%(senderName)s removed their display name (%(oldDisplayName)s)', {senderName: ev.getSender(), oldDisplayName: ev.getPrevContent().displayname});
|
||||
return _t('%(senderName)s removed their display name (%(oldDisplayName)s).', {senderName: ev.getSender(), oldDisplayName: ev.getPrevContent().displayname});
|
||||
} else if (ev.getPrevContent().avatar_url && !ev.getContent().avatar_url) {
|
||||
return _t('%(senderName)s removed their profile picture', {senderName: senderName});
|
||||
return _t('%(senderName)s removed their profile picture.', {senderName: senderName});
|
||||
} else if (ev.getPrevContent().avatar_url && ev.getContent().avatar_url && ev.getPrevContent().avatar_url != ev.getContent().avatar_url) {
|
||||
return _t('%(senderName)s changed their profile picture', {senderName: senderName});
|
||||
return _t('%(senderName)s changed their profile picture.', {senderName: senderName});
|
||||
} else if (!ev.getPrevContent().avatar_url && ev.getContent().avatar_url) {
|
||||
return _t('%(senderName)s set a profile picture', {senderName: senderName});
|
||||
return _t('%(senderName)s set a profile picture.', {senderName: senderName});
|
||||
} else {
|
||||
// suppress null rejoins
|
||||
return '';
|
||||
@ -71,7 +71,7 @@ function textForMemberEvent(ev) {
|
||||
} else {
|
||||
if (!ev.target) console.warn("Join message has no target! -- " + ev.getContent().state_key);
|
||||
if (ConferenceHandler && ConferenceHandler.isConferenceUser(ev.getStateKey())) {
|
||||
return _t('VoIP conference started');
|
||||
return _t('VoIP conference started.');
|
||||
}
|
||||
else {
|
||||
return _t('%(targetName)s joined the room.', {targetName: targetName});
|
||||
@ -80,7 +80,7 @@ function textForMemberEvent(ev) {
|
||||
case 'leave':
|
||||
if (ev.getSender() === ev.getStateKey()) {
|
||||
if (ConferenceHandler && ConferenceHandler.isConferenceUser(ev.getStateKey())) {
|
||||
return _t('VoIP conference finished');
|
||||
return _t('VoIP conference finished.');
|
||||
}
|
||||
else if (ev.getPrevContent().membership === "invite") {
|
||||
return _t('%(targetName)s rejected the invitation.', {targetName: targetName});
|
||||
@ -100,7 +100,7 @@ function textForMemberEvent(ev) {
|
||||
}
|
||||
else if (ev.getPrevContent().membership === "invite") {
|
||||
return _t(
|
||||
'%(senderName)s withdrew %(targetName)s\'s inivitation.',
|
||||
'%(senderName)s withdrew %(targetName)s\'s invitation.',
|
||||
{senderName: senderName, targetName: targetName}
|
||||
) + ' ' + reason;
|
||||
}
|
||||
@ -112,13 +112,13 @@ function textForMemberEvent(ev) {
|
||||
|
||||
function textForTopicEvent(ev) {
|
||||
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||
return _t('%(senderDisplayName)s changed the topic to "%(topic)s"', {senderDisplayName: senderDisplayName, topic: ev.getContent().topic});
|
||||
return _t('%(senderDisplayName)s changed the topic to "%(topic)s".', {senderDisplayName: senderDisplayName, topic: ev.getContent().topic});
|
||||
}
|
||||
|
||||
function textForRoomNameEvent(ev) {
|
||||
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||
|
||||
return _t('%(senderDisplayName)s changed the room name to %(roomName)s', {senderDisplayName: senderDisplayName, roomName: ev.getContent().name});
|
||||
return _t('%(senderDisplayName)s changed the room name to %(roomName)s.', {senderDisplayName: senderDisplayName, roomName: ev.getContent().name});
|
||||
}
|
||||
|
||||
function textForMessageEvent(ev) {
|
||||
@ -135,13 +135,13 @@ function textForMessageEvent(ev) {
|
||||
function textForCallAnswerEvent(event) {
|
||||
var senderName = event.sender ? event.sender.name : _t('Someone');
|
||||
var supported = MatrixClientPeg.get().supportsVoip() ? "" : _t('(not supported by this browser)');
|
||||
return _t('%(senderName)s answered the call', {senderName: senderName}) + ' ' + supported;
|
||||
return _t('%(senderName)s answered the call.', {senderName: senderName}) + ' ' + supported;
|
||||
}
|
||||
|
||||
function textForCallHangupEvent(event) {
|
||||
var senderName = event.sender ? event.sender.name : _t('Someone');
|
||||
var supported = MatrixClientPeg.get().supportsVoip() ? "" : _t('(not supported by this browser)');
|
||||
return _t('%(senderName)s ended the call', {senderName: senderName}) + ' ' + supported;
|
||||
return _t('%(senderName)s ended the call.', {senderName: senderName}) + ' ' + supported;
|
||||
}
|
||||
|
||||
function textForCallInviteEvent(event) {
|
||||
@ -179,14 +179,14 @@ function textForHistoryVisibilityEvent(event) {
|
||||
text += _t('anyone') + '.';
|
||||
}
|
||||
else {
|
||||
text += ' ' + _t('unknown') + ' (' + vis + ')';
|
||||
text += ' ' + _t('unknown') + ' (' + vis + ').';
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
function textForEncryptionEvent(event) {
|
||||
var senderName = event.sender ? event.sender.name : event.getSender();
|
||||
return _t('%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)', {senderName: senderName, algorithm: event.getContent().algorithm});
|
||||
return _t('%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).', {senderName: senderName, algorithm: event.getContent().algorithm});
|
||||
}
|
||||
|
||||
// Currently will only display a change if a user's power level is changed
|
||||
@ -217,14 +217,21 @@ function textForPowerEvent(event) {
|
||||
const to = event.getContent().users[userId];
|
||||
if (to !== from) {
|
||||
diff.push(
|
||||
_t('%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s', {userId: userId, fromPowerLevel: Roles.textualPowerLevel(from, userDefault), toPowerLevel: Roles.textualPowerLevel(to, userDefault)})
|
||||
_t('%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s', {
|
||||
userId: userId,
|
||||
fromPowerLevel: Roles.textualPowerLevel(from, userDefault),
|
||||
toPowerLevel: Roles.textualPowerLevel(to, userDefault)
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
if (!diff.length) {
|
||||
return '';
|
||||
}
|
||||
return _t('%(senderName)s changed the power level of %(powerLevelDiffText)s', {senderName: senderName, powerLevelDiffText: diff.join(", ")});
|
||||
return _t('%(senderName)s changed the power level of %(powerLevelDiffText)s.', {
|
||||
senderName: senderName,
|
||||
powerLevelDiffText: diff.join(", ")
|
||||
});
|
||||
}
|
||||
|
||||
var handlers = {
|
||||
|
@ -15,12 +15,11 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
||||
import Matrix from 'matrix-js-sdk';
|
||||
import sdk from '../../index';
|
||||
import MatrixClientPeg from '../../MatrixClientPeg';
|
||||
import dis from '../../dispatcher';
|
||||
import { _t } from '../../languageHandler';
|
||||
|
||||
/*
|
||||
* Component which shows the filtered file using a TimelinePanel
|
||||
|
@ -87,6 +87,9 @@ module.exports = React.createClass({
|
||||
|
||||
// show twelve hour timestamps
|
||||
isTwelveHour: React.PropTypes.bool,
|
||||
|
||||
// show timestamps always
|
||||
alwaysShowTimestamps: React.PropTypes.bool,
|
||||
},
|
||||
|
||||
componentWillMount: function() {
|
||||
@ -618,8 +621,13 @@ module.exports = React.createClass({
|
||||
var style = this.props.hidden ? { display: 'none' } : {};
|
||||
style.opacity = this.props.opacity;
|
||||
|
||||
var className = this.props.className + " mx_fadable";
|
||||
if (this.props.alwaysShowTimestamps) {
|
||||
className += " mx_MessagePanel_alwaysShowTimestamps";
|
||||
}
|
||||
|
||||
return (
|
||||
<ScrollPanel ref="scrollPanel" className={ this.props.className + " mx_fadable" }
|
||||
<ScrollPanel ref="scrollPanel" className={ className }
|
||||
onScroll={ this.props.onScroll }
|
||||
onResize={ this.onResize }
|
||||
onFillRequest={ this.props.onFillRequest }
|
||||
|
@ -176,6 +176,9 @@ var TimelinePanel = React.createClass({
|
||||
|
||||
// should the event tiles have twelve hour times
|
||||
isTwelveHour: UserSettingsStore.getSyncedSetting('showTwelveHourTimestamps'),
|
||||
|
||||
// always show timestamps on event tiles?
|
||||
alwaysShowTimestamps: UserSettingsStore.getSyncedSetting('alwaysShowTimestamps'),
|
||||
};
|
||||
},
|
||||
|
||||
@ -1127,6 +1130,7 @@ var TimelinePanel = React.createClass({
|
||||
onUnfillRequest={ this.onMessageListUnfillRequest }
|
||||
opacity={ this.props.opacity }
|
||||
isTwelveHour={ this.state.isTwelveHour }
|
||||
alwaysShowTimestamps={ this.state.alwaysShowTimestamps }
|
||||
className={ this.props.className }
|
||||
tileShape={ this.props.tileShape }
|
||||
/>
|
||||
|
@ -258,7 +258,7 @@ module.exports = React.createClass({
|
||||
const NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
|
||||
Modal.createDialog(NeedToRegisterDialog, {
|
||||
title: _t("Please Register"),
|
||||
description: _t("Guests can't set avatars. Please register") + ".",
|
||||
description: _t("Guests can't set avatars. Please register."),
|
||||
});
|
||||
return;
|
||||
}
|
||||
@ -283,7 +283,7 @@ module.exports = React.createClass({
|
||||
console.error("Failed to set avatar: " + err);
|
||||
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
Modal.createDialog(ErrorDialog, {
|
||||
title: _t("Failed to set avatar"),
|
||||
title: _t("Failed to set avatar."),
|
||||
description: ((err && err.message) ? err.message : _t("Operation failed")),
|
||||
});
|
||||
});
|
||||
@ -295,7 +295,10 @@ module.exports = React.createClass({
|
||||
title: _t("Sign out"),
|
||||
description:
|
||||
<div>
|
||||
{ _t("For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.") }.
|
||||
{ _t("For security, logging out will delete any end-to-end " +
|
||||
"encryption keys from this browser. If you want to be able " +
|
||||
"to decrypt your conversation history from future Riot sessions, " +
|
||||
"please export your room keys for safe-keeping.") }.
|
||||
</div>,
|
||||
button: _t("Sign out"),
|
||||
extraButtons: [
|
||||
@ -391,7 +394,7 @@ module.exports = React.createClass({
|
||||
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
|
||||
Modal.createDialog(QuestionDialog, {
|
||||
title: _t("Remove Contact Information?"),
|
||||
description: _t("Remove ") + threepid.address + "?",
|
||||
description: _t("Remove %(threePid)s?", { threePid : threepid.address }),
|
||||
button: _t('Remove'),
|
||||
onFinished: (submit) => {
|
||||
if (submit) {
|
||||
@ -433,8 +436,8 @@ module.exports = React.createClass({
|
||||
this.setState({email_add_pending: false});
|
||||
if (err.errcode == 'M_THREEPID_AUTH_FAILED') {
|
||||
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
|
||||
let message = _t("Unable to verify email address. ");
|
||||
message += _t("Please check your email and click on the link it contains. Once this is done, click continue.");
|
||||
let message = _t("Unable to verify email address.") + " " +
|
||||
_t("Please check your email and click on the link it contains. Once this is done, click continue.");
|
||||
Modal.createDialog(QuestionDialog, {
|
||||
title: _t("Verification Pending"),
|
||||
description: message,
|
||||
@ -445,7 +448,7 @@ module.exports = React.createClass({
|
||||
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
console.error("Unable to verify email address: " + err);
|
||||
Modal.createDialog(ErrorDialog, {
|
||||
title: _t("Unable to verify email address"),
|
||||
title: _t("Unable to verify email address."),
|
||||
description: ((err && err.message) ? err.message : _t("Operation failed")),
|
||||
});
|
||||
}
|
||||
@ -536,7 +539,7 @@ module.exports = React.createClass({
|
||||
<div>
|
||||
<h3>Referral</h3>
|
||||
<div className="mx_UserSettings_section">
|
||||
{_t("Refer a friend to Riot: ")} <a href={href}>{href}</a>
|
||||
{_t("Refer a friend to Riot:")} <a href={href}>{href}</a>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@ -734,7 +737,7 @@ module.exports = React.createClass({
|
||||
const NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
|
||||
Modal.createDialog(NeedToRegisterDialog, {
|
||||
title: _t("Please Register"),
|
||||
description: _t("Guests can't use labs features. Please register") + ".",
|
||||
description: _t("Guests can't use labs features. Please register."),
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ module.exports = React.createClass({
|
||||
this.showErrorDialog(_t('The email address linked to your account must be entered.'));
|
||||
}
|
||||
else if (!this.state.password || !this.state.password2) {
|
||||
this.showErrorDialog(_t('A new password must be entered') + ".");
|
||||
this.showErrorDialog(_t('A new password must be entered.'));
|
||||
}
|
||||
else if (this.state.password !== this.state.password2) {
|
||||
this.showErrorDialog(_t('New passwords must match each other.'));
|
||||
@ -98,10 +98,8 @@ module.exports = React.createClass({
|
||||
'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 ' +
|
||||
'<a href="https://github.com/vector-im/riot-web/issues/2671">' +
|
||||
'will be improved</a>'
|
||||
) }.
|
||||
'them afterwards. In future this will be improved.'
|
||||
) }
|
||||
</div>,
|
||||
button: _t('Continue'),
|
||||
extraButtons: [
|
||||
|
@ -188,7 +188,7 @@ class PasswordLogin extends React.Component {
|
||||
value={this.state.loginType}
|
||||
onOptionChange={this.onLoginTypeChange}>
|
||||
<span key={PasswordLogin.LOGIN_FIELD_MXID}>{ _t('my Matrix ID') }</span>
|
||||
<span key={PasswordLogin.LOGIN_FIELD_EMAIL}>{ _t('Email Address') }</span>
|
||||
<span key={PasswordLogin.LOGIN_FIELD_EMAIL}>{ _t('Email address') }</span>
|
||||
<span key={PasswordLogin.LOGIN_FIELD_PHONE}>{ _t('Phone') }</span>
|
||||
</Dropdown>
|
||||
</div>
|
||||
|
@ -156,7 +156,7 @@ module.exports = React.createClass({
|
||||
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
Modal.createDialog(ErrorDialog, {
|
||||
title: _t('Invalid alias format'),
|
||||
description: _t('"%(alias)s" is not a valid format for an alias', { alias: alias }),
|
||||
description: _t('\'%(alias)s\' is not a valid format for an alias', { alias: alias }),
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -172,7 +172,7 @@ module.exports = React.createClass({
|
||||
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
Modal.createDialog(ErrorDialog, {
|
||||
title: _t('Invalid address format'),
|
||||
description: _t('"%(alias)s" is not a valid format for an address', { alias: alias }),
|
||||
description: _t('\'%(alias)s\' is not a valid format for an address', { alias: alias }),
|
||||
});
|
||||
}
|
||||
},
|
||||
|
@ -121,7 +121,7 @@ module.exports = React.createClass({
|
||||
console.error("Failed to set avatar: " + errMsg);
|
||||
Modal.createDialog(ErrorDialog, {
|
||||
title: _t("Error"),
|
||||
description: _t("Failed to set avatar") + ".",
|
||||
description: _t("Failed to set avatar."),
|
||||
});
|
||||
}).done();
|
||||
},
|
||||
|
@ -86,7 +86,7 @@ module.exports = React.createClass({
|
||||
_roomNameElement: function(fallback) {
|
||||
fallback = fallback || 'a room';
|
||||
const name = this.props.room ? this.props.room.name : (this.props.room_alias || "");
|
||||
return name ? { name } : fallback;
|
||||
return name ? name : fallback;
|
||||
},
|
||||
|
||||
render: function() {
|
||||
|
@ -762,7 +762,7 @@ module.exports = React.createClass({
|
||||
if (this.state.join_rule !== "public" && this.state.guest_access === "forbidden") {
|
||||
inviteGuestWarning =
|
||||
<div className="mx_RoomSettings_warning">
|
||||
{ _t('Guests cannot join this room even if explicitly invited') }. <a href="#" onClick={ (e) => {
|
||||
{ _t('Guests cannot join this room even if explicitly invited.') } <a href="#" onClick={ (e) => {
|
||||
this.setState({ join_rule: "invite", guest_access: "can_join" });
|
||||
e.preventDefault();
|
||||
}}>{ _t('Click here to fix') }</a>.
|
||||
|
@ -77,7 +77,7 @@ module.exports = React.createClass({
|
||||
'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. '
|
||||
'In future this will be improved.'
|
||||
) } (<a href="https://github.com/vector-im/riot-web/issues/2671">https://github.com/vector-im/riot-web/issues/2671</a>)
|
||||
</div>,
|
||||
button: _t("Continue"),
|
||||
|
@ -64,7 +64,7 @@
|
||||
"and": "og",
|
||||
"An email has been sent to": "En e-mail blev sendt til",
|
||||
"answered the call.": "svarede på kaldet",
|
||||
"anyone.": "alle",
|
||||
"anyone": "alle",
|
||||
"Anyone who knows the room's link, apart from guests": "Alle der kender link til rummet, bortset fra gæster",
|
||||
"Anyone who knows the room's link, including guests": "Alle der kender link til rummet, inklusiv gæster",
|
||||
"Are you sure you want to leave the room?": "Er du sikker på du vil forlade rummet?",
|
||||
@ -132,7 +132,7 @@
|
||||
"de": "Tysk",
|
||||
"da": "Dansk",
|
||||
"ru": "Russisk",
|
||||
"%(targetName)s accepted an invitation": "%(targetName)s accepterede en invitation",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s accepterede en invitation.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepteret invitationen til %(displayName)s.",
|
||||
"%(names)s and %(lastPerson)s are typing": "%(names)s og %(lastPerson)s er ved at skrive",
|
||||
"%(names)s and one other are typing": "%(names)s og den anden skriver",
|
||||
|
@ -59,7 +59,7 @@
|
||||
"all room members, from the point they joined": "Alle Raum-Mitglieder - seitdem sie beigetreten sind",
|
||||
"and": "und",
|
||||
"An email has been sent to": "Eine E-Mail wurde gesendet an",
|
||||
"anyone.": "Jeder",
|
||||
"anyone": "Jeder",
|
||||
"Anyone who knows the room's link, apart from guests": "Jeder der den Raum-Link kennt - abgesehen von Gästen",
|
||||
"Anyone who knows the room's link, including guests": "Jeder der den Raum-Link kennt - auch Gäste",
|
||||
"Are you sure you want to leave the room?": "Bist du sicher, dass du den Raum verlassen willst?",
|
||||
@ -123,9 +123,9 @@
|
||||
"Forget room": "Raum vergessen",
|
||||
"Forgot your password?": "Passwort vergessen?",
|
||||
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungsschlüssel von diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen die Konversationshistorie entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Verwahrung.",
|
||||
"For security, this session has been signed out. Please sign in again": "Zur Sicherheit wurde diese Sitzung abgemeldet. Bitte melde dich erneut an",
|
||||
"For security, this session has been signed out. Please sign in again.": "Zur Sicherheit wurde diese Sitzung abgemeldet. Bitte melde dich erneut an.",
|
||||
"Found a bug?": "Fehler gefunden?",
|
||||
"Guests cannot join this room even if explicitly invited": "Gäste können diesem Raum nicht beitreten auch wenn sie explizit eingeladen werden",
|
||||
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten auch wenn sie explizit eingeladen werden.",
|
||||
"Guests can't set avatars. Please register.": "Gäste können keine Avatare setzen. Bitte registriere dich.",
|
||||
"Guest users can't upload files. Please register to upload.": "Gäste können keine Dateien hochladen. Bitte registrieren um hochzuladen.",
|
||||
"had": "hatte",
|
||||
@ -177,7 +177,7 @@
|
||||
"Privacy warning": "Datenschutzwarnung",
|
||||
"Privileged Users": "Privilegierte Nutzer",
|
||||
"Profile": "Profil",
|
||||
"Refer a friend to Riot": "Lade eine(n) Freund(in) zu Riot ein",
|
||||
"Refer a friend to Riot:": "Lade eine(n) Freund(in) zu Riot ein",
|
||||
"rejected": "abgeleht",
|
||||
"Once you've followed the link it contains, click below": "Nachdem du dem Link gefolgt bist, klicke unten",
|
||||
"rejected the invitation.": "lehnte die Einladung ab.",
|
||||
@ -186,7 +186,7 @@
|
||||
"removed their display name": "löschte den eigenen Anzeigenamen",
|
||||
"Remove": "Entferne",
|
||||
"requested a VoIP conference": "hat eine VoIP-Konferenz angefordert",
|
||||
"Resetting 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 Passwortänderung sorgt aktuell dafür, dass alle Ende-zu-Ende-Schlüssel von allen Geräten zurückgesetzt werden. Dadurch wird die verschlüsselte Chat-Historie unlesbar, es sei denn Sie exportieren vorher Ihre Raum-Schlüssel und importieren sie nachher wieder. In Zukunft wird dies verbessert",
|
||||
"Resetting 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 Passwortänderung sorgt aktuell dafür, dass alle Ende-zu-Ende-Schlüssel von allen Geräten zurückgesetzt werden. Dadurch wird die verschlüsselte Chat-Historie unlesbar, es sei denn Sie exportieren vorher Ihre Raum-Schlüssel und importieren sie nachher wieder. In Zukunft wird dies verbessert.",
|
||||
"restore": "Zum zurücksetzen",
|
||||
"Return to login screen": "Zur Anmeldung zurückkehren",
|
||||
"Room Colour": "Raumfarbe",
|
||||
@ -242,7 +242,7 @@
|
||||
"turned on end-to-end encryption (algorithm": "aktivierte Ende-zu-Ende-Verschlüsselung (Algorithmus",
|
||||
"Unable to add email address": "Unfähig die E-Mail-Adresse hinzuzufügen",
|
||||
"Unable to remove contact information": "Unfähig die Kontakt-Informationen zu löschen",
|
||||
"Unable to verify email address": "Unfähig die E-Mail-Adresse zu verifizieren",
|
||||
"Unable to verify email address.": "Unfähig die E-Mail-Adresse zu verifizieren.",
|
||||
"Unban": "Entbannen",
|
||||
"Unencrypted room": "Unverschlüsselter Raum",
|
||||
"unknown error code": "Unbekannter Fehlercode",
|
||||
@ -258,8 +258,8 @@
|
||||
"Verification Pending": "Verifizierung ausstehend",
|
||||
"Video call": "Videoanruf",
|
||||
"Voice call": "Sprachanruf",
|
||||
"VoIP conference finished": "VoIP-Konferenz beendet",
|
||||
"VoIP conference started": "VoIP-Konferenz gestartet",
|
||||
"VoIP conference finished.": "VoIP-Konferenz beendet.",
|
||||
"VoIP conference started.": "VoIP-Konferenz gestartet.",
|
||||
"(warning: cannot be disabled again!)": "(Warnung: Kann nicht wieder deaktiviert werden!)",
|
||||
"was banned": "wurde gebannt",
|
||||
"was invited": "wurde eingeladen",
|
||||
@ -307,7 +307,7 @@
|
||||
"You are already in a call": "Du bist bereits bei einem Anruf",
|
||||
"You cannot place a call with yourself": "Du kannst keinen Anruf mit dir selbst starten",
|
||||
"You cannot place VoIP calls in this browser": "Du kannst kein VoIP-Gespräch in diesem Browser starten",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience": "Du musst dich erneut anmelden um Ende-zu-Ende-Verschlüsselungscodes für dieses Gerät zu generieren und den öffentl. Schlüssel an deinen Homeserver zu senden. Dies muss einmal gemacht werden. Entschuldige die Unannehmlichkeit",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Du musst dich erneut anmelden um Ende-zu-Ende-Verschlüsselungscodes für dieses Gerät zu generieren und den öffentl. Schlüssel an deinen Homeserver zu senden. Dies muss einmal gemacht werden. Entschuldige die Unannehmlichkeit.",
|
||||
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Deine E-Mail-Adresse scheint nicht mit einer Matrix-ID auf diesem Homeserver verknüpft zu sein",
|
||||
"Sun": "So",
|
||||
"Mon": "Mo",
|
||||
@ -348,19 +348,19 @@
|
||||
"Encrypt room": "Entschlüssele Raum",
|
||||
"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 an invitation.": "%(targetName)s akzeptierte eine Einladung.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte eine 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.",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s bannte %(targetName)s.",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s": "%(senderName)s änderte den Anzeigenamen von %(oldDisplayName)s zu %(displayName)s",
|
||||
"%(senderName)s changed their profile picture": "%(senderName)s änderte das Profilbild",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s": "%(senderName)s änderte das Berechtigungslevel von %(powerLevelDiffText)s",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s": "%(senderDisplayName)s änderte den Raumnamen zu %(roomName)s",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\"": "%(senderDisplayName)s änderte das Thema zu \"%(topic)s\"",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s änderte den Anzeigenamen von %(oldDisplayName)s zu %(displayName)s.",
|
||||
"%(senderName)s changed their profile picture.": "%(senderName)s änderte das Profilbild.",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s änderte das Berechtigungslevel von %(powerLevelDiffText)s.",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s änderte den Raumnamen zu %(roomName)s.",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s änderte das Thema zu \"%(topic)s\".",
|
||||
"/ddg is not a command": "/ddg ist kein Kommando",
|
||||
"%(senderName)s ended the call": "%(senderName)s beendete den Anruf",
|
||||
"%(senderName)s ended the call.": "%(senderName)s beendete den Anruf.",
|
||||
"Failed to lookup current room": "Aktuellen Raum nachzuschlagen schlug fehl",
|
||||
"Failed to send request.": "Anfrage zu senden schlug fehl.",
|
||||
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s von %(fromPowerLevel)s zu %(toPowerLevel)s",
|
||||
@ -379,22 +379,22 @@
|
||||
"Power level must be positive integer.": "Berechtigungslevel muss eine positive Zahl sein.",
|
||||
"Reason": "Grund",
|
||||
"%(targetName)s rejected the invitation.": "%(targetName)s lehnte die Einladung ab.",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s)": "%(senderName)s löschte den Anzeigenamen (%(oldDisplayName)s)",
|
||||
"%(senderName)s removed their profile picture": "%(senderName)s löschte das Profilbild",
|
||||
"%(senderName)s requested a VoIP conference": "%(senderName)s fragte nach einer VoIP-Konferenz",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s löschte den Anzeigenamen (%(oldDisplayName)s).",
|
||||
"%(senderName)s removed their profile picture.": "%(senderName)s löschte das Profilbild.",
|
||||
"%(senderName)s requested a VoIP conference.": "%(senderName)s fragte nach einer VoIP-Konferenz.",
|
||||
"Room %(roomId)s not visible": "Raum %(roomId)s ist nicht sichtbar",
|
||||
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s hat ein Bild gesendet.",
|
||||
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sandte eine Einladung an %(targetDisplayName)s um diesem Raum beizutreten.",
|
||||
"%(senderName)s set a profile picture": "%(senderName)s setzte ein Profilbild",
|
||||
"%(senderName)s set their display name to %(displayName)s": "%(senderName)s setzte den Anzeigenamen zu %(displayName)s",
|
||||
"%(senderName)s set a profile picture.": "%(senderName)s setzte ein Profilbild.",
|
||||
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s setzte den Anzeigenamen zu %(displayName)s.",
|
||||
"This room is not recognised.": "Dieser Raum wurde nicht erkannt.",
|
||||
"These are experimental features that may break in unexpected ways": "Dies sind experimentelle Funktionen, die in unerwarteter Weise Fehler verursachen können",
|
||||
"To use it, just wait for autocomplete results to load and tab through them.": "Um dies zu nutzen, warte auf die Autovervollständigungsergebnisse und benutze die TAB Taste.",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)": "%(senderName)s schaltete Ende-zu-Ende-Verschlüsselung ein (Algorithmus: %(algorithm)s)",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s schaltete Ende-zu-Ende-Verschlüsselung ein (Algorithmus: %(algorithm)s).",
|
||||
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s zog Bann für %(targetName)s zurück.",
|
||||
"Usage": "Verwendung",
|
||||
"Use with caution": "Mit Vorsicht benutzen",
|
||||
"%(senderName)s withdrew %(targetName)s's inivitation.": "%(senderName)s zog die Einladung für %(targetName)s zurück.",
|
||||
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s zog die Einladung für %(targetName)s zurück.",
|
||||
"You need to be able to invite users to do that.": "Du musst in der Lage sein Nutzer einzuladen um dies zu tun.",
|
||||
"You need to be logged in.": "Du musst angemeldet sein.",
|
||||
"There are no visible files in this room": "Es gibt keine sichtbaren Dateien in diesem Raum",
|
||||
|
@ -124,7 +124,7 @@
|
||||
"A registered account is required for this action": "A registered account is required for this action",
|
||||
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains",
|
||||
"accept": "accept",
|
||||
"%(targetName)s accepted an invitation": "%(targetName)s accepted an invitation",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s accepted an invitation.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.",
|
||||
"Account": "Account",
|
||||
"Access Token:": "Access Token:",
|
||||
@ -151,7 +151,7 @@
|
||||
"An email has been sent to": "An email has been sent to",
|
||||
"A new password must be entered.": "A new password must be entered.",
|
||||
"%(senderName)s answered the call.": "%(senderName)s answered the call.",
|
||||
"anyone.": "anyone",
|
||||
"anyone": "anyone",
|
||||
"An error has occurred.": "An error has occurred.",
|
||||
"Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests",
|
||||
"Anyone who knows the room's link, including guests": "Anyone who knows the room's link, including guests",
|
||||
@ -172,14 +172,15 @@
|
||||
"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": "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",
|
||||
"Can't load user settings": "Can't load user settings",
|
||||
"Change Password": "Change Password",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s",
|
||||
"%(senderName)s changed their profile picture": "%(senderName)s changed their profile picture",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s": "%(senderName)s changed the power level of %(powerLevelDiffText)s",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s": "%(senderDisplayName)s changed the room name to %(roomName)s",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\"": "%(senderDisplayName)s changed the topic to \"%(topic)s\"",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.",
|
||||
"%(senderName)s changed their profile picture.": "%(senderName)s changed their profile picture.",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s changed the room name to %(roomName)s.",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s changed the topic to \"%(topic)s\".",
|
||||
"Changes to who can read history will only apply to future messages in this room": "Changes to who can read history will only apply to future messages in this room",
|
||||
"Changes your display nickname": "Changes your display nickname",
|
||||
"changing room on a RoomView is not supported": "changing room on a RoomView is not supported",
|
||||
"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.": "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.",
|
||||
"Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
|
||||
"Clear Cache and Reload": "Clear Cache and Reload",
|
||||
"Clear Cache": "Clear Cache",
|
||||
@ -214,6 +215,7 @@
|
||||
"Delete": "Delete",
|
||||
"demote": "demote",
|
||||
"Deops user with given id": "Deops user with given id",
|
||||
"Default": "Default",
|
||||
"Device ID": "Device ID",
|
||||
"Devices": "Devices",
|
||||
"Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
|
||||
@ -229,17 +231,18 @@
|
||||
"Drop here to tag %(section)s": "Drop here to tag %(section)s",
|
||||
"Ed25519 fingerprint": "Ed25519 fingerprint",
|
||||
"Email": "Email",
|
||||
"Email Address": "Email Address",
|
||||
"Email address": "Email address",
|
||||
"Email, name or matrix ID": "Email, name or matrix ID",
|
||||
"Emoji": "Emoji",
|
||||
"Enable encryption": "Enable encryption",
|
||||
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Encrypted messages will not be visible on clients that do not yet implement encryption",
|
||||
"Encrypted room": "Encrypted room",
|
||||
"%(senderName)s ended the call": "%(senderName)s ended the call",
|
||||
"%(senderName)s ended the call.": "%(senderName)s ended the call.",
|
||||
"End-to-end encryption information": "End-to-end encryption information",
|
||||
"End-to-end encryption is in beta and may not be reliable": "End-to-end encryption is in beta and may not be reliable",
|
||||
"Enter Code": "Enter Code",
|
||||
"Error": "Error",
|
||||
"Error decrypting attachment": "Error decrypting attachment",
|
||||
"Event information": "Event information",
|
||||
"Existing Call": "Existing Call",
|
||||
"Export E2E room keys": "Export E2E room keys",
|
||||
@ -260,6 +263,7 @@
|
||||
"Failed to save settings": "Failed to save settings",
|
||||
"Failed to send email": "Failed to send email",
|
||||
"Failed to send request.": "Failed to send request.",
|
||||
"Failed to set avatar.": "Failed to set avatar.",
|
||||
"Failed to set display name": "Failed to set display name",
|
||||
"Failed to set up conference call": "Failed to set up conference call",
|
||||
"Failed to toggle moderator status": "Failed to toggle moderator status",
|
||||
@ -274,11 +278,16 @@
|
||||
"Filter room members": "Filter room members",
|
||||
"Forget room": "Forget room",
|
||||
"Forgot your password?": "Forgot your password?",
|
||||
"For security, this session has been signed out. Please sign in again": "For security, this session has been signed out. Please sign in again",
|
||||
"For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
|
||||
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
|
||||
"Found a bug?": "Found a bug?",
|
||||
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
|
||||
"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",
|
||||
"Hangup": "Hangup",
|
||||
"Hide read receipts": "Hide read receipts",
|
||||
@ -293,6 +302,7 @@
|
||||
"Invalid alias format": "Invalid alias format",
|
||||
"Invalid address format": "Invalid address format",
|
||||
"Invalid Email Address": "Invalid Email Address",
|
||||
"Invalid file%(extra)s": "Invalid file%(extra)s",
|
||||
"%(senderName)s invited %(targetName)s.": "%(senderName)s invited %(targetName)s.",
|
||||
"Invite new room members": "Invite new room members",
|
||||
"Invites": "Invites",
|
||||
@ -333,6 +343,7 @@
|
||||
"Mobile phone number": "Mobile phone number",
|
||||
"Moderator": "Moderator",
|
||||
"Must be viewing a room": "Must be viewing a room",
|
||||
"Mute": "Mute",
|
||||
"my Matrix ID": "my Matrix ID",
|
||||
"Name": "Name",
|
||||
"Never send encrypted messages to unverified devices from this device": "Never send encrypted messages to unverified devices from this device",
|
||||
@ -359,6 +370,7 @@
|
||||
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Once encryption is enabled for a room it cannot be turned off again (for now)",
|
||||
"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",
|
||||
@ -375,18 +387,19 @@
|
||||
"Profile": "Profile",
|
||||
"Reason": "Reason",
|
||||
"Revoke Moderator": "Revoke Moderator",
|
||||
"Refer a friend to Riot": "Refer a friend to Riot",
|
||||
"Refer a friend to Riot:": "Refer a friend to Riot:",
|
||||
"Registration required": "Registration required",
|
||||
"rejected": "rejected",
|
||||
"%(targetName)s rejected the invitation.": "%(targetName)s rejected the invitation.",
|
||||
"Reject invitation": "Reject invitation",
|
||||
"Remove Contact Information?": "Remove Contact Information?",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s)": "%(senderName)s removed their display name (%(oldDisplayName)s)",
|
||||
"%(senderName)s removed their profile picture": "%(senderName)s removed their profile picture",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removed their display name (%(oldDisplayName)s).",
|
||||
"%(senderName)s removed their profile picture.": "%(senderName)s removed their profile picture.",
|
||||
"Remove": "Remove",
|
||||
"%(senderName)s requested a VoIP conference": "%(senderName)s requested a VoIP conference",
|
||||
"Remove %(threePid)s?": "Remove %(threePid)s?",
|
||||
"%(senderName)s requested a VoIP conference.": "%(senderName)s requested a VoIP conference.",
|
||||
"Report it": "Report it",
|
||||
"Resetting 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": "Resetting 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",
|
||||
"Resetting 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.": "Resetting 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.",
|
||||
"restore": "restore",
|
||||
"Return to app": "Return to app",
|
||||
"Return to login screen": "Return to login screen",
|
||||
@ -407,6 +420,7 @@
|
||||
"Sender device information": "Sender device information",
|
||||
"Send Invites": "Send Invites",
|
||||
"Send Reset Email": "Send Reset Email",
|
||||
"sent an image": "sent an image",
|
||||
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s sent an image.",
|
||||
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.",
|
||||
"sent a video": "sent a video",
|
||||
@ -417,8 +431,8 @@
|
||||
"Server may be unavailable, overloaded, or you hit a bug": "Server may be unavailable, overloaded, or you hit a bug",
|
||||
"Server unavailable, overloaded, or something else went wrong": "Server unavailable, overloaded, or something else went wrong",
|
||||
"Session ID": "Session ID",
|
||||
"%(senderName)s set a profile picture": "%(senderName)s set a profile picture",
|
||||
"%(senderName)s set their display name to %(displayName)s": "%(senderName)s set their display name to %(displayName)s",
|
||||
"%(senderName)s set a profile picture.": "%(senderName)s set a profile picture.",
|
||||
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s set their display name to %(displayName)s.",
|
||||
"Settings": "Settings",
|
||||
"Show panel": "Show panel",
|
||||
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Show timestamps in 12 hour format (e.g. 2:30pm)",
|
||||
@ -482,11 +496,11 @@
|
||||
"Tried to load a specific point in this room's timeline, but was unable to find it": "Tried to load a specific point in this room's timeline, but was unable to find it",
|
||||
"Turn Markdown off": "Turn Markdown off",
|
||||
"Turn Markdown on": "Turn Markdown on",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)": "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).",
|
||||
"Unable to add email address": "Unable to add email address",
|
||||
"Unable to remove contact information": "Unable to remove contact information",
|
||||
"Unable to restore previous session": "Unable to restore previous session",
|
||||
"Unable to verify email address": "Unable to verify email address",
|
||||
"Unable to verify email address.": "Unable to verify email address.",
|
||||
"Unban": "Unban",
|
||||
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s unbanned %(targetName)s.",
|
||||
"Unable to capture screen": "Unable to capture screen",
|
||||
@ -499,6 +513,7 @@
|
||||
"unknown error code": "unknown error code",
|
||||
"Unknown room %(roomId)s": "Unknown room %(roomId)s",
|
||||
"unknown": "unknown",
|
||||
"Unmute": "Unmute",
|
||||
"uploaded a file": "uploaded a file",
|
||||
"Upload avatar": "Upload avatar",
|
||||
"Upload Failed": "Upload Failed",
|
||||
@ -516,8 +531,8 @@
|
||||
"verified": "verified",
|
||||
"Video call": "Video call",
|
||||
"Voice call": "Voice call",
|
||||
"VoIP conference finished": "VoIP conference finished",
|
||||
"VoIP conference started": "VoIP conference started",
|
||||
"VoIP conference finished.": "VoIP conference finished.",
|
||||
"VoIP conference started.": "VoIP conference started.",
|
||||
"VoIP is unsupported": "VoIP is unsupported",
|
||||
"(warning: cannot be disabled again!)": "(warning: cannot be disabled again!)",
|
||||
"Warning!": "Warning!",
|
||||
@ -525,7 +540,7 @@
|
||||
"Who can read history?": "Who can read history?",
|
||||
"Who would you like to add to this room?": "Who would you like to add to this room?",
|
||||
"Who would you like to communicate with?": "Who would you like to communicate with?",
|
||||
"%(senderName)s withdrew %(targetName)s's inivitation.": "%(senderName)s withdrew %(targetName)s's inivitation.",
|
||||
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s withdrew %(targetName)s's invitation.",
|
||||
"Would you like to": "Would you like to",
|
||||
"You are already in a call": "You are already in a call",
|
||||
"You're not in any rooms yet! Press": "You're not in any rooms yet! Press",
|
||||
@ -539,7 +554,8 @@
|
||||
"you must be a": "you must be a",
|
||||
"You need to be able to invite users to do that.": "You need to be able to invite users to do that.",
|
||||
"You need to be logged in.": "You need to be logged in.",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience": "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience",
|
||||
"You need to enter a user name.": "You need to enter a user name.",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.",
|
||||
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Your email address does not appear to be associated with a Matrix ID on this Homeserver",
|
||||
"Your password has been reset": "Your password has been reset",
|
||||
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
|
||||
|
@ -119,7 +119,7 @@
|
||||
"zh-sg": "Chinese (Singapore)",
|
||||
"zh-tw": "Chinese (Taiwan)",
|
||||
"zu": "Zulu",
|
||||
"anyone.": "anyone",
|
||||
"anyone": "anyone",
|
||||
"Direct Chat": "Conversation Directe",
|
||||
"Direct chats": "Conversations directes",
|
||||
"Disable inline URL previews by default": "Désactiver l’aperçu des URLs",
|
||||
@ -137,7 +137,7 @@
|
||||
"Enable encryption": "Activer l'encryption",
|
||||
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Les messages encryptés ne seront pas visibles dans les clients qui n’implémentent pas encore l’encryption",
|
||||
"Encrypted room": "Salon encrypté",
|
||||
"%(senderName)s ended the call": "%(senderName)s a terminé l’appel",
|
||||
"%(senderName)s ended the call.": "%(senderName)s a terminé l’appel.",
|
||||
"End-to-end encryption information": "Information sur l'encryption bout-en-bout",
|
||||
"End-to-end encryption is in beta and may not be reliable": "L’encryption bout-en-bout est en béta et risque de ne pas être fiable",
|
||||
"Enter Code": "Entrer le code",
|
||||
@ -173,8 +173,8 @@
|
||||
"Failed to join the room": "Échec de l'adhésion au salon",
|
||||
"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",
|
||||
"%(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 +196,7 @@
|
||||
"%(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",
|
||||
"%(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 ?",
|
||||
@ -204,7 +204,7 @@
|
||||
"Are you sure you want upload the following files?": "Êtes-vous sûr de vouloir télécharger les fichiers suivants ?",
|
||||
"Attachment": "Pièce jointe",
|
||||
"Autoplay GIFs and videos": "Jouer automatiquement les GIFs et vidéos",
|
||||
"%(senderName)s banned %(targetName)s": "%(senderName)s a banni %(targetName)s",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s a banni %(targetName)s.",
|
||||
"Ban": "Bannir",
|
||||
"Banned users": "Utilisateurs bannis",
|
||||
"Bans user with given id": "Utilisateurs bannis avec un identifiant donné",
|
||||
@ -215,11 +215,11 @@
|
||||
"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": "Impossible de se connecter au homeserver en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou %(urlStart)s activez le support des scripts non-vérifiés %(urlEnd)s",
|
||||
"Can't load user settings": "Impossible de charger les paramètres utilisateur",
|
||||
"Change Password": "Changer le mot de passe",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s": "%(senderName)s a changé son nom d’affichage de %(oldDisplayName)s en %(displayName)s",
|
||||
"%(senderName)s changed their profile picture": "%(senderName)s a changé sa photo de profil",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s": "%(senderName)s a changé le niveau de pouvoir de %(powerLevelDiffText)s",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s": "%(senderDisplayName)s a changé le nom du salon en %(roomName)s",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\"": "%(senderDisplayName)s a changé le sujet du salon en \"%(topic)s\"",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s a changé son nom d’affichage de %(oldDisplayName)s en %(displayName)s.",
|
||||
"%(senderName)s changed their profile picture.": "%(senderName)s a changé sa photo de profil.",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s a changé le niveau de pouvoir de %(powerLevelDiffText)s.",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s a changé le nom du salon en %(roomName)s.",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s a changé le sujet du salon en \"%(topic)s\".",
|
||||
"Changes to who can read history will only apply to future messages in this room": "Les changements de visibilité de l’historique de ce salon ne s’appliquent qu’aux messages futurs",
|
||||
"Changes your display nickname": "Change votre nom d'affichage",
|
||||
"Claimed Ed25519 fingerprint key": "Clé empreinte Ed25519 revendiquée",
|
||||
@ -270,7 +270,7 @@
|
||||
"Failed to reject invitation": "Échec lors du rejet de l'invitation",
|
||||
"Failed to save settings": "Échec lors de la sauvegarde des paramètres",
|
||||
"Failed to send email": "Échec lors de l’envoi de l’e-mail",
|
||||
"Failed to send request": "Échec lors de l’envoi de la requête",
|
||||
"Failed to send request.": "Échec lors de l’envoi de la requête.",
|
||||
"Failed to set display name": "Échec lors de l'enregistrement du nom d'affichage",
|
||||
"Failed to set up conference call": "Échec lors de l’établissement de l’appel",
|
||||
"Failed to toggle moderator status": "Échec lors de l’établissement du statut de modérateur",
|
||||
@ -294,7 +294,7 @@
|
||||
"Filter room members": "Filtrer les membres par nom",
|
||||
"Forget room": "Oublier le salon",
|
||||
"Forgot your password?": "Mot de passe perdu ?",
|
||||
"For security, this session has been signed out. Please sign in again": "Par sécurité, la session a expiré. Merci de vous authentifer à nouveau",
|
||||
"For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifer à nouveau.",
|
||||
"Found a bug?": "Trouvé un problème ?",
|
||||
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s",
|
||||
"Guest users can't create new rooms. Please register to create room and start a chat": "Les utilisateurs invités ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion",
|
||||
@ -371,5 +371,15 @@
|
||||
"NOT verified": "NON vérifié",
|
||||
"No devices with registered encryption keys": "Pas d’appareil avec des clés d’encryption enregistrées",
|
||||
"No more results": "Fin des résultats",
|
||||
"No results": "Pas de résultats"
|
||||
"No results": "Pas de résultats",
|
||||
"unknown error code": "Code erreur inconnu",
|
||||
"OK": "OK",
|
||||
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Une fois le chiffrement activé dans un salon il ne peut pas être désactivé (pour le moment)",
|
||||
"Only people who have been invited": "Seul les personnes ayant été invitées",
|
||||
"or": "ou",
|
||||
"Password": "Mot de passe",
|
||||
"Passwords can't be empty": "Le mot de passe ne peut pas être vide",
|
||||
"People": "Personne",
|
||||
"Permissions": "Permissions",
|
||||
"Phone": "Téléphone"
|
||||
}
|
||||
|
@ -94,11 +94,11 @@
|
||||
"Forget room": "Esquecer sala",
|
||||
"Forgot your password?": "Esqueceu sua senha?",
|
||||
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Por segurança, deslogar irá remover qualquer chave de criptografia ponta-a-ponta deste navegador. Caso deseje descriptografar o histórico das suas conversas E2E em sessões Riot futuras, por favor exporte as chaves da sala para sua garantia.",
|
||||
"For security, this session has been signed out. Please sign in again": "Por questões de segurança, esta sessão foi encerrada. Por gentileza conecte-se novamente",
|
||||
"For security, this session has been signed out. Please sign in again.": "Por questões de segurança, esta sessão foi encerrada. Por gentileza conecte-se novamente.",
|
||||
"Found a bug?": "Encontrou um problema de funcionamento do sistema?",
|
||||
"Guests cannot join this room even if explicitly invited": "Visitantes não podem entrar nesta sala, mesmo se forem explicitamente convidadas/os",
|
||||
"Guests can't set avatars. Please register": "Convidados não podem definir uma foto do perfil. Por favor, registre-se",
|
||||
"Guests can't use labs features. Please register": "Convidados não podem usar as funcionalidades de laboratório (lab), por gentileza se registre",
|
||||
"Guests cannot join this room even if explicitly invited.": "Visitantes não podem entrar nesta sala, mesmo se forem explicitamente convidadas/os.",
|
||||
"Guests can't set avatars. Please register.": "Convidados não podem definir uma foto do perfil. Por favor, registre-se.",
|
||||
"Guests can't use labs features. Please register.": "Convidados não podem usar as funcionalidades de laboratório (lab), por gentileza se registre.",
|
||||
"Guest users can't upload files. Please register to upload": "Usuários não podem fazer envio de arquivos. Por favor se cadastre para enviar arquivos",
|
||||
"had": "teve",
|
||||
"Hangup": "Desligar",
|
||||
@ -162,7 +162,7 @@
|
||||
"Privacy warning": "Alerta sobre privacidade",
|
||||
"Privileged Users": "Usuárias/os privilegiadas/os",
|
||||
"Profile": "Perfil",
|
||||
"Refer a friend to Riot: ": "Indicar um amigo para participar",
|
||||
"Refer a friend to Riot:": "Indicar um amigo para participar",
|
||||
"rejected": "recusou",
|
||||
"rejected the invitation.": "rejeitou o convite.",
|
||||
"Reject invitation": "Rejeitar convite",
|
||||
@ -171,7 +171,7 @@
|
||||
"removed their profile picture": "removeu sua foto de perfil",
|
||||
"Remove": "Remover",
|
||||
"requested a VoIP conference": "requisitou uma conferência VoIP",
|
||||
"Resetting 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": "Atualmente, ao alterar sua senha, você também zera todas as chaves de criptografia ponta-a-ponta em todos os dipositivos, fazendo com que o histórico de conversas da sala não possa mais ser lido, a não ser que você antes exporte suas chaves de sala e as reimporte após a alteração da senha. No futuro, isso será melhorado",
|
||||
"Resetting 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.": "Atualmente, ao alterar sua senha, você também zera todas as chaves de criptografia ponta-a-ponta em todos os dipositivos, fazendo com que o histórico de conversas da sala não possa mais ser lido, a não ser que você antes exporte suas chaves de sala e as reimporte após a alteração da senha. No futuro, isso será melhorado.",
|
||||
"restore": "restaurar",
|
||||
"Return to app": "Retornar ao aplicativo",
|
||||
"Return to login screen": "Retornar à tela de login",
|
||||
@ -233,7 +233,7 @@
|
||||
"turned on end-to-end encryption (algorithm": "acionou a encriptação ponta-a-ponta (algoritmo",
|
||||
"Unable to add email address": "Não foi possível adicionar endereço de email",
|
||||
"Unable to remove contact information": "Não foi possível remover informação de contato",
|
||||
"Unable to verify email address": "Não foi possível verificar o endereço de email",
|
||||
"Unable to verify email address.": "Não foi possível verificar o endereço de email.",
|
||||
"Unban": "Desfazer banimento",
|
||||
"Unencrypted room": "Sala não criptografada",
|
||||
"unencrypted": "não criptografado",
|
||||
@ -254,8 +254,8 @@
|
||||
"verified": "verificado",
|
||||
"Video call": "Chamada de vídeo",
|
||||
"Voice call": "Chamada de voz",
|
||||
"VoIP conference finished": "Conferência VoIP encerrada",
|
||||
"VoIP conference started": "Conferência VoIP iniciada",
|
||||
"VoIP conference finished.": "Conferência VoIP encerrada.",
|
||||
"VoIP conference started.": "Conferência VoIP iniciada.",
|
||||
"(warning: cannot be disabled again!)": "(atenção: esta operação não poderá ser desfeita depois!)",
|
||||
"Warning!": "Atenção!",
|
||||
"was banned": "banida/o",
|
||||
@ -304,7 +304,7 @@
|
||||
"de": "Alemão",
|
||||
"da": "Dinamarquês",
|
||||
"ru": "Russo",
|
||||
"%(targetName)s accepted an invitation": "%(targetName)s aceitou um convite.",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s aceitou um convite.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceitou o convite para %(displayName)s.",
|
||||
"all room members, from the point they are invited": "todas/os as/os integrantes da sala, a partir do momento em que foram convidadas/os",
|
||||
"all room members, from the point they joined": "todas/os as/os integrantes da sala, a partir do momento em que entraram na sala",
|
||||
@ -312,14 +312,14 @@
|
||||
"%(names)s and one other are typing": "%(names)s e uma outra pessoa estão escrevendo",
|
||||
"%(names)s and %(count)s others are typing": "%(names)s e %(count)s outras pessoas estão escrevendo",
|
||||
"%(senderName)s answered the call.": "%(senderName)s atendeu à chamada.",
|
||||
"anyone.": "qualquer pessoa",
|
||||
"anyone": "qualquer pessoa",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
|
||||
"Call Timeout": "Tempo esgotado. Chamada encerrada",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s": "%(senderName)s mudou seu nome público de %(oldDisplayName)s para %(displayName)s",
|
||||
"%(senderName)s changed their profile picture": "%(senderName)s alterou sua imagem de perfil",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\"": "%(senderDisplayName)s alterou o tópico para \"%(topic)s\"",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s mudou seu nome público de %(oldDisplayName)s para %(displayName)s.",
|
||||
"%(senderName)s changed their profile picture.": "%(senderName)s alterou sua imagem de perfil.",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s.",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s.",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s alterou o tópico para \"%(topic)s\".",
|
||||
"click to reveal": "clique para ver",
|
||||
"Conference call failed": "Chamada de conferência falhou",
|
||||
"Conference calling is in development and may not be reliable": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar",
|
||||
@ -328,7 +328,7 @@
|
||||
"/ddg is not a command": "/ddg não é um comando",
|
||||
"Drop here %(toAction)s": "Arraste aqui %(toAction)s",
|
||||
"Drop here to tag %(section)s": "Arraste aqui para marcar como %(section)s",
|
||||
"%(senderName)s ended the call": "%(senderName)s finalizou a chamada",
|
||||
"%(senderName)s ended the call.": "%(senderName)s finalizou a chamada.",
|
||||
"Existing Call": "Chamada em andamento",
|
||||
"Failed to lookup current room": "Não foi possível buscar na sala atual",
|
||||
"Failed to send email": "Não foi possível enviar email",
|
||||
@ -342,7 +342,7 @@
|
||||
"%(displayName)s is typing": "%(displayName)s está escrevendo",
|
||||
"%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
|
||||
"%(senderName)s kicked %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
|
||||
"%(targetName)s left the room": "%(targetName)s saiu da sala",
|
||||
"%(targetName)s left the room.": "%(targetName)s saiu da sala.",
|
||||
"%(senderName)s made future room history visible to": "%(senderName)s deixou o histórico futuro da sala visível para",
|
||||
"Missing room_id in request": "Faltou o id da sala na requisição",
|
||||
"Missing user_id in request": "Faltou o id de usuário na requisição",
|
||||
@ -354,18 +354,18 @@
|
||||
"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",
|
||||
"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",
|
||||
"%(senderName)s requested a VoIP conference": "%(senderName)s está solicitando uma conferência de voz",
|
||||
"%(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.",
|
||||
"%(senderName)s requested a VoIP conference.": "%(senderName)s está solicitando uma conferência de voz.",
|
||||
"Riot does not have permission to send you notifications - please check your browser settings": "Riot não tem permissões para enviar notificações a você - por favor, verifique as configurações do seu navegador",
|
||||
"Riot was not given permission to send notifications - please try again": "Riot não tem permissões para enviar notificações a você - por favor, tente novamente",
|
||||
"Room %(roomId)s not visible": "A sala %(roomId)s não está visível",
|
||||
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s enviou uma imagem.",
|
||||
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s enviou um convite para %(targetDisplayName)s entrar na sala.",
|
||||
"%(senderName)s set a profile picture": "%(senderName)s definiu uma imagem de perfil",
|
||||
"%(senderName)s set their display name to %(displayName)s": "%(senderName)s definiu seu nome público para %(displayName)s",
|
||||
"%(senderName)s set a profile picture.": "%(senderName)s definiu uma imagem de perfil.",
|
||||
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s definiu seu nome público para %(displayName)s.",
|
||||
"tag as %(tagName)s": "marcar como %(tagName)s",
|
||||
"This email address is already in use": "Este endereço de email já está sendo usado",
|
||||
"This email address was not found": "Este endereço de email não foi encontrado",
|
||||
@ -384,7 +384,7 @@
|
||||
"to start a chat with someone": "para iniciar uma conversa com alguém",
|
||||
"to tag direct chat": "para marcar a conversa como pessoal",
|
||||
"To use it, just wait for autocomplete results to load and tab through them.": "Para usar esta funcionalidade, espere o carregamento dos resultados de autocompletar e então escolha entre as opções.",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s)",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s).",
|
||||
"Unable to restore previous session": "Não foi possível restaurar a sessão anterior",
|
||||
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s desfez o banimento de %(targetName)s.",
|
||||
"Unable to capture screen": "Não foi possível capturar a imagem da tela",
|
||||
@ -393,7 +393,7 @@
|
||||
"Usage": "Uso",
|
||||
"Use with caution": "Use com cautela",
|
||||
"VoIP is unsupported": "Chamada de voz não permitida",
|
||||
"%(senderName)s withdrew %(targetName)s's inivitation.": "%(senderName)s desfez o convite a %(targetName)s's.",
|
||||
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s's.",
|
||||
"You are already in a call": "Você já está em uma chamada",
|
||||
"You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
|
||||
"You are trying to access %(roomName)s": "Você está tentando acessar a sala %(roomName)s",
|
||||
@ -401,7 +401,7 @@
|
||||
"You cannot place VoIP calls in this browser": "Você não pode fazer chamadas de voz neste navegador",
|
||||
"You need to be able to invite users to do that.": "Para fazer isso, você tem que ter permissão para convidar outras pessoas.",
|
||||
"You need to be logged in.": "Você tem que estar logado.",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez.",
|
||||
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor",
|
||||
"Set a display name:": "Defina um nome público para você:",
|
||||
"Upload an avatar:": "Envie uma imagem de perfil para identificar você:",
|
||||
|
@ -36,7 +36,7 @@
|
||||
"changed their profile picture": "alterou sua foto de perfil",
|
||||
"changed the power level of": "mudou o nível de permissões de",
|
||||
"changed the room name to": "mudou o nome da sala para",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\"": "%(senderDisplayName)s mudou o tópico para \"%(topic)s\"",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s mudou o tópico para \"%(topic)s\".",
|
||||
"Changes to who can read history will only apply to future messages in this room": "As mudanças sobre quem pode ler o histórico da sala só serão aplicadas às mensagens futuras nesta sala",
|
||||
"Changes your display nickname": "Troca o seu apelido",
|
||||
"Claimed Ed25519 fingerprint key": "Chave reivindicada da Impressão Digital Ed25519",
|
||||
@ -97,11 +97,11 @@
|
||||
"Forget room": "Esquecer sala",
|
||||
"Forgot your password?": "Esqueceu sua senha?",
|
||||
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Por segurança, deslogar irá remover qualquer chave de criptografia ponta-a-ponta deste navegador. Caso deseje descriptografar o histórico das suas conversas E2E em sessões Riot futuras, por favor exporte as chaves da sala para sua garantia.",
|
||||
"For security, this session has been signed out. Please sign in again": "Por questões de segurança, esta sessão foi encerrada. Por gentileza conecte-se novamente",
|
||||
"For security, this session has been signed out. Please sign in again.": "Por questões de segurança, esta sessão foi encerrada. Por gentileza conecte-se novamente.",
|
||||
"Found a bug?": "Encontrou um problema de funcionamento do sistema?",
|
||||
"Guests cannot join this room even if explicitly invited": "Visitantes não podem entrar nesta sala, mesmo se forem explicitamente convidadas/os",
|
||||
"Guests can't set avatars. Please register": "Convidados não podem definir uma foto do perfil. Por favor, registre-se",
|
||||
"Guests can't use labs features. Please register": "Convidados não podem usar as funcionalidades de laboratório (lab), por gentileza se registre",
|
||||
"Guests cannot join this room even if explicitly invited.": "Visitantes não podem entrar nesta sala, mesmo se forem explicitamente convidadas/os.",
|
||||
"Guests can't set avatars. Please register.": "Convidados não podem definir uma foto do perfil. Por favor, registre-se.",
|
||||
"Guests can't use labs features. Please register.": "Convidados não podem usar as funcionalidades de laboratório (lab), por gentileza se registre.",
|
||||
"Guest users can't upload files. Please register to upload": "Usuários não podem fazer envio de arquivos. Por favor se cadastre para enviar arquivos",
|
||||
"had": "teve",
|
||||
"Hangup": "Desligar",
|
||||
@ -166,7 +166,7 @@
|
||||
"Privacy warning": "Alerta sobre privacidade",
|
||||
"Privileged Users": "Usuárias/os privilegiadas/os",
|
||||
"Profile": "Perfil",
|
||||
"Refer a friend to Riot: ": "Indicar um amigo para participar",
|
||||
"Refer a friend to Riot:": "Indicar um amigo para participar",
|
||||
"rejected": "recusou",
|
||||
"rejected the invitation.": "rejeitou o convite.",
|
||||
"Reject invitation": "Rejeitar convite",
|
||||
@ -175,7 +175,7 @@
|
||||
"removed their profile picture": "removeu sua foto de perfil",
|
||||
"Remove": "Remover",
|
||||
"requested a VoIP conference": "requisitou uma conferência VoIP",
|
||||
"Resetting 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": "Atualmente, ao alterar sua senha, você também zera todas as chaves de criptografia ponta-a-ponta em todos os dipositivos, fazendo com que o histórico de conversas da sala não possa mais ser lido, a não ser que você antes exporte suas chaves de sala e as reimporte após a alteração da senha. No futuro, isso será melhorado",
|
||||
"Resetting 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.": "Atualmente, ao alterar sua senha, você também zera todas as chaves de criptografia ponta-a-ponta em todos os dipositivos, fazendo com que o histórico de conversas da sala não possa mais ser lido, a não ser que você antes exporte suas chaves de sala e as reimporte após a alteração da senha. No futuro, isso será melhorado.",
|
||||
"restore": "restaurar",
|
||||
"Return to app": "Retornar ao aplicativo",
|
||||
"Return to login screen": "Retornar à tela de login",
|
||||
@ -238,7 +238,7 @@
|
||||
"turned on end-to-end encryption (algorithm": "acionou a encriptação ponta-a-ponta (algoritmo",
|
||||
"Unable to add email address": "Não foi possível adicionar endereço de email",
|
||||
"Unable to remove contact information": "Não foi possível remover informação de contato",
|
||||
"Unable to verify email address": "Não foi possível verificar o endereço de email",
|
||||
"Unable to verify email address.": "Não foi possível verificar o endereço de email.",
|
||||
"Unban": "Desfazer banimento",
|
||||
"Unencrypted room": "Sala não criptografada",
|
||||
"unencrypted": "não criptografado",
|
||||
@ -259,8 +259,8 @@
|
||||
"verified": "verificado",
|
||||
"Video call": "Chamada de vídeo",
|
||||
"Voice call": "Chamada de voz",
|
||||
"VoIP conference finished": "Conferência VoIP encerrada",
|
||||
"VoIP conference started": "Conferência VoIP iniciada",
|
||||
"VoIP conference finished.": "Conferência VoIP encerrada.",
|
||||
"VoIP conference started.": "Conferência VoIP iniciada.",
|
||||
"(warning: cannot be disabled again!)": "(atenção: esta operação não poderá ser desfeita depois!)",
|
||||
"Warning": "Atenção!",
|
||||
"was banned": "banida/o",
|
||||
@ -309,7 +309,7 @@
|
||||
"de": "Alemão",
|
||||
"da": "Dinamarquês",
|
||||
"ru": "Russo",
|
||||
"%(targetName)s accepted an invitation": "%(targetName)s aceitou um convite",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s aceitou um convite.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceitou o convite para %(displayName)s.",
|
||||
"all room members, from the point they are invited": "todas/os as/os integrantes da sala, a partir do momento em que foram convidadas/os",
|
||||
"all room members, from the point they joined": "todas/os as/os integrantes da sala, a partir do momento em que entraram na sala",
|
||||
@ -317,13 +317,13 @@
|
||||
"%(names)s and one other are typing": "%(names)s e uma outra pessoa estão escrevendo",
|
||||
"%(names)s and %(count)s others are typing": "%(names)s e %(count)s outras pessoas estão escrevendo",
|
||||
"%(senderName)s answered the call.": "%(senderName)s atendeu à chamada.",
|
||||
"anyone.": "qualquer pessoa",
|
||||
"anyone": "qualquer pessoa",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
|
||||
"Call Timeout": "Tempo esgotado. Chamada encerrada",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s": "%(senderName)s mudou seu nome público de %(oldDisplayName)s para %(displayName)s",
|
||||
"%(senderName)s changed their profile picture": "%(senderName)s alterou sua imagem de perfil",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s mudou seu nome público de %(oldDisplayName)s para %(displayName)s.",
|
||||
"%(senderName)s changed their profile picture.": "%(senderName)s alterou sua imagem de perfil.",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s.",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s.",
|
||||
"click to reveal": "clique para ver",
|
||||
"Conference call failed": "Chamada de conferência falhou",
|
||||
"Conference calling is in development and may not be reliable": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar",
|
||||
@ -332,7 +332,7 @@
|
||||
"/ddg is not a command": "/ddg não é um comando",
|
||||
"Drop here %(toAction)s": "Arraste aqui %(toAction)s",
|
||||
"Drop here to tag %(section)s": "Arraste aqui para marcar como %(section)s",
|
||||
"%(senderName)s ended the call": "%(senderName)s finalizou a chamada",
|
||||
"%(senderName)s ended the call.": "%(senderName)s finalizou a chamada.",
|
||||
"Existing Call": "Chamada em andamento",
|
||||
"Failed to lookup current room": "Não foi possível buscar na sala atual",
|
||||
"Failed to send email": "Não foi possível enviar email",
|
||||
@ -358,18 +358,18 @@
|
||||
"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",
|
||||
"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",
|
||||
"%(senderName)s requested a VoIP conference": "%(senderName)s está solicitando uma conferência de voz",
|
||||
"%(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.",
|
||||
"%(senderName)s requested a VoIP conference.": "%(senderName)s está solicitando uma conferência de voz.",
|
||||
"Riot does not have permission to send you notifications - please check your browser settings": "Riot não tem permissões para enviar notificações a você - por favor, verifique as configurações do seu navegador",
|
||||
"Riot was not given permission to send notifications - please try again": "Riot não tem permissões para enviar notificações a você - por favor, tente novamente",
|
||||
"Room %(roomId)s not visible": "A sala %(roomId)s não está visível",
|
||||
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s enviou uma imagem.",
|
||||
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s enviou um convite para %(targetDisplayName)s entrar na sala.",
|
||||
"%(senderName)s set a profile picture": "%(senderName)s definiu uma imagem de perfil",
|
||||
"%(senderName)s set their display name to %(displayName)s": "%(senderName)s definiu seu nome público para %(displayName)s",
|
||||
"%(senderName)s set a profile picture.": "%(senderName)s definiu uma imagem de perfil.",
|
||||
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s definiu seu nome público para %(displayName)s.",
|
||||
"tag as %(tagName)s": "marcar como %(tagName)s",
|
||||
"This email address is already in use": "Este endereço de email já está sendo usado",
|
||||
"This email address was not found": "Este endereço de email não foi encontrado",
|
||||
@ -389,7 +389,7 @@
|
||||
"to tag as %(tagName)s": "para marcar como %(tagName)s",
|
||||
"to tag direct chat": "para marcar a conversa como pessoal",
|
||||
"To use it, just wait for autocomplete results to load and tab through them.": "Para usar esta funcionalidade, espere o carregamento dos resultados de autocompletar e então escolha entre as opções.",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s)",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s).",
|
||||
"Unable to restore previous session": "Não foi possível restaurar a sessão anterior",
|
||||
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s desfez o banimento de %(targetName)s.",
|
||||
"Unable to capture screen": "Não foi possível capturar a imagem da tela",
|
||||
@ -398,7 +398,7 @@
|
||||
"Usage": "Uso",
|
||||
"Use with caution": "Use com cautela",
|
||||
"VoIP is unsupported": "Chamada de voz não permitida",
|
||||
"%(senderName)s withdrew %(targetName)s's inivitation.": "%(senderName)s desfez o convite a %(targetName)s.",
|
||||
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s.",
|
||||
"You are already in a call": "Você já está em uma chamada",
|
||||
"You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
|
||||
"You are trying to access %(roomName)s": "Você está tentando acessar a sala %(roomName)s",
|
||||
@ -406,7 +406,7 @@
|
||||
"You cannot place VoIP calls in this browser": "Você não pode fazer chamadas de voz neste navegador",
|
||||
"You need to be able to invite users to do that.": "Para fazer isso, você tem que ter permissão para convidar outras pessoas.",
|
||||
"You need to be logged in.": "Você tem que estar logado.",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez.",
|
||||
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor",
|
||||
"Set a display name:": "Defina um nome público para você:",
|
||||
"Upload an avatar:": "Envie uma imagem de perfil para identificar você:",
|
||||
|
@ -16,7 +16,7 @@
|
||||
"An email has been sent to": "Email был отправлен",
|
||||
"A new password must be entered.": "Введите новый пароль.",
|
||||
"answered the call.": "принятый звонок.",
|
||||
"anyone.": "кто угодно",
|
||||
"anyone": "кто угодно",
|
||||
"Anyone who knows the room's link, apart from guests": "Любой, кто знает ссылку на комнату, кроме гостей",
|
||||
"Anyone who knows the room's link, including guests": "Любой, кто знает ссылку комнаты, включая гостей",
|
||||
"Are you sure you want to reject the invitation?": "Вы уверены что вы хотите отклонить приглашение?",
|
||||
@ -88,7 +88,7 @@
|
||||
"Filter room members": "Фильтр участников комнаты",
|
||||
"Forget room": "Забыть комнату",
|
||||
"Forgot your password?": "Вы забыли пароль?",
|
||||
"For security, this session has been signed out. Please sign in again": "Для обеспечения безопасности, эта сессия была подписана. Войдите в систему еще раз.",
|
||||
"For security, this session has been signed out. Please sign in again.": "Для обеспечения безопасности, эта сессия была подписана. Войдите в систему еще раз.",
|
||||
"Found a bug?": "Нашли ошибку?",
|
||||
"had": "имеет",
|
||||
"Hangup": "Отключение",
|
||||
@ -167,7 +167,7 @@
|
||||
"turned on end-to-end encryption (algorithm": "turned on end-to-end encryption (algorithm",
|
||||
"Unable to add email address": "Невозможно добавить email адрес",
|
||||
"Unable to remove contact information": "Невозможно удалить контактную информацию",
|
||||
"Unable to verify email address": "Невозможно проверить адрес электронной почты",
|
||||
"Unable to verify email address.": "Невозможно проверить адрес электронной почты.",
|
||||
"Unban": "Отменить запрет",
|
||||
"Unencrypted room": "Незашифрованная комната",
|
||||
"unencrypted": "незашифрованно",
|
||||
@ -188,8 +188,8 @@
|
||||
"verified": "проверенный",
|
||||
"Video call": "Видио вызов",
|
||||
"Voice call": "Голосовой вызов",
|
||||
"VoIP conference finished": "VoIP конференция закончилась",
|
||||
"VoIP conference started": "VoIP Конференция стартовала",
|
||||
"VoIP conference finished.": "VoIP конференция закончилась.",
|
||||
"VoIP conference started.": "VoIP Конференция стартовала.",
|
||||
"(warning: cannot be disabled again!)": "(предупреждение: не может быть снова отключен!)",
|
||||
"Warning!": "Предупреждение!",
|
||||
"was banned": "запрещен",
|
||||
@ -216,7 +216,7 @@
|
||||
"de": "Немецкий",
|
||||
"da": "Датский",
|
||||
"ru": "Русский",
|
||||
"%(targetName)s accepted an invitation": "%(targetName)s принял приглашение",
|
||||
"%(targetName)s accepted an invitation.": "%(targetName)s принял приглашение.",
|
||||
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s принял приглашение от %(displayName)s.",
|
||||
"Resend all": "Переслать снова всем",
|
||||
"cancel all": "отменить всем",
|
||||
@ -227,11 +227,11 @@
|
||||
"%(senderName)s answered the call.": "%(senderName)s ответил на звонок.",
|
||||
"%(senderName)s banned %(targetName)s.": "%(senderName)s запрещенный %(targetName)s.",
|
||||
"Call Timeout": "Время ожидания вызова",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s": "%(senderName)s их имя измененное с %(oldDisplayName)s на %(displayName)s",
|
||||
"%(senderName)s changed their profile picture": "%(senderName)s измененное ихнее фото профиля",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s": "%(senderName)s уровень мощности изменен на %(powerLevelDiffText)s",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s": "%(senderDisplayName)s имя комнаты измененно на %(roomName)s",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\"": "%(senderDisplayName)s измененная тема на %(topic)s",
|
||||
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s их имя измененное с %(oldDisplayName)s на %(displayName)s.",
|
||||
"%(senderName)s changed their profile picture.": "%(senderName)s измененное ихнее фото профиля.",
|
||||
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s уровень мощности изменен на %(powerLevelDiffText)s.",
|
||||
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s имя комнаты измененно на %(roomName)s.",
|
||||
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s измененная тема на %(topic)s.",
|
||||
"Conference call failed": "Конференц-вызов прервался",
|
||||
"Conference calling is in development and may not be reliable": "Конференц-вызов находится в процессе и может не быть надежным",
|
||||
"Conference calls are not supported in encrypted rooms": "Конференц-вызовы не поддерживаются в зашифрованных комнатах",
|
||||
@ -239,7 +239,7 @@
|
||||
"/ddg is not a command": "/ddg не команда",
|
||||
"Drop here %(toAction)s": "Вставить здесь %(toAction)s",
|
||||
"Drop here to tag %(section)s": "Вставить здесь для тега %(section)s",
|
||||
"%(senderName)s ended the call": "%(senderName)s прекратил звонок",
|
||||
"%(senderName)s ended the call.": "%(senderName)s прекратил звонок.",
|
||||
"Existing Call": "Существующий вызов",
|
||||
"Failed to lookup current room": "Не удалось выполнить поиск текущий комнаты",
|
||||
"Failed to send request.": "Не удалось выслать запрос.",
|
||||
@ -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 история сделаной будущей комнаты, видимая для",
|
||||
@ -364,7 +364,7 @@
|
||||
"You're not in any rooms yet! Press": "Вы еще не находитесь ни в каких комнатах! Нажать",
|
||||
"You are trying to access %(roomName)s": "Вы пытаетесь получить доступ %(roomName)s",
|
||||
"You cannot place a call with yourself": "Вы не можете позвонить самим себе",
|
||||
"%(senderName)s withdrew %(targetName)s's inivitation.": "%(senderName)s анулировал %(targetName)s's преглашение.",
|
||||
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s анулировал %(targetName)s's преглашение.",
|
||||
"Sep": "Сен.",
|
||||
"Jan": "Янв.",
|
||||
"Feb": "Фев.",
|
||||
@ -385,12 +385,12 @@
|
||||
"Thu": "Чт",
|
||||
"Fri": "Пя",
|
||||
"Sat": "Сб",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience": "Вам необходимо снова войти в генерировать сквозное шифрование (е2е) ключей для этого устройства и предоставить публичный ключ Вашему домашнему серверу. Это после выключения; приносим извинения за причиненные неудобства",
|
||||
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Вам необходимо снова войти в генерировать сквозное шифрование (е2е) ключей для этого устройства и предоставить публичный ключ Вашему домашнему серверу. Это после выключения; приносим извинения за причиненные неудобства.",
|
||||
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом Homeserver",
|
||||
"to start a chat with someone": "Начать чат с кем-то",
|
||||
"to tag direct chat": "Пометить прямой чат",
|
||||
"To use it, just wait for autocomplete results to load and tab through them.": "Для его использования, просто подождите результатов автозаполнения для загрузки на вкладке и через них.",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s)": "%(senderName)s включил сквозное шифрование (algorithm %(algorithm)s)",
|
||||
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s включил сквозное шифрование (algorithm %(algorithm)s).",
|
||||
"Unable to restore previous session": "Невозможно востановить предыдущий сеанс",
|
||||
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s запрет отменен %(targetName)s.",
|
||||
"Unable to capture screen": "Невозможно записать снимок экрана",
|
||||
@ -449,7 +449,7 @@
|
||||
"sx": "Суту",
|
||||
"zh-hk": "Китайский (Гонконг)",
|
||||
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "На +%(msisdn)s было отправлено текстовое сообщение. Пожалуйста, введите проверочный код из него",
|
||||
"and %(overflowCount)s others...": "и %(overflowCounts)s других...",
|
||||
"and %(overflowCount)s others...": "и %(overflowCount)s других...",
|
||||
"Are you sure?": "Вы уверены?",
|
||||
"Autoplay GIFs and videos": "Проигрывать GIF и видео автоматически",
|
||||
"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 включён в доверяемые",
|
||||
@ -537,11 +537,11 @@
|
||||
"%(targetName)s rejected the invitation.": "%(targetName)s отклонил приглашение.",
|
||||
"Reject invitation": "Отклонить приглашение",
|
||||
"Remove Contact Information?": "Убрать контактную информацию?",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s)": "%(senderName)s убрал своё отображаемое имя (%(oldDisplayName)s)",
|
||||
"%(senderName)s removed their profile picture": "%(senderName)s убрал своё изображение",
|
||||
"%(senderName)s requested a VoIP conference": "%(senderName)s запросил голосовую конференц-связь",
|
||||
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s убрал своё отображаемое имя (%(oldDisplayName)s).",
|
||||
"%(senderName)s removed their profile picture.": "%(senderName)s убрал своё изображение.",
|
||||
"%(senderName)s requested a VoIP conference.": "%(senderName)s запросил голосовую конференц-связь.",
|
||||
"Report it": "Сообщить об этом",
|
||||
"Resetting 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": "На данный момент сброс пароля сбросит все ключи шифрования на всех устройствах, зашифрованная история общения будет нечитаема, если вы сперва не скачаете ваши ключи от комнаты и не загрузите их после. В будущем это будет улучшено",
|
||||
"Resetting 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.": "На данный момент сброс пароля сбросит все ключи шифрования на всех устройствах, зашифрованная история общения будет нечитаема, если вы сперва не скачаете ваши ключи от комнаты и не загрузите их после. В будущем это будет улучшено.",
|
||||
"restore": "восстановить",
|
||||
"Return to app": "Вернуться в приложение",
|
||||
"Riot does not have permission to send you notifications - please check your browser settings": "Riot не имеет права для отправки вам уведомлений, пожалуйста, проверьте настройки вашего браузера",
|
||||
|
Loading…
Reference in New Issue
Block a user