Display and edit filter expirations (#1141)

This commit is contained in:
Peter-Josef Meisch 2023-03-03 08:15:34 +01:00 committed by GitHub
parent eea6d93dd5
commit db5d0b9274
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 194 additions and 187 deletions

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Кола";
"enum.avatar-shape.rounded" = "Акруглены";
"enum.durations.infinite" = "бясконцасць";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 хвілін";
"enum.durations.thirtyMinutes" = "30 хвілін";
"enum.durations.oneHour" = "1 гадзіна";
"enum.durations.sixHours" = "6 гадзін";
"enum.durations.twelveHours" = "12 гадзін";
"enum.durations.oneDay" = "1 дзень";
"enum.durations.threeDays" = "3 дні";
"enum.durations.sevenDays" = "7 дзён";
@ -332,14 +334,6 @@
"explore.section.users" = "Карыстальнікі";
// MARK: Package: Env
"env.poll-duration.5m" = "5 хвілін";
"env.poll-duration.30m" = "30 хвілін";
"env.poll-duration.1h" = "1 гадзіна";
"env.poll-duration.6h" = "6 гадзін";
"env.poll-duration.12h" = "12 гадзін";
"env.poll-duration.1d" = "1 дзень";
"env.poll-duration.3d" = "3 дні";
"env.poll-duration.7d" = "7 дзён";
"env.poll-vote-frequency.one" = "Адзін голас";
"env.poll-vote-frequency.multiple" = "Некалькі галасоў";
@ -493,6 +487,9 @@
"filter.edit.keywords.add" = "Дадаць новае ключавое слова";
"filter.edit.contexts" = "Кантэксты фільтра";
"filter.edit.action" = "Дзеянне фільтра";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Рэдагаваць фільтры";
"filter.contexts.home" = "Галоўная старонка і спісы";
"filter.contexts.notifications" = "Апавяшчэнні";

View file

@ -24,10 +24,12 @@
"enum.avatar-shape.circle" = "Cercle";
"enum.avatar-shape.rounded" = "Arrodonida";
"enum.durations.infinite" = "infinite";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutes";
"enum.durations.thirtyMinutes" = "30 minutes";
"enum.durations.oneHour" = "1 hora";
"enum.durations.sixHours" = "6 hores";
"enum.durations.twelveHours" = "12 hores";
"enum.durations.oneDay" = "1 dia";
"enum.durations.threeDays" = "3 dies";
"enum.durations.sevenDays" = "7 dies";
@ -326,14 +328,6 @@
"explore.section.users" = "Usuaris";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minuts";
"env.poll-duration.30m" = "30 minuts";
"env.poll-duration.1h" = "1 hora";
"env.poll-duration.6h" = "6 hores";
"env.poll-duration.12h" = "12 hores";
"env.poll-duration.1d" = "1 dia";
"env.poll-duration.3d" = "3 dies";
"env.poll-duration.7d" = "7 dies";
"env.poll-vote-frequency.one" = "Vot únic";
"env.poll-vote-frequency.multiple" = "Vot múltiple";
@ -487,6 +481,9 @@
"filter.edit.keywords.add" = "Afegeix una paraula clau";
"filter.edit.contexts" = "Filtra els contextos";
"filter.edit.action" = "Acció del filtre";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Edita els filtres";
"filter.contexts.home" = "Inici i llistes";
"filter.contexts.notifications" = "Notificacions";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Kreis";
"enum.avatar-shape.rounded" = "Abgerundet";
"enum.durations.infinite" = "Unbegrenzt";
"enum.durations.custom" = "Individuelle Einstellung";
"enum.durations.fiveMinutes" = "5 Minuten";
"enum.durations.thirtyMinutes" = "30 Minuten";
"enum.durations.oneHour" = "1 Stunde";
"enum.durations.sixHours" = "6 Stunden";
"enum.durations.twelveHours" = "12 Stunden";
"enum.durations.oneDay" = "1 Tag";
"enum.durations.threeDays" = "3 Tage";
"enum.durations.sevenDays" = "7 Tage";
@ -328,14 +330,6 @@
"explore.section.users" = "Profile";
// MARK: Package: Env
"env.poll-duration.5m" = "5 Minuten";
"env.poll-duration.30m" = "30 Minuten";
"env.poll-duration.1h" = "1 Stunde";
"env.poll-duration.6h" = "6 Stunden";
"env.poll-duration.12h" = "12 Stunden";
"env.poll-duration.1d" = "1 Tag";
"env.poll-duration.3d" = "3 Tage";
"env.poll-duration.7d" = "7 Tage";
"env.poll-vote-frequency.one" = "Einfache Auswahl";
"env.poll-vote-frequency.multiple" = "Mehrfachauswahl";
@ -484,6 +478,9 @@
"filter.edit.keywords.add" = "Neues Wort hinzufügen";
"filter.edit.contexts" = "Filterkontext";
"filter.edit.action" = "Filteraktion";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"filter.contexts.home" = "Startseite und Listen";
"filter.contexts.notifications" = "Mitteilungen";
"filter.contexts.public" = "Öffentliche Timelines";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Circle";
"enum.avatar-shape.rounded" = "Rounded";
"enum.durations.infinite" = "infinite";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutes";
"enum.durations.thirtyMinutes" = "30 minutes";
"enum.durations.oneHour" = "1 hour";
"enum.durations.sixHours" = "6 hours";
"enum.durations.twelveHours" = "12 hours";
"enum.durations.oneDay" = "1 day";
"enum.durations.threeDays" = "3 days";
"enum.durations.sevenDays" = "7 days";
@ -329,14 +331,6 @@
"explore.section.users" = "Users";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutes";
"env.poll-duration.30m" = "30 minutes";
"env.poll-duration.1h" = "1 hour";
"env.poll-duration.6h" = "6 hours";
"env.poll-duration.12h" = "12 hours";
"env.poll-duration.1d" = "1 day";
"env.poll-duration.3d" = "3 days";
"env.poll-duration.7d" = "7 days";
"env.poll-vote-frequency.one" = "One Vote";
"env.poll-vote-frequency.multiple" = "Multiple Votes";
@ -488,6 +482,9 @@
"filter.edit.keywords.add" = "Add a new keyword";
"filter.edit.contexts" = "Filter Contexts";
"filter.edit.action" = "Filter Action";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Edit Filters";
"filter.contexts.home" = "Home and lists";
"filter.contexts.notifications" = "Notifications";
@ -496,6 +493,8 @@
"filter.contexts.profiles" = "Profiles";
"filter.action.warning" = "Hide with a warning";
"filter.action.hide" = "Hide completely";
"filter.expired" = "Expired";
"filter.expiry-%@" = "Expiry: %@";
// MARK: Accessibility
"accessibility.editor.button.attach-photo" = "Attach photo";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Circle";
"enum.avatar-shape.rounded" = "Rounded";
"enum.durations.infinite" = "infinite";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutes";
"enum.durations.thirtyMinutes" = "30 minutes";
"enum.durations.oneHour" = "1 hour";
"enum.durations.sixHours" = "6 hours";
"enum.durations.twelveHours" = "12 hours";
"enum.durations.oneDay" = "1 day";
"enum.durations.threeDays" = "3 days";
"enum.durations.sevenDays" = "7 days";
@ -328,14 +330,6 @@
"explore.section.users" = "Users";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutes";
"env.poll-duration.30m" = "30 minutes";
"env.poll-duration.1h" = "1 hour";
"env.poll-duration.6h" = "6 hours";
"env.poll-duration.12h" = "12 hours";
"env.poll-duration.1d" = "1 day";
"env.poll-duration.3d" = "3 days";
"env.poll-duration.7d" = "7 days";
"env.poll-vote-frequency.one" = "One Vote";
"env.poll-vote-frequency.multiple" = "Multiple Votes";
@ -489,6 +483,9 @@
"filter.edit.keywords.add" = "Add a new keyword";
"filter.edit.contexts" = "Filter Contexts";
"filter.edit.action" = "Filter Action";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Edit Filters";
"filter.contexts.home" = "Home and lists";
"filter.contexts.notifications" = "Notifications";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Círculo";
"enum.avatar-shape.rounded" = "Redondeado";
"enum.durations.infinite" = "infinito";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutos";
"enum.durations.thirtyMinutes" = "30 minutos";
"enum.durations.oneHour" = "1 hora";
"enum.durations.sixHours" = "6 horas";
"enum.durations.twelveHours" = "12 horas";
"enum.durations.oneDay" = "1 día";
"enum.durations.threeDays" = "3 días";
"enum.durations.sevenDays" = "7 días";
@ -328,14 +330,6 @@
"explore.section.users" = "Usuarios";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutos";
"env.poll-duration.30m" = "30 minutos";
"env.poll-duration.1h" = "1 hora";
"env.poll-duration.6h" = "6 horas";
"env.poll-duration.12h" = "12 horas";
"env.poll-duration.1d" = "1 día";
"env.poll-duration.3d" = "3 dias";
"env.poll-duration.7d" = "7 dias";
"env.poll-vote-frequency.one" = "Un voto";
"env.poll-vote-frequency.multiple" = "Varios votos";
@ -489,6 +483,9 @@
"filter.edit.keywords.add" = "Añadir una nueva palabra clave";
"filter.edit.contexts" = "Contextos del filtro";
"filter.edit.action" = "Acción del filtro";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Editar filtros";
"filter.contexts.home" = "Inicio y listas";
"filter.contexts.notifications" = "Notificaciones";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Biribila";
"enum.avatar-shape.rounded" = "Biribildutako ertzak";
"enum.durations.infinite" = "Betiko";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutuz";
"enum.durations.thirtyMinutes" = "30 minutuz";
"enum.durations.oneHour" = "Ordubetez";
"enum.durations.sixHours" = "6 orduz";
"enum.durations.twelveHours" = "12 orduz";
"enum.durations.oneDay" = "Egun batez";
"enum.durations.threeDays" = "3 egunez";
"enum.durations.sevenDays" = "7 egunez";
@ -327,14 +329,6 @@
"explore.section.users" = "Erabiltzaileak";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutu";
"env.poll-duration.30m" = "30 minutu";
"env.poll-duration.1h" = "Ordubete";
"env.poll-duration.6h" = "6 ordu";
"env.poll-duration.12h" = "12 ordu";
"env.poll-duration.1d" = "Egun 1";
"env.poll-duration.3d" = "3 egun";
"env.poll-duration.7d" = "7 egun";
"env.poll-vote-frequency.one" = "Boto bakarra";
"env.poll-vote-frequency.multiple" = "Boto bat baino gehiago";
@ -479,6 +473,9 @@
"filter.edit.keywords.add" = "Gehitu hitz gako berria";
"filter.edit.contexts" = "Iragazkiaren testuinguruak";
"filter.edit.action" = "Iragazkiaren ekintzak";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"filter.contexts.home" = "Hasiera eta zerrendak";
"filter.contexts.notifications" = "Jakinarazpenak";
"filter.contexts.public" = "Denbora-lerro lokalak";

View file

@ -25,13 +25,15 @@
"enum.avatar-shape.circle" = "Rond";
"enum.avatar-shape.rounded" = "Arrondi";
"enum.durations.infinite" = "infinite";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutes";
"enum.durations.thirtyMinutes" = "30 minutes";
"enum.durations.oneHour" = "1 hour";
"enum.durations.sixHours" = "6 hours";
"enum.durations.oneDay" = "1 day";
"enum.durations.threeDays" = "3 days";
"enum.durations.sevenDays" = "7 days";
"enum.durations.oneHour" = "1 heure";
"enum.durations.sixHours" = "6 heures";
"enum.durations.twelveHours" = "12 heures";
"enum.durations.oneDay" = "1 jour";
"enum.durations.threeDays" = "3 jours";
"enum.durations.sevenDays" = "7 jours";
"enum.status-actions-display.all" = "Tout";
"enum.status-actions-display.no-buttons" = "Pas de boutons";
"enum.status-actions-display.only-buttons" = "Seulement les boutons";
@ -327,14 +329,6 @@
"explore.section.users" = "Utilisateurs";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutes";
"env.poll-duration.30m" = "30 minutes";
"env.poll-duration.1h" = "1 heure";
"env.poll-duration.6h" = "6 heures";
"env.poll-duration.12h" = "12 heures";
"env.poll-duration.1d" = "1 jour";
"env.poll-duration.3d" = "3 jours";
"env.poll-duration.7d" = "7 jours";
"env.poll-vote-frequency.one" = "Un vote";
"env.poll-vote-frequency.multiple" = "Plusieurs votes";
@ -484,6 +478,9 @@
"filter.edit.keywords.add" = "Ajouter un nouveau mot-clé";
"filter.edit.contexts" = "Contextes du filtre";
"filter.edit.action" = "Action du filtre";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Éditer les filtres";
"filter.contexts.home" = "Accueil et listes";
"filter.contexts.notifications" = "Notifications";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Cerchio";
"enum.avatar-shape.rounded" = "Arrotondata";
"enum.durations.infinite" = "Infinito";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minuti";
"enum.durations.thirtyMinutes" = "30 minuti";
"enum.durations.oneHour" = "1 ora";
"enum.durations.sixHours" = "6 ore";
"enum.durations.twelveHours" = "12 ore";
"enum.durations.oneDay" = "1 giorno";
"enum.durations.threeDays" = "3 giorni";
"enum.durations.sevenDays" = "7 giorni";
@ -328,14 +330,6 @@
"explore.section.users" = "Utenti";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minuti";
"env.poll-duration.30m" = "30 minuti";
"env.poll-duration.1h" = "1 ora";
"env.poll-duration.6h" = "6 ore";
"env.poll-duration.12h" = "12 ore";
"env.poll-duration.1d" = "1 giorno";
"env.poll-duration.3d" = "3 giorni";
"env.poll-duration.7d" = "7 giorni";
"env.poll-vote-frequency.one" = "Voto singolo";
"env.poll-vote-frequency.multiple" = "Voto multiplo";
@ -489,6 +483,9 @@
"filter.edit.keywords.add" = "Aggiungi una nuova parola chiave";
"filter.edit.contexts" = "Dove applicare il filtro";
"filter.edit.action" = "Azione del filtro";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Modifica filtri";
"filter.contexts.home" = "Nella Home e nelle liste";
"filter.contexts.notifications" = "Nelle notifiche";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "円形";
"enum.avatar-shape.rounded" = "角丸";
"enum.durations.infinite" = "無期限";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5分間";
"enum.durations.thirtyMinutes" = "30分間";
"enum.durations.oneHour" = "1時間";
"enum.durations.sixHours" = "6時間";
"enum.durations.twelveHours" = "12時間";
"enum.durations.oneDay" = "1日間";
"enum.durations.threeDays" = "3日間";
"enum.durations.sevenDays" = "7日間";
@ -327,14 +329,6 @@
"explore.section.users" = "ユーザー";
// MARK: Package: Env
"env.poll-duration.5m" = "5分間";
"env.poll-duration.30m" = "30分間";
"env.poll-duration.1h" = "1時間";
"env.poll-duration.6h" = "6時間";
"env.poll-duration.12h" = "12時間";
"env.poll-duration.1d" = "1日間";
"env.poll-duration.3d" = "3日間";
"env.poll-duration.7d" = "7日間";
"env.poll-vote-frequency.one" = "単一投票";
"env.poll-vote-frequency.multiple" = "複数投票可";
@ -488,6 +482,9 @@
"filter.edit.keywords.add" = "新しいキーワードを追加する";
"filter.edit.contexts" = "フィルターする文章";
"filter.edit.action" = "フィルターする";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "フィルターを編集する";
"filter.contexts.home" = "ホームとリスト";
"filter.contexts.notifications" = "通知";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "원";
"enum.avatar-shape.rounded" = "둥근 사각형";
"enum.durations.infinite" = "해제할 때까지";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5분";
"enum.durations.thirtyMinutes" = "30분";
"enum.durations.oneHour" = "1시간";
"enum.durations.sixHours" = "6시간";
"enum.durations.twelveHours" = "12시간";
"enum.durations.oneDay" = "1일";
"enum.durations.threeDays" = "3일";
"enum.durations.sevenDays" = "7일";
@ -328,14 +330,6 @@
"explore.section.users" = "사용자";
// MARK: Package: Env
"env.poll-duration.5m" = "5분";
"env.poll-duration.30m" = "30분";
"env.poll-duration.1h" = "1시간";
"env.poll-duration.6h" = "6시간";
"env.poll-duration.12h" = "12시간";
"env.poll-duration.1d" = "1일";
"env.poll-duration.3d" = "3일";
"env.poll-duration.7d" = "7일";
"env.poll-vote-frequency.one" = "하나만 선택 가능";
"env.poll-vote-frequency.multiple" = "여러 개 선택 가능";
@ -490,6 +484,9 @@
"filter.edit.keywords.add" = "새 단어 추가";
"filter.edit.contexts" = "필터를 적용할 곳";
"filter.edit.action" = "가릴 방식";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "필터 편집";
"filter.contexts.home" = "홈 및 리스트";
"filter.contexts.notifications" = "알림";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Sirkel";
"enum.avatar-shape.rounded" = "Avrundet";
"enum.durations.infinite" = "infinite";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutes";
"enum.durations.thirtyMinutes" = "30 minutes";
"enum.durations.oneHour" = "1 hour";
"enum.durations.sixHours" = "6 hours";
"enum.durations.twelveHours" = "12 hours";
"enum.durations.oneDay" = "1 day";
"enum.durations.threeDays" = "3 days";
"enum.durations.sevenDays" = "7 days";
@ -327,14 +329,6 @@
"explore.section.users" = "Brukere";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutter";
"env.poll-duration.30m" = "30 minutter";
"env.poll-duration.1h" = "1 time";
"env.poll-duration.6h" = "6 timer";
"env.poll-duration.12h" = "12 timer";
"env.poll-duration.1d" = "1 dag";
"env.poll-duration.3d" = "3 dager";
"env.poll-duration.7d" = "7 dager";
"env.poll-vote-frequency.one" = "Én stemme";
"env.poll-vote-frequency.multiple" = "Flere stemmer";
@ -488,6 +482,9 @@
"filter.edit.keywords.add" = "Legg til nytt nøkkelord";
"filter.edit.contexts" = "Filtrer kontekster";
"filter.edit.action" = "Filterhandling";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Rediger filtre";
"filter.contexts.home" = "Hjem og lister";
"filter.contexts.notifications" = "Varsler";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Cirkel";
"enum.avatar-shape.rounded" = "Afgerond";
"enum.durations.infinite" = "Onbepaald";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minuten";
"enum.durations.thirtyMinutes" = "30 minuten";
"enum.durations.oneHour" = "1 uur";
"enum.durations.sixHours" = "6 uur";
"enum.durations.twelveHours" = "12 uur";
"enum.durations.oneDay" = "1 dag";
"enum.durations.threeDays" = "3 dagen";
"enum.durations.sevenDays" = "7 dagen";
@ -325,14 +327,6 @@
"explore.section.users" = "Gebruikers";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minuten";
"env.poll-duration.30m" = "30 minuten";
"env.poll-duration.1h" = "1 uur";
"env.poll-duration.6h" = "6 uur";
"env.poll-duration.12h" = "12 uur";
"env.poll-duration.1d" = "1 dag";
"env.poll-duration.3d" = "3 dagen";
"env.poll-duration.7d" = "7 dagen";
"env.poll-vote-frequency.one" = "Eén stem";
"env.poll-vote-frequency.multiple" = "Meerdere stemmen";
@ -482,6 +476,9 @@
"filter.edit.keywords.add" = "Voeg een nieuw sleutelwoord toe";
"filter.edit.contexts" = "Filtercontext";
"filter.edit.action" = "Filteractie";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"filter.contexts.home" = "Start en lijsten";
"filter.contexts.notifications" = "Meldingen";
"filter.contexts.public" = "Openbare tijdlijnen";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Okrągły";
"enum.avatar-shape.rounded" = "Zaokrąglony";
"enum.durations.infinite" = "czas nieokreślony";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minut";
"enum.durations.thirtyMinutes" = "30 minut";
"enum.durations.oneHour" = "1 godzina";
"enum.durations.sixHours" = "6 godzin";
"enum.durations.twelveHours" = "12 godzin";
"enum.durations.oneDay" = "1 dzień";
"enum.durations.threeDays" = "3 dni";
"enum.durations.sevenDays" = "7 dni";
@ -324,14 +326,6 @@
"explore.section.users" = "Osoby";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minut";
"env.poll-duration.30m" = "30 minut";
"env.poll-duration.1h" = "1 godzina";
"env.poll-duration.6h" = "6 godzin";
"env.poll-duration.12h" = "12 godzin";
"env.poll-duration.1d" = "1 dzień";
"env.poll-duration.3d" = "3 dni";
"env.poll-duration.7d" = "7 dni";
"env.poll-vote-frequency.one" = "Jeden głos";
"env.poll-vote-frequency.multiple" = "Głosowanie wielokrotne";
@ -480,6 +474,9 @@
"filter.edit.keywords.add" = "Dodaj nowe słowo kluczowe";
"filter.edit.contexts" = "Kontekst filtra";
"filter.edit.action" = "Działanie filtra";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Edytuj filtry";
"filter.contexts.home" = "Strona główna i listy";
"filter.contexts.notifications" = "Powiadomienia";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Círculo";
"enum.avatar-shape.rounded" = "Arredondado";
"enum.durations.infinite" = "infinito";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutos";
"enum.durations.thirtyMinutes" = "30 minutos";
"enum.durations.oneHour" = "1 hora";
"enum.durations.sixHours" = "6 horas";
"enum.durations.twelveHours" = "12 horas";
"enum.durations.oneDay" = "1 dia";
"enum.durations.threeDays" = "3 dias";
"enum.durations.sevenDays" = "7 dias";
@ -327,14 +329,6 @@
"explore.section.users" = "Usuários";
// MARK: Package: Env
"env.poll-duration.5m" = "5 minutos";
"env.poll-duration.30m" = "30 minutos";
"env.poll-duration.1h" = "1 hora";
"env.poll-duration.6h" = "6 horas";
"env.poll-duration.12h" = "12 horas";
"env.poll-duration.1d" = "1 dia";
"env.poll-duration.3d" = "3 dias";
"env.poll-duration.7d" = "7 dias";
"env.poll-vote-frequency.one" = "Um Voto";
"env.poll-vote-frequency.multiple" = "Múltiplos Votos";
@ -488,6 +482,9 @@
"filter.edit.keywords.add" = "Aidicionar uma palavra chave";
"filter.edit.contexts" = "Filtrar Contextos";
"filter.edit.action" = "Filtrar Ação";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Editar Filtros";
"filter.contexts.home" = "Início e listas";
"filter.contexts.notifications" = "Notificações";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Çember";
"enum.avatar-shape.rounded" = "Yuvarlak";
"enum.durations.infinite" = "infinite";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 minutes";
"enum.durations.thirtyMinutes" = "30 minutes";
"enum.durations.oneHour" = "1 hour";
"enum.durations.sixHours" = "6 hours";
"enum.durations.twelveHours" = "12 saat";
"enum.durations.oneDay" = "1 day";
"enum.durations.threeDays" = "3 days";
"enum.durations.sevenDays" = "7 days";
@ -323,14 +325,6 @@
"explore.section.users" = "Kullanıcılar";
// MARK: Package: Env
"env.poll-duration.5m" = "5 dakika";
"env.poll-duration.30m" = "30 dakika";
"env.poll-duration.1h" = "1 saat";
"env.poll-duration.6h" = "6 saat";
"env.poll-duration.12h" = "12 saat";
"env.poll-duration.1d" = "1 gün";
"env.poll-duration.3d" = "3 gün";
"env.poll-duration.7d" = "7 gün";
"env.poll-vote-frequency.one" = "Bir oy";
"env.poll-vote-frequency.multiple" = "Birden fazla oy";
@ -484,6 +478,9 @@
"filter.edit.keywords.add" = "Add a new keyword";
"filter.edit.contexts" = "Filter Contexts";
"filter.edit.action" = "Filter Action";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Edit Filters";
"filter.contexts.home" = "Home and lists";
"filter.contexts.notifications" = "Notifications";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "Круг";
"enum.avatar-shape.rounded" = "Закруглені";
"enum.durations.infinite" = "без обмеження";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 хвилин";
"enum.durations.thirtyMinutes" = "30 хвилин";
"enum.durations.oneHour" = "1 година";
"enum.durations.sixHours" = "6 годин";
"enum.durations.twelveHours" = "12 годин";
"enum.durations.oneDay" = "1 день";
"enum.durations.threeDays" = "3 дні";
"enum.durations.sevenDays" = "7 днів";
@ -328,14 +330,6 @@
"explore.section.users" = "Користувачі";
// MARK: Package: Env
"env.poll-duration.5m" = "5 хвилин";
"env.poll-duration.30m" = "30 хвилин";
"env.poll-duration.1h" = "1 година";
"env.poll-duration.6h" = "6 годин";
"env.poll-duration.12h" = "12 годин";
"env.poll-duration.1d" = "1 день";
"env.poll-duration.3d" = "3 дні";
"env.poll-duration.7d" = "7 днів";
"env.poll-vote-frequency.one" = "Лише один варіант";
"env.poll-vote-frequency.multiple" = "Вибір декількох варіантів";
@ -489,6 +483,9 @@
"filter.edit.keywords.add" = "Додати нове слово";
"filter.edit.contexts" = "Фільтрувати вміст";
"filter.edit.action" = "Виконати";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"account.action.edit-filters" = "Редагувати фільтри";
"filter.contexts.home" = "Домівка та список";
"filter.contexts.notifications" = "Сповіщення";

View file

@ -25,10 +25,12 @@
"enum.avatar-shape.circle" = "圆形";
"enum.avatar-shape.rounded" = "圆角";
"enum.durations.infinite" = "永久";
"enum.durations.custom" = "custom";
"enum.durations.fiveMinutes" = "5 分钟";
"enum.durations.thirtyMinutes" = "30 分钟";
"enum.durations.oneHour" = "1 小时";
"enum.durations.sixHours" = "6 小时";
"enum.durations.twelveHours" = "12 小时";
"enum.durations.oneDay" = "1 天";
"enum.durations.threeDays" = "3 天";
"enum.durations.sevenDays" = "7 天";
@ -326,14 +328,6 @@
"explore.section.users" = "用户";
// MARK: Package: Env
"env.poll-duration.5m" = "5 分钟";
"env.poll-duration.30m" = "30 分钟";
"env.poll-duration.1h" = "1 小时";
"env.poll-duration.6h" = "6 小时";
"env.poll-duration.12h" = "12 小时";
"env.poll-duration.1d" = "1 天";
"env.poll-duration.3d" = "3 天";
"env.poll-duration.7d" = "7 天";
"env.poll-vote-frequency.one" = "单个投票";
"env.poll-vote-frequency.multiple" = "多个投票";
@ -487,6 +481,9 @@
"filter.edit.keywords.add" = "添加关键词";
"filter.edit.contexts" = "过滤范围";
"filter.edit.action" = "过滤器行为";
"filter.edit.expiry" = "Expiry";
"filter.edit.expiry.date-time" = "Date/Time";
"filter.edit.expiry.duration" = "Duration";
"filter.contexts.home" = "主页和列表";
"filter.contexts.notifications" = "通知";
"filter.contexts.public" = "公共时间线";

View file

@ -68,7 +68,7 @@ public struct AccountDetailContextMenu: View {
}
} else {
Menu {
ForEach(MutingDuration.allCases, id: \.rawValue) { duration in
ForEach(Duration.mutingDurations(), id: \.rawValue) { duration in
Button(duration.description) {
Task {
do {

View file

@ -18,14 +18,26 @@ struct EditFilterView: View {
@State private var newKeyword: String = ""
@State private var contexts: [ServerFilter.Context]
@State private var filterAction: ServerFilter.Action
@State private var expiresAt: Date?
@State private var expirySelection: Duration
@FocusState private var isTitleFocused: Bool
private var data: ServerFilterData {
.init(title: title,
var expiresIn: String? = nil;
// we add 50 seconds, otherwise we immediately show 6d for a 7d filter (6d, 23h, 59s)
switch(expirySelection){
case .infinite:
expiresIn = "" // need to send an empty value in order for the server to clear this field in the filter
case .custom:
expiresIn = String(Int(expiresAt?.timeIntervalSince(Date()) ?? 0) + 50)
default:
expiresIn = String(expirySelection.rawValue + 50)
}
return ServerFilterData(title: title,
context: contexts,
filterAction: filterAction,
expireIn: nil)
expiresIn: expiresIn)
}
private var canSave: Bool {
@ -38,12 +50,15 @@ struct EditFilterView: View {
_keywords = .init(initialValue: filter?.keywords ?? [])
_contexts = .init(initialValue: filter?.context ?? [.home])
_filterAction = .init(initialValue: filter?.filterAction ?? .warn)
_expiresAt = .init(initialValue: filter?.expiresAt?.asDate)
_expirySelection = .init(initialValue: filter?.expiresAt == nil ? .infinite : .custom)
}
var body: some View {
Form {
titleSection
if filter != nil {
expirySection
keywordsSection
contextsSection
filterActionView
@ -65,6 +80,29 @@ struct EditFilterView: View {
}
}
private var expirySection: some View {
Section("filter.edit.expiry") {
Picker(selection: $expirySelection, label: Text("filter.edit.expiry.duration")) {
ForEach(Duration.filterDurations(), id: \.rawValue) { duration in
Text(duration.description).tag(duration)
}
}
.onChange(of: expirySelection) { duration in
if duration != .custom {
expiresAt = Date(timeIntervalSinceNow: TimeInterval(duration.rawValue))
}
}
if expirySelection != .infinite {
DatePicker("filter.edit.expiry.date-time",
selection: Binding<Date>(get: {self.expiresAt ?? Date()}, set: {self.expiresAt = $0}),
displayedComponents: [.date, .hourAndMinute]
)
.disabled(expirySelection != .custom)
}
}
.listRowBackground(theme.primaryBackgroundColor)
}
private var titleSection: some View {
Section("filter.edit.title") {
TextField("filter.edit.title", text: $title)

View file

@ -34,6 +34,17 @@ public struct FiltersListView: View {
Text("\(filter.context.map { $0.name }.joined(separator: ", "))")
.font(.scaledBody)
.foregroundColor(.gray)
if filter.hasExpiry() {
if filter.isExpired() {
Text("filter.expired")
.font(.footnote)
.foregroundColor(.gray)
} else {
Text("filter.expiry-\(filter.expiresAt!.relativeFormatted)")
.font(.footnote)
.foregroundColor(.gray)
}
}
}
}
}

View file

@ -1,14 +1,16 @@
import SwiftUI
enum MutingDuration: Int, CaseIterable {
public enum Duration: Int, CaseIterable {
case infinite = 0
case fiveMinutes = 300
case thirtyMinutes = 1800
case oneHour = 3600
case sixHours = 21600
case twelveHours = 43200
case oneDay = 86400
case threeDays = 259_200
case sevenDays = 604_800
case custom = -1
public var description: LocalizedStringKey {
switch self {
@ -22,12 +24,28 @@ enum MutingDuration: Int, CaseIterable {
return "enum.durations.oneHour"
case .sixHours:
return "enum.durations.sixHours"
case .twelveHours:
return "enum.durations.twelveHours"
case .oneDay:
return "enum.durations.oneDay"
case .threeDays:
return "enum.durations.threeDays"
case .sevenDays:
return "enum.durations.sevenDays"
case .custom:
return "enum.durations.custom"
}
}
public static func mutingDurations() -> [Duration] {
return Self.allCases.filter { $0 != .custom }
}
public static func filterDurations() -> [Duration] {
return [.infinite, .thirtyMinutes, .oneHour, .sixHours, .twelveHours, .oneDay, .sevenDays, .custom]
}
public static func pollDurations() -> [Duration] {
return [.fiveMinutes, .thirtyMinutes, .oneHour, .sixHours, .twelveHours, .oneDay, .threeDays, .sevenDays]
}
}

View file

@ -1,31 +1,6 @@
import Foundation
import SwiftUI
public enum PollDuration: Int, CaseIterable {
// rawValue == time in seconds; used for sending to the API
case fiveMinutes = 300
case halfAnHour = 1800
case oneHour = 3600
case sixHours = 21600
case twelveHours = 43200
case oneDay = 86400
case threeDays = 259_200
case sevenDays = 604_800
public var displayString: LocalizedStringKey {
switch self {
case .fiveMinutes: return "env.poll-duration.5m"
case .halfAnHour: return "env.poll-duration.30m"
case .oneHour: return "env.poll-duration.1h"
case .sixHours: return "env.poll-duration.6h"
case .twelveHours: return "env.poll-duration.12h"
case .oneDay: return "env.poll-duration.1d"
case .threeDays: return "env.poll-duration.3d"
case .sevenDays: return "env.poll-duration.7d"
}
}
}
public enum PollVotingFrequency: String, CaseIterable {
case oneVote = "one-vote"
case multipleVotes = "multiple-votes"

View file

@ -20,7 +20,20 @@ public struct ServerFilter: Codable, Identifiable, Hashable, Sendable {
public let keywords: [Keyword]
public let filterAction: Action
public let context: [Context]
public let expireIn: Int?
public let expiresIn: Int?
public let expiresAt: ServerDate?
public func hasExpiry() -> Bool {
return expiresAt != nil
}
public func isExpired() -> Bool {
if let expiresAtDate = expiresAt?.asDate {
return expiresAtDate < Date()
} else {
return false
}
}
}
public extension ServerFilter.Context {

View file

@ -52,16 +52,20 @@ public struct ServerFilterData: Encodable, Sendable {
public let title: String
public let context: [ServerFilter.Context]
public let filterAction: ServerFilter.Action
public let expireIn: Int?
// normally expiresIn is an Int according to the API, but it is not possible to send an empty
// value in the update filter call to set the expiry to infinite. Not sending this value does not delete
// the existing one. Using a String it is possible to send an empty value in order to delete
// the expiry of a filter
public let expiresIn: String?
public init(title: String,
context: [ServerFilter.Context],
filterAction: ServerFilter.Action,
expireIn: Int?)
expiresIn: String?)
{
self.title = title
self.context = context
self.filterAction = filterAction
self.expireIn = expireIn
self.expiresIn = expiresIn
}
}

View file

@ -77,8 +77,8 @@ struct StatusEditorPollView: View {
Spacer()
Picker("status.poll.duration", selection: $viewModel.pollDuration) {
ForEach(PollDuration.allCases, id: \.rawValue) {
Text($0.displayString)
ForEach(Duration.pollDurations(), id: \.rawValue) {
Text($0.description)
.tag($0)
}
}

View file

@ -67,7 +67,7 @@ public class StatusEditorViewModel: NSObject, ObservableObject {
@Published var showPoll: Bool = false
@Published var pollVotingFrequency = PollVotingFrequency.oneVote
@Published var pollDuration = PollDuration.oneDay
@Published var pollDuration = Duration.oneDay
@Published var pollOptions: [String] = ["", ""]
@Published var spoilerOn: Bool = false