diff --git a/package.json b/package.json index 1da1202..5adbd1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "keanuapp-weblite", - "version": "0.1.13", + "version": "0.1.14", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/package.json.bak b/package.json.bak index 420d720..1da1202 100644 --- a/package.json.bak +++ b/package.json.bak @@ -1,6 +1,6 @@ { "name": "keanuapp-weblite", - "version": "0.1.12", + "version": "0.1.13", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/src/App.vue b/src/App.vue index d57b87c..6fe1f74 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,28 @@ + + + + + + +
{{$t('menu.loading', {appName: appName})}}
+
+
+
@@ -11,6 +33,11 @@ import config from "./assets/config"; export default { name: "App", + data() { + return { + loading: true, + }; + }, beforeMount() { // Set language this.$i18n.locale = this.$store.state.language || "en"; @@ -32,13 +59,21 @@ export default { }) .catch((error) => { console.log("Error creating client", error); + }) + .finally(() => { + this.loading = false; }); + } else { + this.loading = false; } }, computed: { currentUser() { return this.$store.state.auth.user; }, + appName() { + return config.appName; + }, title() { var title = this.$t(config.appName); if (this.$matrix.notificationCount > 0) { diff --git a/src/assets/css/chat.scss b/src/assets/css/chat.scss index 73a17fe..44ed99b 100644 --- a/src/assets/css/chat.scss +++ b/src/assets/css/chat.scss @@ -215,7 +215,7 @@ $admin-fg: white; } position: relative; .bubble { - background-color: #eeeeee; + background-color: #ededed; border-radius: 0px 10px 10px 10px; [dir="rtl"] & { border-radius: 10px 0px 10px 0px; @@ -223,7 +223,7 @@ $admin-fg: white; padding: 8px; border-width: 1px !important; border-style: solid !important; - border-color: #eeeeee !important; + border-color: #ededed !important; display: inline-block; position: relative; max-width: 70%; @@ -554,19 +554,19 @@ $admin-fg: white; .quick-reaction-container { display: inline-block; - position: absolute; - top: -12px; - left: 50px; + position: relative; + vertical-align: bottom; + transform: translateX(-20px) translateX(-100%); + top: 18px; z-index: 2; - background-color: #000000; - border: 2px solid white; + background-color: #f7f7f7; + border: 1px solid rgba(white, 0.9); border-radius: 13px; height: 26px; width: max-content; padding: 0px 6px; .messageOut & { - left: unset; - right: 50px; + transform: translateX(20px) translateX(100%); } .quick-reaction { position: relative; @@ -575,7 +575,7 @@ $admin-fg: white; padding: 1px; font-size: 10px; &:hover { - border: 1px solid #888888; + //border: 1px solid #888888; background-color: #e2e2e2; } .quick-reaction-count { @@ -584,7 +584,7 @@ $admin-fg: white; } } .sent .quick-reaction-count { - color: white; + color: black; font-weight: 700; // background-color: palegreen; } @@ -688,7 +688,7 @@ $admin-fg: white; } .room-info { - background-color: #e0e0e0; + background-color: #e8e8e8; height: 100%; .chat-header { background-color: transparent; diff --git a/src/assets/css/main.scss b/src/assets/css/main.scss index 13a5445..1cd6a28 100644 --- a/src/assets/css/main.scss +++ b/src/assets/css/main.scss @@ -78,7 +78,8 @@ body { position:absolute; top:0; bottom:0; right:0; left:0; } color: white; border: none; border-radius: $chat-standard-padding / 2; - height: $chat-standard-padding; + height: $chat-standard-padding !important; + min-height: $chat-standard-padding !important; margin-top: $chat-standard-padding-xs; margin-bottom: $chat-standard-padding-xs; } diff --git a/src/assets/translations/bo.json b/src/assets/translations/bo.json index a7017aa..5c1218f 100644 --- a/src/assets/translations/bo.json +++ b/src/assets/translations/bo.json @@ -69,7 +69,7 @@ "download": "ཕབ་ལེན།", "delete": "སུབས།", "edit": "ཕྱོགས་སྒྲིག", - "ok": "Ok", + "ok": "OK", "send": "ཐོངས།", "back": "ཕྱིར་ལོག", "cancel": "ཕྱིར་འཐེན།", @@ -184,7 +184,7 @@ "create_account": "ཁ་བྱང་ཞིག་བཟོས།", "text_invite": "ཚོགས་པ་འདིར་ཟྭ་བརྒྱབ་འདུག དམིགས་བསལ་གྱི་ཆོག་མཆན་མེད་པར། ཁྱེད་རང་བསྐྱར་དུ་འཛུལ་མི་ཐུབ།", "title_invite": "ཁྱེད་རང་ཕྱིར་ཐོན་རྒྱུ་གཏན་འཁེལ་བ་ཡིན་ནམ།", - "text_public_lastroom": "ཁྱེད་རང་ཚོགས་པ་འདིའི་ནང་དུ་བསྐྱར་དུ་འཛུལ་འདོད་ཚེ། ངོ་བོ་གསར་བ་ཞིག་གི་མིང་ཐོག་ནས་འཛུལ་ཆོག {user}་ཉར་བར། {action}", + "text_public_lastroom": "ཁྱེད་རང་ཚོགས་པ་འདིའི་ནང་དུ་བསྐྱར་དུ་འཛུལ་འདོད་ཚེ། ངོ་བོ་གསར་བ་ཞིག་གི་མིང་ཐོག་ནས་འཛུལ་ཆོག {user}་ཉར་བར། {action}.", "text_public": "གལ་ཏེ་ཁྱེད་ཀྱིས་འབྲེལ་ཐག་དེ་ཧ་གོ་ཚེ། ག་དུས་ཡིན་ཡང་། ཁ་བརྡ་ཁང་དུ་འཛུལ་ཆོག", "title_public": "{user} ག་ལེེར་ཕེབས།" }, diff --git a/src/assets/translations/en.json b/src/assets/translations/en.json index d8f6962..5606baf 100644 --- a/src/assets/translations/en.json +++ b/src/assets/translations/en.json @@ -1,217 +1,219 @@ { - "language_display_name": "English", - "Keanu Weblite": "Keanu Weblite", - "menu": { - "start_private_chat": "Private chat with this user", - "reply": "Reply", - "edit": "Edit", - "delete": "Delete", - "download": "Download", - "ok": "Ok", - "cancel": "Cancel", - "send": "Send", - "back": "BACK", - "login": "Login", - "logout": "Logout", - "new_room": "New Room", - "undo": "Undo" - }, - "message": { - "you": "You", - "user_created_room": "{user} created the room", - "user_aliased_room": "{user} made the room alias {alias}", - "user_changed_display_name": "{user} changed display name to {displayName}", - "user_changed_avatar": "{user} changed the avatar", - "user_changed_room_avatar": "{user} changed the room avatar", - "user_encrypted_room": "{user} made the room encrypted", - "user_was_invited": "{user} was invited to the chat...", - "user_joined": "{user} joined the chat", - "user_left": "{user} left the chat", - "user_said": "{user} said:", - "file_prefix": "File: ", - "edited": "(edited)", - "download_progress": "{percentage}% downloaded", - "upload_progress": "Uploaded {count}", - "upload_progress_with_total": "Uploaded {count} of {total}", - "user_changed_room_history": "{user} made room history {type}", - "room_history_world_readable": "readable by anyone", - "room_history_shared": "readable to all members in the room", - "room_history_invited": "readable to members from when they were invited", - "room_history_joined": "readable to members from when they joined", - "user_changed_join_rules": "{user} made the room {type}", - "room_joinrule_invite": "invite only", - "room_joinrule_public": "public", - "user_changed_room_name": "{user} changed room name to {name}", - "user_changed_room_topic": "{user} changed room topic to {topic}", - "unread_messages": "Unread messages", - "replying_to_event": "REPLYING TO EVENT: {message}", - "your_message": "Your message...", - "scale_image": "Scale image", - "user_is_typing": "{user} is typing", - "users_are_typing": "{count} members are typing", - "room_powerlevel_change": "{user} changed powerlevel of {changes}", - "user_powerlevel_change_from_to": "{user} from {powerOld} to {powerNew}", - "user_changed_guest_access_closed": "{user} disallowed guests to join the room", - "user_changed_guest_access_open": "{user} allowed guests to join the room" - }, - "room": { - "members": "no members | 1 member | {count} members", - "leave": "Leave", - "purge_set_room_state": "Setting room state", - "purge_redacting_events": "Redacting events", - "purge_removing_members": "Removing members", - "purge_failed": "Failed to purge room!", - "room_list_invites": "Invites", - "room_list_rooms": "Rooms" - }, - "room_welcome": { - "info": "Welcome! Here are a few things to know about your room:", - "encrypted": "Messages are end-to-end encrypted.", - "room_history_is": "Room history is {type}.", - "room_history_joined": "People can only see the messages sent after they join.", - "join_public": "Anyone can join by opening this link: {link}.", - "join_invite": "Only people you invite can join.", - "info_permissions": "You can change ‘join permissions’ at any time in the room settings.", - "got_it": "Got it" - }, - "new_room": { - "new_room": "New Room", - "create": "Create", - "next": "Next", - "name_room": "Name group", - "room_topic": "Add a description if you like", - "join_permissions": "Join permissions", - "set_join_permissions": "Set Join Permissions", - "join_permissions_info": "These permissions determine how people can join the group and how easily others can be invited. They can be changed anytime.", - "get_link": "Get link", - "add_people": "Add people", - "link_copied": "Link copied!", - "public_info": "Anyone with a link", - "public_description": "Get a link to share", - "invite_info": "Only people added", - "invite_description": "Choose from a list or search by account ID", - "status_creating": "Creating room", - "status_avatar_total": "Uploading avatar: {count} of {total}", - "status_avatar": "Uploading avatar: {count}" - }, - "device_list": { - "title": "DEVICES", - "blocked": "Blocked", - "verified": "Verified", - "not_verified": "Not verified" - }, - "login": { - "title": "Login", - "username": "Username", - "password": "Password", - "username_required": "Username is required", - "password_required": "Password is required", - "login": "Login" - }, - "profile": { - "title": "My Profile", - "temporary_identity": "This identity is temporary. Set a password to use it again", - "set_password": "Set password", - "change_name": "Change name", - "change_password": "Change password", - "select_language": "Language", - "password_old": "Old password", - "password_new": "New password", - "password_repeat": "Repeat new password", - "display_name": "Display name" - }, - "profile_info_popup": { - "you_are": "You are", - "identity": "{displayName}", - "identity_temporary": "{displayName}", - "edit_profile": "Edit profile", - "logout": "Logout", - "want_more": "Want more?", - "powered_by": "This room is powered by {product}. Learn more at {productLink} or go ahead and create another room!", - "new_room": "+ New room" - }, - "join": { - "title": "Welcome to {roomName}", - "user_name_label": "User name", - "shared_computer": "Using a shared computer", - "joining_as": "You are joining as:", - "join": "Join room", - "join_guest": "Join as guest", - "status_logging_in": "Logging in...", - "status_joining": "Joining room...", - "join_failed": "Failed to join room." - }, - "invite": { - "title": "Add Friends", - "done": "Done", - "send_invites_to": "Send invites to", - "status_inviting": "Inviting friend {index} of {count}", - "status_error": "Failed to invite one or or more friends!" - }, - "leave": { - "title_public": "Goodbye, {user}", - "text_public": "You can always join this room again if you know the link.", - "text_public_lastroom": "If you want to join this group again, you can join under a new identity. To keep {user}, {action}.", - "title_invite": "Are you sure you want to leave?", - "text_invite": "This group is locked. You cannot rejoin without a special permission.", - "create_account": "create an account", - "go_back": "Go back", - "leave": "Leave" - }, - "purge_room": { - "title": "Delete room?", - "info": "All members and messages will be removed. This action cannot be undone.", - "button": "Delete", - "n_seconds": "{seconds} seconds", - "self_destruct": "Room will self destruct in seconds.", - "deleting": "Deleting room:", - "notified": "We've notified members.", - "room_deletion_notice": "Time to say goodbye! This room has been deleted by {user}. It will self destruct in seconds." - }, - "goodbye": { - "room_deleted": "Room deleted.", - "close_tab": "Close browser tab", - "view_other_rooms": "View other rooms" - }, - "room_info": { - "title": "Room Details", - "created_by": "Created by {user}", - "permissions": "Join Permissions", - "join_invite": "Only People Added", - "join_public": "Anyone with a link", - "copy_link": "Copy invite link", - "link_copied": "Link copied!", - "purge": "Delete room", - "members": "Members", - "user": "{user}", - "user_you": "{user} (you)", - "hide_all": "Hide", - "show_all": "Show all >", - "leave_room": "Leave", - "version_info": "Powered by Guardian Project. Version: {version}" - }, - "room_info_sheet": { - "this_room": "This group", - "view_details": "View details" - }, - "voice_recorder": { - "swipe_to_cancel": "Swipe to cancel", - "release_to_cancel": "Release to cancel", - "failed_to_record": "Failed to record audio", - "not_supported_title": "Not supported", - "not_supported_text": "Unfortunately, this browser does not support audio recording." - }, - "power_level": { - "admin": "administrator", - "moderator": "moderator", - "default": "default", - "custom": "custom ({level})", - "restricted": "restricted" - }, - "fallbacks": { - "audio_file": "Audio file", - "video_file": "Video file", - "original_text": "", - "download_name": "Download" - } -} \ No newline at end of file + "language_display_name": "English", + "Keanu Weblite": "Keanu Weblite", + "menu": { + "start_private_chat": "Private chat with this user", + "reply": "Reply", + "edit": "Edit", + "delete": "Delete", + "download": "Download", + "ok": "OK", + "cancel": "Cancel", + "send": "Send", + "back": "BACK", + "login": "Log in", + "logout": "Log out", + "new_room": "New Room", + "undo": "Undo", + "loading": "Loading {appName}" + }, + "message": { + "you": "You", + "user_created_room": "{user} created the room", + "user_aliased_room": "{user} made the room alias {alias}", + "user_changed_display_name": "{user} changed display name to {displayName}", + "user_changed_avatar": "{user} changed the avatar", + "user_changed_room_avatar": "{user} changed the room avatar", + "user_encrypted_room": "{user} made the room encrypted", + "user_was_invited": "{user} was invited to the chat…", + "user_joined": "{user} joined the chat", + "user_left": "{user} left the chat", + "user_said": "{user} said:", + "file_prefix": "File: ", + "edited": "(edited)", + "download_progress": "{percentage}% downloaded", + "upload_progress": "Uploaded {count}", + "upload_progress_with_total": "Uploaded {count} of {total}", + "user_changed_room_history": "{user} made room history {type}", + "room_history_world_readable": "readable by anyone", + "room_history_shared": "readable to all members in the room", + "room_history_invited": "readable to members from when they were invited", + "room_history_joined": "readable to members from when they joined", + "user_changed_join_rules": "{user} made the room {type}", + "room_joinrule_invite": "invite only", + "room_joinrule_public": "public", + "user_changed_room_name": "{user} changed room name to {name}", + "user_changed_room_topic": "{user} changed room topic to {topic}", + "unread_messages": "Unread messages", + "replying_to_event": "REPLYING TO EVENT: {message}", + "your_message": "Your message…", + "scale_image": "Scale image", + "user_is_typing": "{user} is typing", + "users_are_typing": "{count} members are typing", + "room_powerlevel_change": "{user} changed powerlevel of {changes}", + "user_powerlevel_change_from_to": "{user} from {powerOld} to {powerNew}", + "user_changed_guest_access_closed": "{user} disallowed guests to join the room", + "user_changed_guest_access_open": "{user} allowed guests to join the room" + }, + "room": { + "members": "no members | 1 member | {count} members", + "leave": "Leave", + "purge_set_room_state": "Setting room state", + "purge_redacting_events": "Redacting events", + "purge_removing_members": "Removing members", + "purge_failed": "Failed to purge room!", + "room_list_invites": "Invites", + "room_list_rooms": "Rooms" + }, + "room_welcome": { + "info": "Welcome! Here are a few things to know about your room:", + "encrypted": "Messages are end-to-end encrypted.", + "room_history_is": "Room history is {type}.", + "room_history_joined": "People can only see the messages sent after they join.", + "join_public": "Anyone can join by opening this link: {link}.", + "join_invite": "Only people you invite can join.", + "info_permissions": "You can change ‘join permissions’ at any time in the room settings.", + "got_it": "Got it" + }, + "new_room": { + "new_room": "New Room", + "create": "Create", + "next": "Next", + "name_room": "Name group", + "room_topic": "Add a description if you like", + "join_permissions": "Join permissions", + "set_join_permissions": "Set Join Permissions", + "join_permissions_info": "These permissions determine how people can join the group and how easily others can be invited. They can be changed anytime.", + "get_link": "Get link", + "add_people": "Add people", + "link_copied": "Link copied!", + "public_info": "Anyone with a link", + "public_description": "Get a link to share", + "invite_info": "Only people added", + "invite_description": "Choose from a list or search by account ID", + "status_creating": "Creating room", + "status_avatar_total": "Uploading avatar: {count} of {total}", + "status_avatar": "Uploading avatar: {count}" + }, + "device_list": { + "title": "Devices", + "blocked": "Blocked", + "verified": "Verified", + "not_verified": "Not verified" + }, + "login": { + "title": "Login", + "username": "Username", + "password": "Password", + "username_required": "Username is required", + "password_required": "Password is required", + "login": "Login" + }, + "profile": { + "title": "My Profile", + "temporary_identity": "This identity is temporary. Set a password to use it again", + "set_password": "Set password", + "change_name": "Change name", + "change_password": "Change password", + "select_language": "Language", + "password_old": "Old password", + "password_new": "New password", + "password_repeat": "Repeat new password", + "display_name": "Display name" + }, + "profile_info_popup": { + "you_are": "You are", + "identity": "{displayName}", + "identity_temporary": "{displayName}", + "edit_profile": "Edit profile", + "logout": "Log out", + "want_more": "Want more?", + "powered_by": "This room is powered by {product}. Learn more at {productLink} or go ahead and create another room!", + "new_room": "+ New room" + }, + "join": { + "title": "Welcome to {roomName}", + "user_name_label": "User name", + "shared_computer": "Using a shared computer", + "joining_as": "You are joining as:", + "join": "Join room", + "join_guest": "Join as guest", + "status_logging_in": "Logging in…", + "status_joining": "Joining room…", + "join_failed": "Failed to join room." + }, + "invite": { + "title": "Add Friends", + "done": "Done", + "send_invites_to": "Send invites to", + "status_inviting": "Inviting friend {index} of {count}", + "status_error": "Failed to invite one or or more friends!" + }, + "leave": { + "title_public": "Goodbye, {user}", + "text_public": "You can always join this room again if you know the link.", + "text_public_lastroom": "If you want to join this group again, you can join under a new identity. To keep {user}, {action}.", + "title_invite": "Are you sure you want to leave?", + "text_invite": "This group is locked. You cannot rejoin without a special permission.", + "create_account": "create an account", + "go_back": "Go back", + "leave": "Leave" + }, + "purge_room": { + "title": "Delete room?", + "info": "All members and messages will be removed. This action cannot be undone.", + "button": "Delete", + "n_seconds": "{seconds} seconds", + "self_destruct": "Room will self destruct in seconds.", + "deleting": "Deleting room:", + "notified": "We've notified members.", + "room_deletion_notice": "Time to say goodbye! This room has been deleted by {user}. It will self destruct in seconds." + }, + "goodbye": { + "room_deleted": "Room deleted.", + "close_tab": "Close browser tab", + "view_other_rooms": "View other rooms" + }, + "room_info": { + "title": "Room Details", + "created_by": "Created by {user}", + "permissions": "Join Permissions", + "join_invite": "Only People Added", + "join_public": "Anyone with a link", + "copy_link": "Copy invite link", + "link_copied": "Link copied!", + "purge": "Delete room", + "members": "Members", + "user": "{user}", + "user_you": "{user} (you)", + "hide_all": "Hide", + "show_all": "Show all >", + "leave_room": "Leave", + "version_info": "Powered by Guardian Project. Version: {version}", + "scan_code": "Scan to join the room" + }, + "room_info_sheet": { + "this_room": "This group", + "view_details": "View details" + }, + "voice_recorder": { + "swipe_to_cancel": "Swipe to cancel", + "release_to_cancel": "Release to cancel", + "failed_to_record": "Failed to record audio", + "not_supported_title": "Not supported", + "not_supported_text": "Unfortunately, this browser does not support audio recording." + }, + "power_level": { + "admin": "administrator", + "moderator": "moderator", + "default": "default", + "custom": "custom ({level})", + "restricted": "restricted" + }, + "fallbacks": { + "audio_file": "Audio file", + "video_file": "Video file", + "original_text": "", + "download_name": "Download" + } +} diff --git a/src/assets/translations/nb_NO.json b/src/assets/translations/nb_NO.json new file mode 100644 index 0000000..a262414 --- /dev/null +++ b/src/assets/translations/nb_NO.json @@ -0,0 +1,150 @@ +{ + "message": { + "user_changed_guest_access_open": "{user} tillot gjester å ta del i rommet", + "user_powerlevel_change_from_to": "{user} fra {powerOld} til {powerNew}", + "room_powerlevel_change": "{user} endret maktnivå for {changes}", + "room_history_world_readable": "lesbart for hvem som helst", + "room_history_shared": "lesbart for alle rommets medlemmer", + "user_left": "{user} forlot sludringen", + "user_joined": "{user} tok del i sludringen", + "user_was_invited": "{user} ble invitert til sludringen …", + "user_changed_room_avatar": "{user} endret romavataren", + "user_encrypted_room": "{user} gjorde rommet kryptert", + "user_changed_avatar": "{user} endret avataren", + "user_changed_display_name": "{user} endret visningsnavn til {displayName}", + "user_aliased_room": "{user} lagde et rom ved navn {alias}", + "your_message": "Din melding …", + "user_changed_room_topic": "{user} endret rom-emne til {topic}", + "room_joinrule_public": "offentlig", + "room_joinrule_invite": "kun ved invitasjon", + "upload_progress_with_total": "Opplastet {count} av {total}", + "upload_progress": "Opplastet {count}", + "download_progress": "{percentage}% nedlastet", + "edited": "(redigert)", + "file_prefix": "Fil: ", + "user_said": "{user} sa:", + "user_created_room": "{user} opprettet rommet", + "you": "Deg" + }, + "device_list": { + "title": "Enheter", + "not_verified": "Ikke bekreftet", + "verified": "Bekreftet", + "blocked": "Blokkert" + }, + "fallbacks": { + "original_text": "", + "video_file": "Videofil", + "audio_file": "Lydfil" + }, + "power_level": { + "restricted": "begrenset", + "default": "forvalg", + "moderator": "moderator", + "admin": "administrator" + }, + "voice_recorder": { + "release_to_cancel": "Slipp for å avbryte" + }, + "room_info_sheet": { + "this_room": "Denne gruppen", + "view_details": "Vis detaljer" + }, + "room_info": { + "hide_all": "Skjul", + "members": "Medlemmer", + "purge": "Slett rom", + "link_copied": "Lenke kopiert.", + "copy_link": "Kopier invitasjonslenke", + "created_by": "Opprettet av {user}", + "title": "Romdetaljer" + }, + "goodbye": { + "view_other_rooms": "Vis andre rom", + "room_deleted": "Rom slettet." + }, + "join": { + "join": "Ta del i rom", + "status_joining": "Tar del i rom…", + "status_logging_in": "Logger inn …", + "join_guest": "Ta del som gjest", + "title": "Velkommen til {roomName}" + }, + "profile_info_popup": { + "identity_temporary": "{displayName}", + "identity": "{displayName}", + "logout": "Logg ut", + "edit_profile": "Rediger profil", + "you_are": "Du er" + }, + "profile": { + "password_new": "Nytt passord", + "password_old": "Gammelt passord", + "select_language": "Språk", + "change_password": "Endre passord", + "change_name": "Endre navn", + "set_password": "Sett passord", + "title": "Min profil", + "display_name": "Visningsnavn", + "password_repeat": "Gjenta nytt passord" + }, + "login": { + "password_required": "Passord kreves", + "username_required": "Brukernavn kreves", + "password": "Passord", + "username": "Brukernavn" + }, + "new_room": { + "add_people": "Legg til folk", + "link_copied": "Lenke kopiert.", + "next": "Neste", + "create": "Opprett", + "new_room": "Nytt rom" + }, + "room_welcome": { + "room_history_is": "Romhistorikken er {type}.", + "encrypted": "Meldinger er ende-til-ende -kryptert.", + "got_it": "Skjønner", + "join_invite": "Kun folk du inviterer kan ta del." + }, + "room": { + "room_list_rooms": "Rom", + "room_list_invites": "Invitasjoner", + "purge_set_room_state": "Setter romtilstand", + "leave": "Forlat" + }, + "purge_room": { + "n_seconds": "{seconds} sekunder", + "button": "Slett", + "title": "Slett rom?" + }, + "leave": { + "go_back": "Gå tilbake", + "create_account": "opprett en konto", + "title_public": "Adjø, {user}" + }, + "invite": { + "status_inviting": "Inviterer venn {index} av {count}", + "send_invites_to": "Send invitasjoner til", + "done": "Ferdig", + "title": "Legg til venner" + }, + "menu": { + "logout": "Logg ut", + "back": "Tilbake", + "loading": "Laster inn {appName}", + "undo": "Angre", + "new_room": "Nytt rom", + "login": "Logg inn", + "send": "Send", + "ok": "OK", + "cancel": "Avbryt", + "download": "last ned", + "delete": "Slett", + "edit": "Rediger", + "reply": "Svar", + "start_private_chat": "Privat sludring med denne brukeren" + }, + "Keanu Weblite": "Keanu Weblite", + "language_display_name": "Engelsk" +} diff --git a/src/assets/translations/ro.json b/src/assets/translations/ro.json new file mode 100644 index 0000000..ba55973 --- /dev/null +++ b/src/assets/translations/ro.json @@ -0,0 +1,219 @@ +{ + "menu": { + "ok": "OK", + "loading": "Se încarcă {appName}", + "undo": "Anulează", + "new_room": "Cameră nouă", + "logout": "Ieșire", + "login": "Autentificare", + "back": "ÎNAPOI", + "send": "Trimiteți", + "cancel": "Anulează", + "download": "Descărcați", + "delete": "Ștergeți", + "edit": "Editați", + "reply": "Răspuns", + "start_private_chat": "Chat privat cu acest utilizator" + }, + "power_level": { + "restricted": "restricționat", + "custom": "personalizat ({nivel})", + "default": "implicit", + "moderator": "coordonator", + "admin": "administrator" + }, + "voice_recorder": { + "not_supported_text": "Din păcate, acest browser nu acceptă înregistrarea audio.", + "not_supported_title": "Nu se acceptă", + "failed_to_record": "Nu a reușit să înregistreze audio", + "release_to_cancel": "Eliberare pentru anulare", + "swipe_to_cancel": "Glisați pentru a anula" + }, + "room_info_sheet": { + "view_details": "Vezi detalii", + "this_room": "Acest grup" + }, + "room_info": { + "scan_code": "Scanare pentru a intra în cameră", + "version_info": "Realizat de Guardian Project. Versiune: {version}", + "leave_room": "Plecare", + "show_all": "Arată tot >", + "hide_all": "Ascundeți", + "user_you": "{user} (tu)", + "user": "{user}", + "members": "Membri", + "purge": "Ștergeți camera", + "link_copied": "Link copiat!", + "copy_link": "Copiați link-ul de invitație", + "join_public": "Oricine are un link", + "join_invite": "Numai persoane adăugate", + "permissions": "Permisiuni de aderare", + "created_by": "Creat de {user}", + "title": "Detalii despre cameră" + }, + "goodbye": { + "view_other_rooms": "Vezi alte camere", + "close_tab": "Închideți fila din browser", + "room_deleted": "Cameră ștearsă." + }, + "purge_room": { + "room_deletion_notice": "E timpul să ne luăm rămas bun! Această cameră a fost ștearsă de {user}. Se va autodistruge în câteva secunde.", + "notified": "Am notificat membrii.", + "deleting": "Ștergerea camerei:", + "self_destruct": "Camera se va autodistruge în câteva secunde.", + "n_seconds": "{seconds} secunde", + "button": "Ștergeți", + "info": "Toți membrii și toate mesajele vor fi eliminate. Această acțiune nu poate fi anulată.", + "title": "Ștergeți camera?" + }, + "leave": { + "leave": "Lăsați", + "go_back": "Înapoi", + "create_account": "creați un cont", + "text_invite": "Acest grup este blocat. Nu vă puteți alătura fără o permisiune specială.", + "title_invite": "Ești sigur că vrei să pleci?", + "text_public_lastroom": "Dacă doriți să vă înscrieți din nou în acest grup, vă puteți înscrie sub o nouă identitate. Pentru a păstra {user}, {action}.", + "text_public": "Puteți oricând să vă alăturați din nou acestei camere dacă știți link-ul.", + "title_public": "La revedere, {user}" + }, + "invite": { + "status_error": "Nu ați reușit să invitați unul sau mai mulți prieteni!", + "status_inviting": "Invitați prietenul {index} din {count}", + "send_invites_to": "Trimiteți invitații la", + "done": "Realizat", + "title": "Adăugați prieteni" + }, + "join": { + "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", + "join": "Alăturați-vă camerei", + "joining_as": "Vă înscrieți ca:", + "shared_computer": "Utilizarea unui computer partajat", + "user_name_label": "Numele utilizatorului", + "title": "Bine ați venit la {roomName}" + }, + "profile_info_popup": { + "new_room": "+ Cameră nouă", + "powered_by": "Această cameră este alimentată de {product}. Aflați mai multe la {productLink} sau mergeți mai departe și creați o altă cameră!", + "want_more": "Vrei mai mult?", + "logout": "Ieșire", + "edit_profile": "Editați profilul", + "identity_temporary": "{displayName}", + "identity": "{displayName}", + "you_are": "Tu ești" + }, + "profile": { + "display_name": "Afișați numele", + "password_repeat": "Repetați noua parolă", + "password_new": "Parolă nouă", + "password_old": "Parolă veche", + "select_language": "Limbă", + "change_password": "Schimbați parola", + "change_name": "Schimbă numele", + "set_password": "Setați parola", + "temporary_identity": "Această identitate este temporară. Setați o parolă pentru a o utiliza din nou", + "title": "Profilul meu" + }, + "login": { + "login": "Autentificare", + "password_required": "Parola este necesară", + "username_required": "Numele de utilizator este necesar", + "password": "Parola", + "username": "Nume utilizator", + "title": "Autentificare" + }, + "device_list": { + "not_verified": "Nu a fost verificat", + "verified": "Verificat", + "blocked": "Blocat", + "title": "DISPOZITIVE" + }, + "new_room": { + "status_avatar": "Încărcarea avatarului: {count}", + "status_avatar_total": "Încărcarea avatarului: {count} din {total}", + "status_creating": "Crearea camerei", + "invite_description": "Alegeți dintr-o listă sau căutați după ID-ul contului", + "invite_info": "Numai persoanele adăugate", + "public_description": "Obțineți un link pentru a partaja", + "public_info": "Oricine are un link", + "link_copied": "Link copiat!", + "add_people": "Adăugați persoane", + "get_link": "Obțineți link-ul", + "join_permissions_info": "Aceste permisiuni determină modul în care persoanele se pot alătura grupului și cât de ușor pot fi invitate alte persoane. Acestea pot fi modificate oricând.", + "set_join_permissions": "Setați permisiunile de asociere", + "join_permissions": "Permisiuni de aderare", + "room_topic": "Adăugați o descriere dacă doriți", + "name_room": "Nume grup", + "next": "Următorul", + "create": "Creați", + "new_room": "Cameră nouă" + }, + "room_welcome": { + "got_it": "L-am prins", + "info_permissions": "Puteți modifica oricând \"permisiunile de alăturare\" în setările camerei.", + "join_invite": "Numai persoanele pe care le invitați se pot înscrie.", + "join_public": "Oricine se poate înscrie deschizând acest link: {link}.", + "room_history_joined": "Oamenii pot vedea doar mesajele trimise după ce se înscriu.", + "room_history_is": "Istoricul camerei este {type}.", + "encrypted": "Mesajele sunt criptate de la un capăt la altul.", + "info": "Bine ați venit! Iată câteva lucruri pe care trebuie să le știți despre camera dumneavoastră:" + }, + "room": { + "room_list_rooms": "Camere", + "room_list_invites": "Invită", + "purge_failed": "Nu a reușit să curețe camera!", + "purge_removing_members": "Îndepărtarea membrilor", + "purge_redacting_events": "Redactarea evenimentelor", + "purge_set_room_state": "Setarea stării camerei", + "leave": "Lăsați", + "members": "fără membri | 1 membru | {count} membri" + }, + "message": { + "user_changed_guest_access_open": "{user} a permis oaspeților să intre în cameră", + "user_changed_guest_access_closed": "{user} a interzis oaspeților să intre în cameră", + "user_powerlevel_change_from_to": "{user} de la {powerOld} la {powerNew}", + "room_powerlevel_change": "{user} a schimbat nivelul de putere al {changes}", + "users_are_typing": "{count} membrii tastează", + "user_is_typing": "{user} tastează", + "scale_image": "Imagine la scară", + "your_message": "Mesajul dumneavoastră…", + "replying_to_event": "RĂSPUNS LA EVENIMENT: {message}", + "unread_messages": "Mesaje necitite", + "user_changed_room_topic": "{user} a schimbat subiectul camerei în {topic}", + "user_changed_room_name": "{user} a schimbat numele camerei în {name}", + "room_joinrule_public": "publică", + "room_joinrule_invite": "numai pe bază de invitație", + "user_changed_join_rules": "{user} a făcut camera {type}", + "room_history_joined": "care pot fi citite de membri din momentul în care au aderat", + "room_history_invited": "care pot fi citite de membri din momentul în care au fost invitați", + "room_history_shared": "poate fi citit de toți membrii din cameră", + "room_history_world_readable": "poate fi citit de oricine", + "user_changed_room_history": "{user} a făcut istoricul camerei {type}", + "upload_progress_with_total": "Ați încărcat {count} din {total}", + "upload_progress": "Încărcat {count}", + "download_progress": "{percentage}% descărcat", + "edited": "(editat)", + "file_prefix": "Fișier: ", + "user_said": "{user} a spus:", + "user_left": "{user} a părăsit chat-ul", + "user_joined": "{user} s-a alăturat chat-ului", + "user_was_invited": "{user} a fost invitat la chat…", + "user_encrypted_room": "{user} a făcut camera criptată", + "user_changed_room_avatar": "{user} a schimbat avatarul camerei", + "user_changed_avatar": "{user} a schimbat avatarul", + "user_changed_display_name": "{user} a schimbat numele de afișare în {displayName}", + "user_aliased_room": "{user} a creat aliasul camerei {alias}", + "user_created_room": "{user} a creat camera", + "you": "Tu" + }, + "Keanu Weblite": "Keanu Weblite", + "language_display_name": "Engleză", + "fallbacks": { + "download_name": "Descărcați", + "original_text": "", + "video_file": "Fișier video", + "audio_file": "Fișier audio" + } +} diff --git a/src/assets/translations/si.json b/src/assets/translations/si.json new file mode 100644 index 0000000..7918c4e --- /dev/null +++ b/src/assets/translations/si.json @@ -0,0 +1,23 @@ +{ + "menu": { + "ok": "හරි", + "download": "බාගන්න", + "edit": "සංස්කරණය", + "reply": "පිලිතුර", + "start_private_chat": "මෙම පරිශීලක සමඟ පුද්ගලික සංවාදය", + "undo": "පෙරසේ", + "new_room": "නව කාමරය", + "logout": "නික්මෙන්න", + "login": "පිවිසෙන්න", + "back": "ආපසු", + "send": "යවන්න", + "cancel": "අවලංගු කරන්න" + }, + "language_display_name": "ඉංග්‍රීසි", + "Keanu Weblite": "කීනු වෙබ්ලයිට්", + "message": { + "download_progress": "{percentage}% බාගත වී ඇත", + "file_prefix": "ගොනුව: ", + "you": "ඔබ" + } +} diff --git a/src/assets/translations/zh_Hans.json b/src/assets/translations/zh_Hans.json index b5a44d2..40202f3 100644 --- a/src/assets/translations/zh_Hans.json +++ b/src/assets/translations/zh_Hans.json @@ -7,24 +7,25 @@ }, "room_info": { "hide_all": "隐藏", - "title": "信息", + "title": "聊天室详情", "version_info": "由守护者计划提供支持.版本:{version}", "leave_room_info": "注意:此步骤无法撤消。 确保您要注销并永久删除聊天记录。", - "leave_room": "离开群组", + "leave_room": "离开", "view_profile": "查看", "identity_temporary": "您的身份 {displayName} 是临时的。 您可以更改您的姓名或设置密码来保留它。", "identity": "您以 {displayName} 的身份登录。", "my_profile": "我的简历", - "show_all": "显示所有", + "show_all": "显示所有 >", "user_you": "{user} (你)", "user": "{user}", "members": "成员", "purge": "删除聊天室", "link_copied": "链接已复制!", - "join_public": "知道链接的任何人都可以加入", - "join_invite": "聊天室只能通过邀请加入", - "permissions": "权限", - "created_by": "由 {user} 创建" + "join_public": "知道链接的任何人", + "join_invite": "仅添加人员", + "permissions": "加入权限", + "created_by": "由 {user} 创建", + "copy_link": "复制邀请链接" }, "leave": { "leave": "离开", @@ -52,10 +53,16 @@ }, "room": { "leave": "离开", - "members": "无成员 | 1 名成员 | {count} 名成员" + "members": "无成员 | 1 名成员 | {count} 名成员", + "room_list_rooms": "聊天室", + "room_list_invites": "邀请", + "purge_failed": "删除聊天室失败了!", + "purge_removing_members": "移除成员", + "purge_redacting_events": "编辑事件", + "purge_set_room_state": "设置聊天室状态" }, "message": { - "you": "你", + "you": "您", "user_aliased_room": "{user} 把聊天室别名设为 {alias}", "user_created_room": "{user} 创建了聊天室", "user_changed_room_topic": "{user} 把聊天室的话题更改为{topic}", @@ -81,14 +88,16 @@ "user_changed_room_avatar": "{user} 更改了聊天室的头像", "user_changed_avatar": "{user} 更改了头像", "user_changed_display_name": "{user} 把显示名更改为 {displayName}", - "unread_messages": "未读消息", + "unread_messages": "未读信息", "user_powerlevel_change_from_to": "{user} 从 {powerOld} 到 {powerNew}", "room_powerlevel_change": "{user}更改了{changes} 的能量等级", "users_are_typing": "{count} 成员正在输入", "user_is_typing": "{user} 正在输入", "scale_image": "缩放图像", "your_message": "你的信息...", - "replying_to_event": "回复事件:{message}" + "replying_to_event": "回复事件:{message}", + "user_changed_guest_access_open": "{user} 允许客人加入聊天室", + "user_changed_guest_access_closed": "{user} 不允许客人加入聊天室" }, "menu": { "login": "登录", @@ -101,7 +110,8 @@ "logout": "退出", "ok": "好的", "reply": "回复", - "back": "返回" + "back": "返回", + "new_room": "新的聊天室" }, "Keanu Weblite": "网络灯", "power_level": { @@ -124,9 +134,9 @@ "this_room": "这个群组" }, "purge_room": { - "button": "删除聊天室", + "button": "删除", "title": "删除聊天室?", - "info": "此操作将会关闭所有成员的聊天室。 它无法撤消。" + "info": "所有成员和消息将被删除。无法撤销这一操作。" }, "invite": { "title": "添加好友", @@ -173,14 +183,29 @@ "name_room": "为群组命名", "next": "下一步", "done": "完毕", - "new_room": "新的群组" + "new_room": "新的聊天室", + "room_topic": "如果您愿意,请添加说明", + "create": "创建" }, "room_welcome": { "got_it": "知道了", - "info_permissions": "在群组设置中,您随时可以更改“加入权限”和“消息历史”。", - "info": "关于您的群组,您需要了解以下几点:", + "info_permissions": "在群组设置中,您随时可以更改“加入权限”。", + "info": "欢迎!关于您的群组,您需要了解以下几点:", "join_invite": "只有您邀请的人可以加入。", - "join_public": "任何人都可以加入通过打开此链接: {link}", - "welcome": "欢迎!" + "join_public": "任何人都可以加入通过打开此链接: {link}。", + "welcome": "欢迎!", + "room_history_joined": "只有加入后,人们才可以看到发送的信息。", + "room_history_is": "聊天室纪录是{type}.", + "encrypted": "信息是端到端加密的。" + }, + "profile_info_popup": { + "new_room": "+ 新的聊天室", + "powered_by": "这个聊天室由 {product} 提供支持。 在 {productLink} 了解更多信息或继续创建另一个聊天室!", + "want_more": "想要更多?", + "logout": "退出登录", + "edit_profile": "编辑个人资料", + "identity_temporary": "{displayName}", + "identity": "{displayName}", + "you_are": "您是" } } diff --git a/src/components/BottomSheet.vue b/src/components/BottomSheet.vue index b0270ee..84fabd3 100644 --- a/src/components/BottomSheet.vue +++ b/src/components/BottomSheet.vue @@ -18,7 +18,7 @@ :style="{ top: `${isMove ? y : calcY()}px` }" >
-
+
@@ -119,6 +119,9 @@ export default { }, setState(state) { this.state = state; + if (state == "closed") { + this.scrollToTop(); + } }, onBackgroundClick() { if (this.state == "open") { @@ -127,6 +130,12 @@ export default { this.setState("closed"); } }, + scrollToTop() { + const container = this.$refs.sheetContent; + if (container) { + container.scrollTo(0, 0); + } + }, }, }; diff --git a/src/components/Chat.vue b/src/components/Chat.vue index ca00fc7..4d21986 100644 --- a/src/components/Chat.vue +++ b/src/components/Chat.vue @@ -2,7 +2,7 @@
diff --git a/src/components/QRCodePopup.vue b/src/components/QRCodePopup.vue new file mode 100644 index 0000000..be11bec --- /dev/null +++ b/src/components/QRCodePopup.vue @@ -0,0 +1,102 @@ + + + + diff --git a/src/components/RoomInfo.vue b/src/components/RoomInfo.vue index 5f4b335..b296906 100644 --- a/src/components/RoomInfo.vue +++ b/src/components/RoomInfo.vue @@ -40,7 +40,12 @@ - + @@ -185,6 +190,9 @@ :room="room" @close="showPurgeConfirmation = false" /> + + +
@@ -194,6 +202,7 @@ import PurgeRoomDialog from "../components/PurgeRoomDialog"; import DeviceList from "../components/DeviceList"; import QRCode from "qrcode"; import roomInfoMixin from "./roomInfoMixin"; +import QRCodePopup from './QRCodePopup.vue'; export default { name: "RoomInfo", @@ -202,6 +211,7 @@ export default { LeaveRoomDialog, PurgeRoomDialog, DeviceList, + QRCodePopup, }, data() { return { @@ -211,6 +221,7 @@ export default { showAllMembers: false, showLeaveConfirmation: false, showPurgeConfirmation: false, + showFullScreenQR: false, expandedMembers: [], buildVersion: "", updatingJoinRule: false, // Flag if we are processing update curerntly diff --git a/src/components/messages/MessageIncoming.vue b/src/components/messages/MessageIncoming.vue index 14ab8e9..f328848 100644 --- a/src/components/messages/MessageIncoming.vue +++ b/src/components/messages/MessageIncoming.vue @@ -1,13 +1,18 @@ diff --git a/src/components/messages/MessageOutgoing.vue b/src/components/messages/MessageOutgoing.vue index 5ec56cd..f40f520 100644 --- a/src/components/messages/MessageOutgoing.vue +++ b/src/components/messages/MessageOutgoing.vue @@ -1,12 +1,19 @@