userpage: generate & display referral links

shown on a new card, with an explanation, the number of remaining uses,
and expiry of the current referral.
This commit is contained in:
Harvey Tindall
2023-09-07 16:25:47 +01:00
parent 0a82f889f3
commit 311ecb7030
50 changed files with 166 additions and 54 deletions
-1
View File
@@ -79,7 +79,6 @@
"inviteUsersCreated": "Oprettet brugere",
"inviteNoProfile": "Ingen Profil",
"inviteDateCreated": "Oprettet",
"inviteRemainingUses": "Resterende anvendelser",
"inviteNoInvites": "Ingen",
"inviteExpiresInTime": "Udløber om {n}",
"notifyEvent": "Meddel den:",
-1
View File
@@ -53,7 +53,6 @@
"inviteUsersCreated": "Erstellte Benutzer",
"inviteNoProfile": "Kein Profil",
"inviteDateCreated": "Erstellt",
"inviteRemainingUses": "Verbleibende Verwendungen",
"inviteNoInvites": "Keine",
"inviteExpiresInTime": "Läuft in {n} ab",
"notifyEvent": "Benachrichtigen bei:",
-1
View File
@@ -56,7 +56,6 @@
"inviteUsersCreated": "Δημιουργηθέντες χρήστες",
"inviteNoProfile": "Κανένα Προφίλ",
"inviteDateCreated": "Δημιουργηθέντα",
"inviteRemainingUses": "Εναπομείναντες χρήσεις",
"inviteNoInvites": "Καμία",
"inviteExpiresInTime": "Λήγει σε {n}",
"notifyEvent": "Ενημέρωση όταν:",
-1
View File
@@ -124,7 +124,6 @@
"addProfileStoreHomescreenLayout": "Store homescreen layout",
"inviteNoUsersCreated": "None yet!",
"inviteUsersCreated": "Created users",
"inviteRemainingUses": "Remaining uses",
"inviteNoInvites": "None",
"inviteExpiresInTime": "Expires in {n}",
"notifyEvent": "Notify on:",
+1 -2
View File
@@ -95,7 +95,6 @@
"inviteUsersCreated": "Created users",
"inviteNoProfile": "No Profile",
"inviteDateCreated": "Created",
"inviteRemainingUses": "Remaining uses",
"inviteNoInvites": "None",
"inviteExpiresInTime": "Expires in {n}",
"notifyEvent": "Notify on:",
@@ -224,4 +223,4 @@
"plural": "Extended expiry for {n} users."
}
}
}
}
-1
View File
@@ -75,7 +75,6 @@
"inviteUsersCreated": "Usuarios creados",
"inviteNoProfile": "Sin perfil",
"inviteDateCreated": "Creado",
"inviteRemainingUses": "Usos restantes",
"inviteNoInvites": "Ninguno",
"inviteExpiresInTime": "Caduca en {n}",
"notifyEvent": "Notificar en:",
-1
View File
@@ -55,7 +55,6 @@
"inviteUsersCreated": "Utilisateurs créés",
"inviteNoProfile": "Aucun profil",
"inviteDateCreated": "Créer",
"inviteRemainingUses": "Utilisations restantes",
"inviteNoInvites": "Aucune",
"inviteExpiresInTime": "Expires dans {n}",
"notifyEvent": "Notifier sur :",
-1
View File
@@ -87,7 +87,6 @@
"inviteUsersCreated": "",
"inviteNoProfile": "",
"inviteDateCreated": "",
"inviteRemainingUses": "",
"inviteNoInvites": "",
"inviteExpiresInTime": "",
"notifyEvent": "",
-1
View File
@@ -56,7 +56,6 @@
"inviteUsersCreated": "Pengguna yang telah dibuat",
"inviteNoProfile": "Tidak ada profil",
"inviteDateCreated": "Dibuat",
"inviteRemainingUses": "Penggunaan yang tersisa",
"inviteNoInvites": "Tidak ada",
"inviteExpiresInTime": "Kadaluarsa dalam {n}",
"notifyEvent": "Beritahu pada:",
-1
View File
@@ -53,7 +53,6 @@
"inviteUsersCreated": "Aangemaakte gebruikers",
"inviteNoProfile": "Geen profiel",
"inviteDateCreated": "Aangemaakt",
"inviteRemainingUses": "Resterend aantal keer te gebruiken",
"inviteNoInvites": "Geen",
"inviteExpiresInTime": "Verloopt over {n}",
"notifyEvent": "Meldingen:",
-1
View File
@@ -87,7 +87,6 @@
"inviteUsersCreated": "",
"inviteNoProfile": "",
"inviteDateCreated": "Utworzone",
"inviteRemainingUses": "",
"inviteNoInvites": "",
"inviteExpiresInTime": "",
"notifyEvent": "",
-1
View File
@@ -54,7 +54,6 @@
"inviteUsersCreated": "Usuários criado",
"inviteNoProfile": "Sem Perfil",
"inviteDateCreated": "Criado",
"inviteRemainingUses": "Uso restantes",
"inviteNoInvites": "Nenhum",
"inviteExpiresInTime": "Expira em {n}",
"notifyEvent": "Notificar em:",
-1
View File
@@ -65,7 +65,6 @@
"inviteUsersCreated": "Skapade användare",
"inviteNoProfile": "Ingen profil",
"inviteDateCreated": "Skapad",
"inviteRemainingUses": "Återstående användningar",
"inviteNoInvites": "Ingen",
"inviteExpiresInTime": "Går ut om {n}",
"notifyEvent": "Meddela den:",
-1
View File
@@ -86,7 +86,6 @@
"inviteUsersCreated": "Người dùng đã tạo",
"inviteNoProfile": "Không có Tài khoản mẫu",
"inviteDateCreated": "Tạo",
"inviteRemainingUses": "Số lần sử dụng còn lại",
"inviteNoInvites": "Không có",
"inviteExpiresInTime": "Hết hạn trong {n}",
"notifyEvent": "Thông báo khi:",
-1
View File
@@ -80,7 +80,6 @@
"inviteUsersCreated": "已创建的用户",
"inviteNoProfile": "没有个人资料",
"inviteDateCreated": "已创建",
"inviteRemainingUses": "剩余使用次数",
"inviteNoInvites": "无",
"inviteExpiresInTime": "在 {n} 到期",
"notifyEvent": "通知:",
-1
View File
@@ -87,7 +87,6 @@
"inviteUsersCreated": "創建的帳戶",
"inviteNoProfile": "無資料",
"inviteDateCreated": "已創建",
"inviteRemainingUses": "剩餘使用次數",
"inviteNoInvites": "無",
"inviteExpiresInTime": "在 {n} 到期",
"notifyEvent": "通知:",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Udløb",
"add": "Tilføj",
"edit": "Rediger",
"delete": "Slet"
"delete": "Slet",
"inviteRemainingUses": "Resterende anvendelser"
},
"notifications": {
"errorLoginBlank": "Brugernavnet og/eller adgangskoden blev efterladt tomme.",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Ablaufdatum",
"add": "Hinzufügen",
"edit": "Bearbeiten",
"delete": "Löschen"
"delete": "Löschen",
"inviteRemainingUses": "Verbleibende Verwendungen"
},
"notifications": {
"errorLoginBlank": "Der Benutzername und/oder das Passwort wurden nicht ausgefüllt.",
+2 -1
View File
@@ -25,7 +25,8 @@
"disable": "Απενεργοποίηση",
"expiry": "Λήξη",
"edit": "Επεξεργασία",
"delete": "Διαγραφή"
"delete": "Διαγραφή",
"inviteRemainingUses": "Εναπομείναντες χρήσεις"
},
"notifications": {
"errorLoginBlank": "Το όνομα χρήστη και/ή ο κωδικός ήταν κενά.",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Expiry",
"add": "Add",
"edit": "Edit",
"delete": "Delete"
"delete": "Delete",
"inviteRemainingUses": "Remaining uses"
},
"notifications": {
"errorLoginBlank": "The username and/or password was left blank.",
+3 -2
View File
@@ -40,7 +40,8 @@
"edit": "Edit",
"delete": "Delete",
"myAccount": "My Account",
"referrals": "Referrals"
"referrals": "Referrals",
"inviteRemainingUses": "Remaining uses"
},
"notifications": {
"errorLoginBlank": "The username and/or password were left blank.",
@@ -63,4 +64,4 @@
"plural": "{n} Days"
}
}
}
}
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Expiración",
"add": "Agregar",
"edit": "Editar",
"delete": "Eliminar"
"delete": "Eliminar",
"inviteRemainingUses": "Usos restantes"
},
"notifications": {
"errorLoginBlank": "El nombre de usuario y/o la contraseña se dejaron en blanco.",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Expiration",
"add": "Ajouter",
"edit": "Éditer",
"delete": "Effacer"
"delete": "Effacer",
"inviteRemainingUses": "Utilisations restantes"
},
"notifications": {
"errorLoginBlank": "Le nom d'utilisateur et/ou le mot de passe sont vides.",
+2 -1
View File
@@ -19,7 +19,8 @@
"login": "Masuk",
"logout": "Keluar",
"edit": "Edit",
"delete": "Hapus"
"delete": "Hapus",
"inviteRemainingUses": "Penggunaan yang tersisa"
},
"notifications": {
"errorLoginBlank": "Nama pengguna dan / atau sandi kosong.",
+1 -1
View File
@@ -28,4 +28,4 @@
},
"notifications": {},
"quantityStrings": {}
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"meta": {
"name": "Nedderdütsch (NDS)"
},
"strings": {},
"notifications": {},
"quantityStrings": {}
}
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Verloop",
"add": "Voeg toe",
"edit": "Bewerken",
"delete": "Verwijderen"
"delete": "Verwijderen",
"inviteRemainingUses": "Resterend aantal keer te gebruiken"
},
"notifications": {
"errorLoginBlank": "De gebruikersnaam en/of wachtwoord is leeg.",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "Expira",
"add": "Adicionar",
"edit": "Editar",
"delete": "Deletar"
"delete": "Deletar",
"inviteRemainingUses": "Uso restantes"
},
"notifications": {
"errorLoginBlank": "O nome de usuário e/ou senha foram deixados em branco.",
+1 -1
View File
@@ -28,4 +28,4 @@
},
"notifications": {},
"quantityStrings": {}
}
}
+2 -1
View File
@@ -22,7 +22,8 @@
"disabled": "Inaktiverad",
"expiry": "Löper ut",
"edit": "Redigera",
"delete": "Radera"
"delete": "Radera",
"inviteRemainingUses": "Återstående användningar"
},
"notifications": {
"errorLoginBlank": "Användarnamnet och/eller lösenordet lämnades tomt.",
+2 -1
View File
@@ -13,7 +13,8 @@
"expiry": "Hết hạn",
"add": "Thêm",
"edit": "Chỉnh sửa",
"delete": "Xóa"
"delete": "Xóa",
"inviteRemainingUses": "Số lần sử dụng còn lại"
},
"notifications": {
"errorConnection": "Không thể kết nối với jfa-go.",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "到期",
"add": "添加",
"edit": "编辑",
"delete": "删除"
"delete": "删除",
"inviteRemainingUses": "剩余使用次数"
},
"notifications": {
"errorLoginBlank": "用户名/密码留空。",
+2 -1
View File
@@ -35,7 +35,8 @@
"expiry": "到期",
"add": "添加",
"edit": "編輯",
"delete": "刪除"
"delete": "刪除",
"inviteRemainingUses": "剩餘使用次數"
},
"notifications": {
"errorLoginBlank": "帳戶名稱和/或密碼留空。",
+1 -1
View File
@@ -49,4 +49,4 @@
"clickBelow": "",
"confirmEmail": ""
}
}
}
+4 -2
View File
@@ -34,7 +34,9 @@
"resetPasswordThroughLink": "To reset your password, enter your username, email address or a linked contact method username, and submit. A link will be sent to reset your password.",
"resetSent": "Reset Sent.",
"resetSentDescription": "If an account with the given username/contact method exists, a password reset link has been sent via all contact methods available. The code will expire in 30 minutes.",
"changePassword": "Change Password"
"changePassword": "Change Password",
"referralsDescription": "Invite friends & family to Jellyfin with this link. Come back here for a new one if it expires.",
"copyReferral": "Copy Link"
},
"notifications": {
"errorUserExists": "User already exists.",
@@ -76,4 +78,4 @@
"plural": "Must have at least {n} special characters"
}
}
}
}
+1 -1
View File
@@ -48,4 +48,4 @@
"plural": "Deve avere almeno {n} caratteri speciali"
}
}
}
}
+1 -1
View File
@@ -57,4 +57,4 @@
"plural": "Potrebnih je vsaj {n} posebnih znakov"
}
}
}
}
+1 -1
View File
@@ -13,4 +13,4 @@
"changeYourPassword": "Spremenite svoje geslo po prijavi.",
"enterYourPassword": "Vnesite svoje novo geslo spodaj."
}
}
}
+1 -1
View File
@@ -157,4 +157,4 @@
"emailMessage": "Email Message",
"emailMessageNotice": "Displays at the bottom of emails."
}
}
}
+1 -1
View File
@@ -149,4 +149,4 @@
"emailMessage": "",
"emailMessageNotice": ""
}
}
}
+1 -1
View File
@@ -146,4 +146,4 @@
"emailMessage": "",
"emailMessageNotice": ""
}
}
}
+1 -1
View File
@@ -13,4 +13,4 @@
"languageSet": "",
"discordDMs": ""
}
}
}
+1 -1
View File
@@ -13,4 +13,4 @@
"languageSet": "",
"discordDMs": ""
}
}
}
+1 -1
View File
@@ -13,4 +13,4 @@
"languageSet": "Jezik nastavljen na {language}.",
"discordDMs": "Prosimo preverite svoja zasebna sporočila za odziv."
}
}
}