v4: users sign in to one gerbeur instance with their account on another — topic instances, each with its own admins, domain and data, had no way to share accounts. Sign-in is federated over a subset of OpenID Connect, the authorization code flow with PKCE: each instance is an identity provider for its own users and a client for the others', and signs what it tells them with an Ed25519 key kept in federation_keys and published at /.well-known/jwks.json, beside its metadata at /.well-known/openid-configuration. Only sign-in is federated: an account from another instance is a local users row linked to (issuer, subject) in user_identities, with no password (password_hash ''), so sessions, roles, permissions, the socket and every foreign key work as before.
A remote user is name@host here, in users.username, in paths (/@alice@music.example) and in mentions, through one handle rule in shared/validation.ts that paths, MENTION_RE and Markdown all build on; Markdown undoes GFM's email autolink of a handle. Their name, email and avatar come from their home at each sign-in and by its signed events (federation_outbox, delivered by the federation job with backoff): a rename at home leaves the old handle an alias here, and a password change or a withdrawn grant ends their sessions here. Their password, email, avatar and name can't change here (assertLocalUser), nor can they sign in elsewhere from here. An admin keeps the trusted and blocked instances on /manage (federation:manage): a trusted instance's users sign in from a button on the login page, a blocked one's can't and are signed out at once, and any other's join with an invite from the register page. The /authorize page asks the user once per instance, and /settings lists the instances their account signs in to, each disconnectable; /login?next= brings a signed-out visitor back to /authorize. Emails stay unique among local accounts only, and migration 0024 adds the tables, makes that index partial and reserves authorize and federation as category slugs. remote/gerbeur-instance.ts is the only way to other instances: https and public addresses only, no redirects, no certificate fallback, unless GERBEUR_FEDERATION_ALLOW_PRIVATE lets two instances on one machine talk. 298 backend tests and 702 frontend tests pass, and deno check, deno fmt, deno lint, tsc, eslint, doc:lint and i18n:compile --strict are clean; checked end to end with two built instances on one machine: sign-in through the other's login and consent pages, consent skipped once granted and asked again after disconnecting, a rename and a password change at home reaching the other, and blocking; screenshots of the login, consent, profile, settings and manage pages at 1280 and 390px. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
276
locales/en.po
276
locales/en.po
@@ -51,7 +51,7 @@ msgstr "{0} more online: {restNames}"
|
||||
|
||||
#. placeholder {0}: VALIDATION.USERNAME_MIN
|
||||
#. placeholder {1}: VALIDATION.USERNAME_MAX
|
||||
#: src/pages/UserRegister.tsx:145
|
||||
#: src/pages/UserRegister.tsx:147
|
||||
msgid "{0}–{1} characters: letters, numbers, or underscores"
|
||||
msgstr "{0}–{1} characters: letters, numbers, or underscores"
|
||||
|
||||
@@ -280,6 +280,10 @@ msgstr "<0>{0}</0> upvoted <1>{1}</1>"
|
||||
msgid "<0>{0}</0> was added to <1>{1}</1>"
|
||||
msgstr "<0>{0}</0> was added to <1>{1}</1>"
|
||||
|
||||
#: src/pages/Authorize.tsx:138
|
||||
msgid "<0>{name}</0> ({host}) asks to sign you in with your account here, <1>@{username}</1>. It will receive your username, your email address and your avatar."
|
||||
msgstr "<0>{name}</0> ({host}) asks to sign you in with your account here, <1>@{username}</1>. It will receive your username, your email address and your avatar."
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:778
|
||||
msgid "1 new message"
|
||||
msgstr "1 new message"
|
||||
@@ -296,10 +300,14 @@ msgstr "A link is required"
|
||||
msgid "a post"
|
||||
msgstr "a post"
|
||||
|
||||
#: src/pages/Settings.tsx:85
|
||||
#: src/pages/Settings.tsx:89
|
||||
msgid "Account"
|
||||
msgstr "Account"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:144
|
||||
msgid "Account on <0>{host}</0>"
|
||||
msgstr "Account on <0>{host}</0>"
|
||||
|
||||
#: src/components/comment/CommentThread.tsx:102
|
||||
msgid "Add a comment…"
|
||||
msgstr "Add a comment…"
|
||||
@@ -309,7 +317,7 @@ msgstr "Add a comment…"
|
||||
msgid "Add category"
|
||||
msgstr "Add category"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:153
|
||||
#: src/components/profile/ProfileHeader.tsx:173
|
||||
msgid "Add email…"
|
||||
msgstr "Add email…"
|
||||
|
||||
@@ -342,10 +350,14 @@ msgstr "All"
|
||||
msgid "Already dumped by {0} {1}"
|
||||
msgstr "Already dumped by {0} {1}"
|
||||
|
||||
#: src/pages/UserRegister.tsx:175
|
||||
#: src/pages/UserRegister.tsx:179
|
||||
msgid "Already have an account? <0>Log in</0>"
|
||||
msgstr "Already have an account? <0>Log in</0>"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:149
|
||||
msgid "An instance's address, like music.example"
|
||||
msgstr "An instance's address, like music.example"
|
||||
|
||||
#: src/utils/shared/api.ts:35
|
||||
msgid "An unexpected error occurred."
|
||||
msgstr "An unexpected error occurred."
|
||||
@@ -355,14 +367,14 @@ msgstr "An unexpected error occurred."
|
||||
msgid "email.digest.andMore"
|
||||
msgstr "and {n} more"
|
||||
|
||||
#: src/pages/Settings.tsx:101
|
||||
#: src/pages/Settings.tsx:134
|
||||
msgid "Appearance"
|
||||
msgstr "Appearance"
|
||||
|
||||
#. placeholder {0}: VALIDATION.PASSWORD_MIN
|
||||
#: src/components/profile/ChangePasswordModal.tsx:101
|
||||
#: src/pages/ResetPassword.tsx:124
|
||||
#: src/pages/UserRegister.tsx:164
|
||||
#: src/pages/UserRegister.tsx:166
|
||||
msgid "At least {0} characters"
|
||||
msgstr "At least {0} characters"
|
||||
|
||||
@@ -370,7 +382,7 @@ msgstr "At least {0} characters"
|
||||
msgid "At most {maxLength} characters."
|
||||
msgstr "At most {maxLength} characters."
|
||||
|
||||
#: src/pages/Settings.tsx:46
|
||||
#: src/pages/Settings.tsx:48
|
||||
msgid "Auto"
|
||||
msgstr "Auto"
|
||||
|
||||
@@ -379,6 +391,18 @@ msgstr "Auto"
|
||||
msgid "Back to login"
|
||||
msgstr "Back to login"
|
||||
|
||||
#: src/pages/FederationCallback.tsx:66
|
||||
msgid "Back to the login page"
|
||||
msgstr "Back to the login page"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:163
|
||||
msgid "Block"
|
||||
msgstr "Block"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:33
|
||||
msgid "Blocked"
|
||||
msgstr "Blocked"
|
||||
|
||||
#. js-lingui-explicit-id
|
||||
#: api/mail/digest.ts:225
|
||||
msgid "email.digest.by"
|
||||
@@ -394,6 +418,11 @@ msgstr "by @{username} · {n, plural, one {# dump} other {# dumps}}"
|
||||
msgid "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects."
|
||||
msgstr "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects."
|
||||
|
||||
#: src/pages/Authorize.tsx:117
|
||||
#: src/pages/Authorize.tsx:145
|
||||
msgid "Can't sign in there"
|
||||
msgstr "Can't sign in there"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:225
|
||||
#: src/components/category/CategoryManager.tsx:226
|
||||
#: src/components/chat/ChatEditBox.tsx:92
|
||||
@@ -404,6 +433,7 @@ msgstr "Can't connect to the live updates server. Upvotes and notifications may
|
||||
#: src/components/profile/DescriptionEditor.tsx:97
|
||||
#: src/components/profile/EmailEditor.tsx:83
|
||||
#: src/components/shared/ConfirmModal.tsx:63
|
||||
#: src/pages/Authorize.tsx:158
|
||||
#: src/pages/Dump.tsx:445
|
||||
#: src/pages/DumpEdit.tsx:565
|
||||
msgid "Cancel"
|
||||
@@ -423,7 +453,7 @@ msgid "Cancel search"
|
||||
msgstr "Cancel search"
|
||||
|
||||
#: src/components/category/CategorySelect.tsx:33
|
||||
#: src/pages/Manage.tsx:30
|
||||
#: src/pages/Manage.tsx:36
|
||||
msgid "Categories"
|
||||
msgstr "Categories"
|
||||
|
||||
@@ -431,7 +461,7 @@ msgstr "Categories"
|
||||
msgid "Category"
|
||||
msgstr "Category"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:95
|
||||
#: src/components/profile/ProfileHeader.tsx:102
|
||||
msgid "Change avatar"
|
||||
msgstr "Change avatar"
|
||||
|
||||
@@ -439,12 +469,16 @@ msgstr "Change avatar"
|
||||
msgid "Change image"
|
||||
msgstr "Change image"
|
||||
|
||||
#: src/pages/Settings.tsx:101
|
||||
msgid "Change it on {home}"
|
||||
msgstr "Change it on {home}"
|
||||
|
||||
#: src/components/profile/ChangePasswordModal.tsx:66
|
||||
#: src/components/profile/ChangePasswordModal.tsx:120
|
||||
msgid "Change password"
|
||||
msgstr "Change password"
|
||||
|
||||
#: src/pages/Settings.tsx:96
|
||||
#: src/pages/Settings.tsx:112
|
||||
msgid "Change password…"
|
||||
msgstr "Change password…"
|
||||
|
||||
@@ -464,10 +498,14 @@ msgstr "Chat"
|
||||
msgid "Chat ({unreadChatCount} unread)"
|
||||
msgstr "Chat ({unreadChatCount} unread)"
|
||||
|
||||
#: src/pages/UserRegister.tsx:106
|
||||
#: src/pages/UserRegister.tsx:108
|
||||
msgid "Checking invite…"
|
||||
msgstr "Checking invite…"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:154
|
||||
msgid "Checking…"
|
||||
msgstr "Checking…"
|
||||
|
||||
#: src/components/profile/ChangePasswordModal.tsx:75
|
||||
#: src/components/shared/Modal.tsx:76
|
||||
msgid "Close"
|
||||
@@ -493,7 +531,7 @@ msgstr "Close without posting? The attached file won't be kept — everything yo
|
||||
msgid "Collapse player"
|
||||
msgstr "Collapse player"
|
||||
|
||||
#: src/pages/Settings.tsx:110
|
||||
#: src/pages/Settings.tsx:143
|
||||
msgid "Color scheme"
|
||||
msgstr "Color scheme"
|
||||
|
||||
@@ -507,10 +545,22 @@ msgstr "Community"
|
||||
msgid "Confirm new password"
|
||||
msgstr "Confirm new password"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:111
|
||||
msgid "Connecting…"
|
||||
msgstr "Connecting…"
|
||||
|
||||
#: src/contexts/ws/WSProvider.tsx:757
|
||||
msgid "Connection lost — this message may not have been sent"
|
||||
msgstr "Connection lost — this message may not have been sent"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:113
|
||||
msgid "Continue"
|
||||
msgstr "Continue"
|
||||
|
||||
#: src/pages/Authorize.tsx:155
|
||||
msgid "Continue as @{username}"
|
||||
msgstr "Continue as @{username}"
|
||||
|
||||
#: src/components/profile/ProfileOwnActions.tsx:99
|
||||
msgid "Copied!"
|
||||
msgstr "Copied!"
|
||||
@@ -540,6 +590,10 @@ msgstr "Could not rename"
|
||||
msgid "Could not save"
|
||||
msgstr "Could not save"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:146
|
||||
msgid "Couldn't add that instance"
|
||||
msgstr "Couldn't add that instance"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:607
|
||||
msgid "Couldn't load a preview for this link — check it, or post it as-is and refresh the preview later."
|
||||
msgstr "Couldn't load a preview for this link — check it, or post it as-is and refresh the preview later."
|
||||
@@ -548,6 +602,10 @@ msgstr "Couldn't load a preview for this link — check it, or post it as-is and
|
||||
msgid "Couldn't load the chat."
|
||||
msgstr "Couldn't load the chat."
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:102
|
||||
msgid "Couldn't reach that instance"
|
||||
msgstr "Couldn't reach that instance"
|
||||
|
||||
#: src/pages/Unsubscribe.tsx:116
|
||||
msgid "Couldn't unsubscribe"
|
||||
msgstr "Couldn't unsubscribe"
|
||||
@@ -576,11 +634,11 @@ msgstr "Creating…"
|
||||
msgid "Current password"
|
||||
msgstr "Current password"
|
||||
|
||||
#: src/pages/Settings.tsx:48
|
||||
#: src/pages/Settings.tsx:50
|
||||
msgid "Dark"
|
||||
msgstr "Dark"
|
||||
|
||||
#: src/pages/Settings.tsx:121
|
||||
#: src/pages/Settings.tsx:154
|
||||
msgid "Default tab"
|
||||
msgstr "Default tab"
|
||||
|
||||
@@ -655,6 +713,10 @@ msgstr "Description (optional)"
|
||||
msgid "Discard"
|
||||
msgstr "Discard"
|
||||
|
||||
#: src/components/federation/GrantList.tsx:84
|
||||
msgid "Disconnect"
|
||||
msgstr "Disconnect"
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:743
|
||||
msgid "Disconnected — reconnecting…"
|
||||
msgstr "Disconnected — reconnecting…"
|
||||
@@ -730,7 +792,7 @@ msgstr "Edit {0}"
|
||||
msgid "Edit description"
|
||||
msgstr "Edit description"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:151
|
||||
#: src/components/profile/ProfileHeader.tsx:171
|
||||
msgid "Edit email"
|
||||
msgstr "Edit email"
|
||||
|
||||
@@ -772,11 +834,11 @@ msgstr "Editing"
|
||||
msgid "Editing {0}"
|
||||
msgstr "Editing {0}"
|
||||
|
||||
#: src/pages/Settings.tsx:145
|
||||
#: src/pages/Settings.tsx:178
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: src/pages/UserRegister.tsx:152
|
||||
#: src/pages/UserRegister.tsx:154
|
||||
msgid "Email address"
|
||||
msgstr "Email address"
|
||||
|
||||
@@ -822,6 +884,8 @@ msgstr "Failed to post comment"
|
||||
msgid "Failed to post reply"
|
||||
msgstr "Failed to post reply"
|
||||
|
||||
#: src/components/federation/GrantList.tsx:98
|
||||
#: src/components/federation/PeerManager.tsx:143
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:185
|
||||
#: src/components/profile/DescriptionEditor.tsx:99
|
||||
#: src/components/profile/EmailEditor.tsx:86
|
||||
@@ -836,7 +900,7 @@ msgstr "Failed to save category"
|
||||
msgid "Failed to save edit"
|
||||
msgstr "Failed to save edit"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:162
|
||||
#: src/components/profile/ProfileHeader.tsx:182
|
||||
msgid "Failed to update avatar"
|
||||
msgstr "Failed to update avatar"
|
||||
|
||||
@@ -844,7 +908,7 @@ msgstr "Failed to update avatar"
|
||||
msgid "Failed to update role"
|
||||
msgstr "Failed to update role"
|
||||
|
||||
#: src/pages/Settings.tsx:119
|
||||
#: src/pages/Settings.tsx:152
|
||||
msgid "Feeds"
|
||||
msgstr "Feeds"
|
||||
|
||||
@@ -879,7 +943,7 @@ msgstr "Follow some users to see their dumps here."
|
||||
|
||||
#: src/components/feed/FeedTabBar.tsx:43
|
||||
#: src/components/profile/ProfileFollowTab.tsx:140
|
||||
#: src/pages/Settings.tsx:55
|
||||
#: src/pages/Settings.tsx:57
|
||||
#: src/pages/UserPublicProfile.tsx:161
|
||||
msgid "Followed"
|
||||
msgstr "Followed"
|
||||
@@ -894,7 +958,7 @@ msgstr "Following"
|
||||
msgid "email.digest.forYou"
|
||||
msgstr "For you"
|
||||
|
||||
#: src/pages/UserLogin.tsx:97
|
||||
#: src/pages/UserLogin.tsx:101
|
||||
msgid "Forgot password?"
|
||||
msgstr "Forgot password?"
|
||||
|
||||
@@ -929,11 +993,11 @@ msgid "email.reset.hi"
|
||||
msgstr "Hi {username},"
|
||||
|
||||
#: src/components/feed/FeedTabBar.tsx:39
|
||||
#: src/pages/Settings.tsx:52
|
||||
#: src/pages/Settings.tsx:54
|
||||
msgid "Hot"
|
||||
msgstr "Hot"
|
||||
|
||||
#: src/pages/UserLogin.tsx:136
|
||||
#: src/pages/UserLogin.tsx:142
|
||||
msgid "If that address is registered you'll receive a reset link shortly."
|
||||
msgstr "If that address is registered you'll receive a reset link shortly."
|
||||
|
||||
@@ -965,7 +1029,11 @@ msgstr "In the chat"
|
||||
msgid "Insert emoji"
|
||||
msgstr "Insert emoji"
|
||||
|
||||
#: src/pages/UserRegister.tsx:117
|
||||
#: src/pages/Manage.tsx:43
|
||||
msgid "Instances"
|
||||
msgstr "Instances"
|
||||
|
||||
#: src/pages/UserRegister.tsx:119
|
||||
msgid "Invalid invite"
|
||||
msgstr "Invalid invite"
|
||||
|
||||
@@ -979,7 +1047,7 @@ msgstr "Invalid link"
|
||||
msgid "Invite link"
|
||||
msgstr "Invite link"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:116
|
||||
#: src/components/profile/ProfileHeader.tsx:126
|
||||
msgid "invited by"
|
||||
msgstr "invited by"
|
||||
|
||||
@@ -998,8 +1066,12 @@ msgstr "invited by you"
|
||||
msgid "Invitees"
|
||||
msgstr "Invitees"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:105
|
||||
msgid "Its address, like music.example"
|
||||
msgstr "Its address, like music.example"
|
||||
|
||||
#: src/components/feed/FeedTabBar.tsx:41
|
||||
#: src/pages/Settings.tsx:54
|
||||
#: src/pages/Settings.tsx:56
|
||||
msgid "Journal"
|
||||
msgstr "Journal"
|
||||
|
||||
@@ -1007,11 +1079,16 @@ msgstr "Journal"
|
||||
msgid "Keep editing"
|
||||
msgstr "Keep editing"
|
||||
|
||||
#. placeholder {0}: relativeTime(grant.lastUsedAt)
|
||||
#: src/components/federation/GrantList.tsx:77
|
||||
msgid "last used {0}"
|
||||
msgstr "last used {0}"
|
||||
|
||||
#: src/components/profile/UsernameField.tsx:59
|
||||
msgid "Letters, numbers and underscores only"
|
||||
msgstr "Letters, numbers and underscores only"
|
||||
|
||||
#: src/pages/Settings.tsx:47
|
||||
#: src/pages/Settings.tsx:49
|
||||
msgid "Light"
|
||||
msgstr "Light"
|
||||
|
||||
@@ -1068,17 +1145,20 @@ msgstr "Loading profile…"
|
||||
#: src/components/category/CategoryManager.tsx:60
|
||||
#: src/components/chat/ChatModal.tsx:763
|
||||
#: src/components/editor/EmojiPickerPopup.tsx:125
|
||||
#: src/components/federation/PeerManager.tsx:108
|
||||
#: src/components/playlist/PlaylistMembershipPanel.tsx:45
|
||||
#: src/components/shared/ListState.tsx:38
|
||||
#: src/components/shared/LoadMoreButton.tsx:32
|
||||
#: src/components/social/UserListPopover.tsx:151
|
||||
#: src/pages/Authorize.tsx:122
|
||||
msgid "Loading…"
|
||||
msgstr "Loading…"
|
||||
|
||||
#: src/components/layout/AppHeader.tsx:208
|
||||
#: src/pages/UserLogin.tsx:41
|
||||
#: src/pages/UserLogin.tsx:67
|
||||
#: src/pages/UserLogin.tsx:86
|
||||
#: src/pages/FederationCallback.tsx:31
|
||||
#: src/pages/UserLogin.tsx:44
|
||||
#: src/pages/UserLogin.tsx:71
|
||||
#: src/pages/UserLogin.tsx:90
|
||||
msgid "Log in"
|
||||
msgstr "Log in"
|
||||
|
||||
@@ -1090,16 +1170,22 @@ msgstr "Log in to like"
|
||||
msgid "Log in to vote"
|
||||
msgstr "Log in to vote"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:126
|
||||
#. placeholder {0}: peer.name ?? peer.host
|
||||
#: src/components/federation/FederatedSignIn.tsx:97
|
||||
msgid "Log in with {0}"
|
||||
msgstr "Log in with {0}"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:127
|
||||
#: src/pages/UserPublicProfile.tsx:131
|
||||
msgid "Log out"
|
||||
msgstr "Log out"
|
||||
|
||||
#: src/pages/UserLogin.tsx:85
|
||||
#: src/pages/UserLogin.tsx:89
|
||||
msgid "Logging in…"
|
||||
msgstr "Logging in…"
|
||||
|
||||
#: src/pages/UserLogin.tsx:72
|
||||
#: src/pages/FederationCallback.tsx:63
|
||||
#: src/pages/UserLogin.tsx:76
|
||||
msgid "Login failed"
|
||||
msgstr "Login failed"
|
||||
|
||||
@@ -1107,9 +1193,9 @@ msgstr "Login failed"
|
||||
msgid "Lowercase letters, numbers and single hyphens only"
|
||||
msgstr "Lowercase letters, numbers and single hyphens only"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:113
|
||||
#: src/pages/Manage.tsx:24
|
||||
#: src/pages/Manage.tsx:29
|
||||
#: src/components/layout/UserMenu.tsx:114
|
||||
#: src/pages/Manage.tsx:27
|
||||
#: src/pages/Manage.tsx:34
|
||||
#: src/pages/UserPublicProfile.tsx:164
|
||||
msgid "Manage"
|
||||
msgstr "Manage"
|
||||
@@ -1138,7 +1224,7 @@ msgstr "Name"
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:692
|
||||
#: src/components/feed/FeedTabBar.tsx:40
|
||||
#: src/pages/Settings.tsx:53
|
||||
#: src/pages/Settings.tsx:55
|
||||
msgid "New"
|
||||
msgstr "New"
|
||||
|
||||
@@ -1231,6 +1317,10 @@ msgstr "No users match \"{q}\"."
|
||||
msgid "Not following anyone yet."
|
||||
msgstr "Not following anyone yet."
|
||||
|
||||
#: src/pages/Authorize.tsx:103
|
||||
msgid "Not from here"
|
||||
msgstr "Not from here"
|
||||
|
||||
#: src/pages/Community.tsx:127
|
||||
msgid "Nothing happened this month."
|
||||
msgstr "Nothing happened this month."
|
||||
@@ -1248,7 +1338,7 @@ msgstr "Nothing here yet."
|
||||
#: src/components/layout/NotificationBell.tsx:57
|
||||
#: src/pages/Notifications.tsx:387
|
||||
#: src/pages/Notifications.tsx:505
|
||||
#: src/pages/Settings.tsx:130
|
||||
#: src/pages/Settings.tsx:163
|
||||
msgid "Notifications"
|
||||
msgstr "Notifications"
|
||||
|
||||
@@ -1256,11 +1346,11 @@ msgstr "Notifications"
|
||||
msgid "Notifications ({unreadNotificationCount} unread)"
|
||||
msgstr "Notifications ({unreadNotificationCount} unread)"
|
||||
|
||||
#: src/pages/Settings.tsx:60
|
||||
#: src/pages/Settings.tsx:62
|
||||
msgid "Off"
|
||||
msgstr "Off"
|
||||
|
||||
#: src/pages/Settings.tsx:59
|
||||
#: src/pages/Settings.tsx:61
|
||||
msgid "On"
|
||||
msgstr "On"
|
||||
|
||||
@@ -1300,6 +1390,18 @@ msgstr "Open the chat"
|
||||
msgid "or <0>browse files</0>"
|
||||
msgstr "or <0>browse files</0>"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:82
|
||||
msgid "Or join with your account on another gerbeur"
|
||||
msgstr "Or join with your account on another gerbeur"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:83
|
||||
msgid "Or log in with your account on another gerbeur"
|
||||
msgstr "Or log in with your account on another gerbeur"
|
||||
|
||||
#: src/pages/Settings.tsx:128
|
||||
msgid "Other instances"
|
||||
msgstr "Other instances"
|
||||
|
||||
#: src/pages/UserPublicProfile.tsx:157
|
||||
msgid "Overview"
|
||||
msgstr "Overview"
|
||||
@@ -1308,13 +1410,14 @@ msgstr "Overview"
|
||||
msgid "Page not found"
|
||||
msgstr "Page not found"
|
||||
|
||||
#: src/pages/Settings.tsx:90
|
||||
#: src/pages/UserLogin.tsx:82
|
||||
#: src/pages/Settings.tsx:96
|
||||
#: src/pages/Settings.tsx:106
|
||||
#: src/pages/UserLogin.tsx:86
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
#. placeholder {0}: VALIDATION.PASSWORD_MIN
|
||||
#: src/pages/UserRegister.tsx:158
|
||||
#: src/pages/UserRegister.tsx:160
|
||||
msgid "Password (min. {0} characters)"
|
||||
msgstr "Password (min. {0} characters)"
|
||||
|
||||
@@ -1416,17 +1519,17 @@ msgstr "Refreshing stream…"
|
||||
msgid "Refreshing…"
|
||||
msgstr "Refreshing…"
|
||||
|
||||
#: src/pages/UserRegister.tsx:45
|
||||
#: src/pages/UserRegister.tsx:129
|
||||
#: src/pages/UserRegister.tsx:169
|
||||
#: src/pages/UserRegister.tsx:47
|
||||
#: src/pages/UserRegister.tsx:131
|
||||
#: src/pages/UserRegister.tsx:171
|
||||
msgid "Register"
|
||||
msgstr "Register"
|
||||
|
||||
#: src/pages/UserRegister.tsx:168
|
||||
#: src/pages/UserRegister.tsx:170
|
||||
msgid "Registering…"
|
||||
msgstr "Registering…"
|
||||
|
||||
#: src/pages/UserRegister.tsx:134
|
||||
#: src/pages/UserRegister.tsx:136
|
||||
msgid "Registration failed"
|
||||
msgstr "Registration failed"
|
||||
|
||||
@@ -1434,6 +1537,12 @@ msgstr "Registration failed"
|
||||
msgid "Related"
|
||||
msgstr "Related"
|
||||
|
||||
#. placeholder {0}: peer.host
|
||||
#: src/components/federation/PeerManager.tsx:133
|
||||
#: src/components/federation/PeerManager.tsx:134
|
||||
msgid "Remove {0}"
|
||||
msgstr "Remove {0}"
|
||||
|
||||
#: src/components/form/FileDropZone.tsx:139
|
||||
msgid "Remove file"
|
||||
msgstr "Remove file"
|
||||
@@ -1472,7 +1581,7 @@ msgstr "Reply"
|
||||
msgid "Replying to"
|
||||
msgstr "Replying to"
|
||||
|
||||
#: src/pages/UserLogin.tsx:148
|
||||
#: src/pages/UserLogin.tsx:154
|
||||
msgid "Request failed"
|
||||
msgstr "Request failed"
|
||||
|
||||
@@ -1579,12 +1688,12 @@ msgstr "Seek"
|
||||
msgid "Send"
|
||||
msgstr "Send"
|
||||
|
||||
#: src/pages/UserLogin.tsx:157
|
||||
#: src/pages/UserLogin.tsx:163
|
||||
msgid "Send reset link"
|
||||
msgstr "Send reset link"
|
||||
|
||||
#: src/components/chat/PendingItem.tsx:104
|
||||
#: src/pages/UserLogin.tsx:156
|
||||
#: src/pages/UserLogin.tsx:162
|
||||
msgid "Sending…"
|
||||
msgstr "Sending…"
|
||||
|
||||
@@ -1603,8 +1712,8 @@ msgid "email.settings"
|
||||
msgstr "Settings"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:104
|
||||
#: src/pages/Settings.tsx:72
|
||||
#: src/pages/Settings.tsx:84
|
||||
#: src/pages/Settings.tsx:75
|
||||
#: src/pages/Settings.tsx:88
|
||||
msgid "Settings"
|
||||
msgstr "Settings"
|
||||
|
||||
@@ -1612,6 +1721,19 @@ msgstr "Settings"
|
||||
msgid "Several people are typing…"
|
||||
msgstr "Several people are typing…"
|
||||
|
||||
#: src/pages/Authorize.tsx:37
|
||||
msgid "Sign in elsewhere"
|
||||
msgstr "Sign in elsewhere"
|
||||
|
||||
#: src/pages/Authorize.tsx:135
|
||||
msgid "Sign in to {name}?"
|
||||
msgstr "Sign in to {name}?"
|
||||
|
||||
#: src/pages/Authorize.tsx:154
|
||||
#: src/pages/FederationCallback.tsx:73
|
||||
msgid "Signing you in…"
|
||||
msgstr "Signing you in…"
|
||||
|
||||
#: src/components/profile/ProfileOwnActions.tsx:102
|
||||
msgid "Single use, valid for 7 days."
|
||||
msgstr "Single use, valid for 7 days."
|
||||
@@ -1636,7 +1758,7 @@ msgstr "Someone asked to reset the password of your {site} account. The button b
|
||||
msgid "Something went wrong"
|
||||
msgstr "Something went wrong"
|
||||
|
||||
#: src/pages/Settings.tsx:132
|
||||
#: src/pages/Settings.tsx:165
|
||||
msgid "Sounds"
|
||||
msgstr "Sounds"
|
||||
|
||||
@@ -1644,7 +1766,7 @@ msgstr "Sounds"
|
||||
msgid "Start fresh"
|
||||
msgstr "Start fresh"
|
||||
|
||||
#: src/pages/Settings.tsx:103
|
||||
#: src/pages/Settings.tsx:136
|
||||
msgid "Style"
|
||||
msgstr "Style"
|
||||
|
||||
@@ -1696,11 +1818,11 @@ msgstr "The new order couldn't be saved. Try again."
|
||||
msgid "This comment couldn't be deleted. Try again."
|
||||
msgstr "This comment couldn't be deleted. Try again."
|
||||
|
||||
#: src/pages/UserRegister.tsx:118
|
||||
#: src/pages/UserRegister.tsx:120
|
||||
msgid "This invite link is missing, expired, or already used."
|
||||
msgstr "This invite link is missing, expired, or already used."
|
||||
|
||||
#: src/pages/UserLogin.tsx:104
|
||||
#: src/pages/UserLogin.tsx:110
|
||||
msgid "This is a mirage."
|
||||
msgstr "This is a mirage."
|
||||
|
||||
@@ -1716,7 +1838,11 @@ msgstr "This page does not exist."
|
||||
msgid "This reset link is missing or malformed."
|
||||
msgstr "This reset link is missing or malformed."
|
||||
|
||||
#: src/pages/Settings.tsx:168
|
||||
#: src/pages/FederationCallback.tsx:38
|
||||
msgid "This sign-in link is incomplete."
|
||||
msgstr "This sign-in link is incomplete."
|
||||
|
||||
#: src/pages/Settings.tsx:201
|
||||
msgid "This site doesn't send email, so no digest goes out."
|
||||
msgstr "This site doesn't send email, so no digest goes out."
|
||||
|
||||
@@ -1763,6 +1889,14 @@ msgstr "Top this week"
|
||||
msgid "Track {0}"
|
||||
msgstr "Track {0}"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:155
|
||||
msgid "Trust"
|
||||
msgstr "Trust"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:32
|
||||
msgid "Trusted"
|
||||
msgstr "Trusted"
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:668
|
||||
msgid "Try again"
|
||||
msgstr "Try again"
|
||||
@@ -1826,7 +1960,7 @@ msgstr "Unsubscribed"
|
||||
msgid "email.digest.upload"
|
||||
msgstr "upload"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:72
|
||||
#: src/components/profile/ProfileHeader.tsx:79
|
||||
msgid "Upload failed"
|
||||
msgstr "Upload failed"
|
||||
|
||||
@@ -1883,9 +2017,9 @@ msgstr "User menu"
|
||||
|
||||
#: src/components/profile/ProfileManageTab.tsx:61
|
||||
#: src/components/profile/UsernameField.tsx:51
|
||||
#: src/pages/Settings.tsx:87
|
||||
#: src/pages/UserLogin.tsx:75
|
||||
#: src/pages/UserRegister.tsx:137
|
||||
#: src/pages/Settings.tsx:91
|
||||
#: src/pages/UserLogin.tsx:79
|
||||
#: src/pages/UserRegister.tsx:139
|
||||
msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
@@ -1894,6 +2028,10 @@ msgstr "Username"
|
||||
msgid "Users"
|
||||
msgstr "Users"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:169
|
||||
msgid "Users of a trusted instance sign in here with their account there. Those of a blocked one can't. Users of any other instance need an invite."
|
||||
msgstr "Users of a trusted instance sign in here with their account there. Those of a blocked one can't. Users of any other instance need an invite."
|
||||
|
||||
#: src/components/profile/ProfileSection.tsx:43
|
||||
msgid "View all →"
|
||||
msgstr "View all →"
|
||||
@@ -1952,6 +2090,10 @@ msgstr "Yesterday"
|
||||
msgid "You can post it anyway."
|
||||
msgstr "You can post it anyway."
|
||||
|
||||
#: src/components/federation/GrantList.tsx:93
|
||||
msgid "You haven't signed in to another gerbeur with this account yet."
|
||||
msgstr "You haven't signed in to another gerbeur with this account yet."
|
||||
|
||||
#: src/pages/Unsubscribe.tsx:94
|
||||
msgid "You won't get the monthly recap any more. You can turn it back on in your settings."
|
||||
msgstr "You won't get the monthly recap any more. You can turn it back on in your settings."
|
||||
@@ -1997,7 +2139,15 @@ msgstr "You've reached the end."
|
||||
msgid "email.welcome.preheader"
|
||||
msgstr "Your account is ready."
|
||||
|
||||
#: src/pages/UserLogin.tsx:152
|
||||
#: src/pages/Authorize.tsx:104
|
||||
msgid "Your account lives on {home}: sign in to other instances from there."
|
||||
msgstr "Your account lives on {home}: sign in to other instances from there."
|
||||
|
||||
#: src/pages/Settings.tsx:119
|
||||
msgid "Your account lives on {home}: your password, email address, avatar and username change there."
|
||||
msgstr "Your account lives on {home}: your password, email address, avatar and username change there."
|
||||
|
||||
#: src/pages/UserLogin.tsx:158
|
||||
msgid "Your email address"
|
||||
msgstr "Your email address"
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
276
locales/fr.po
276
locales/fr.po
@@ -51,7 +51,7 @@ msgstr "{0} de plus en ligne : {restNames}"
|
||||
|
||||
#. placeholder {0}: VALIDATION.USERNAME_MIN
|
||||
#. placeholder {1}: VALIDATION.USERNAME_MAX
|
||||
#: src/pages/UserRegister.tsx:145
|
||||
#: src/pages/UserRegister.tsx:147
|
||||
msgid "{0}–{1} characters: letters, numbers, or underscores"
|
||||
msgstr "{0}–{1} caractères : lettres, chiffres ou tirets bas"
|
||||
|
||||
@@ -280,6 +280,10 @@ msgstr "<0>{0}</0> a voté pour <1>{1}</1>"
|
||||
msgid "<0>{0}</0> was added to <1>{1}</1>"
|
||||
msgstr "<0>{0}</0> a été ajouté à <1>{1}</1>"
|
||||
|
||||
#: src/pages/Authorize.tsx:138
|
||||
msgid "<0>{name}</0> ({host}) asks to sign you in with your account here, <1>@{username}</1>. It will receive your username, your email address and your avatar."
|
||||
msgstr "<0>{name}</0> ({host}) demande à vous connecter avec votre compte d'ici, <1>@{username}</1>. Il recevra votre nom d'utilisateur, votre adresse e-mail et votre avatar."
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:778
|
||||
msgid "1 new message"
|
||||
msgstr "1 nouveau message"
|
||||
@@ -296,10 +300,14 @@ msgstr "Il faut un lien"
|
||||
msgid "a post"
|
||||
msgstr "une publication"
|
||||
|
||||
#: src/pages/Settings.tsx:85
|
||||
#: src/pages/Settings.tsx:89
|
||||
msgid "Account"
|
||||
msgstr "Compte"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:144
|
||||
msgid "Account on <0>{host}</0>"
|
||||
msgstr "Compte sur <0>{host}</0>"
|
||||
|
||||
#: src/components/comment/CommentThread.tsx:102
|
||||
msgid "Add a comment…"
|
||||
msgstr "Ajouter un commentaire…"
|
||||
@@ -309,7 +317,7 @@ msgstr "Ajouter un commentaire…"
|
||||
msgid "Add category"
|
||||
msgstr "Ajouter une catégorie"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:153
|
||||
#: src/components/profile/ProfileHeader.tsx:173
|
||||
msgid "Add email…"
|
||||
msgstr "Ajouter un e-mail…"
|
||||
|
||||
@@ -342,10 +350,14 @@ msgstr "Tout"
|
||||
msgid "Already dumped by {0} {1}"
|
||||
msgstr "Déjà recommandé par {0} {1}"
|
||||
|
||||
#: src/pages/UserRegister.tsx:175
|
||||
#: src/pages/UserRegister.tsx:179
|
||||
msgid "Already have an account? <0>Log in</0>"
|
||||
msgstr "Vous avez déjà un compte ? <0>Se connecter</0>"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:149
|
||||
msgid "An instance's address, like music.example"
|
||||
msgstr "L'adresse d'une instance, comme music.example"
|
||||
|
||||
#: src/utils/shared/api.ts:35
|
||||
msgid "An unexpected error occurred."
|
||||
msgstr "Une erreur inattendue s'est produite."
|
||||
@@ -355,14 +367,14 @@ msgstr "Une erreur inattendue s'est produite."
|
||||
msgid "email.digest.andMore"
|
||||
msgstr "et {n} de plus"
|
||||
|
||||
#: src/pages/Settings.tsx:101
|
||||
#: src/pages/Settings.tsx:134
|
||||
msgid "Appearance"
|
||||
msgstr "Apparence"
|
||||
|
||||
#. placeholder {0}: VALIDATION.PASSWORD_MIN
|
||||
#: src/components/profile/ChangePasswordModal.tsx:101
|
||||
#: src/pages/ResetPassword.tsx:124
|
||||
#: src/pages/UserRegister.tsx:164
|
||||
#: src/pages/UserRegister.tsx:166
|
||||
msgid "At least {0} characters"
|
||||
msgstr "Au moins {0} caractères"
|
||||
|
||||
@@ -370,7 +382,7 @@ msgstr "Au moins {0} caractères"
|
||||
msgid "At most {maxLength} characters."
|
||||
msgstr "{maxLength} caractères au maximum."
|
||||
|
||||
#: src/pages/Settings.tsx:46
|
||||
#: src/pages/Settings.tsx:48
|
||||
msgid "Auto"
|
||||
msgstr "Auto"
|
||||
|
||||
@@ -379,6 +391,18 @@ msgstr "Auto"
|
||||
msgid "Back to login"
|
||||
msgstr "Retour à la connexion"
|
||||
|
||||
#: src/pages/FederationCallback.tsx:66
|
||||
msgid "Back to the login page"
|
||||
msgstr "Retour à la page de connexion"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:163
|
||||
msgid "Block"
|
||||
msgstr "Bloquer"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:33
|
||||
msgid "Blocked"
|
||||
msgstr "Bloquée"
|
||||
|
||||
#. js-lingui-explicit-id
|
||||
#: api/mail/digest.ts:225
|
||||
msgid "email.digest.by"
|
||||
@@ -394,6 +418,11 @@ msgstr "par @{username} · {n, plural, one {# reco} other {# recos}}"
|
||||
msgid "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects."
|
||||
msgstr "Impossible de se connecter au serveur de mises à jour en direct. Les votes et les notifications pourraient ne pas se synchroniser avant la reconnexion."
|
||||
|
||||
#: src/pages/Authorize.tsx:117
|
||||
#: src/pages/Authorize.tsx:145
|
||||
msgid "Can't sign in there"
|
||||
msgstr "Connexion impossible"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:225
|
||||
#: src/components/category/CategoryManager.tsx:226
|
||||
#: src/components/chat/ChatEditBox.tsx:92
|
||||
@@ -404,6 +433,7 @@ msgstr "Impossible de se connecter au serveur de mises à jour en direct. Les vo
|
||||
#: src/components/profile/DescriptionEditor.tsx:97
|
||||
#: src/components/profile/EmailEditor.tsx:83
|
||||
#: src/components/shared/ConfirmModal.tsx:63
|
||||
#: src/pages/Authorize.tsx:158
|
||||
#: src/pages/Dump.tsx:445
|
||||
#: src/pages/DumpEdit.tsx:565
|
||||
msgid "Cancel"
|
||||
@@ -423,7 +453,7 @@ msgid "Cancel search"
|
||||
msgstr "Annuler la recherche"
|
||||
|
||||
#: src/components/category/CategorySelect.tsx:33
|
||||
#: src/pages/Manage.tsx:30
|
||||
#: src/pages/Manage.tsx:36
|
||||
msgid "Categories"
|
||||
msgstr "Catégories"
|
||||
|
||||
@@ -431,7 +461,7 @@ msgstr "Catégories"
|
||||
msgid "Category"
|
||||
msgstr "Catégorie"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:95
|
||||
#: src/components/profile/ProfileHeader.tsx:102
|
||||
msgid "Change avatar"
|
||||
msgstr "Changer l'avatar"
|
||||
|
||||
@@ -439,12 +469,16 @@ msgstr "Changer l'avatar"
|
||||
msgid "Change image"
|
||||
msgstr "Changer l'image"
|
||||
|
||||
#: src/pages/Settings.tsx:101
|
||||
msgid "Change it on {home}"
|
||||
msgstr "Le changer sur {home}"
|
||||
|
||||
#: src/components/profile/ChangePasswordModal.tsx:66
|
||||
#: src/components/profile/ChangePasswordModal.tsx:120
|
||||
msgid "Change password"
|
||||
msgstr "Changer le mot de passe"
|
||||
|
||||
#: src/pages/Settings.tsx:96
|
||||
#: src/pages/Settings.tsx:112
|
||||
msgid "Change password…"
|
||||
msgstr "Changer le mot de passe…"
|
||||
|
||||
@@ -464,10 +498,14 @@ msgstr "Tribune"
|
||||
msgid "Chat ({unreadChatCount} unread)"
|
||||
msgstr "{unreadChatCount} messages non lus"
|
||||
|
||||
#: src/pages/UserRegister.tsx:106
|
||||
#: src/pages/UserRegister.tsx:108
|
||||
msgid "Checking invite…"
|
||||
msgstr "Vérification de l'invitation…"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:154
|
||||
msgid "Checking…"
|
||||
msgstr "Vérification…"
|
||||
|
||||
#: src/components/profile/ChangePasswordModal.tsx:75
|
||||
#: src/components/shared/Modal.tsx:76
|
||||
msgid "Close"
|
||||
@@ -493,7 +531,7 @@ msgstr "Fermer sans publier ? Le fichier joint sera perdu — ce que vous avez
|
||||
msgid "Collapse player"
|
||||
msgstr "Réduire le lecteur"
|
||||
|
||||
#: src/pages/Settings.tsx:110
|
||||
#: src/pages/Settings.tsx:143
|
||||
msgid "Color scheme"
|
||||
msgstr "Thème de couleur"
|
||||
|
||||
@@ -507,10 +545,22 @@ msgstr "Communauté"
|
||||
msgid "Confirm new password"
|
||||
msgstr "Confirmer le nouveau mot de passe"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:111
|
||||
msgid "Connecting…"
|
||||
msgstr "Connexion…"
|
||||
|
||||
#: src/contexts/ws/WSProvider.tsx:757
|
||||
msgid "Connection lost — this message may not have been sent"
|
||||
msgstr "Connexion perdue — ce message n'a peut-être pas été envoyé"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:113
|
||||
msgid "Continue"
|
||||
msgstr "Continuer"
|
||||
|
||||
#: src/pages/Authorize.tsx:155
|
||||
msgid "Continue as @{username}"
|
||||
msgstr "Continuer en tant que @{username}"
|
||||
|
||||
#: src/components/profile/ProfileOwnActions.tsx:99
|
||||
msgid "Copied!"
|
||||
msgstr "Copié !"
|
||||
@@ -540,6 +590,10 @@ msgstr "Renommage impossible"
|
||||
msgid "Could not save"
|
||||
msgstr "Sauvegarde impossible"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:146
|
||||
msgid "Couldn't add that instance"
|
||||
msgstr "Impossible d'ajouter cette instance"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:607
|
||||
msgid "Couldn't load a preview for this link — check it, or post it as-is and refresh the preview later."
|
||||
msgstr "Impossible de charger un aperçu pour ce lien — vérifiez-le, ou publiez-le tel quel et actualisez l'aperçu plus tard."
|
||||
@@ -548,6 +602,10 @@ msgstr "Impossible de charger un aperçu pour ce lien — vérifiez-le, ou publi
|
||||
msgid "Couldn't load the chat."
|
||||
msgstr "Impossible de charger le chat."
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:102
|
||||
msgid "Couldn't reach that instance"
|
||||
msgstr "Impossible de joindre cette instance"
|
||||
|
||||
#: src/pages/Unsubscribe.tsx:116
|
||||
msgid "Couldn't unsubscribe"
|
||||
msgstr "Désabonnement impossible"
|
||||
@@ -576,11 +634,11 @@ msgstr "Création…"
|
||||
msgid "Current password"
|
||||
msgstr "Mot de passe actuel"
|
||||
|
||||
#: src/pages/Settings.tsx:48
|
||||
#: src/pages/Settings.tsx:50
|
||||
msgid "Dark"
|
||||
msgstr "Sombre"
|
||||
|
||||
#: src/pages/Settings.tsx:121
|
||||
#: src/pages/Settings.tsx:154
|
||||
msgid "Default tab"
|
||||
msgstr "Onglet par défaut"
|
||||
|
||||
@@ -655,6 +713,10 @@ msgstr "Description (facultatif)"
|
||||
msgid "Discard"
|
||||
msgstr "Abandonner"
|
||||
|
||||
#: src/components/federation/GrantList.tsx:84
|
||||
msgid "Disconnect"
|
||||
msgstr "Déconnecter"
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:743
|
||||
msgid "Disconnected — reconnecting…"
|
||||
msgstr "Déconnecté — reconnexion…"
|
||||
@@ -730,7 +792,7 @@ msgstr "Modifier {0}"
|
||||
msgid "Edit description"
|
||||
msgstr "Modifier la description"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:151
|
||||
#: src/components/profile/ProfileHeader.tsx:171
|
||||
msgid "Edit email"
|
||||
msgstr "Modifier l'e-mail"
|
||||
|
||||
@@ -772,11 +834,11 @@ msgstr "Modification"
|
||||
msgid "Editing {0}"
|
||||
msgstr "Édition de {0}"
|
||||
|
||||
#: src/pages/Settings.tsx:145
|
||||
#: src/pages/Settings.tsx:178
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
#: src/pages/UserRegister.tsx:152
|
||||
#: src/pages/UserRegister.tsx:154
|
||||
msgid "Email address"
|
||||
msgstr "Adresse e-mail"
|
||||
|
||||
@@ -822,6 +884,8 @@ msgstr "Impossible de publier le commentaire"
|
||||
msgid "Failed to post reply"
|
||||
msgstr "Impossible de publier la réponse"
|
||||
|
||||
#: src/components/federation/GrantList.tsx:98
|
||||
#: src/components/federation/PeerManager.tsx:143
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:185
|
||||
#: src/components/profile/DescriptionEditor.tsx:99
|
||||
#: src/components/profile/EmailEditor.tsx:86
|
||||
@@ -836,7 +900,7 @@ msgstr "Échec de l’enregistrement de la catégorie"
|
||||
msgid "Failed to save edit"
|
||||
msgstr "Impossible d'enregistrer la modification"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:162
|
||||
#: src/components/profile/ProfileHeader.tsx:182
|
||||
msgid "Failed to update avatar"
|
||||
msgstr "Impossible de mettre à jour l'avatar"
|
||||
|
||||
@@ -844,7 +908,7 @@ msgstr "Impossible de mettre à jour l'avatar"
|
||||
msgid "Failed to update role"
|
||||
msgstr "Erreur lors de la mise à jour du rôle"
|
||||
|
||||
#: src/pages/Settings.tsx:119
|
||||
#: src/pages/Settings.tsx:152
|
||||
msgid "Feeds"
|
||||
msgstr "Flux"
|
||||
|
||||
@@ -879,7 +943,7 @@ msgstr "Suivez des utilisateurs pour voir leurs recos ici."
|
||||
|
||||
#: src/components/feed/FeedTabBar.tsx:43
|
||||
#: src/components/profile/ProfileFollowTab.tsx:140
|
||||
#: src/pages/Settings.tsx:55
|
||||
#: src/pages/Settings.tsx:57
|
||||
#: src/pages/UserPublicProfile.tsx:161
|
||||
msgid "Followed"
|
||||
msgstr "Suivi"
|
||||
@@ -894,7 +958,7 @@ msgstr "Abonné"
|
||||
msgid "email.digest.forYou"
|
||||
msgstr "Pour vous"
|
||||
|
||||
#: src/pages/UserLogin.tsx:97
|
||||
#: src/pages/UserLogin.tsx:101
|
||||
msgid "Forgot password?"
|
||||
msgstr "Mot de passe oublié ?"
|
||||
|
||||
@@ -929,11 +993,11 @@ msgid "email.reset.hi"
|
||||
msgstr "Bonjour {username},"
|
||||
|
||||
#: src/components/feed/FeedTabBar.tsx:39
|
||||
#: src/pages/Settings.tsx:52
|
||||
#: src/pages/Settings.tsx:54
|
||||
msgid "Hot"
|
||||
msgstr "Tendances"
|
||||
|
||||
#: src/pages/UserLogin.tsx:136
|
||||
#: src/pages/UserLogin.tsx:142
|
||||
msgid "If that address is registered you'll receive a reset link shortly."
|
||||
msgstr "Si cette adresse est enregistrée, vous recevrez un lien de réinitialisation sous peu."
|
||||
|
||||
@@ -965,7 +1029,11 @@ msgstr "Dans la tribune"
|
||||
msgid "Insert emoji"
|
||||
msgstr "Insérer un emoji"
|
||||
|
||||
#: src/pages/UserRegister.tsx:117
|
||||
#: src/pages/Manage.tsx:43
|
||||
msgid "Instances"
|
||||
msgstr "Instances"
|
||||
|
||||
#: src/pages/UserRegister.tsx:119
|
||||
msgid "Invalid invite"
|
||||
msgstr "Invitation invalide"
|
||||
|
||||
@@ -979,7 +1047,7 @@ msgstr "Lien invalide"
|
||||
msgid "Invite link"
|
||||
msgstr "Lien d'invitation"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:116
|
||||
#: src/components/profile/ProfileHeader.tsx:126
|
||||
msgid "invited by"
|
||||
msgstr "invité par"
|
||||
|
||||
@@ -998,8 +1066,12 @@ msgstr "sur votre invitation"
|
||||
msgid "Invitees"
|
||||
msgstr "Invités"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:105
|
||||
msgid "Its address, like music.example"
|
||||
msgstr "Son adresse, comme music.example"
|
||||
|
||||
#: src/components/feed/FeedTabBar.tsx:41
|
||||
#: src/pages/Settings.tsx:54
|
||||
#: src/pages/Settings.tsx:56
|
||||
msgid "Journal"
|
||||
msgstr "Journal"
|
||||
|
||||
@@ -1007,11 +1079,16 @@ msgstr "Journal"
|
||||
msgid "Keep editing"
|
||||
msgstr "Continuer l'édition"
|
||||
|
||||
#. placeholder {0}: relativeTime(grant.lastUsedAt)
|
||||
#: src/components/federation/GrantList.tsx:77
|
||||
msgid "last used {0}"
|
||||
msgstr "utilisée {0}"
|
||||
|
||||
#: src/components/profile/UsernameField.tsx:59
|
||||
msgid "Letters, numbers and underscores only"
|
||||
msgstr "Lettres, chiffres et tirets bas seulement"
|
||||
|
||||
#: src/pages/Settings.tsx:47
|
||||
#: src/pages/Settings.tsx:49
|
||||
msgid "Light"
|
||||
msgstr "Clair"
|
||||
|
||||
@@ -1068,17 +1145,20 @@ msgstr "Chargement du profil…"
|
||||
#: src/components/category/CategoryManager.tsx:60
|
||||
#: src/components/chat/ChatModal.tsx:763
|
||||
#: src/components/editor/EmojiPickerPopup.tsx:125
|
||||
#: src/components/federation/PeerManager.tsx:108
|
||||
#: src/components/playlist/PlaylistMembershipPanel.tsx:45
|
||||
#: src/components/shared/ListState.tsx:38
|
||||
#: src/components/shared/LoadMoreButton.tsx:32
|
||||
#: src/components/social/UserListPopover.tsx:151
|
||||
#: src/pages/Authorize.tsx:122
|
||||
msgid "Loading…"
|
||||
msgstr "Chargement…"
|
||||
|
||||
#: src/components/layout/AppHeader.tsx:208
|
||||
#: src/pages/UserLogin.tsx:41
|
||||
#: src/pages/UserLogin.tsx:67
|
||||
#: src/pages/UserLogin.tsx:86
|
||||
#: src/pages/FederationCallback.tsx:31
|
||||
#: src/pages/UserLogin.tsx:44
|
||||
#: src/pages/UserLogin.tsx:71
|
||||
#: src/pages/UserLogin.tsx:90
|
||||
msgid "Log in"
|
||||
msgstr "Se connecter"
|
||||
|
||||
@@ -1090,16 +1170,22 @@ msgstr "Se connecter pour aimer"
|
||||
msgid "Log in to vote"
|
||||
msgstr "Se connecter pour voter"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:126
|
||||
#. placeholder {0}: peer.name ?? peer.host
|
||||
#: src/components/federation/FederatedSignIn.tsx:97
|
||||
msgid "Log in with {0}"
|
||||
msgstr "Se connecter avec {0}"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:127
|
||||
#: src/pages/UserPublicProfile.tsx:131
|
||||
msgid "Log out"
|
||||
msgstr "Se déconnecter"
|
||||
|
||||
#: src/pages/UserLogin.tsx:85
|
||||
#: src/pages/UserLogin.tsx:89
|
||||
msgid "Logging in…"
|
||||
msgstr "Connexion…"
|
||||
|
||||
#: src/pages/UserLogin.tsx:72
|
||||
#: src/pages/FederationCallback.tsx:63
|
||||
#: src/pages/UserLogin.tsx:76
|
||||
msgid "Login failed"
|
||||
msgstr "Connexion échouée"
|
||||
|
||||
@@ -1107,9 +1193,9 @@ msgstr "Connexion échouée"
|
||||
msgid "Lowercase letters, numbers and single hyphens only"
|
||||
msgstr "Minuscules, chiffres et tirets simples seulement"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:113
|
||||
#: src/pages/Manage.tsx:24
|
||||
#: src/pages/Manage.tsx:29
|
||||
#: src/components/layout/UserMenu.tsx:114
|
||||
#: src/pages/Manage.tsx:27
|
||||
#: src/pages/Manage.tsx:34
|
||||
#: src/pages/UserPublicProfile.tsx:164
|
||||
msgid "Manage"
|
||||
msgstr "Administration"
|
||||
@@ -1138,7 +1224,7 @@ msgstr "Nom"
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:692
|
||||
#: src/components/feed/FeedTabBar.tsx:40
|
||||
#: src/pages/Settings.tsx:53
|
||||
#: src/pages/Settings.tsx:55
|
||||
msgid "New"
|
||||
msgstr "Nouveau"
|
||||
|
||||
@@ -1231,6 +1317,10 @@ msgstr "Aucun utilisateur ne correspond à « {q} »."
|
||||
msgid "Not following anyone yet."
|
||||
msgstr "Aucun abonnement pour le moment."
|
||||
|
||||
#: src/pages/Authorize.tsx:103
|
||||
msgid "Not from here"
|
||||
msgstr "Compte d'ailleurs"
|
||||
|
||||
#: src/pages/Community.tsx:127
|
||||
msgid "Nothing happened this month."
|
||||
msgstr "Rien de neuf ce mois-ci."
|
||||
@@ -1248,7 +1338,7 @@ msgstr "Rien ici pour l'instant."
|
||||
#: src/components/layout/NotificationBell.tsx:57
|
||||
#: src/pages/Notifications.tsx:387
|
||||
#: src/pages/Notifications.tsx:505
|
||||
#: src/pages/Settings.tsx:130
|
||||
#: src/pages/Settings.tsx:163
|
||||
msgid "Notifications"
|
||||
msgstr "Notifications"
|
||||
|
||||
@@ -1256,11 +1346,11 @@ msgstr "Notifications"
|
||||
msgid "Notifications ({unreadNotificationCount} unread)"
|
||||
msgstr "Notifications ({unreadNotificationCount} non lues)"
|
||||
|
||||
#: src/pages/Settings.tsx:60
|
||||
#: src/pages/Settings.tsx:62
|
||||
msgid "Off"
|
||||
msgstr "Désactivés"
|
||||
|
||||
#: src/pages/Settings.tsx:59
|
||||
#: src/pages/Settings.tsx:61
|
||||
msgid "On"
|
||||
msgstr "Activés"
|
||||
|
||||
@@ -1300,6 +1390,18 @@ msgstr "Ouvrir la tribune"
|
||||
msgid "or <0>browse files</0>"
|
||||
msgstr "ou <0>parcourir les fichiers</0>"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:82
|
||||
msgid "Or join with your account on another gerbeur"
|
||||
msgstr "Ou rejoignez-nous avec votre compte d'un autre gerbeur"
|
||||
|
||||
#: src/components/federation/FederatedSignIn.tsx:83
|
||||
msgid "Or log in with your account on another gerbeur"
|
||||
msgstr "Ou connectez-vous avec votre compte d'un autre gerbeur"
|
||||
|
||||
#: src/pages/Settings.tsx:128
|
||||
msgid "Other instances"
|
||||
msgstr "Autres instances"
|
||||
|
||||
#: src/pages/UserPublicProfile.tsx:157
|
||||
msgid "Overview"
|
||||
msgstr "Aperçu"
|
||||
@@ -1308,13 +1410,14 @@ msgstr "Aperçu"
|
||||
msgid "Page not found"
|
||||
msgstr "Page introuvable"
|
||||
|
||||
#: src/pages/Settings.tsx:90
|
||||
#: src/pages/UserLogin.tsx:82
|
||||
#: src/pages/Settings.tsx:96
|
||||
#: src/pages/Settings.tsx:106
|
||||
#: src/pages/UserLogin.tsx:86
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#. placeholder {0}: VALIDATION.PASSWORD_MIN
|
||||
#: src/pages/UserRegister.tsx:158
|
||||
#: src/pages/UserRegister.tsx:160
|
||||
msgid "Password (min. {0} characters)"
|
||||
msgstr "Mot de passe (min. {0} caractères)"
|
||||
|
||||
@@ -1416,17 +1519,17 @@ msgstr "Actualisation du flux…"
|
||||
msgid "Refreshing…"
|
||||
msgstr "Actualisation…"
|
||||
|
||||
#: src/pages/UserRegister.tsx:45
|
||||
#: src/pages/UserRegister.tsx:129
|
||||
#: src/pages/UserRegister.tsx:169
|
||||
#: src/pages/UserRegister.tsx:47
|
||||
#: src/pages/UserRegister.tsx:131
|
||||
#: src/pages/UserRegister.tsx:171
|
||||
msgid "Register"
|
||||
msgstr "S'inscrire"
|
||||
|
||||
#: src/pages/UserRegister.tsx:168
|
||||
#: src/pages/UserRegister.tsx:170
|
||||
msgid "Registering…"
|
||||
msgstr "Inscription…"
|
||||
|
||||
#: src/pages/UserRegister.tsx:134
|
||||
#: src/pages/UserRegister.tsx:136
|
||||
msgid "Registration failed"
|
||||
msgstr "Inscription échouée"
|
||||
|
||||
@@ -1434,6 +1537,12 @@ msgstr "Inscription échouée"
|
||||
msgid "Related"
|
||||
msgstr "Connexe"
|
||||
|
||||
#. placeholder {0}: peer.host
|
||||
#: src/components/federation/PeerManager.tsx:133
|
||||
#: src/components/federation/PeerManager.tsx:134
|
||||
msgid "Remove {0}"
|
||||
msgstr "Retirer {0}"
|
||||
|
||||
#: src/components/form/FileDropZone.tsx:139
|
||||
msgid "Remove file"
|
||||
msgstr "Supprimer le fichier"
|
||||
@@ -1472,7 +1581,7 @@ msgstr "Répondre"
|
||||
msgid "Replying to"
|
||||
msgstr "En réponse à"
|
||||
|
||||
#: src/pages/UserLogin.tsx:148
|
||||
#: src/pages/UserLogin.tsx:154
|
||||
msgid "Request failed"
|
||||
msgstr "Échec de la demande"
|
||||
|
||||
@@ -1579,12 +1688,12 @@ msgstr "Position"
|
||||
msgid "Send"
|
||||
msgstr "Envoyer"
|
||||
|
||||
#: src/pages/UserLogin.tsx:157
|
||||
#: src/pages/UserLogin.tsx:163
|
||||
msgid "Send reset link"
|
||||
msgstr "Envoyer le lien de réinitialisation"
|
||||
|
||||
#: src/components/chat/PendingItem.tsx:104
|
||||
#: src/pages/UserLogin.tsx:156
|
||||
#: src/pages/UserLogin.tsx:162
|
||||
msgid "Sending…"
|
||||
msgstr "Envoi…"
|
||||
|
||||
@@ -1603,8 +1712,8 @@ msgid "email.settings"
|
||||
msgstr "Paramètres"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:104
|
||||
#: src/pages/Settings.tsx:72
|
||||
#: src/pages/Settings.tsx:84
|
||||
#: src/pages/Settings.tsx:75
|
||||
#: src/pages/Settings.tsx:88
|
||||
msgid "Settings"
|
||||
msgstr "Paramètres"
|
||||
|
||||
@@ -1612,6 +1721,19 @@ msgstr "Paramètres"
|
||||
msgid "Several people are typing…"
|
||||
msgstr "Plusieurs personnes écrivent…"
|
||||
|
||||
#: src/pages/Authorize.tsx:37
|
||||
msgid "Sign in elsewhere"
|
||||
msgstr "Se connecter ailleurs"
|
||||
|
||||
#: src/pages/Authorize.tsx:135
|
||||
msgid "Sign in to {name}?"
|
||||
msgstr "Se connecter à {name} ?"
|
||||
|
||||
#: src/pages/Authorize.tsx:154
|
||||
#: src/pages/FederationCallback.tsx:73
|
||||
msgid "Signing you in…"
|
||||
msgstr "Connexion…"
|
||||
|
||||
#: src/components/profile/ProfileOwnActions.tsx:102
|
||||
msgid "Single use, valid for 7 days."
|
||||
msgstr "Usage unique, valable 7 jours."
|
||||
@@ -1636,7 +1758,7 @@ msgstr "Quelqu'un a demandé à réinitialiser le mot de passe de votre compte {
|
||||
msgid "Something went wrong"
|
||||
msgstr "Une erreur est survenue"
|
||||
|
||||
#: src/pages/Settings.tsx:132
|
||||
#: src/pages/Settings.tsx:165
|
||||
msgid "Sounds"
|
||||
msgstr "Sons"
|
||||
|
||||
@@ -1644,7 +1766,7 @@ msgstr "Sons"
|
||||
msgid "Start fresh"
|
||||
msgstr "Repartir de zéro"
|
||||
|
||||
#: src/pages/Settings.tsx:103
|
||||
#: src/pages/Settings.tsx:136
|
||||
msgid "Style"
|
||||
msgstr "Style"
|
||||
|
||||
@@ -1696,11 +1818,11 @@ msgstr "Le nouvel ordre n'a pas pu être enregistré. Réessayez."
|
||||
msgid "This comment couldn't be deleted. Try again."
|
||||
msgstr "Ce commentaire n'a pas pu être supprimé. Réessayez."
|
||||
|
||||
#: src/pages/UserRegister.tsx:118
|
||||
#: src/pages/UserRegister.tsx:120
|
||||
msgid "This invite link is missing, expired, or already used."
|
||||
msgstr "Ce lien d'invitation est manquant, expiré ou déjà utilisé."
|
||||
|
||||
#: src/pages/UserLogin.tsx:104
|
||||
#: src/pages/UserLogin.tsx:110
|
||||
msgid "This is a mirage."
|
||||
msgstr "C'est un mirage."
|
||||
|
||||
@@ -1716,7 +1838,11 @@ msgstr "Rien à voir, circulez."
|
||||
msgid "This reset link is missing or malformed."
|
||||
msgstr "Ce lien de réinitialisation est absent ou malformé."
|
||||
|
||||
#: src/pages/Settings.tsx:168
|
||||
#: src/pages/FederationCallback.tsx:38
|
||||
msgid "This sign-in link is incomplete."
|
||||
msgstr "Ce lien de connexion est incomplet."
|
||||
|
||||
#: src/pages/Settings.tsx:201
|
||||
msgid "This site doesn't send email, so no digest goes out."
|
||||
msgstr "Ce site n'envoie pas d'e-mails, aucun résumé ne part donc."
|
||||
|
||||
@@ -1763,6 +1889,14 @@ msgstr "Les plus votées de la semaine"
|
||||
msgid "Track {0}"
|
||||
msgstr "Piste {0}"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:155
|
||||
msgid "Trust"
|
||||
msgstr "Approuver"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:32
|
||||
msgid "Trusted"
|
||||
msgstr "Approuvée"
|
||||
|
||||
#: src/components/chat/ChatModal.tsx:668
|
||||
msgid "Try again"
|
||||
msgstr "Réessayer"
|
||||
@@ -1826,7 +1960,7 @@ msgstr "Désabonné"
|
||||
msgid "email.digest.upload"
|
||||
msgstr "fichier"
|
||||
|
||||
#: src/components/profile/ProfileHeader.tsx:72
|
||||
#: src/components/profile/ProfileHeader.tsx:79
|
||||
msgid "Upload failed"
|
||||
msgstr "Envoi échoué"
|
||||
|
||||
@@ -1883,9 +2017,9 @@ msgstr "Menu utilisateur"
|
||||
|
||||
#: src/components/profile/ProfileManageTab.tsx:61
|
||||
#: src/components/profile/UsernameField.tsx:51
|
||||
#: src/pages/Settings.tsx:87
|
||||
#: src/pages/UserLogin.tsx:75
|
||||
#: src/pages/UserRegister.tsx:137
|
||||
#: src/pages/Settings.tsx:91
|
||||
#: src/pages/UserLogin.tsx:79
|
||||
#: src/pages/UserRegister.tsx:139
|
||||
msgid "Username"
|
||||
msgstr "Nom d'utilisateur"
|
||||
|
||||
@@ -1894,6 +2028,10 @@ msgstr "Nom d'utilisateur"
|
||||
msgid "Users"
|
||||
msgstr "Utilisateurs"
|
||||
|
||||
#: src/components/federation/PeerManager.tsx:169
|
||||
msgid "Users of a trusted instance sign in here with their account there. Those of a blocked one can't. Users of any other instance need an invite."
|
||||
msgstr "Les utilisateurs d'une instance approuvée se connectent ici avec leur compte de là-bas. Ceux d'une instance bloquée ne le peuvent pas. Ceux de toute autre instance ont besoin d'une invitation."
|
||||
|
||||
#: src/components/profile/ProfileSection.tsx:43
|
||||
msgid "View all →"
|
||||
msgstr "Tout voir →"
|
||||
@@ -1952,6 +2090,10 @@ msgstr "Hier"
|
||||
msgid "You can post it anyway."
|
||||
msgstr "Vous pouvez la publier quand même."
|
||||
|
||||
#: src/components/federation/GrantList.tsx:93
|
||||
msgid "You haven't signed in to another gerbeur with this account yet."
|
||||
msgstr "Vous ne vous êtes encore connecté à aucun autre gerbeur avec ce compte."
|
||||
|
||||
#: src/pages/Unsubscribe.tsx:94
|
||||
msgid "You won't get the monthly recap any more. You can turn it back on in your settings."
|
||||
msgstr "Vous ne recevrez plus le récap mensuel. Vous pouvez le réactiver dans vos paramètres."
|
||||
@@ -1997,7 +2139,15 @@ msgstr "Vous avez tout lu, tout vu, tout bu."
|
||||
msgid "email.welcome.preheader"
|
||||
msgstr "Votre compte est prêt."
|
||||
|
||||
#: src/pages/UserLogin.tsx:152
|
||||
#: src/pages/Authorize.tsx:104
|
||||
msgid "Your account lives on {home}: sign in to other instances from there."
|
||||
msgstr "Votre compte est sur {home} : connectez-vous aux autres instances depuis là-bas."
|
||||
|
||||
#: src/pages/Settings.tsx:119
|
||||
msgid "Your account lives on {home}: your password, email address, avatar and username change there."
|
||||
msgstr "Votre compte est sur {home} : votre mot de passe, votre adresse e-mail, votre avatar et votre nom d'utilisateur se changent là-bas."
|
||||
|
||||
#: src/pages/UserLogin.tsx:158
|
||||
msgid "Your email address"
|
||||
msgstr "Votre adresse e-mail"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user