Merge branch 'main' into dev

This commit is contained in:
N-Pex 2022-01-14 12:28:03 +01:00
commit c082a47bc1
25 changed files with 1260 additions and 263 deletions

View file

@ -7,27 +7,24 @@
<v-container
fluid
fill-height
style="
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 20;
background-color: rgba(255, 255, 255, 1);
"
v-if="loading"
class="loading-container"
>
<v-row align="center" justify="center">
<v-col class="text-center">
<v-progress-circular
indeterminate
color="primary"
class="loading-convene"
></v-progress-circular>
<div>{{ $t("menu.loading", { appName: appName }) }}</div>
</v-col>
</v-row>
</v-container>
<v-skeleton-loader
type="list-item-avatar-two-line, divider, list-item-three-line, card-heading"
v-if="loading"
></v-skeleton-loader>
</v-main>
</v-app>
</template>
@ -197,4 +194,22 @@ export default {
width: $main-desktop-width;
}
}
.v-skeleton-loader--is-loading {
z-index: 100;
}
.loading {
&-container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 20;
background-color: rgba(255, 255, 255, 1);
}
&-convene {
color: $very-very-purple;
}
}
</style>

View file

@ -1,12 +1,13 @@
$font-family: "Poppins";
$background: #ffffff;
$app-background: #f6f6f6;
$main-desktop-width: 644px;
$dialog-desktop-width: 688px;
$main-desktop-width: 900px;
$dialog-desktop-width: 940px;
$very-very-purple: #536dfe;
$chat-background: $background;
$chat-standard-padding: 32px;
$chat-standard-padding-s: 16px;
$chat-standard-padding-xs: 8px;
$chat-text-size: 1.0px;
$chat-text-size: 1px;
$chat-button-height: 50px;

View file

@ -1,3 +1,4 @@
@import "~vuetify/src/styles/settings/_variables.scss";
@import "@/assets/css/main.scss";
.v-btn.btn-light {
@ -28,94 +29,127 @@
margin-bottom: $chat-standard-padding-xs;
}
.join-root {
margin-top: 10%;
padding: 40px;
.join-room {
.join-enter-room {
margin-top: 10px;
padding: 40px;
border-radius: 18px;
background: white;
box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.08);
.btn-login {
position: absolute;
top: 0;
right: 0;
margin: 20px;
.join-user-info {
display: flex;
flex-wrap: nowrap;
max-width: 500px;
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
padding: 20px;
}
}
.join-user-info {
display: flex;
flex-wrap: nowrap;
max-width: 500px;
.join-lang {
text-align: center;
margin-top: 2%;
padding: 20px;
border-radius: 18px;
background: white;
box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.08);
.active {
color: $very-very-purple;
font-weight: bold;
}
.language-more {
box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.08);
border-radius: 18px;
border: 1px solid black;
padding: 0px 5px !important;
box-shadow: 0px 4px 4px 0px #00000040;
background-color: #FFFFFF !important;
&:hover {
background-color: black !important;
color: white;
}
}
}
}
.join-avatar {
background-color: #ededed;
width: 100px !important;
height: 100px !important;
margin-bottom: 40px;
}
.join-avatar {
background-color: #ededed;
width: 100px !important;
height: 100px !important;
margin-bottom: 40px;
}
.join-title {
font-family: "Poppins", sans-serif;
font-style: normal;
font-weight: 800;
font-size: 40 * $chat-text-size;
line-height: 108.5%;
/* or 43px */
text-align: center;
letter-spacing: -0.8px;
.join-welcome {
text-transform: uppercase;
font-size: 12px;
}
color: #000000;
overflow-wrap: break-word;
}
.join-line {
border: 1px solid #ECECEC;
}
.join-message {
font-family: sans-serif;
font-weight: 400;
font-size: 16 * $chat-text-size;
color: black;
margin-top: 20px;
margin-bottom: 20px;
}
.join-title {
font-family: "Poppins", sans-serif;
font-style: normal;
font-weight: 800;
font-size: 28px;
line-height: 108.5%;
/* or 43px */
text-align: center;
letter-spacing: -0.8px;
.join-privacy {
font-family: sans-serif;
font-weight: 400;
font-size: 12 * $chat-text-size;
color: #464646;
margin-top: 20px;
margin-bottom: 20px;
a {
color: #000000;
overflow-wrap: break-word;
}
.join-privacy {
font-family: sans-serif;
font-weight: 400;
font-size: 12 * $chat-text-size;
color: #464646;
}
}
.join-or-divider {
display: block;
margin-top: 20px;
margin-bottom: 20px;
margin-left: 20px;
margin-right: 20px;
height: 20px;
color: #666666;
text-align: center;
line-height: var(--v-theme-title-featured-line-height);
position: relative;
font-family: sans-serif;
font-style: normal;
font-weight: bold;
font-size: 9.88014 * $chat-text-size;
line-height: 140%;
/* identical to box height, or 14px */
letter-spacing: 0.29px;
color: #9C9CAE;
&::before {
position: absolute;
width: 100%;
left: 0;
right: 0;
top: 5px;
height: 1px;
background: #9C9CAE;
content: " ";
margin-top: 20px;
margin-bottom: 20px;
a {
color: #464646;
}
}
.join-or-divider {
display: block;
margin-top: 20px;
margin-bottom: 20px;
margin-left: 20px;
margin-right: 20px;
height: 20px;
color: #666666;
text-align: center;
line-height: var(--v-theme-title-featured-line-height);
position: relative;
font-family: sans-serif;
font-style: normal;
font-weight: bold;
font-size: 9.88014 * $chat-text-size;
line-height: 140%;
/* identical to box height, or 14px */
letter-spacing: 0.29px;
color: #9C9CAE;
&::before {
position: absolute;
width: 100%;
left: 0;
right: 0;
top: 5px;
height: 1px;
background: #9C9CAE;
content: " ";
}
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
margin: 10px;
}
}

View file

@ -1,4 +1,8 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"fallbacks": {
"download_name": "ཕབ་ལེན།",
"original_text": "<མ་ཡིག>",
@ -73,6 +77,7 @@
"delete": "སུབས།",
"edit": "ཕྱོགས་སྒྲིག",
"ok": "ལེགས་སོ།",
"done": "",
"send": "ཐོངས།",
"back": "ཕྱིར་ལོག",
"cancel": "ཕྱིར་འཐེན།",
@ -94,7 +99,11 @@
"temporary_identity": "ངོ་བོ་འདི་གནས་སྐབས་ཙམ་ཡིན། དེ་བསྐྱར་དུ་བཀོལ་བར་གསང་ཚིག་ཅིག་བཟོས།",
"title": "ངའི་ཡིག་ཆ།",
"display_name": "འཆར་མིང་།",
"select_language": "སྐད་ཡིག"
"select_language": "སྐད་ཡིག",
"set_language": "",
"language_description": "",
"dont_see_yours": "",
"tell_us": ""
},
"device_list": {
"not_verified": "ར་སྤྲོད་བྱས་མི་འདུག",
@ -203,10 +212,10 @@
"join": {
"status_joining": "ཁ་བརྡ་ཁང་དུ་འཛུལ་བཞིན་པ།...",
"status_logging_in": "ནང་འཛུལ་བྱེད་བཞིན་པ།...",
"join_guest": "སྐུ་མགྲོན་གྱི་མིང་ཐོག་ནས་ཞུགས།",
"enter_room": "",
"join": "ཁ་བརྡ་ཁང་དུ་འཛུལ།",
"joining_as": "ཁྱེད་རང་ཞུགས་བཞིན་པ།:",
"shared_computer": "འདི་ནི་མཉམ་སྤྱོད་བྱས་པའི་ཡོ་ཆས་ཤིག་ཡིན།",
"remember_me": "",
"user_name_label": "སྤྱོད་མིང་།",
"title": "{roomName} ནང་དུ་ཕེབས་པར་དགའ་བསུ་ཞུ།",
"join_failed": "ཁ་བརྡ་ཁང་དུ་འཛུལ་ཐུབ་མ་སོང་།"

View file

@ -0,0 +1,222 @@
{
"language_display_name": "Deutsch",
"menu": {
"start_private_chat": "Private Diskussion mit diesem Benutzer",
"reply": "Antworten",
"edit": "Bearbeiten",
"delete": "Löschen",
"download": "Herunterladen",
"ok": "OK",
"cancel": "Abbrechen",
"send": "Senden",
"back": "ZURÜCK",
"login": "Anmelden",
"logout": "Abmelden",
"new_room": "Neuer Raum",
"undo": "Rückgängig",
"join": "Beitreten",
"ignore": "Ignorieren",
"loading": "{appName} wird geladen"
},
"message": {
"you": "Du",
"user_created_room": "{user} hat den Raum erstellt",
"user_aliased_room": "{Benutzer} hat den Raumalias {alias} erstellt",
"user_changed_display_name": "{user} hat den Anzeigenamen in {displayName} geändert",
"user_changed_avatar": "{user} hat den Avatar geändert",
"user_changed_room_avatar": "{user} hat den Raumavatar geändert",
"user_encrypted_room": "{user} hat den Raum verschlüsselt",
"user_said": "{user} hat gesagt:",
"file_prefix": "Datei: ",
"user_was_invited": "{user} wurde zum Gespräch eingeladen …",
"edited": "(bearbeitet)",
"upload_progress": "{count} hochgeladen",
"upload_progress_with_total": "{count} von {total} hochgeladen",
"user_changed_room_history": "{user} hat den Raumverlauf {type} gemacht",
"room_history_world_readable": "für jeden lesbar",
"room_history_shared": "für alle Mitglieder im Raum lesbar",
"room_history_invited": "lesbar für Mitglieder ab dem Zeitpunkt, zu dem sie eingeladen wurden",
"room_history_joined": "für Mitglieder ab dem Zeitpunkt ihres Beitritts lesbar",
"user_changed_join_rules": "{user} hat den Raum {type} gemacht",
"room_joinrule_invite": "nur für Eingeladene",
"room_joinrule_public": "öffentlich",
"user_changed_room_topic": "{user} hat das Raumthema auf {topic} geändert",
"unread_messages": "Ungelesene Nachrichten",
"replying_to_event": "ANTWORT AUF EREIGNIS: {message}",
"your_message": "Deine Nachricht …",
"scale_image": "Bild skalieren",
"user_is_typing": "{user} schreibt",
"users_are_typing": "{count} Mitglieder schreiben",
"user_powerlevel_change_from_to": "{user} von {powerOld} zu {powerNew}",
"user_changed_guest_access_closed": "{user} hat Gästen den Beitritt zum Raum verweigert",
"user_changed_guest_access_open": "{user} hat Gästen erlaubt, den Raum beizutreten",
"room_powerlevel_change": "{user} hat den Status von {changes} geändert",
"user_left": "{user} hat das Gespräch verlassen",
"user_joined": "{Benutzer} ist dem Gespräch beigetreten",
"download_progress": "{percentage} % heruntergeladen",
"user_changed_room_name": "{user} hat den Raumnamen in {name} geändert"
},
"room": {
"leave": "Verlassen",
"purge_set_room_state": "Einstellung des Raumstatus",
"purge_redacting_events": "Redigieren von Ereignissen",
"room_list_invites": "Einladungen",
"members": "keine Mitglieder | 1 Mitglied | {count} Mitglieder",
"purge_removing_members": "Entfernen von Mitgliedern",
"purge_failed": "Fehler beim Bereinigen des Raums!",
"room_list_rooms": "Räume"
},
"room_welcome": {
"info": "Herzlich willkommen! Hier sind ein paar Dinge, die du über deinen Raum wissen solltest:",
"join_public": "Jeder kann beitreten, indem er diesen Link öffnet: {link}.",
"join_invite": "Nur Personen, die du einlädst, können teilnehmen.",
"info_permissions": "Du kannst die „Beitrittsberechtigung“ jederzeit in den Raumeinstellungen ändern.",
"room_history_is": "Der Raumverlauf ist {type}.",
"room_history_joined": "Die Teilnehmer können nur die Nachrichten sehen, die nach ihrem Beitritt gesendet wurden.",
"got_it": "Verstanden",
"encrypted": "Die Nachrichten werden Ende-zu-Ende verschlüsselt."
},
"new_room": {
"join_permissions": "Beitrittsberechtigungen",
"set_join_permissions": "Beitrittsberechtigungen festlegen",
"get_link": "Link abrufen",
"add_people": "Personen hinzufügen",
"link_copied": "Link kopiert!",
"public_info": "Jeder mit einem Link",
"public_description": "Einen Link zum Teilen erhalten",
"join_permissions_info": "Diese Berechtigungen bestimmen, wie Personen dem Raum beitreten können und wie einfach andere eingeladen werden können. Sie können jederzeit geändert werden.",
"invite_info": "Nur hinzugefügte Personen",
"invite_description": "Wähle aus einer Liste oder suche nach der Konto-ID",
"status_creating": "Erstellung des Raums",
"status_avatar_total": "Avatar wird hochgeladen: {count} von {total}",
"status_avatar": "Avatar wird hochgeladen: {count}",
"new_room": "Neuer Raum",
"create": "Erstellen",
"next": "Nächste",
"name_room": "Raum benennen",
"room_topic": "Füge eine Beschreibung hinzu, wenn du möchtest"
},
"device_list": {
"title": "GERÄTE",
"blocked": "Blockiert",
"verified": "Verifiziert",
"not_verified": "Nicht verifiziert"
},
"login": {
"title": "Anmelden",
"username": "Benutzername (z. B.: marta)",
"password": "Gib das Passwort ein",
"username_required": "Der Benutzername ist erforderlich",
"password_required": "Das Passwort ist erforderlich",
"login": "Anmelden",
"create_room": "Registrieren und Raum erstellen",
"or": "ODER"
},
"profile": {
"title": "Mein Profil",
"temporary_identity": "Diese Identität ist vorübergehend. Lege ein Passwort fest, um sie wieder zu verwenden",
"set_password": "Passwort festlegen",
"change_name": "Name ändern",
"change_password": "Passwort ändern",
"select_language": "Sprache",
"password_old": "Altes Passwort",
"password_new": "Neues Kennwort",
"password_repeat": "Wiederhole das neue Passwort",
"display_name": "Anzeigename"
},
"profile_info_popup": {
"you_are": "Du bist",
"identity": "{displayName}",
"edit_profile": "Profil bearbeiten",
"logout": "Abmelden",
"powered_by": "Dieser Raum wird von {product} betrieben. Erfahre mehr unter {productLink} oder erstelle einen weiteren Raum!",
"new_room": "+ neuer Raum",
"identity_temporary": "{displayName}",
"want_more": "Willst du mehr?"
},
"join": {
"user_name_label": "Benutzername",
"shared_computer": "Dies ist ein gemeinsam genutztes Gerät",
"joining_as": "Du trittst bei als:",
"join": "Raum beitreten",
"join_guest": "Als Gast beitreten",
"status_logging_in": "Wird angemeldet …",
"status_joining": "Raum beitreten …",
"join_failed": "Beitritt zum Raum fehlgeschlagen.",
"title": "Willkommen in {roomName}"
},
"invite": {
"title": "Freunde hinzufügen",
"done": "Fertig",
"status_error": "Fehler beim Einladen eines oder mehrerer Freunde!",
"status_inviting": "Freund werden eingeladen {index} von {count}",
"send_invites_to": "Einladungen senden an"
},
"leave": {
"title_public": "Auf Wiedersehen, {user}",
"create_account": "ein Konto erstellen",
"go_back": "Zurück",
"text_public": "Du kannst diesem Raum jederzeit wieder beitreten, wenn du den Link kennst.",
"text_public_lastroom": "Wenn du diesem Raum wieder beitreten möchtest, kannst du dich unter einer neuen Identität anmelden. Um {user} zu behalten, {action}.",
"text_invite": "Dieser Raum ist verschlossen. Du kannst ihm nicht ohne besondere Erlaubnis wieder beitreten.",
"leave": "Verlassen",
"title_invite": "Bist du sicher, dass du gehen willst?"
},
"purge_room": {
"info": "Alle Mitglieder und Nachrichten werden entfernt. Diese Aktion kann nicht rückgängig gemacht werden.",
"button": "Löschen",
"n_seconds": "{seconds} Sekunden",
"self_destruct": "Der Raum wird sich in Sekundenschnelle selbst zerstören.",
"deleting": "Raum löschen:",
"notified": "Wir haben die Mitglieder benachrichtigt.",
"room_deletion_notice": "Zeit auf wiedersehen zu sagen! Dieser Raum wurde von {user} gelöscht. Es wird sich in Sekunden selbst zerstören.",
"title": "Raum löschen?"
},
"goodbye": {
"room_deleted": "Raum gelöscht.",
"close_tab": "Browser-Registerkarte schließen",
"view_other_rooms": "Andere Räume ansehen"
},
"room_info": {
"title": "Details des Raums",
"created_by": "Erstellt von {user}",
"permissions": "Beitrittsberechtigungen",
"join_invite": "Nur hinzugefügte Personen",
"join_public": "Jeder mit einem Link",
"copy_link": "Link zur Einladung kopieren",
"link_copied": "Link kopiert!",
"purge": "Raum löschen",
"members": "Mitglieder",
"user": "{user}",
"user_you": "{user} (du)",
"hide_all": "Ausblenden",
"show_all": "Alle anzeigen >",
"leave_room": "Verlassen",
"version_info": "Angetrieben von Guardian Project. Version: {version}",
"scan_code": "Scannen, um den Raum zu betreten"
},
"room_info_sheet": {
"this_room": "Dieser Raum",
"view_details": "Details anzeigen"
},
"voice_recorder": {
"swipe_to_cancel": "Zum Abbrechen wischen",
"release_to_cancel": "Zum Abbrechen loslassen",
"failed_to_record": "Audioaufnahme fehlgeschlagen",
"not_supported_title": "Nicht unterstützt",
"not_supported_text": "Leider unterstützt dieser Browser keine Audioaufnahmen."
},
"power_level": {
"admin": "Verwalter",
"custom": "benutzerdefiniert ({level})",
"restricted": "eingeschränkt",
"moderator": "Moderator",
"default": "Standard"
},
"fallbacks": {
"audio_file": "Audiodatei",
"video_file": "Videodatei",
"original_text": "<Originaltext>",
"download_name": "Herunterladen"
}
}

View file

@ -1,5 +1,9 @@
{
"language_display_name": "English",
"project": {
"name": "Convene",
"tag_line": "Simply connect"
},
"menu": {
"start_private_chat": "Private chat with this user",
"reply": "Reply",
@ -7,6 +11,7 @@
"delete": "Delete",
"download": "Download",
"ok": "Ok",
"done": "Done",
"cancel": "Cancel",
"send": "Send",
"back": "BACK",
@ -119,6 +124,10 @@
"change_name": "Change name",
"change_password": "Change password",
"select_language": "Language",
"set_language": "Set your language",
"language_description": "Convene is available in many languages.",
"dont_see_yours": "Don't see yours?",
"tell_us": "Tell us.",
"password_old": "Old password",
"password_new": "New password",
"password_repeat": "Repeat new password",
@ -135,12 +144,12 @@
"new_room": "+ New room"
},
"join": {
"title": "Welcome to {roomName}",
"title": "Welcome you have been invited to join",
"user_name_label": "User name",
"shared_computer": "This is a shared device",
"remember_me": "Remember me",
"joining_as": "You are joining as:",
"join": "Join room",
"join_guest": "Join as guest",
"enter_room": "Enter room",
"status_logging_in": "Logging in...",
"status_joining": "Joining room...",
"join_failed": "Failed to join room."

View file

@ -1,5 +1,9 @@
{
"language_display_name": "Español",
"project": {
"name": "Convene",
"tag_line": ""
},
"room_info": {
"identity": "Has iniciado sesión como {displayName}.",
"my_profile": "Mi perfil",
@ -46,10 +50,10 @@
"join": {
"status_joining": "Uniendose a la sala...",
"status_logging_in": "Iniciando sesión...",
"join_guest": "Unirse como invitado",
"enter_room": "",
"join": "Unirse a la sala",
"joining_as": "Te estas uniendo como:",
"shared_computer": "Usando una computadora compartida",
"remember_me": "",
"user_name_label": "Nombre de usuario",
"title": "Bienvenido a {roomName}"
},
@ -154,11 +158,13 @@
"send": "Enviar",
"cancel": "Cancelar",
"ok": "OK",
"done": "",
"download": "Descargar",
"delete": "Eliminar",
"reply": "Responder",
"start_private_chat": "Chat privado con este usuario",
"edit": "Editar"
"edit": "Editar",
"ignore": "Ignorar"
},
"fallbacks": {
"download_name": "Descargar",
@ -185,4 +191,4 @@
"view_details": "Ver detalles",
"this_room": "Este grupo"
}
}
}

View file

@ -0,0 +1,161 @@
{
"menu": {
"back": "TAKAISIN",
"start_private_chat": "Yksityinen keskustelu tämän käyttäjän kanssa",
"delete": "Poista",
"reply": "Vastaa",
"send": "Lähetä",
"login": "Kirjaudu sisään",
"ignore": "Ohita",
"edit": "Muokkaa",
"download": "Lataa",
"ok": "OK",
"cancel": "Peruuta",
"logout": "Kirjaudu ulos",
"new_room": "Uusi huone",
"undo": "Kumoa",
"join": "Liity",
"loading": "{appName} ladataan"
},
"new_room": {
"create": "Luo",
"next": "Seuraava",
"join_permissions": "Liittymisoikeudet",
"status_creating": "Huoneen luominen",
"new_room": "Uusi huone",
"name_room": "Nimeä huone",
"room_topic": "Lisää kuvaus, jos haluat",
"add_people": "Lisää ihmisiä",
"link_copied": "Linkki kopioitu!",
"public_info": "Kuka tahansa, jolla on linkki"
},
"purge_room": {
"n_seconds": "{seconds} sekuntia",
"room_deletion_notice": "On aika sanoa hyvästit! Tämän huoneen on poistanut {user}. Se tuhoutuu itsestään sekunneissa.",
"title": "Poista huone?",
"info": "Kaikki jäsenet ja viestit poistetaan. Tätä toimenpidettä ei voi perua.",
"button": "Poista",
"self_destruct": "Huone tuhoutuu itsestään sekunneissa.",
"deleting": "Huoneen poistaminen:",
"notified": "Olemme ilmoittaneet jäsenille."
},
"fallbacks": {
"original_text": "<alkuperäinen teksti>",
"audio_file": "Äänitiedosto",
"video_file": "Videotiedosto",
"download_name": "Lataus"
},
"language_display_name": "suomi",
"device_list": {
"verified": "Vahvistettu",
"title": "LAITTEET",
"blocked": "Estetty",
"not_verified": "Ei vahvistettu"
},
"login": {
"title": "Sisäänkirjautuminen",
"username_required": "Käyttäjätunnus vaaditaan",
"or": "VAI",
"username": "Käyttäjätunnus (esim.: marta)",
"login": "Kirjaudu sisään",
"password": "Anna salasana",
"password_required": "Salasana vaaditaan",
"create_room": "Rekisteröidy ja luo huone"
},
"join": {
"joining_as": "Liityt jäsenenä:",
"title": "Tervetuloa huoneen {roomName}",
"join_guest": "Liity vieraana",
"shared_computer": "Tämä on jaettu laite",
"join": "Liity huoneeseen",
"user_name_label": "Käyttäjätunnus",
"status_joining": "Liittyminen huoneeseen…",
"status_logging_in": "Kirjautuminen sisään…",
"join_failed": "Huoneeseen liittyminen epäonnistui."
},
"leave": {
"title_public": "Näkemiin, {user}",
"title_invite": "Oletko varma, että haluat lähteä?",
"create_account": "luo tili",
"go_back": "Palaa takaisin",
"leave": "Poistu",
"text_invite": "Tämä huone on lukittu. Et pääse takaisin ilman erillistä lupaa."
},
"message": {
"you": "Sinä",
"user_created_room": "{user} loi huoneen",
"user_left": "{käyttäjä} poistui keskustelusta",
"user_said": "{user} sanoi:",
"download_progress": "{percentage} % ladattu",
"unread_messages": "Lukemattomat viestit",
"your_message": "Sinun viestisi…",
"user_is_typing": "{user} kirjoittaa",
"user_aliased_room": "{user} teki huoneen alias {alias}",
"user_joined": "{user} liittyi keskusteluun",
"file_prefix": "Tiedosto: ",
"edited": "(muokattu)",
"users_are_typing": "{count} jäsentä kirjoitavat"
},
"room": {
"leave": "Poistu",
"room_list_rooms": "Huoneet"
},
"room_welcome": {
"room_history_is": "Huoneen historia on {type}.",
"info": "Tervetuloa! Seuraavassa on muutamia asioita, jotka sinun on hyvä tietää huoneestasi:",
"info_permissions": "Voit muuttaa liittymisoikeuksia milloin tahansa huoneen asetuksissa.",
"encrypted": "Viestit ovat päästä päähän salattuja.",
"got_it": "Selvä"
},
"profile": {
"temporary_identity": "Tämä identiteetti on väliaikainen. Aseta salasana käyttääksesi sitä uudelleen",
"title": "Oma profiili",
"change_name": "Vaihda nimi",
"change_password": "Vaihda salasana",
"password_new": "Uusi salasana",
"password_repeat": "Toista uusi salasana",
"set_password": "Aseta salasana",
"select_language": "Kieli",
"password_old": "Vanha salasana",
"display_name": "Näyttönimi"
},
"profile_info_popup": {
"want_more": "Haluatko lisää?",
"you_are": "Sinä olet",
"identity": "{displayName}",
"logout": "Kirjaudu ulos",
"identity_temporary": "{displayName}",
"edit_profile": "Muokkaa profiili",
"new_room": "+ uusi huone"
},
"invite": {
"title": "Lisää kavereita",
"done": "Valmis"
},
"goodbye": {
"view_other_rooms": "Näytä muut huoneet",
"room_deleted": "Huone poistettu.",
"close_tab": "Sulje selaimen välilehti"
},
"room_info": {
"title": "Huoneen tiedot",
"leave_room": "Poistu",
"permissions": "Liittymisoikeudet",
"purge": "Poista huone",
"members": "Jäsenet",
"user": "{user}",
"user_you": "{user} (sinä)",
"hide_all": "Piilota",
"show_all": "Näytä kaikki >"
},
"power_level": {
"restricted": "rajoitettu"
},
"room_info_sheet": {
"this_room": "Tämä huone",
"view_details": "Näytä tiedot"
},
"voice_recorder": {
"swipe_to_cancel": "Peruuta pyyhkäisemällä"
}
}

View file

@ -0,0 +1,222 @@
{
"menu": {
"edit": "Modifier",
"start_private_chat": "Discussion privée avec cet utilisateur",
"ok": "OK",
"cancel": "Annuler",
"send": "Envoyer",
"back": "RETOUR",
"login": "Se connecter",
"logout": "Se déconnecter",
"new_room": "Nouveau salon",
"undo": "Annuler",
"join": "Rejoindre",
"ignore": "Ignorer",
"loading": "Chargement de {appName}",
"reply": "Répondre",
"download": "Télécharger",
"delete": "Supprimer"
},
"language_display_name": "français",
"message": {
"you": "Vous",
"user_created_room": "{user} a créé le salon",
"user_aliased_room": "{user} a fait lalias du salon {alias}",
"user_changed_display_name": "{user} a changé le nom daffichage en {displayName}",
"user_changed_avatar": "{user} a changé lavatar",
"user_changed_room_avatar": "{user} a changé lavatar du salon",
"user_encrypted_room": "{user} a chiffré le salon",
"user_joined": "{user} a rejoint la discussion",
"user_left": "{user} a quitté la discussion",
"user_said": "{user} a dit :",
"file_prefix": "Fichier : ",
"edited": "(modifié)",
"download_progress": "{percentage} % téléchargés",
"upload_progress_with_total": "{count} sur {total} téléversé(s)",
"upload_progress": "{count} téléversé(s)",
"room_history_world_readable": "lisible par nimporte qui",
"room_history_shared": "lisible par tous les membres du salon",
"room_history_joined": "lisible par les membres à partir de leur adhésion",
"user_changed_join_rules": "{user} a rendu le salon {type}",
"user_changed_room_name": "{user} a changé le nom du salon en {name}",
"user_changed_room_topic": "{user} a changé le thème du salon en {topic}",
"replying_to_event": "RÉPONSE À LÉVÈNEMENT : {message}",
"your_message": "Votre message…",
"scale_image": "Image à léchelle",
"user_is_typing": "{user} écrit",
"user_powerlevel_change_from_to": "{user} de {powerOld} à {powerNew}",
"user_changed_guest_access_closed": "{user} a interdit aux invités de rejoindre le salon",
"user_changed_guest_access_open": "{user} a autorisé les invités à rejoindre le salon",
"user_changed_room_history": "{user} a rendu lhistorique du salon {type}",
"room_history_invited": "lisible par les membres à partir du moment où ils ont été invités",
"user_was_invited": "{user} a été invité·e dans la discussion…",
"room_joinrule_invite": "accessible uniquement sur invitation",
"room_joinrule_public": "public",
"unread_messages": "Messages non lus",
"users_are_typing": "{count} membres écrivent",
"room_powerlevel_change": "{user} a changé le statut de {changes}"
},
"room": {
"members": "aucun membre | 1 membre | {count} membres",
"leave": "Quitter",
"purge_set_room_state": "Réglage de létat du salon",
"purge_failed": "Échec de la purge du salon !",
"purge_removing_members": "Suppression de membres",
"room_list_invites": "Invitations",
"room_list_rooms": "Salons",
"purge_redacting_events": "Rédaction des évènements"
},
"room_welcome": {
"info": "Bienvenue ! Voici quelques informations à connaître sur votre salon :",
"encrypted": "Les messages sont chiffrés de bout en bout.",
"room_history_is": "Lhistorique du salon est {type}.",
"join_public": "Tout le monde peut adhérer en ouvrant ce lien : {link}.",
"join_invite": "Seules les personnes que vous invitez peuvent sy joindre.",
"info_permissions": "Vous pouvez modifier les « autorisations de participation » à tout moment dans les paramètres du salon.",
"room_history_joined": "Les personnes ne peuvent voir que les messages envoyés après leur adhésion.",
"got_it": "Compris"
},
"new_room": {
"next": "Suivant",
"name_room": "Nommer le salon",
"room_topic": "Ajoutez une description si vous le souhaitez",
"join_permissions": "Autorisations dadhésion",
"set_join_permissions": "Définir les autorisations dadhésion",
"add_people": "Ajouter des personnes",
"link_copied": "Lien copié !",
"public_description": "Obtenir un lien à partager",
"invite_info": "Seules les peronnes ajoutées",
"invite_description": "Choisissez dans une liste ou recherchez par identifiant de compte",
"status_avatar_total": "Téléversement davatar : {count} sur {total}",
"status_avatar": "Téléversement davatar : {count}",
"new_room": "Nouveau salon",
"create": "Créer",
"get_link": "Obtenir le lien",
"public_info": "Quiconque avec un lien",
"join_permissions_info": "Ces autorisations déterminent comment les personnes peuvent rejoindre le salon et avec quelle facilité dautres personnes peuvent être invitées. Elles peuvent être modifiées à tout moment.",
"status_creating": "Création du salon"
},
"device_list": {
"title": "APPAREILS",
"not_verified": "Non vérifié",
"blocked": "Bloqué",
"verified": "Vérifié"
},
"login": {
"title": "Connexion",
"username": "Nom dutilisateur (ex : marta)",
"password": "Entrez le mot de passe",
"username_required": "Le nom dutilisateur est obligatoire",
"password_required": "Le mot de passe est obligatoire",
"create_room": "Sinscrire et créer un salon",
"or": "OU",
"login": "Se connecter"
},
"profile": {
"temporary_identity": "Cette identité est temporaire. Définissez un mot de passe pour lutiliser à nouveau",
"change_name": "Changer le nom",
"change_password": "Changer le mot de passe",
"select_language": "Langue",
"password_old": "Ancien mot de passe",
"password_repeat": "Répétez le mot de passe",
"display_name": "Nom daffichage",
"title": "Mon profil",
"set_password": "Définir un mot de passe",
"password_new": "Nouveau mot de passe"
},
"profile_info_popup": {
"you_are": "Vous êtes",
"identity": "{displayName}",
"identity_temporary": "{displayName}",
"edit_profile": "Modifier le profil",
"logout": "Se déconnecter",
"want_more": "Envie de plus ?",
"new_room": "+ nouveau salon",
"powered_by": "Ce salon est alimenté par {product}. Pour en savoir plus, rendez-vous sur {productLink} ou créez un autre salon !"
},
"join": {
"title": "Bienvenue dans {roomName}",
"user_name_label": "Nom dutilisateur",
"shared_computer": "Ceci est un appareil partagé",
"join": "Rejoindre le salon",
"status_logging_in": "Connexion en cours…",
"status_joining": "Adhésion au salon…",
"join_failed": "Impossible de rejoindre le salon.",
"joining_as": "Vous rejoignez en tant que :",
"join_guest": "Rejoindre comme invité·e"
},
"invite": {
"title": "Ajouter des amis",
"send_invites_to": "Envoyer des invitations à",
"status_inviting": "Invitation dami {index} sur {count}",
"status_error": "Impossible dinviter un ou plusieurs amis!",
"done": "Terminé"
},
"leave": {
"text_public": "Vous pouvez toujours rejoindre ce salon à nouveau si vous connaissez le lien.",
"title_invite": "Êtes-vous sûr·e de vouloir partir ?",
"create_account": "créer un compte",
"leave": "Quitter",
"title_public": "Au revoir, {user}",
"text_public_lastroom": "Si vous voulez rejoindre ce salon à nouveau, vous pouvez le faire sous une nouvelle identité. Pour garder {user}, {action}.",
"text_invite": "Ce salon est verrouillé. Vous ne pouvez pas le rejoindre sans une autorisation spéciale.",
"go_back": "Retour"
},
"purge_room": {
"title": "Supprimer le salon ?",
"info": "Tous les membres et les messages seront supprimés. Cette action ne peut être annulée.",
"self_destruct": "Le salon sautodétruira dans quelques secondes.",
"deleting": "Suppression du salon :",
"notified": "Nous avons informé les membres.",
"room_deletion_notice": "Il est temps de dire au revoir ! Ce salon a été supprimé par {user}. Il sautodétruira dans quelques secondes.",
"button": "Supprimer",
"n_seconds": "{seconds} secondes"
},
"goodbye": {
"room_deleted": "Salon supprimé.",
"view_other_rooms": "Voir les autres salons",
"close_tab": "Fermer longlet du navigateur"
},
"room_info": {
"created_by": "Créé par {user}",
"permissions": "Autorisations dadhésion",
"join_invite": "Seules les personnes ajoutées",
"join_public": "Quiconque avec un lien",
"copy_link": "Copier le lien dinvitation",
"link_copied": "Lien copié !",
"purge": "Supprimer le salon",
"user_you": "{user} (vous)",
"hide_all": "Masquer",
"show_all": "Tout afficher >",
"leave_room": "Quitter",
"version_info": "Propulsé par Guardian Project. Version : {version}",
"scan_code": "Scanner pour rejoindre le salon",
"user": "{user}",
"title": "Détails du salon",
"members": "Membres"
},
"room_info_sheet": {
"this_room": "Ce salon",
"view_details": "Voir les détails"
},
"voice_recorder": {
"release_to_cancel": "Relâchez pour annuler",
"failed_to_record": "Échec de lenregistrement audio",
"not_supported_text": "Malheureusement, ce navigateur ne prend pas en charge lenregistrement audio.",
"not_supported_title": "Non pris en charge",
"swipe_to_cancel": "Balayez pour annuler"
},
"power_level": {
"default": "par défaut",
"custom": "personnalisé ({level})",
"restricted": "restreint",
"admin": "administrateur",
"moderator": "modérateur"
},
"fallbacks": {
"audio_file": "Fichier audio",
"video_file": "Fichier vidéo",
"download_name": "Téléchargement",
"original_text": "<texte original>"
}
}

View file

@ -0,0 +1,222 @@
{
"message": {
"file_prefix": "File: ",
"unread_messages": "Messaggi non letti",
"user_aliased_room": "{user} ha fatto lalias della stanza {alias}",
"user_created_room": "{user} ha creato la stanza",
"user_changed_avatar": "{user} ha cambiato lavatar",
"user_changed_room_avatar": "{user} ha cambiato lavatar della stanza",
"user_encrypted_room": "{user} ha reso la stanza crittografata",
"user_was_invited": "{user} è stato invitato/a alla discussione…",
"user_joined": "{user} si è unito/a alla discussione",
"user_said": "{user} ha detto:",
"upload_progress": "{count} caricato/i",
"upload_progress_with_total": "{count} di {total} caricati",
"user_changed_room_history": "{user} ha reso la cronologia della stanza {type}",
"room_history_invited": "leggibile ai membri da quando sono stati invitati",
"room_history_joined": "leggibile per i membri da quando si sono iscritti",
"user_changed_join_rules": "{user} ha reso la stanza {type}",
"room_joinrule_invite": "solo su invito",
"user_changed_room_name": "{user} ha cambiato il nome della stanza in {name}",
"replying_to_event": "RISPOSTA ALLEVENTO: {message}",
"your_message": "Il tuo messaggio…",
"scale_image": "Ridimensiona limmagine",
"room_powerlevel_change": "{user} ha cambiato lo statuto di {changes}",
"user_powerlevel_change_from_to": "{user} da {powerOld} a {powerNew}",
"user_changed_guest_access_closed": "{user} ha impedito agli ospiti di entrare nella stanza",
"user_changed_guest_access_open": "{user} ha permesso agli ospiti di entrare nella stanza",
"you": "Tu",
"user_changed_display_name": "{user} ha cambiato il nome visualizzato in {displayName}",
"edited": "(modificato)",
"download_progress": "{percentage}% scaricato",
"room_joinrule_public": "pubblica",
"user_changed_room_topic": "{user} ha cambiato largomento della stanza in {topic}",
"user_left": "{user} ha lasciato la discussione",
"room_history_world_readable": "leggibile da chiunque",
"room_history_shared": "leggibile da tutti i membri nella stanza",
"user_is_typing": "{user} sta scrivendo",
"users_are_typing": "{count} membri stanno scrivendo"
},
"room": {
"purge_removing_members": "Rimozione di membri",
"members": "nessun membro | 1 membro | {count} membri",
"leave": "Lascia",
"purge_set_room_state": "Impostazione stato della stanza",
"purge_redacting_events": "Redazione di eventi",
"purge_failed": "Impossibile pulire la stanza!",
"room_list_invites": "Inviti",
"room_list_rooms": "Stanze"
},
"menu": {
"reply": "Risposta",
"edit": "Modifica",
"delete": "Elimina",
"download": "Scarica",
"ok": "OK",
"send": "Invia",
"back": "INDIETRO",
"login": "Accedi",
"ignore": "Ignora",
"undo": "Annulla",
"join": "Unisciti",
"start_private_chat": "Discussione privata con questo utente",
"cancel": "Annulla",
"logout": "Esci",
"new_room": "Nuova stanza",
"loading": "Caricamento di {appName}"
},
"room_welcome": {
"info": "Benvenuto/a! Ecco alcune cose da sapere sulla tua stanza:",
"encrypted": "I messaggi sono crittografati dallinizio alla fine.",
"room_history_is": "La cronologia della stanza è {type}.",
"join_public": "Chiunque può unirsi aprendo questo collegamento: {link}.",
"join_invite": "Solo le persone che inviti possono partecipare.",
"info_permissions": "Puoi cambiare i «permessi di adesione» in qualsiasi momento nelle impostazioni della stanza.",
"got_it": "Capito",
"room_history_joined": "Le persone possono vedere solo i messaggi inviati dopo la loro adesione."
},
"new_room": {
"next": "Successivo",
"name_room": "Nomina la stanza",
"room_topic": "Aggiungi una descrizione se vuoi",
"join_permissions": "Permessi di adesione",
"set_join_permissions": "Imposta i permessi di adesione",
"get_link": "Ottieni il collegamento",
"add_people": "Aggiungi persone",
"link_copied": "Collegamento copiato!",
"invite_description": "Scegli da un elenco o cerca per identificativo di account",
"status_creating": "Creazione della stanza",
"status_avatar_total": "Caricamento dellavatar: {conteggio} di {totale}",
"status_avatar": "Caricamento dellavatar: {count}",
"create": "Crea",
"public_description": "Ottieni un collegamento da condividere",
"new_room": "Nuova stanza",
"invite_info": "Solo le persone aggiunte",
"join_permissions_info": "Questi permessi determinano come le persone possono entrare nella stanza e quanto facilmente gli altri possono essere invitati. Possono essere cambiati in qualsiasi momento.",
"public_info": "Chiunque abbia un collegamento"
},
"device_list": {
"title": "DISPOSITIVI",
"blocked": "Bloccato",
"verified": "Verificato",
"not_verified": "Non verificato"
},
"login": {
"title": "Accesso",
"username": "Nome utente (es: marta)",
"password": "Inserisci la password",
"password_required": "La password è richiesta",
"login": "Accedi",
"create_room": "Registrati e crea una stanza",
"or": "O",
"username_required": "Il nome utente è richiesto"
},
"profile": {
"title": "Il mio profilo",
"temporary_identity": "Questa identità è temporanea. Imposta una password per usarla di nuovo",
"set_password": "Imposta una password",
"select_language": "Lingua",
"password_old": "Vecchia password",
"password_repeat": "Ripeti la nuova password",
"display_name": "Nome visualizzato",
"change_name": "Cambia il nome",
"change_password": "Cambia la password",
"password_new": "Nuova password"
},
"profile_info_popup": {
"you_are": "Sei",
"identity_temporary": "{displayName}",
"edit_profile": "Modifica il profilo",
"logout": "Esci",
"want_more": "Vuoi di più?",
"identity": "{displayName}",
"new_room": "+ nuova stanza",
"powered_by": "Questa stanza è alimentata da {product}. Scopri di più su {productLink} o vai avanti e crea unaltra stanza!"
},
"join": {
"title": "Benvenuto/a in {roomName}",
"user_name_label": "Nome utente",
"shared_computer": "Questo è un dispositivo condiviso",
"joining_as": "Ti stai unendo come:",
"join": "Unisciti alla stanza",
"join_guest": "Unisciti come ospite",
"status_joining": "Unendosi alla stanza…",
"join_failed": "Impossibile unirsi alla stanza.",
"status_logging_in": "Accesso in corso…"
},
"invite": {
"title": "Aggiungi amici",
"done": "Finito",
"status_error": "Impossibile invitare uno o più amici!",
"status_inviting": "Invita lamico {index} di {count}",
"send_invites_to": "Invia inviti a"
},
"leave": {
"title_public": "Arrivederci, {user}",
"text_public": "Puoi sempre unirti di nuovo a questa stanza se conosci il collegamento.",
"title_invite": "Vuoi davvero andartene?",
"text_invite": "Questa stanza è chiusa. Non puoi rientrare senza un permesso speciale.",
"create_account": "crea un account",
"go_back": "Torna indietro",
"leave": "Lascia",
"text_public_lastroom": "Se vuoi unirti di nuovo a questa stanza, puoi farlo con una nuova identità. Per mantenere {user}, {action}."
},
"purge_room": {
"info": "Tutti i membri e i messaggi saranno rimossi. Questa azione non può essere annullata.",
"button": "Elimina",
"n_seconds": "{seconds} secondi",
"deleting": "Eliminazione della stanza:",
"notified": "Abbiamo avvisato i membri.",
"room_deletion_notice": "È ora di dire addio! Questa stanza è stata eliminata da {user}. Si autodistruggerà in pochi secondi.",
"title": "Eliminare la stanza?",
"self_destruct": "La stanza si autodistruggerà in pochi secondi."
},
"goodbye": {
"room_deleted": "Stanza eliminata.",
"close_tab": "Chiudi la scheda del browser",
"view_other_rooms": "Visualizza le altre stanze"
},
"room_info": {
"title": "Dettagli della stanza",
"created_by": "Creata da {user}",
"permissions": "Permessi di adesione",
"join_invite": "Solo persone aggiunte",
"join_public": "Chiunque abbia un collegamento",
"link_copied": "Collegamento copiato!",
"purge": "Elimina la stanza",
"members": "Membri",
"user": "{user}",
"user_you": "{user} (tu)",
"hide_all": "Nascondi",
"show_all": "Mostra tutto >",
"leave_room": "Lascia",
"scan_code": "Scansiona per entrare nella stanza",
"version_info": "Realizzato da Guardian Project. Versione: {version}",
"copy_link": "Copia il collegamento di invito"
},
"voice_recorder": {
"failed_to_record": "Impossibile registrare laudio",
"not_supported_title": "Non supportato",
"not_supported_text": "Sfortunatamente, questo browser non supporta la registrazione audio.",
"swipe_to_cancel": "Scorri per annullare",
"release_to_cancel": "Rilascia per annullare"
},
"power_level": {
"admin": "amministratore",
"moderator": "moderatore",
"default": "predefinito",
"custom": "personalizzato ({level})",
"restricted": "ristretto"
},
"fallbacks": {
"audio_file": "File audio",
"download_name": "Scaricamento",
"video_file": "File video",
"original_text": "<testo originale>"
},
"language_display_name": "italiano",
"room_info_sheet": {
"this_room": "Questa stanza",
"view_details": "Visualizza i dettagli"
}
}

View file

@ -1,4 +1,8 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"message": {
"user_changed_guest_access_open": "{user} tillot gjester å ta del i rommet",
"user_powerlevel_change_from_to": "{user} fra {powerOld} til {powerNew}",
@ -67,7 +71,7 @@
"join": "Ta del i rom",
"status_joining": "Tar del i rom…",
"status_logging_in": "Logger inn …",
"join_guest": "Ta del som gjest",
"enter_room": "",
"title": "Velkommen til {roomName}"
},
"profile_info_popup": {
@ -81,6 +85,10 @@
"password_new": "Nytt passord",
"password_old": "Gammelt passord",
"select_language": "Språk",
"set_language": "",
"language_description": "",
"dont_see_yours": "",
"tell_us": "",
"change_password": "Endre passord",
"change_name": "Endre navn",
"set_password": "Sett passord",
@ -140,6 +148,7 @@
"login": "Logg inn",
"send": "Send",
"ok": "OK",
"done": "",
"cancel": "Avbryt",
"download": "last ned",
"delete": "Slett",
@ -147,5 +156,5 @@
"reply": "Svar",
"start_private_chat": "Privat sludring med denne brukeren"
},
"language_display_name": "Engelsk"
}
"language_display_name": "Norsk"
}

View file

@ -1,4 +1,8 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"invite": {
"title": "Adiciona amigos",
"done": "Feito",
@ -20,6 +24,7 @@
"delete": "Excluir",
"download": "Baixar",
"ok": "OK",
"done": "",
"cancel": "Cancela",
"send": "Envia",
"back": "RETORNA",
@ -132,6 +137,10 @@
"change_name": "Altere o nome",
"change_password": "Altere a senha",
"select_language": "Idioma",
"set_language": "",
"language_description": "",
"dont_see_yours": "",
"tell_us": "",
"password_old": "Senha antiga",
"password_new": "Nova senha",
"password_repeat": "Repita a nova senha",
@ -150,10 +159,10 @@
"join": {
"title": "Bem-vindo ao {roomName}",
"user_name_label": "Nome do usuário",
"shared_computer": "Este é um dispositivo compartilhado",
"remember_me": "",
"joining_as": "Você está entrando como:",
"join": "Entrar na sala",
"join_guest": "Entrar como um convidado",
"enter_room": "",
"status_logging_in": "Fazendo login...",
"status_joining": "Entrando na sala...",
"join_failed": "Houve uma falha ao entrar na sala."

View file

@ -1,6 +1,11 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"menu": {
"ok": "OK",
"done": "",
"loading": "Se încarcă {appName}",
"undo": "Anulează",
"new_room": "Cameră nouă",
@ -89,10 +94,10 @@
"join_failed": "Nu a reușit să intre în cameră.",
"status_joining": "Intrarea în cameră...",
"status_logging_in": "Autentificare...",
"join_guest": "Alăturați-vă ca invitat",
"enter_room": "",
"join": "Alăturați-vă camerei",
"joining_as": "Vă înscrieți ca:",
"shared_computer": "Acesta este un dispozitiv partajat",
"remember_me": "",
"user_name_label": "Numele utilizatorului",
"title": "Bine ați venit la {roomName}"
},
@ -112,6 +117,10 @@
"password_new": "Parolă nouă",
"password_old": "Parolă veche",
"select_language": "Limbă",
"set_language": "",
"language_description": "",
"dont_see_yours": "",
"tell_us": "",
"change_password": "Schimbați parola",
"change_name": "Schimbă numele",
"set_password": "Setați parola",

View file

@ -1,6 +1,11 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"menu": {
"ok": "හරි",
"done": "",
"download": "බාගන්න",
"edit": "සංස්කරණය",
"reply": "පිලිතුර",

View file

@ -1,7 +1,12 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"language_is_rtl": true,
"menu": {
"ok": "تامام",
"done": "",
"download": "چۈشۈرۈش",
"delete": "ئۆچۈرۈش",
"edit": "تەھرىر",
@ -101,10 +106,10 @@
"join_failed": "مۇنازىرە ئۆيىگە قوشۇلۇش مەغلۇب بولدى.",
"status_joining": "مۇنازىرىگە كىرىش...",
"status_logging_in": "كىرىش ...",
"join_guest": "مېھمان سۈپىتىدە قاتنىشىڭ",
"enter_room": "",
"join": "مۇنازىرىگە قوشۇلۇڭ",
"joining_as": "سىز تۆۋەندىكىدەك قاتنىشىۋاتىسىز:",
"shared_computer": "بۇ ئورتاق ئىشلىتىلىدىغان ئۈسكۈنە",
"remember_me": "",
"user_name_label": "قوللانغۇچى ئىسمى",
"title": "{ياتاق ئىسمى} غا خۇش كەپسىز"
},
@ -198,6 +203,10 @@
"password_new": "يېڭى پارول",
"password_old": "كونا پارول",
"select_language": "تىل",
"set_language": "",
"language_description": "",
"dont_see_yours": "",
"tell_us": "",
"change_password": "پارولنى ئۆزگەرتىڭ",
"change_name": "ئىسىم ئۆزگەرتىش",
"set_password": "پارول بەلگىلەڭ",

View file

@ -1,4 +1,8 @@
{
"project": {
"name": "Convene",
"tag_line": ""
},
"fallbacks": {
"download_name": "下载",
"original_text": "<原文>",
@ -112,6 +116,7 @@
"start_private_chat": "与该用户私人聊天",
"logout": "退出",
"ok": "好的",
"done": "",
"reply": "回复",
"back": "返回",
"new_room": "新的聊天室",
@ -159,10 +164,10 @@
"join": {
"status_joining": "正在加入聊天室...",
"status_logging_in": "正在登录中...",
"join_guest": "以访客身份加入",
"enter_room": "",
"join": "加入聊天室",
"joining_as": "您以以下身份加入:",
"shared_computer": "这是一台共享设备",
"remember_me": "",
"user_name_label": "用户名",
"title": "欢迎来到 {roomName}",
"join_failed": "加入聊天室失败。"
@ -177,7 +182,11 @@
"set_password": "设置密码",
"temporary_identity": "这个身份是暂时的。为了再次使用这个暂时身份,请设置密码",
"title": "我的简历",
"select_language": "语言"
"select_language": "语言",
"set_language": "",
"language_description": "",
"dont_see_yours": "",
"tell_us": ""
},
"new_room": {
"status_avatar": "正在上传头像:{count}",

View file

@ -68,8 +68,8 @@
</v-select>
<v-checkbox
class="mt-0"
v-model="sharedComputer"
:label="$t('join.shared_computer')"
v-model="rememberMe"
:label="$t('join.remember_me')"
/>
</v-col>
</v-row>
@ -287,12 +287,12 @@ export default {
}
return true;
},
sharedComputer: {
rememberMe: {
get: function () {
return !this.$store.state.useLocalStorage;
},
set: function (sharedComputer) {
this.$store.commit("setUseLocalStorage", !sharedComputer);
set: function (rememberMe) {
this.$store.commit("setUseLocalStorage", !rememberMe);
},
},
},

View file

@ -1,71 +1,41 @@
<template>
<div class="join-root">
<div v-if="!waitingForInfo && !waitingForMembership" class="text-center">
<v-btn
class="btn-login"
text
small
@click.stop="handleLogin"
:loading="loading"
v-if="!currentUser"
>{{ $t("menu.login") }}</v-btn
>
<div class="join-room" v-if="!waitingForInfo && !waitingForMembership">
<div class="join-enter-room">
<div>
<div class="text-center">
<v-avatar class="join-avatar">
<v-img v-if="roomAvatar" :src="roomAvatar" />
<span v-else class="white--text headline">
{{roomName.substring(0, 1).toUpperCase() }}
</span>
</v-avatar>
<div class="join-welcome font-weight-bold">
{{ $t("join.title") }}
</div>
<div class="join-title">
{{ roomName }}
</div>
</div>
<hr class="my-10 join-line">
<div class="font-weight-black mb-2" v-if="!currentUser"> Choose a name to use.</div>
<v-avatar class="join-avatar">
<v-img v-if="roomAvatar" :src="roomAvatar" />
<span v-else class="white--text headline">{{
roomName.substring(0, 1).toUpperCase()
}}</span>
</v-avatar>
<div class="join-title">
{{ $t("join.title", { roomName: roomName }) }}
</div>
<div class="join-message">
<!-- Join the group chat in a web browser or with the Keanu app. -->
</div>
<v-container class="join-user-info">
<v-row v-if="canEditProfile">
<v-col class="flex-grow-0 flex-shrink-0">
<v-col cols="10" sm="7">
<v-text-field
solo
@click.native.stop="{}"
v-model="selectedProfile.name"
></v-text-field>
<v-checkbox class="mt-0" v-model="rememberMe" :label="$t('join.remember_me')" />
</v-col>
<v-col cols="2" sm="5">
<v-avatar @click="showAvatarPickerList">
<v-img v-if="selectedProfile" :src="selectedProfile.image" />
</v-avatar>
</v-col>
<v-col class="flex-shrink-1 flex-grow-1">
<v-select
ref="avatar"
:items="availableAvatars"
cache-items
:label="$t('join.user_name_label')"
outlined
dense
@change="selectAvatar"
:value="availableAvatars[0]"
single-line
>
<template v-slot:selection>
<v-text-field
background-color="transparent"
solo
flat
hide-details
@click.native.stop="
{
}
"
v-model="selectedProfile.name"
></v-text-field>
</template>
<template v-slot:item="data">
<v-avatar size="32">
<v-img :src="data.item.image" />
</v-avatar>
<div class="ms-2">{{ data.item.name }}</div>
</template>
</v-select>
<v-checkbox class="mt-0" v-model="sharedComputer" :label="$t('join.shared_computer')" />
</v-col>
</v-row>
<v-row v-else>
<v-row v-else class="text-center">
<v-col>
{{ $t("join.joining_as") }}
<div style="display: inline-block">
@ -79,52 +49,79 @@
{{ userDisplayName }}
</v-col>
</v-row>
</v-container>
<!--<v-btn
class="btn-light"
large
block
@click.stop="handleOpenApp"
:loading="loading"
>Open Keanu app</v-btn
>
<v-btn
class="btn-dark"
large
@click.stop="handleJoin"
:loading="loading"
v-if="!currentUser"
>{{ $t("join.enter_room") }}</v-btn
>
<v-btn
class="btn-dark"
large
block
@click.stop="handleJoin"
:loading="loading"
v-else
>{{ $t("join.join") }}</v-btn
>
<div class="join-or-divider">OR</div> -->
<div v-if="loadingMessage" class="text-center">{{ loadingMessage }}</div>
</div>
</div>
<v-btn
class="btn-dark"
large
block
@click.stop="handleJoin"
:loading="loading"
v-if="!currentUser"
>{{ $t("join.join_guest") }}</v-btn
>
<v-btn
class="btn-dark"
large
block
@click.stop="handleJoin"
:loading="loading"
v-else
>{{ $t("join.join") }}</v-btn
>
<div class="join-lang">
<h3 class="mb-2">{{ $t("profile.select_language") }}</h3>
<v-row class="align-center">
<v-col v-for="(lang,key) in getSortedLangByActive.slice(0, 4)" :key="key">
<span :class="$i18n.locale==lang.value?'active':''" > {{lang.text}} </span>
</v-col>
<v-col>
<v-btn
class="language-more"
@click="showSelectLanguageDialog = true"
>
<v-icon >language</v-icon><v-icon >more_horiz</v-icon>
</v-btn>
</v-col>
<SelectLanguageDialog
v-model="showSelectLanguageDialog"
v-on:close="showSelectLanguageDialog = false"
/>
</v-row>
</div>
<!-- <div class="join-privacy">
Enhance your physical privacy. <a href="#">Learn how</a>
</div> -->
<div v-if="loadingMessage">{{ loadingMessage }}</div>
<div class="d-flex justify-center align-center mt-9">
<div class="mr-2">
<img
src="@/assets/logo.svg"
width="32"
height="32"
class="d-inline"
/>
</div>
<div>
<strong>{{ $t("project.name") }}</strong>
{{ $t("project.tag_line") }}
</div>
</div>
</div>
</template>
<script>
import util from "../plugins/utils";
import LanguageMixin from "./languageMixin";
import SelectLanguageDialog from "./SelectLanguageDialog.vue";
export default {
name: "Join",
mixins: [LanguageMixin],
components: {
SelectLanguageDialog,
},
data() {
return {
roomName: null,
@ -135,20 +132,10 @@ export default {
waitingForMembership: false,
availableAvatars: [],
selectedProfile: null,
showEditDisplaynameDialog: false,
showSelectLanguageDialog: false,
};
},
mounted() {
this.$matrix.on("Room.myMembership", this.onMyMembership);
this.availableAvatars = util.getDefaultAvatars();
this.selectAvatar(
this.availableAvatars[
Math.floor(Math.random() * this.availableAvatars.length)
]
);
},
destroyed() {
this.$matrix.off("Room.myMembership", this.onMyMembership);
},
computed: {
currentUser() {
return this.$store.state.auth.user;
@ -204,14 +191,25 @@ export default {
.substring(0, 1)
.toUpperCase();
},
sharedComputer: {
rememberMe: {
get: function () {
return !this.$store.state.useLocalStorage;
},
set: function (sharedComputer) {
this.$store.commit("setUseLocalStorage", !sharedComputer);
set: function (rememberMe) {
this.$store.commit("setUseLocalStorage", !rememberMe);
},
},
getSortedLangByActive() {
const context = this;
return this.getLanguages().sort(function(lang) {
if(lang.value == context.$i18n.locale) {
return -1;
} else {
return 1;
}
});
}
},
watch: {
roomId: {
@ -265,7 +263,6 @@ export default {
},
},
},
methods: {
getRoomInfo() {
if (this.roomId.startsWith("#")) {
@ -306,10 +303,6 @@ export default {
}
},
handleLogin() {
this.$navigation.push({ path: "/login" }, 1);
},
handleOpenApp() {
console.log("Open app..."); //TODO
},
@ -408,9 +401,21 @@ export default {
this.$refs.avatar.$refs.input.click();
},
},
mounted() {
this.$matrix.on("Room.myMembership", this.onMyMembership);
this.availableAvatars = util.getDefaultAvatars();
this.selectAvatar(
this.availableAvatars[
Math.floor(Math.random() * this.availableAvatars.length)
]
);
},
destroyed() {
this.$matrix.off("Room.myMembership", this.onMyMembership);
}
};
</script>
<style lang="scss">
@import "@/assets/css/join.scss";
@import "@/assets/css/join.scss";
</style>

View file

@ -1,5 +1,10 @@
<template>
<v-dialog v-model="showDialog" v-show="room" class="ma-0 pa-0" width="80%">
<v-dialog
v-model="showDialog"
v-show="room"
class="ma-0 pa-0"
:width="$vuetify.breakpoint.smAndUp ? '688px' : '80%'"
>
<div class="dialog-content text-center">
<template v-if="roomJoinRule == 'public'">
<h1>👋</h1>
@ -142,4 +147,4 @@ export default {
<style lang="scss">
@import "@/assets/css/chat.scss";
</style>
</style>

View file

@ -61,8 +61,8 @@
></v-text-field>
<v-checkbox
class="mt-0"
v-model="sharedComputer"
:label="$t('join.shared_computer')"
v-model="rememberMe"
:label="$t('join.remember_me')"
/>
<v-btn
:disabled="!isValid || loading"
@ -114,12 +114,12 @@ export default {
showCloseButton() {
return this.$navigation && this.$navigation.canPop();
},
sharedComputer: {
rememberMe: {
get: function () {
return !this.$store.state.useLocalStorage;
},
set: function (sharedComputer) {
this.$store.commit("setUseLocalStorage", !sharedComputer);
set: function (rememberMe) {
this.$store.commit("setUseLocalStorage", !rememberMe);
},
},
},

View file

@ -92,6 +92,18 @@ export default {
.card {
padding: 0px !important;
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
.card[data-state="close"] {
display: none;
}
}
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
.bottom-sheet-content[data-state="closed"] {
display: none;
}
}
</style>

View file

@ -70,7 +70,11 @@
</v-container>
<!-- edit password dialog -->
<v-dialog v-model="showEditPasswordDialog" class="ma-0 pa-0" width="50%">
<v-dialog
v-model="showEditPasswordDialog"
class="ma-0 pa-0"
:width="$vuetify.breakpoint.smAndUp ? '940px' : '80%'"
>
<v-card :disabled="settingPassword">
<v-card-title>{{ $t("profile.change_password") }}</v-card-title>
<v-card-text>
@ -119,7 +123,11 @@
</v-dialog>
<!-- edit display name dialog -->
<v-dialog v-model="showEditDisplaynameDialog" class="ma-0 pa-0" width="50%">
<v-dialog
v-model="showEditDisplaynameDialog"
class="ma-0 pa-0"
:width="$vuetify.breakpoint.smAndUp ? '940px' : '80%'"
>
<v-card>
<v-card-title>{{ $t("profile.display_name") }}</v-card-title>
<v-card-text>

View file

@ -3,7 +3,7 @@
v-model="showDialog"
content-class="profile-info-popup"
class="ma-0 pa-0"
:width="$vuetify.breakpoint.smAndUp ? '688px' : '95%'"
:width="$vuetify.breakpoint.smAndUp ? '940px' : '95%'"
>
<v-card flat>
<v-card-text>

View file

@ -3,12 +3,17 @@
class="ma-0 pa-0"
v-bind="{ ...$props, ...$attrs }"
v-on="$listeners"
:width="$vuetify.breakpoint.smAndUp ? '688px' : '80%'"
:width="$vuetify.breakpoint.smAndUp ? '940px' : '90%'"
>
<v-card class="dialog-card">
<v-card-title class="dialog-title"
><h3>{{ $t("profile.select_language") }}</h3></v-card-title
>
<v-card-title class="dialog-title d-block">
<h2>{{ $t("profile.set_language") }}</h2>
<div class="subtitle-1">{{ $t("profile.language_description") }}</div>
<div class="subtitle-1">
{{ $t("profile.dont_see_yours") }}
<a href="https://letsconvene.im/">{{ $t("profile.tell_us") }}</a>
</div>
</v-card-title>
<v-card-text>
<v-select
v-model="$i18n.locale"
@ -26,9 +31,9 @@
color="black"
depressed
block
class="filled-button"
class="btn-dark"
@click="$emit('close')"
>{{ $t("menu.ok") }}</v-btn
>{{ $t("menu.done") }}</v-btn
>
</v-card-actions>
</v-card>
@ -36,20 +41,10 @@
</template>
<script>
import LanguageMixin from "./languageMixin";
export default {
data() {
return {
languages: [],
};
},
mounted() {
for (const locale of Object.keys(this.$i18n.messages)) {
this.languages.push({
text: this.$i18n.messages[locale].language_display_name || locale,
value: locale,
});
}
},
mixins: [LanguageMixin],
};
</script>

View file

@ -0,0 +1,21 @@
export default {
data() {
return {
languages: [],
activeLang:null,
}
},
methods: {
getLanguages() {
return this.languages;
}
},
mounted() {
for (const locale of Object.keys(this.$i18n.messages)) {
this.languages.push({
text: this.$i18n.messages[locale].language_display_name || locale,
value: locale,
});
}
}
}