GIT_SILENT Sync po/docbooks with svn
This commit is contained in:
256
po/nn/neochat.po
256
po/nn/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-05-02 00:48+0000\n"
|
||||
"POT-Creation-Date: 2023-05-07 00:50+0000\n"
|
||||
"PO-Revision-Date: 2021-12-15 11:17+0100\n"
|
||||
"Last-Translator: Øystein Steffensen-Alværvik <oysteins.omsetting@protonmail."
|
||||
"com>\n"
|
||||
@@ -120,95 +120,100 @@ msgctxt "The location being downloaded to"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: src/imagepacksmodel.cpp:68
|
||||
#, kde-format
|
||||
msgid "Own Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/login.cpp:86 src/login.cpp:97
|
||||
#, kde-format
|
||||
msgid "Network Error"
|
||||
msgstr "Nettverksfeil"
|
||||
|
||||
#: src/main.cpp:154
|
||||
#: src/main.cpp:157
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:156
|
||||
#: src/main.cpp:159
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix-klient"
|
||||
|
||||
#: src/main.cpp:158
|
||||
#: src/main.cpp:161
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:159
|
||||
#: src/main.cpp:162
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:159 src/main.cpp:160 src/main.cpp:161
|
||||
#: src/main.cpp:162 src/main.cpp:163 src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:160
|
||||
#: src/main.cpp:163
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:162
|
||||
#: src/main.cpp:165
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:162
|
||||
#: src/main.cpp:165
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:164
|
||||
#: src/main.cpp:167
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Karl Ove Hufthammer"
|
||||
|
||||
#: src/main.cpp:164
|
||||
#: src/main.cpp:167
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "karl@huftis.org"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:307
|
||||
#: src/main.cpp:314
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Lynmeldingsklient for Matrix-protokollen"
|
||||
|
||||
#: src/main.cpp:308
|
||||
#: src/main.cpp:315
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -631,50 +636,50 @@ msgctxt "'Custom' is a category of emoji"
|
||||
msgid "Custom"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:363 src/models/searchmodel.cpp:164
|
||||
#: src/models/messageeventmodel.cpp:369 src/models/searchmodel.cpp:164
|
||||
#, kde-format
|
||||
msgid "Today"
|
||||
msgstr "I dag"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:366 src/models/searchmodel.cpp:167
|
||||
#: src/models/messageeventmodel.cpp:372 src/models/searchmodel.cpp:167
|
||||
#, kde-format
|
||||
msgid "Yesterday"
|
||||
msgstr "I går"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:369 src/models/searchmodel.cpp:170
|
||||
#: src/models/messageeventmodel.cpp:375 src/models/searchmodel.cpp:170
|
||||
#, kde-format
|
||||
msgid "The day before yesterday"
|
||||
msgstr "I forgårs"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:483 src/models/messageeventmodel.cpp:492
|
||||
#: src/models/messageeventmodel.cpp:490 src/models/messageeventmodel.cpp:499
|
||||
#, kde-format
|
||||
msgid "<i>[This message was deleted]</i>"
|
||||
msgstr "<i>[Denne meldinga er sletta]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:484
|
||||
#: src/models/messageeventmodel.cpp:491
|
||||
#, kde-format
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Denne meldinga er sletta: %1]</i>"
|
||||
|
||||
# Eller «SENSURERT»?
|
||||
#: src/models/messageeventmodel.cpp:581
|
||||
#: src/models/messageeventmodel.cpp:580
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[TREKT TILBAKE]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:581
|
||||
#: src/models/messageeventmodel.cpp:580
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[TREKT TILBAKE: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:868
|
||||
#: src/models/messageeventmodel.cpp:856
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:875
|
||||
#: src/models/messageeventmodel.cpp:863
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1057,10 +1062,9 @@ msgstr "%1 (%2)"
|
||||
msgid "Open NeoChat in this room"
|
||||
msgstr "Opna NeoChat i dette rommet"
|
||||
|
||||
#: src/notificationsmanager.cpp:88
|
||||
#: src/notificationsmanager.cpp:88 src/qml/Component/TimelineView.qml:383
|
||||
#: src/qml/Menu/Timeline/FileDelegateContextMenu.qml:50
|
||||
#: src/qml/Menu/Timeline/MessageDelegateContextMenu.qml:37
|
||||
#: src/qml/Page/RoomPage.qml:552
|
||||
#, kde-format
|
||||
msgid "Reply"
|
||||
msgstr "Svar"
|
||||
@@ -1096,8 +1100,9 @@ msgid "Attachment:"
|
||||
msgstr "Vedlegg:"
|
||||
|
||||
#: src/qml/Component/ChatBox/AttachmentPane.qml:38
|
||||
#: src/qml/Component/TimelineView.qml:372
|
||||
#: src/qml/Menu/Timeline/MessageDelegateContextMenu.qml:28
|
||||
#: src/qml/Page/ImageEditorPage.qml:20 src/qml/Page/RoomPage.qml:541
|
||||
#: src/qml/Page/ImageEditorPage.qml:20
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
msgstr "Rediger"
|
||||
@@ -1114,8 +1119,8 @@ msgstr "Legg ved bilete eller fil"
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:57
|
||||
#, kde-format
|
||||
msgid "Add an Emoji"
|
||||
msgstr "Legg til emoji"
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:73
|
||||
#, kde-format
|
||||
@@ -1127,35 +1132,35 @@ msgstr ""
|
||||
msgid "Send message"
|
||||
msgstr "Send melding"
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:132
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:128
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This room is encrypted. Build libQuotient with encryption enabled to send "
|
||||
"encrypted messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:132
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:128
|
||||
#, kde-format
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:132
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:128
|
||||
#, kde-format
|
||||
msgid "Set an attachment caption..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:132
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:128
|
||||
#, kde-format
|
||||
msgid "Send a message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:317
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:313
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBox.qml:29
|
||||
#: src/qml/Component/ChatBox/ChatBox.qml:32
|
||||
#, kde-format
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr ""
|
||||
@@ -1257,11 +1262,37 @@ msgstr ""
|
||||
msgid "Available Room Versions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:77
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, kde-format
|
||||
msgid "No emojis"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiPicker.qml:49
|
||||
#, kde-format
|
||||
msgid "Emojis"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiPicker.qml:56
|
||||
#, kde-format
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/InvitationView.qml:17
|
||||
#, kde-format
|
||||
msgid "Accept this invitation?"
|
||||
msgstr "Vil du godta invitasjonen?"
|
||||
|
||||
#: src/qml/Component/InvitationView.qml:21
|
||||
#, kde-format
|
||||
msgid "Reject"
|
||||
msgstr "Avvis"
|
||||
|
||||
#: src/qml/Component/InvitationView.qml:28
|
||||
#: src/qml/Dialog/KeyVerification/KeyVerificationDialog.qml:73
|
||||
#, kde-format
|
||||
msgid "Accept"
|
||||
msgstr "Godta"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1391,7 +1422,7 @@ msgid "No Name"
|
||||
msgstr "Namnlaus"
|
||||
|
||||
#: src/qml/Component/Timeline/EncryptedDelegate.qml:15
|
||||
#: src/qml/Component/Timeline/ReplyComponent.qml:133
|
||||
#: src/qml/Component/Timeline/ReplyComponent.qml:151
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -1468,13 +1499,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Timeline/ReactionDelegate.qml:53
|
||||
#: src/qml/Component/Timeline/ReactionDelegate.qml:55
|
||||
#, kde-format
|
||||
msgctxt "Separate the usernames of users"
|
||||
msgid " and "
|
||||
msgstr " og "
|
||||
|
||||
#: src/qml/Component/Timeline/ReactionDelegate.qml:59
|
||||
#: src/qml/Component/Timeline/ReactionDelegate.qml:61
|
||||
#, kde-format
|
||||
msgctxt "%1 is the number of other users"
|
||||
msgid " and %1 other"
|
||||
@@ -1482,7 +1513,7 @@ msgid_plural " and %1 others"
|
||||
msgstr[0] " og %1 annan"
|
||||
msgstr[1] " og %1 andre"
|
||||
|
||||
#: src/qml/Component/Timeline/ReactionDelegate.qml:62
|
||||
#: src/qml/Component/Timeline/ReactionDelegate.qml:64
|
||||
#, kde-format
|
||||
msgctxt "%2 is the users who reacted and %3 the emoji that was given"
|
||||
msgid "%2 reacted with %3"
|
||||
@@ -1496,22 +1527,65 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:171
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:167
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:235
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:231
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:319
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:315
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:122
|
||||
#, kde-format
|
||||
msgid "Choose local file"
|
||||
msgstr "Vel lokal fil"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:150
|
||||
#, kde-format
|
||||
msgid "Clipboard image"
|
||||
msgstr "Utklippstavle-bilete"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:198
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Gå til første ulesne melding"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:221
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Gå til nyaste melding"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:247
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Dra element her for å dela dei"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:273
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 skriv"
|
||||
msgstr[1] "%2 skriv"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:347
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:353
|
||||
#, kde-format
|
||||
msgid "React"
|
||||
msgstr "Reager"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#, kde-format
|
||||
@@ -1611,12 +1685,6 @@ msgstr ""
|
||||
msgid "Successfully verified device **%1**"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/KeyVerificationDialog.qml:73
|
||||
#: src/qml/Page/RoomPage.qml:196
|
||||
#, kde-format
|
||||
msgid "Accept"
|
||||
msgstr "Godta"
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/KeyVerificationDialog.qml:79
|
||||
#, kde-format
|
||||
msgid "Decline"
|
||||
@@ -1864,28 +1932,23 @@ msgstr "Start privat prat"
|
||||
msgid "Copy link"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:124
|
||||
#, kde-format
|
||||
msgid "Warning: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:263
|
||||
#: src/qml/main.qml:254
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
|
||||
#: src/qml/main.qml:304
|
||||
#: src/qml/main.qml:295
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:314
|
||||
#: src/qml/main.qml:305
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Brukarsamtykke"
|
||||
|
||||
#: src/qml/main.qml:319
|
||||
#: src/qml/main.qml:310
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -1894,17 +1957,17 @@ msgstr ""
|
||||
"Heimetenaren krev at du godtek brukarvilkåra før du kan ta han i bruk. Trykk "
|
||||
"på knappen nedanfor for å lesa vilkåra."
|
||||
|
||||
#: src/qml/main.qml:324
|
||||
#: src/qml/main.qml:315
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Opna"
|
||||
|
||||
#: src/qml/main.qml:353
|
||||
#: src/qml/main.qml:344
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:355
|
||||
#: src/qml/main.qml:346
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2587,59 +2650,6 @@ msgstr ""
|
||||
msgid "Open Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:185
|
||||
#, kde-format
|
||||
msgid "Accept this invitation?"
|
||||
msgstr "Vil du godta invitasjonen?"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:189
|
||||
#, kde-format
|
||||
msgid "Reject"
|
||||
msgstr "Avvis"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:287
|
||||
#, kde-format
|
||||
msgid "Choose local file"
|
||||
msgstr "Vel lokal fil"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Clipboard image"
|
||||
msgstr "Utklippstavle-bilete"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:368
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Gå til første ulesne melding"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:395
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Gå til nyaste melding"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:420
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Dra element her for å dela dei"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:446
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 skriv"
|
||||
msgstr[1] "%2 skriv"
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:517
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomPage.qml:523
|
||||
#, kde-format
|
||||
msgid "React"
|
||||
msgstr "Reager"
|
||||
|
||||
#: src/qml/Page/SearchPage.qml:17
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
@@ -3829,32 +3839,32 @@ msgid ""
|
||||
"There's no room %1 in the room list. Check the spelling and the account."
|
||||
msgstr ""
|
||||
|
||||
#: src/roommanager.cpp:208
|
||||
#: src/roommanager.cpp:212
|
||||
#, kde-format
|
||||
msgid "Failed to join room"
|
||||
msgstr ""
|
||||
|
||||
#: src/roommanager.cpp:225
|
||||
#: src/roommanager.cpp:229
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr ""
|
||||
|
||||
#: src/roommanager.cpp:228
|
||||
#: src/roommanager.cpp:232
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room"
|
||||
msgstr ""
|
||||
|
||||
#: src/roommanager.cpp:238
|
||||
#: src/roommanager.cpp:242
|
||||
#, kde-format
|
||||
msgid "No application for the link"
|
||||
msgstr ""
|
||||
|
||||
#: src/roommanager.cpp:238
|
||||
#: src/roommanager.cpp:242
|
||||
#, kde-format
|
||||
msgid "Your operating system could not find an application for the link."
|
||||
msgstr ""
|
||||
|
||||
#: src/roommanager.cpp:244
|
||||
#: src/roommanager.cpp:248
|
||||
#, kde-format
|
||||
msgid "Could not open URL"
|
||||
msgstr ""
|
||||
|
||||
Reference in New Issue
Block a user