From e0b09149e2beb9f11accf9feb70f56f18b05f7a2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 13:26:06 +0200 Subject: [PATCH 001/102] New translations app.json (Spanish, Argentina) --- Localization/StringsConvertor/input/es_AR/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/es_AR/app.json b/Localization/StringsConvertor/input/es_AR/app.json index 8ef75d10..d5dbafd7 100644 --- a/Localization/StringsConvertor/input/es_AR/app.json +++ b/Localization/StringsConvertor/input/es_AR/app.json @@ -498,7 +498,7 @@ "posts": "Mensajes", "hashtags": "Etiquetas", "news": "Novedades", - "community": "Community", + "community": "Comunidad", "for_you": "Para vos" }, "intro": "Estos son los mensajes que están ganando tracción en tu rincón de Mastodon." From 2a2bf7aa139d5c24da2c8106717c2baf26045e6d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 14:21:41 +0200 Subject: [PATCH 002/102] New translations app.json (Swedish) --- .../StringsConvertor/input/sv_SE/app.json | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Localization/StringsConvertor/input/sv_SE/app.json b/Localization/StringsConvertor/input/sv_SE/app.json index 4f93231e..147a3b54 100644 --- a/Localization/StringsConvertor/input/sv_SE/app.json +++ b/Localization/StringsConvertor/input/sv_SE/app.json @@ -23,13 +23,13 @@ "title": "Publicering misslyckades", "message": "Det gick inte att publicera inlägget.\nKontrollera din internetanslutning.", "attachments_message": { - "video_attach_with_photo": "Det går inte att bifoga en video till en status som redan innehåller bilder.", + "video_attach_with_photo": "Det går inte att bifoga en video till ett inlägg som redan innehåller bilder.", "more_than_one_video": "Det går inte att bifoga mer än en video." } }, "edit_profile_failure": { - "title": "Fel vid profilredigering", - "message": "Kan inte redigera profil. Försök igen." + "title": "Profilredigering misslyckades", + "message": "Kan inte redigera profil. Var god försök igen." }, "sign_out": { "title": "Logga ut", @@ -41,7 +41,7 @@ "block_entire_domain": "Blockera domän" }, "save_photo_failure": { - "title": "Kunde inte spara foto", + "title": "Spara foto misslyckades", "message": "Aktivera åtkomst till Bilder för att spara bilden." }, "delete_post": { @@ -57,7 +57,7 @@ "actions": { "back": "Tillbaka", "next": "Nästa", - "previous": "Tidigare", + "previous": "Föregående", "open": "Öppna", "add": "Lägg till", "remove": "Radera", @@ -69,7 +69,7 @@ "continue": "Fortsätt", "compose": "Skriv", "cancel": "Avbryt", - "discard": "Kasta", + "discard": "Släng", "try_again": "Försök igen", "take_photo": "Ta foto", "save_photo": "Spara foto", @@ -77,7 +77,7 @@ "sign_in": "Logga in", "sign_up": "Registrera dig", "see_more": "Visa mer", - "preview": "Förhandstitt", + "preview": "Förhandsvisa", "share": "Dela", "share_user": "Dela %s", "share_post": "Dela inlägg", @@ -96,7 +96,7 @@ "tabs": { "home": "Hem", "search": "Sök", - "notification": "Avisering", + "notification": "Notis", "profile": "Profil" }, "keyboard": { @@ -151,7 +151,7 @@ }, "tag": { "url": "URL", - "mention": "Nämn", + "mention": "Omnämn", "link": "Länk", "hashtag": "Hashtagg", "email": "E-post", @@ -161,13 +161,13 @@ "unlisted": "Alla kan se detta inlägg men det visas inte i den offentliga tidslinjen.", "private": "Endast deras följare kan se detta inlägg.", "private_from_me": "Bara mina följare kan se det här inlägget.", - "direct": "Endast nämnda användare kan se detta inlägg." + "direct": "Endast omnämnda användare kan se detta inlägg." } }, "friendship": { "follow": "Följ", "following": "Följer", - "request": "Begäran", + "request": "Följ", "pending": "Väntande", "block": "Blockera", "block_user": "Blockera %s", @@ -321,7 +321,7 @@ "title": "En sista sak.", "subtitle": "Tryck på länken vi e-postade till dig för att verifiera ditt konto.", "button": { - "open_email_app": "Öppna epostappen", + "open_email_app": "Öppna e-postappen", "resend": "Skicka igen" }, "dont_receive_email": { @@ -545,11 +545,11 @@ "light": "Ljust" }, "notifications": { - "title": "Aviseringar", + "title": "Notiser", "favorites": "Favoriserar mitt inlägg", "follows": "Följer mig", "boosts": "Ompostar mitt inlägg", - "mentions": "Nämner mig", + "mentions": "Omnämner mig", "trigger": { "anyone": "alla", "follower": "en följare", From 84f3f76e7bd340b765d35a40ee214f5b86a9a408 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 15:18:44 +0200 Subject: [PATCH 003/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 50513e58..1e464f07 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -498,7 +498,7 @@ "posts": "โพสต์", "hashtags": "แฮชแท็ก", "news": "ข่าว", - "community": "Community", + "community": "ชุมชน", "for_you": "สำหรับคุณ" }, "intro": "นี่คือโพสต์ที่กำลังได้รับความสนใจในมุมของ Mastodon ของคุณ" From 9de853bcb41da853460efbf042f7d067716e388d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 15:18:45 +0200 Subject: [PATCH 004/102] New translations app.json (Swedish) --- .../StringsConvertor/input/sv_SE/app.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Localization/StringsConvertor/input/sv_SE/app.json b/Localization/StringsConvertor/input/sv_SE/app.json index 147a3b54..2961df17 100644 --- a/Localization/StringsConvertor/input/sv_SE/app.json +++ b/Localization/StringsConvertor/input/sv_SE/app.json @@ -198,7 +198,7 @@ "user_blocking_warning": "Du kan inte visa %ss profil\nförrän du avblockerar dem.\nDin profil ser ut så här för dem.", "blocked_warning": "Du kan inte visa den här användarens profil\nförrän de avblockerar dig.", "user_blocked_warning": "Du kan inte visa %ss profil\nförrän de avblockerar dig.", - "suspended_warning": "Denna användare har stängts av.", + "suspended_warning": "Denna användare har blivit avstängd.", "user_suspended_warning": "%ss konto har blivit avstängt." } } @@ -211,9 +211,9 @@ "log_in": "Logga in" }, "server_picker": { - "title": "Mastodon utgörs av användare i olika gemenskaper.", - "subtitle": "Välj en gemenskap baserad på dina intressen, region eller ett allmänt syfte.", - "subtitle_extend": "Välj en gemenskap baserad på dina intressen, region eller ett allmänt syfte. Varje gemenskap drivs av en helt oberoende organisation eller individ.", + "title": "Mastodon utgörs av användare på olika servrar.", + "subtitle": "Välj en server baserat på dina intressen, region eller ett allmänt syfte.", + "subtitle_extend": "Välj en server baserat på dina intressen, region eller ett allmänt syfte. Varje server drivs av en helt oberoende organisation eller individ.", "button": { "category": { "all": "Alla", @@ -340,8 +340,8 @@ "title": "Hem", "navigation_bar_state": { "offline": "Offline", - "new_posts": "Se nya inlägg", - "published": "Publicerad!", + "new_posts": "Nya inlägg", + "published": "Publicerat!", "Publishing": "Publicerar inlägget..." } }, @@ -370,11 +370,11 @@ "description_video": "Beskriv videon för de synskadade..." }, "poll": { - "duration_time": "Varaktighet: %s", + "duration_time": "Längd: %s", "thirty_minutes": "30 minuter", "one_hour": "1 timme", "six_hours": "6 timmar", - "one_day": "1dag", + "one_day": "1 dag", "three_days": "3 dagar", "seven_days": "7 dagar", "option_number": "Alternativ %ld" @@ -383,13 +383,13 @@ "placeholder": "Skriv en noggrann varning här..." }, "visibility": { - "public": "Publik", + "public": "Offentlig", "unlisted": "Olistad", "private": "Endast följare", "direct": "Bara personer jag nämner" }, "auto_complete": { - "space_to_add": "Mellanslag att lägga till" + "space_to_add": "Mellanslag för att lägga till" }, "accessibility": { "append_attachment": "Lägg till bilaga", @@ -401,8 +401,8 @@ "post_visibility_menu": "Inläggssynlighetsmeny" }, "keyboard": { - "discard_post": "Kasta inlägget", - "publish_post": "Publicerar inlägget", + "discard_post": "Släng inlägget", + "publish_post": "Publicera inlägget", "toggle_poll": "Växla omröstning", "toggle_content_warning": "Växla innehållsvarning", "append_attachment_entry": "Lägg till bilaga - %s", From 51f9175dee269bdb0f693a92a05c11e5a1c559d5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 15:18:46 +0200 Subject: [PATCH 005/102] New translations app.json (Turkish) --- Localization/StringsConvertor/input/tr_TR/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/tr_TR/app.json b/Localization/StringsConvertor/input/tr_TR/app.json index 9f41a72b..000f79bf 100644 --- a/Localization/StringsConvertor/input/tr_TR/app.json +++ b/Localization/StringsConvertor/input/tr_TR/app.json @@ -498,7 +498,7 @@ "posts": "Gönderiler", "hashtags": "Etiketler", "news": "Haberler", - "community": "Community", + "community": "Topluluk", "for_you": "Senin İçin" }, "intro": "Bunlar, Mastodon'un köşesinde ilgi çeken gönderilerdir." @@ -538,7 +538,7 @@ "dark": "Daima Koyu" }, "look_and_feel": { - "title": "Look and Feel", + "title": "Görünüm", "use_system": "Sistem İle Aynı", "really_dark": "Gerçek Koyu", "sorta_dark": "Hafif Koyu", From 63e9b37e4d9a2c8ea1287d34b8b67ad2b7c55d0c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 15:18:47 +0200 Subject: [PATCH 006/102] New translations Localizable.stringsdict (Swedish) --- .../StringsConvertor/input/sv_SE/Localizable.stringsdict | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict b/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict index a14b5f62..c8903be4 100644 --- a/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict @@ -157,7 +157,7 @@ NSStringFormatValueTypeKey ld one - %ld röst + %ld röstare other %ld röster From b9de7250adcfe8c6c42e11d91eaec8debfab45c1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 15:18:48 +0200 Subject: [PATCH 007/102] New translations ios-infoPlist.json (Swedish) --- Localization/StringsConvertor/input/sv_SE/ios-infoPlist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/sv_SE/ios-infoPlist.json b/Localization/StringsConvertor/input/sv_SE/ios-infoPlist.json index 98ff6d3b..6073413d 100644 --- a/Localization/StringsConvertor/input/sv_SE/ios-infoPlist.json +++ b/Localization/StringsConvertor/input/sv_SE/ios-infoPlist.json @@ -1,6 +1,6 @@ { "NSCameraUsageDescription": "Används för att ta foto till inlägg", - "NSPhotoLibraryAddUsageDescription": "Används för att spara foto till Bilder", + "NSPhotoLibraryAddUsageDescription": "Används för att spara foto till bildbiblioteket", "NewPostShortcutItemTitle": "Nytt inlägg", "SearchShortcutItemTitle": "Sök" } From 3e5dabadacee60826417bcd98e14d4580e15f6f8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 15:18:49 +0200 Subject: [PATCH 008/102] New translations Intents.strings (Swedish) --- .../StringsConvertor/Intents/input/sv_SE/Intents.strings | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings b/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings index 83e02871..5f81d713 100644 --- a/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings @@ -24,17 +24,17 @@ "Zo4jgJ" = "Inläggssynlighet"; -"apSxMG-dYQ5NN" = "Det finns ${count} alternativ som matchar ‘Publikt’."; +"apSxMG-dYQ5NN" = "Det finns ${count} alternativ som matchar ‘Offentligt’."; "apSxMG-ehFLjY" = "Det finns ${count} alternativ som matchar ‘Endast följare’."; -"ayoYEb-dYQ5NN" = "${content}, Publikt"; +"ayoYEb-dYQ5NN" = "${content}, Offentligt"; "ayoYEb-ehFLjY" = "${content}, Endast följare"; "dUyuGg" = "Posta på Mastodon"; -"dYQ5NN" = "Publikt"; +"dYQ5NN" = "Offentligt"; "ehFLjY" = "Endast följare"; @@ -42,7 +42,7 @@ "k7dbKQ" = "Inlägget har postats."; -"oGiqmY-dYQ5NN" = "Bara för att bekräfta, ville du ha 'Publikt'?"; +"oGiqmY-dYQ5NN" = "Bara för att bekräfta, ville du ha 'Offentligt'?"; "oGiqmY-ehFLjY" = "Bara för att bekräfta, ville du ha 'Endast följare'?"; From 1dbc39a17bd5d7d5f4723ec9827e6ef50512639c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 16:19:58 +0200 Subject: [PATCH 009/102] New translations Localizable.stringsdict (Swedish) --- .../StringsConvertor/input/sv_SE/Localizable.stringsdict | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict b/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict index c8903be4..5bfb998f 100644 --- a/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/sv_SE/Localizable.stringsdict @@ -317,7 +317,7 @@ NSStringFormatValueTypeKey ld one - %ldå sedan + %ld år sedan other %ldå sedan @@ -333,7 +333,7 @@ NSStringFormatValueTypeKey ld one - %ldmån sedan + %ld mån sedan other %ld mån sedan From 3f48bf7bb005e97b61d7532a6c25ab4b706cd7b1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 16:19:59 +0200 Subject: [PATCH 010/102] New translations Intents.strings (Swedish) --- .../Intents/input/sv_SE/Intents.strings | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings b/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings index 5f81d713..526e495d 100644 --- a/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/sv_SE/Intents.strings @@ -1,22 +1,22 @@ -"16wxgf" = "Posta på Mastodon"; +"16wxgf" = "Publicera på Mastodon"; "751xkl" = "Textinnehåll"; -"CsR7G2" = "Posta på Mastodon"; +"CsR7G2" = "Publicera på Mastodon"; -"HZSGTr" = "Vilket innehåll ska jag posta?"; +"HZSGTr" = "Vilket innehåll ska publiceras?"; -"HdGikU" = "Inlägget misslyckades"; +"HdGikU" = "Publiceringen misslyckades"; "KDNTJ4" = "Felorsak"; "RHxKOw" = "Skicka inlägg med textinnehåll"; -"RxSqsb" = "Posta"; +"RxSqsb" = "Inlägg"; -"WCIR3D" = "Posta ${content} på Mastodon"; +"WCIR3D" = "Publicera ${content} på Mastodon"; -"ZKJSNu" = "Posta"; +"ZKJSNu" = "Inlägg"; "ZS1XaK" = "${content}"; @@ -32,15 +32,15 @@ "ayoYEb-ehFLjY" = "${content}, Endast följare"; -"dUyuGg" = "Posta på Mastodon"; +"dUyuGg" = "Publicera på Mastodon"; "dYQ5NN" = "Offentligt"; "ehFLjY" = "Endast följare"; -"gfePDu" = "Inlägget misslyckades. ${failureReason}"; +"gfePDu" = "Publicering misslyckades. ${failureReason}"; -"k7dbKQ" = "Inlägget har postats."; +"k7dbKQ" = "Inlägget har publicerats."; "oGiqmY-dYQ5NN" = "Bara för att bekräfta, ville du ha 'Offentligt'?"; @@ -48,4 +48,4 @@ "rM6dvp" = "URL"; -"ryJLwG" = "Inlägget har postats. "; +"ryJLwG" = "Inlägget har publicerats. "; From e35d0cca1082b0a4628534dcdd1b9adb8fbf9525 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 20:02:29 +0200 Subject: [PATCH 011/102] New translations app.json (Kurmanji (Kurdish)) --- Localization/StringsConvertor/input/kmr_TR/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/kmr_TR/app.json b/Localization/StringsConvertor/input/kmr_TR/app.json index fcd6d022..52dde00a 100644 --- a/Localization/StringsConvertor/input/kmr_TR/app.json +++ b/Localization/StringsConvertor/input/kmr_TR/app.json @@ -211,7 +211,7 @@ "log_in": "Têkeve" }, "server_picker": { - "title": "Rajekarekê hilbijêre,\nHer kîjan rajekar be.", + "title": "Mastodon ji bikarhênerên di civakên cuda de pêk tê.", "subtitle": "Li gorî berjewendî, herêm, an jî armancek gelemperî civakekê hilbijêre.", "subtitle_extend": "Li gorî berjewendî, herêm, an jî armancek gelemperî civakekê hilbijêre. Her civakek ji hêla rêxistinek an kesek bi tevahî serbixwe ve tê xebitandin.", "button": { From f51e152b1ef9c26d782ad44db477a96775b88275 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 21:27:43 +0200 Subject: [PATCH 012/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 1e464f07..db21b29e 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -211,9 +211,9 @@ "log_in": "เข้าสู่ระบบ" }, "server_picker": { - "title": "Mastodon ประกอบด้วยผู้ใช้ในชุมชนต่าง ๆ", - "subtitle": "เลือกชุมชนตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ", - "subtitle_extend": "เลือกชุมชนตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละชุมชนดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง", + "title": "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ", + "subtitle": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ", + "subtitle_extend": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง", "button": { "category": { "all": "ทั้งหมด", @@ -240,7 +240,7 @@ "category": "หมวดหมู่" }, "input": { - "placeholder": "ค้นหาชุมชน" + "placeholder": "ค้นหาเซิร์ฟเวอร์" }, "empty_state": { "finding_servers": "กำลังค้นหาเซิร์ฟเวอร์ที่พร้อมใช้งาน...", From 9eef64f5e915bfdbe175d623affabf24dc518542 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Apr 2022 23:25:47 +0200 Subject: [PATCH 013/102] New translations app.json (Catalan) --- Localization/StringsConvertor/input/ca_ES/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/ca_ES/app.json b/Localization/StringsConvertor/input/ca_ES/app.json index 7789c616..4e93bc62 100644 --- a/Localization/StringsConvertor/input/ca_ES/app.json +++ b/Localization/StringsConvertor/input/ca_ES/app.json @@ -240,11 +240,11 @@ "category": "CATEGORIA" }, "input": { - "placeholder": "Troba un servidor o uneix-te al teu..." + "placeholder": "Cerca servidors" }, "empty_state": { "finding_servers": "Cercant els servidors disponibles...", - "bad_network": "S'ha produït un error en carregar les dades. Comprova la teva connexió a Internet.", + "bad_network": "Alguna cosa no ha anat bé en carregar les dades. Comprova la teva connexió a Internet.", "no_results": "No hi ha resultats" } }, From ea340699c8a9a036529e35c91735ebdebc9a9cb9 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 30 Apr 2022 00:26:32 +0200 Subject: [PATCH 014/102] New translations app.json (Catalan) --- Localization/StringsConvertor/input/ca_ES/app.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ca_ES/app.json b/Localization/StringsConvertor/input/ca_ES/app.json index 4e93bc62..9650d66c 100644 --- a/Localization/StringsConvertor/input/ca_ES/app.json +++ b/Localization/StringsConvertor/input/ca_ES/app.json @@ -249,7 +249,7 @@ } }, "register": { - "title": "Parla'ns de tu.", + "title": "Anem a configurar-te a %s", "input": { "avatar": { "delete": "Suprimeix" @@ -309,7 +309,7 @@ }, "server_rules": { "title": "Algunes regles bàsiques.", - "subtitle": "Aquestes regles estan establertes per els administradors de %s.", + "subtitle": "Aquestes regles estan establertes i aplicades per els moderadors de %s.", "prompt": "Al continuar, estàs subjecte als termes de servei i a la política de privacitat de %s.", "terms_of_service": "termes del servei", "privacy_policy": "política de privadesa", @@ -346,7 +346,7 @@ } }, "suggestion_account": { - "title": "Cerca Persones per Seguir", + "title": "Cerca Persones a Seguir", "follow_explain": "Quan segueixes algú, veuràs les seves publicacions a Inici." }, "compose": { From 5a6a4c3e7de5476d3c5f0c585d6a3b375da5da6f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 30 Apr 2022 00:26:33 +0200 Subject: [PATCH 015/102] New translations app.json (German) --- Localization/StringsConvertor/input/de_DE/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/de_DE/app.json b/Localization/StringsConvertor/input/de_DE/app.json index 75b01afd..86b4fded 100644 --- a/Localization/StringsConvertor/input/de_DE/app.json +++ b/Localization/StringsConvertor/input/de_DE/app.json @@ -129,7 +129,7 @@ "show_post": "Beitrag anzeigen", "show_user_profile": "Benutzerprofil anzeigen", "content_warning": "Inhaltswarnung", - "sensitive_content": "Sensitive Content", + "sensitive_content": "NSFW-Inhalt", "media_content_warning": "Tippe irgendwo zum Anzeigen", "tap_to_reveal": "Zum Anzeigen tippen", "poll": { @@ -501,7 +501,7 @@ "community": "Community", "for_you": "Für dich" }, - "intro": "These are the posts gaining traction in your corner of Mastodon." + "intro": "Dies sind die Beiträge, die in deiner Umgebung auf Mastodon beliebter werden." }, "favorite": { "title": "Deine Favoriten" From 774350c9da8b960cf50885c146b950e1c01ecb83 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 30 Apr 2022 01:31:30 +0200 Subject: [PATCH 016/102] New translations app.json (Japanese) --- .../StringsConvertor/input/ja_JP/app.json | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Localization/StringsConvertor/input/ja_JP/app.json b/Localization/StringsConvertor/input/ja_JP/app.json index f0b759d1..fd25af08 100644 --- a/Localization/StringsConvertor/input/ja_JP/app.json +++ b/Localization/StringsConvertor/input/ja_JP/app.json @@ -45,8 +45,8 @@ "message": "写真を保存するには、フォトライブラリへのアクセス許可を有効にしてください。" }, "delete_post": { - "title": "この投稿を消去しますか?", - "message": "本当に削除しますか?" + "title": "投稿を削除", + "message": "本当にこの投稿を削除しますか?" }, "clean_cache": { "title": "キャッシュを消去", @@ -91,7 +91,7 @@ "block_domain": "%sをブロック", "unblock_domain": "%sのブロックを解除", "settings": "設定", - "delete": "消去" + "delete": "削除" }, "tabs": { "home": "ホーム", @@ -252,7 +252,7 @@ "title": "あなたのことを教えてください", "input": { "avatar": { - "delete": "消去" + "delete": "削除" }, "username": { "placeholder": "ユーザー名", @@ -498,8 +498,8 @@ "posts": "投稿", "hashtags": "ハッシュタグ", "news": "ニュース", - "community": "Community", - "for_you": "For You" + "community": "コミュニティ", + "for_you": "おすすめ" }, "intro": "These are the posts gaining traction in your corner of Mastodon." }, @@ -512,12 +512,12 @@ "Mentions": "メンション" }, "notification_description": { - "followed_you": "followed you", - "favorited_your_post": "favorited your post", - "reblogged_your_post": "reblogged your post", - "mentioned_you": "mentioned you", - "request_to_follow_you": "request to follow you", - "poll_has_ended": "poll has ended" + "followed_you": "さんにフォローされました", + "favorited_your_post": "さんがあなたの投稿をお気に入りに登録しました", + "reblogged_your_post": "さんがあなたの投稿をブーストしました", + "mentioned_you": "さんがあなたに返信しました", + "request_to_follow_you": "さんがあなたにフォローリクエストしました", + "poll_has_ended": "アンケートが終了しました" }, "keyobard": { "show_everything": "すべて見る", @@ -538,11 +538,11 @@ "dark": "ダーク" }, "look_and_feel": { - "title": "Look and Feel", - "use_system": "Use System", - "really_dark": "Really Dark", - "sorta_dark": "Sorta Dark", - "light": "Light" + "title": "テーマ", + "use_system": "端末の設定を使う", + "really_dark": "ブラック", + "sorta_dark": "ダーク", + "light": "ライト" }, "notifications": { "title": "通知", From 56427eb7670ec45592d091c27bd45886edb88e5b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 30 Apr 2022 06:39:52 +0200 Subject: [PATCH 017/102] New translations Localizable.stringsdict (Arabic) --- .../StringsConvertor/input/ar_SA/Localizable.stringsdict | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict b/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict index c2f64172..dddba513 100644 --- a/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict @@ -109,7 +109,7 @@ NSStringFormatValueTypeKey ld zero - لا منشور + لا مَنشورات one منشورٌ واحِد two @@ -447,13 +447,13 @@ zero تتبقى لَحظة one - تتبقى ثانية + تتبقى ثانية واحِدة two - تتبقى ثانيتين + تتبقى ثانيتان few تتبقى %ld ثوان many - تتبقى %ld ثانيةً + تتبقى %ld ثانية other تتبقى %ld ثانية From 9635ee6bff9c56a0032ef26279d903e939d42b8f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 30 Apr 2022 10:32:50 +0200 Subject: [PATCH 018/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index db21b29e..55babe80 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -221,7 +221,7 @@ "academia": "วิชาการ", "activism": "กิจกรรมเพื่อการเปลี่ยนแปลง", "food": "อาหาร", - "furry": "furry", + "furry": "สรรพสัตว์", "games": "เกม", "general": "ทั่วไป", "journalism": "การเขียนข่าว", From 88dda0c6811bc5e7b968f75c471413075aab8be4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 30 Apr 2022 16:57:46 +0200 Subject: [PATCH 019/102] New translations app.json (Swedish) --- Localization/StringsConvertor/input/sv_SE/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/sv_SE/app.json b/Localization/StringsConvertor/input/sv_SE/app.json index 2961df17..e7bdecf1 100644 --- a/Localization/StringsConvertor/input/sv_SE/app.json +++ b/Localization/StringsConvertor/input/sv_SE/app.json @@ -498,7 +498,7 @@ "posts": "Inlägg", "hashtags": "Hashtaggar", "news": "Nyheter", - "community": "Gemenskap", + "community": "Server", "for_you": "För dig" }, "intro": "Detta är de inlägg som engagerar i ditt hörn av Mastodon." From f45794c10c927024a10302437cf1e39597c5e3d4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 00:07:39 +0200 Subject: [PATCH 020/102] New translations app.json (Finnish) --- .../StringsConvertor/input/fi_FI/app.json | 606 +++++++++--------- 1 file changed, 303 insertions(+), 303 deletions(-) diff --git a/Localization/StringsConvertor/input/fi_FI/app.json b/Localization/StringsConvertor/input/fi_FI/app.json index 50512250..4599c964 100644 --- a/Localization/StringsConvertor/input/fi_FI/app.json +++ b/Localization/StringsConvertor/input/fi_FI/app.json @@ -2,147 +2,147 @@ "common": { "alerts": { "common": { - "please_try_again": "Please try again.", - "please_try_again_later": "Please try again later." + "please_try_again": "Yritä uudelleen.", + "please_try_again_later": "Yritä uudelleen myöhemmin." }, "sign_up_failure": { - "title": "Sign Up Failure" + "title": "Rekisteröinti epäonnistui" }, "server_error": { - "title": "Server Error" + "title": "Palvelinvirhe" }, "vote_failure": { "title": "Vote Failure", - "poll_ended": "The poll has ended" + "poll_ended": "Kysely on päättynyt" }, "discard_post_content": { - "title": "Discard Draft", + "title": "Hylkää luonnos", "message": "Confirm to discard composed post content." }, "publish_post_failure": { - "title": "Publish Failure", - "message": "Failed to publish the post.\nPlease check your internet connection.", + "title": "Julkaiseminen epäonnistui", + "message": "Julkaisun julkaiseminen epäonnistui.\nTarkista internet-yhteytesi.", "attachments_message": { "video_attach_with_photo": "Cannot attach a video to a post that already contains images.", - "more_than_one_video": "Cannot attach more than one video." + "more_than_one_video": "Ei voi liittä yhtä videota enempää." } }, "edit_profile_failure": { - "title": "Edit Profile Error", - "message": "Cannot edit profile. Please try again." + "title": "Virhe profiilin muokkauksessa", + "message": "Profiilia ei voida muoka. Yritä uudelleen." }, "sign_out": { - "title": "Sign Out", - "message": "Are you sure you want to sign out?", - "confirm": "Sign Out" + "title": "Kirjaudu ulos", + "message": "Haluatko varmasti kirjautua ulos?", + "confirm": "Kirjaudu ulos" }, "block_domain": { "title": "Are you really, really sure you want to block the entire %s? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain and any of your followers from that domain will be removed.", - "block_entire_domain": "Block Domain" + "block_entire_domain": "Estä verkkotunnus" }, "save_photo_failure": { - "title": "Save Photo Failure", + "title": "Kuvan tallentaminen epäonnistui", "message": "Please enable the photo library access permission to save the photo." }, "delete_post": { - "title": "Delete Post", + "title": "Haluatko varmasti poistaa tämän julkaisun?", "message": "Are you sure you want to delete this post?" }, "clean_cache": { - "title": "Clean Cache", - "message": "Successfully cleaned %s cache." + "title": "Puhdista välimuisti", + "message": "%s välimuisti tyhjennetty onnistuneesti." } }, "controls": { "actions": { - "back": "Back", - "next": "Next", - "previous": "Previous", - "open": "Open", - "add": "Add", - "remove": "Remove", - "edit": "Edit", - "save": "Save", + "back": "Takaisin", + "next": "Seuraava", + "previous": "Edellinen", + "open": "Avaa", + "add": "Lisää", + "remove": "Poista", + "edit": "Muokkaa", + "save": "Tallenna", "ok": "OK", - "done": "Done", - "confirm": "Confirm", - "continue": "Continue", - "compose": "Compose", - "cancel": "Cancel", - "discard": "Discard", - "try_again": "Try Again", - "take_photo": "Take Photo", - "save_photo": "Save Photo", - "copy_photo": "Copy Photo", - "sign_in": "Sign In", - "sign_up": "Sign Up", - "see_more": "See More", - "preview": "Preview", - "share": "Share", - "share_user": "Share %s", - "share_post": "Share Post", - "open_in_safari": "Open in Safari", + "done": "Valmis", + "confirm": "Vahvista", + "continue": "Jatka", + "compose": "Koosta", + "cancel": "Kumoa", + "discard": "Hylkää", + "try_again": "Yritä uudelleen", + "take_photo": "Ota kuva", + "save_photo": "Tallenna kuva", + "copy_photo": "Kopioi kuva", + "sign_in": "Kirjaudu sisään", + "sign_up": "Rekisteröidy", + "see_more": "Näytä lisää", + "preview": "Esikatselu", + "share": "Jaa", + "share_user": "Jaa %s", + "share_post": "Jaa julkaisu", + "open_in_safari": "Avaa Safarissa", "open_in_browser": "Open in Browser", - "find_people": "Find people to follow", + "find_people": "Löydä tilejä seurattavaksi", "manually_search": "Manually search instead", - "skip": "Skip", - "reply": "Reply", - "report_user": "Report %s", - "block_domain": "Block %s", - "unblock_domain": "Unblock %s", - "settings": "Settings", - "delete": "Delete" + "skip": "Ohita", + "reply": "Vastaa", + "report_user": "Ilmianna %s", + "block_domain": "Estä %s", + "unblock_domain": "Poista esto %s", + "settings": "Asetukset", + "delete": "Poista" }, "tabs": { - "home": "Home", - "search": "Search", - "notification": "Notification", - "profile": "Profile" + "home": "Koti", + "search": "Haku", + "notification": "Ilmoitus", + "profile": "Profiili" }, "keyboard": { "common": { - "switch_to_tab": "Switch to %s", - "compose_new_post": "Compose New Post", - "show_favorites": "Show Favorites", - "open_settings": "Open Settings" + "switch_to_tab": "Vaihda %s", + "compose_new_post": "Koosta uusi julkaisu", + "show_favorites": "Näytä suosikit", + "open_settings": "Avaa asetukset" }, "timeline": { - "previous_status": "Previous Post", - "next_status": "Next Post", - "open_status": "Open Post", - "open_author_profile": "Open Author's Profile", - "open_reblogger_profile": "Open Reblogger's Profile", - "reply_status": "Reply to Post", + "previous_status": "Edellinen julkaisu", + "next_status": "Seuraava julkaisu", + "open_status": "Avaa julkaisu", + "open_author_profile": "Avaa tekijän profiili", + "open_reblogger_profile": "Avaa edelleen jakajan profiili", + "reply_status": "Vastaa julkaisuun", "toggle_reblog": "Toggle Reblog on Post", "toggle_favorite": "Toggle Favorite on Post", - "toggle_content_warning": "Toggle Content Warning", + "toggle_content_warning": "Vaihda sisältövaroitus", "preview_image": "Preview Image" }, "segmented_control": { "previous_section": "Previous Section", - "next_section": "Next Section" + "next_section": "Seuraava lohko" } }, "status": { - "user_reblogged": "%s reblogged", - "user_replied_to": "Replied to %s", - "show_post": "Show Post", - "show_user_profile": "Show user profile", - "content_warning": "Content Warning", + "user_reblogged": "%s jakoi edelleen", + "user_replied_to": "Vastasi %s:lle", + "show_post": "Näytä julkaisu", + "show_user_profile": "Näytä tili", + "content_warning": "Sisältövaroitus", "sensitive_content": "Sensitive Content", - "media_content_warning": "Tap anywhere to reveal", + "media_content_warning": "Napauta mistä tahansa paljastaaksesi", "tap_to_reveal": "Tap to reveal", "poll": { "vote": "Vote", - "closed": "Closed" + "closed": "Suljettu" }, "actions": { - "reply": "Reply", - "reblog": "Reblog", - "unreblog": "Undo reblog", + "reply": "Vastaa", + "reblog": "Jaa edelleen", + "unreblog": "Peru edelleen jako", "favorite": "Favorite", "unfavorite": "Unfavorite", - "menu": "Menu", + "menu": "Valikko", "hide": "Hide", "show_image": "Show image", "show_gif": "Show GIF", @@ -152,9 +152,9 @@ "tag": { "url": "URL", "mention": "Mention", - "link": "Link", - "hashtag": "Hashtag", - "email": "Email", + "link": "Linkki", + "hashtag": "Hashtagi", + "email": "Sähköposti", "emoji": "Emoji" }, "visibility": { @@ -165,266 +165,266 @@ } }, "friendship": { - "follow": "Follow", - "following": "Following", - "request": "Request", - "pending": "Pending", - "block": "Block", - "block_user": "Block %s", - "block_domain": "Block %s", - "unblock": "Unblock", + "follow": "Seuraa", + "following": "Seurataan", + "request": "Pyydä", + "pending": "Pyydetty", + "block": "Estä", + "block_user": "Estä %s", + "block_domain": "Estä %s", + "unblock": "Poista esto", "unblock_user": "Unblock %s", - "blocked": "Blocked", - "mute": "Mute", - "mute_user": "Mute %s", - "unmute": "Unmute", - "unmute_user": "Unmute %s", - "muted": "Muted", - "edit_info": "Edit Info" + "blocked": "Estetty", + "mute": "Mykistä", + "mute_user": "Mykistä %s", + "unmute": "Poista mykistys", + "unmute_user": "Poista mykistys tililtä %s", + "muted": "Mykistetty", + "edit_info": "Muokkaa profiilia" }, "timeline": { - "filtered": "Filtered", + "filtered": "Suodatettu", "timestamp": { - "now": "Now" + "now": "Nyt" }, "loader": { - "load_missing_posts": "Load missing posts", - "loading_missing_posts": "Loading missing posts...", - "show_more_replies": "Show more replies" + "load_missing_posts": "Lataa puuttuvat julkaisut", + "loading_missing_posts": "Ladataan puuttuvia julkaisuja...", + "show_more_replies": "Näytä lisää vastauksia" }, "header": { - "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", - "suspended_warning": "This user has been suspended.", - "user_suspended_warning": "%s’s account has been suspended." + "no_status_found": "Julkaisua ei löytynyt", + "blocking_warning": "Et voi tarkastella tämän tilin profiilia\nennen kuin poistat sen esto.\nProfiilisi näyttää tältä hänelle.", + "user_blocking_warning": "Et voi tarkastella tilin %s profiilia\nennen kuin poistat sen esto.\nProfiilisi näyttää tältä hänelle.", + "blocked_warning": "Et voi tarkastella tämän tilin profiilia\nennen kuin hän poistaa eston.", + "user_blocked_warning": "Et voi tarkastella tilin %s profiilia\nennen kuin hän poistaa eston.", + "suspended_warning": "Tämä tili on lakkautettu.", + "user_suspended_warning": "Tili %s on lakkautettu." } } } }, "scene": { "welcome": { - "slogan": "Social networking\nback in your hands.", + "slogan": "Sosiaalinen verkostoituminen\ntakaisin käsissäsi.", "get_started": "Get Started", "log_in": "Log In" }, "server_picker": { - "title": "Mastodon is made of users in different servers.", + "title": "Valitse palvelin,\nmikä tahansa palvelin.", "subtitle": "Pick a server based on your interests, region, or a general purpose one.", "subtitle_extend": "Pick a server based on your interests, region, or a general purpose one. Each server is operated by an entirely independent organization or individual.", "button": { "category": { - "all": "All", - "all_accessiblity_description": "Category: All", - "academia": "academia", - "activism": "activism", - "food": "food", - "furry": "furry", - "games": "games", - "general": "general", - "journalism": "journalism", - "lgbt": "lgbt", - "regional": "regional", - "art": "art", - "music": "music", - "tech": "tech" + "all": "Kaikki", + "all_accessiblity_description": "Kategoria: Kaikki", + "academia": "akateeminen", + "activism": "aktivismi", + "food": "ruoka", + "furry": "turri", + "games": "pelit", + "general": "yleinen", + "journalism": "journalismi", + "lgbt": "hlbt", + "regional": "alueellinen", + "art": "taide", + "music": "musiikki", + "tech": "tekniikka" }, - "see_less": "See Less", - "see_more": "See More" + "see_less": "Näytä vähemmän", + "see_more": "Näytä lisää" }, "label": { - "language": "LANGUAGE", - "users": "USERS", - "category": "CATEGORY" + "language": "KIELI", + "users": "TILIÄ", + "category": "KATEGORIA" }, "input": { - "placeholder": "Search servers" + "placeholder": "Etsi palvelin tai liity omaan..." }, "empty_state": { - "finding_servers": "Finding available servers...", - "bad_network": "Something went wrong while loading the data. Check your internet connection.", - "no_results": "No results" + "finding_servers": "Etsistään saatavilla olevia palvelimia...", + "bad_network": "Jokin meni pieleen dataa ladatessa. Tarkista internet-yhteytesi.", + "no_results": "Ei hakutuloksia" } }, "register": { - "title": "Let’s get you set up on %s", + "title": "Kerro meille sinusta.", "input": { "avatar": { - "delete": "Delete" + "delete": "Poista" }, "username": { - "placeholder": "username", - "duplicate_prompt": "This username is taken." + "placeholder": "käyttäjänimi", + "duplicate_prompt": "Tämä käyttäjänimi on varattu." }, "display_name": { - "placeholder": "display name" + "placeholder": "näyttönimi" }, "email": { - "placeholder": "email" + "placeholder": "sähköposti" }, "password": { - "placeholder": "password", + "placeholder": "salasana", "require": "Your password needs at least:", "character_limit": "8 characters", "accessibility": { "checked": "checked", "unchecked": "unchecked" }, - "hint": "Your password needs at least eight characters" + "hint": "Salasanassasi on oltava vähintään kahdeksan merkkiä" }, "invite": { - "registration_user_invite_request": "Why do you want to join?" + "registration_user_invite_request": "Miksi haluat liittyä?" } }, "error": { "item": { - "username": "Username", - "email": "Email", - "password": "Password", - "agreement": "Agreement", + "username": "Käyttäjänimi", + "email": "Sähköposti", + "password": "Salasana", + "agreement": "Hyväksy", "locale": "Locale", - "reason": "Reason" + "reason": "Syy" }, "reason": { - "blocked": "%s contains a disallowed email provider", - "unreachable": "%s does not seem to exist", - "taken": "%s is already in use", + "blocked": "%s sisältää estetyn sähköpostipalveluntarjoajan", + "unreachable": "%s ei näytä olevan olemassa", + "taken": "%s on jo käytössä", "reserved": "%s is a reserved keyword", - "accepted": "%s must be accepted", - "blank": "%s is required", - "invalid": "%s is invalid", - "too_long": "%s is too long", - "too_short": "%s is too short", - "inclusion": "%s is not a supported value" + "accepted": "%s täytyy hyväksyä", + "blank": "%s vaaditaan", + "invalid": "%s on virheellinen", + "too_long": "%s on liian pitkä", + "too_short": "%s on liian lyhyt", + "inclusion": "%s ei ole tuettu arvo" }, "special": { - "username_invalid": "Username must only contain alphanumeric characters and underscores", - "username_too_long": "Username is too long (can’t be longer than 30 characters)", - "email_invalid": "This is not a valid email address", - "password_too_short": "Password is too short (must be at least 8 characters)" + "username_invalid": "Käyttäjänimi voi sisältää ainoastaan aakkosnumerrisia merkkejä ja alaviivoja", + "username_too_long": "Käyttäjänimi on liian pitkä (ei voi olla pidempi kuin 30 merkkiä)", + "email_invalid": "Tämä ei ole kelvollinen sähköpostiosoite", + "password_too_short": "Salasana on liian lyhyt (täytyy olla vähintään 8 merkkiä)" } } }, "server_rules": { - "title": "Some ground rules.", - "subtitle": "These are set and enforced by the %s moderators.", - "prompt": "By continuing, you’re subject to the terms of service and privacy policy for %s.", - "terms_of_service": "terms of service", - "privacy_policy": "privacy policy", + "title": "Joitakin perussääntöjä.", + "subtitle": "Nämä säännöt ovat %s -palvelun asettamia.", + "prompt": "Jatkamalla, hyväksyt palvelun %s palveluehdot ja tietosuojakäytönnön.", + "terms_of_service": "käyttöehdot", + "privacy_policy": "tietosuojakäytäntö", "button": { - "confirm": "I Agree" + "confirm": "Hyväksyn" } }, "confirm_email": { - "title": "One last thing.", - "subtitle": "Tap the link we emailed to you to verify your account.", + "title": "Viimeinen asia.", + "subtitle": "Lähetimme juuri sähköpostin osoitteeseen %s, napauta siinä olevaa linkkiä vahvistaaksesi tilisi.", "button": { - "open_email_app": "Open Email App", + "open_email_app": "Avaa sähköpostisovellus", "resend": "Resend" }, "dont_receive_email": { - "title": "Check your email", - "description": "Check if your email address is correct as well as your junk folder if you haven’t.", - "resend_email": "Resend Email" + "title": "Tarkista sähköpostisi", + "description": "Tarkista, että sähköpostiosoitteesi on oikea, sekä roskapostikansiosi, jos et vielä ole.", + "resend_email": "Lähetä sähköposti uudelleen" }, "open_email_app": { - "title": "Check your inbox.", - "description": "We just sent you an email. Check your junk folder if you haven’t.", - "mail": "Mail", - "open_email_client": "Open Email Client" + "title": "Tarkasta postilaatikkosi.", + "description": "Lähetimme sinulle juuri sähköpostin. Tarkista myös roskapostikansiosi, jos et vielä ole.", + "mail": "Sähköposti", + "open_email_client": "Avaa sähköpostisovellus" } }, "home_timeline": { - "title": "Home", + "title": "Koti", "navigation_bar_state": { - "offline": "Offline", - "new_posts": "See new posts", - "published": "Published!", - "Publishing": "Publishing post..." + "offline": "Yhteydetön", + "new_posts": "Uusia julkaisuja", + "published": "Julkaistu!", + "Publishing": "Julkaistaan julkaisua..." } }, "suggestion_account": { - "title": "Find People to Follow", - "follow_explain": "When you follow someone, you’ll see their posts in your home feed." + "title": "Löydä tilejä seurattavaksi", + "follow_explain": "Kun seuraat jotakuta, näet hänen julkaisunsa kotisyötteessäsi." }, "compose": { "title": { - "new_post": "New Post", - "new_reply": "New Reply" + "new_post": "Uusi julkaisu", + "new_reply": "Uusi vastaus" }, "media_selection": { - "camera": "Take Photo", - "photo_library": "Photo Library", - "browse": "Browse" + "camera": "Ota kuva", + "photo_library": "Kuvakirjasto", + "browse": "Selaa" }, - "content_input_placeholder": "Type or paste what’s on your mind", - "compose_action": "Publish", - "replying_to_user": "replying to %s", + "content_input_placeholder": "Kirjoita tai liitä, siitä mitä ajattelet", + "compose_action": "Julkaise", + "replying_to_user": "vastaamassa tilille %s", "attachment": { - "photo": "photo", + "photo": "kuva", "video": "video", "attachment_broken": "This %s is broken and can’t be\nuploaded to Mastodon.", - "description_photo": "Describe the photo for the visually-impaired...", - "description_video": "Describe the video for the visually-impaired..." + "description_photo": "Kuvaile kuva näkövammaisille...", + "description_video": "Kuvaile video näkövammaisille..." }, "poll": { - "duration_time": "Duration: %s", - "thirty_minutes": "30 minutes", - "one_hour": "1 Hour", - "six_hours": "6 Hours", - "one_day": "1 Day", - "three_days": "3 Days", - "seven_days": "7 Days", - "option_number": "Option %ld" + "duration_time": "Kesto: %s", + "thirty_minutes": "30 minuuttia", + "one_hour": "1 tunti", + "six_hours": "6 tuntia", + "one_day": "1 päivä", + "three_days": "3 päivää", + "seven_days": "7 päivää", + "option_number": "Vaihtoehto %ld" }, "content_warning": { - "placeholder": "Write an accurate warning here..." + "placeholder": "Kirjoita tarkka varoitus tähän..." }, "visibility": { - "public": "Public", - "unlisted": "Unlisted", - "private": "Followers only", - "direct": "Only people I mention" + "public": "Julkinen", + "unlisted": "Listaamaton", + "private": "Vain seuraajat", + "direct": "Vain mainitsemani tilit" }, "auto_complete": { "space_to_add": "Space to add" }, "accessibility": { - "append_attachment": "Add Attachment", - "append_poll": "Add Poll", - "remove_poll": "Remove Poll", - "custom_emoji_picker": "Custom Emoji Picker", - "enable_content_warning": "Enable Content Warning", - "disable_content_warning": "Disable Content Warning", - "post_visibility_menu": "Post Visibility Menu" + "append_attachment": "Lisää liite", + "append_poll": "Lisää kysely", + "remove_poll": "Poista kysely", + "custom_emoji_picker": "Mukautettu emojivalitsin", + "enable_content_warning": "Ota sisältövaroitus käyttöön", + "disable_content_warning": "Poista sisältövaroitus käytöstä", + "post_visibility_menu": "Julkaisun näkyvyysvalikko" }, "keyboard": { - "discard_post": "Discard Post", - "publish_post": "Publish Post", - "toggle_poll": "Toggle Poll", - "toggle_content_warning": "Toggle Content Warning", - "append_attachment_entry": "Add Attachment - %s", - "select_visibility_entry": "Select Visibility - %s" + "discard_post": "Hylkää julkaisu", + "publish_post": "Julkaise julkaisu", + "toggle_poll": "Vaihda kysely", + "toggle_content_warning": "Vaihda sisältövaroitus", + "append_attachment_entry": "Lisää liite - %s", + "select_visibility_entry": "Valitse näkyvyys - %s" } }, "profile": { "dashboard": { - "posts": "posts", - "following": "following", - "followers": "followers" + "posts": "julkaisut", + "following": "seurataan", + "followers": "seuraajat" }, "fields": { - "add_row": "Add Row", + "add_row": "Lisää rivi", "placeholder": { - "label": "Label", - "content": "Content" + "label": "Nimi", + "content": "Sisältö" } }, "segmented_control": { - "posts": "Posts", - "replies": "Replies", + "posts": "Julkaisut", + "replies": "Vastaukset", "posts_and_replies": "Posts and Replies", "media": "Media", "about": "About" @@ -435,8 +435,8 @@ "message": "Confirm to mute %s" }, "confirm_unmute_user": { - "title": "Unmute Account", - "message": "Confirm to unmute %s" + "title": "Poista tilin mykistys", + "message": "Vahvista, että haluat poistaa mykistyksen tililtä %s" }, "confirm_block_user": { "title": "Block Account", @@ -455,42 +455,42 @@ } }, "follower": { - "footer": "Followers from other servers are not displayed." + "footer": "Seuraajia muilta palvelimilta ei näytetä." }, "following": { - "footer": "Follows from other servers are not displayed." + "footer": "Seurauksia muilta palvelimilta ei näytetä." }, "search": { - "title": "Search", + "title": "Haku", "search_bar": { - "placeholder": "Search hashtags and users", - "cancel": "Cancel" + "placeholder": "Haku", + "cancel": "Kumoa" }, "recommend": { - "button_text": "See All", + "button_text": "Katso kaikki", "hash_tag": { - "title": "Trending on Mastodon", - "description": "Hashtags that are getting quite a bit of attention", - "people_talking": "%s people are talking" + "title": "Trendaavat Mastodonissa", + "description": "Hashtagit, jotka saavat melkoisesti huomiota", + "people_talking": "%s ihmistä puhuu" }, "accounts": { - "title": "Accounts you might like", - "description": "You may like to follow these accounts", - "follow": "Follow" + "title": "Saatat pitää näistä tileistä", + "description": "Haluta ehkä seurata näitä tilejä", + "follow": "Seuraa" } }, "searching": { "segment": { - "all": "All", - "people": "People", - "hashtags": "Hashtags", - "posts": "Posts" + "all": "Kaikki", + "people": "Tilit", + "hashtags": "Hashtagit", + "posts": "Julkaisut" }, "empty_state": { - "no_results": "No results" + "no_results": "Ei hakutuloksia" }, - "recent_search": "Recent searches", - "clear": "Clear" + "recent_search": "Viimeaikaiset", + "clear": "Tyhjennä" } }, "discovery": { @@ -504,12 +504,12 @@ "intro": "These are the posts gaining traction in your corner of Mastodon." }, "favorite": { - "title": "Your Favorites" + "title": "Omat suosikit" }, "notification": { "title": { - "Everything": "Everything", - "Mentions": "Mentions" + "Everything": "Kaikki", + "Mentions": "Maininnat" }, "notification_description": { "followed_you": "followed you", @@ -520,22 +520,22 @@ "poll_has_ended": "poll has ended" }, "keyobard": { - "show_everything": "Show Everything", - "show_mentions": "Show Mentions" + "show_everything": "Näytä kaikki", + "show_mentions": "Näytä maininnat" } }, "thread": { - "back_title": "Post", - "title": "Post from %s" + "back_title": "Julkaisu", + "title": "Julkaisu tililtä %s" }, "settings": { - "title": "Settings", + "title": "Asetukset", "section": { "appearance": { - "title": "Appearance", - "automatic": "Automatic", - "light": "Always Light", - "dark": "Always Dark" + "title": "Ulkoasu", + "automatic": "Seuraa järjestelmää", + "light": "Vaalea", + "dark": "Tumma" }, "look_and_feel": { "title": "Look and Feel", @@ -545,75 +545,75 @@ "light": "Light" }, "notifications": { - "title": "Notifications", + "title": "Ilmoitukset", "favorites": "Favorites my post", - "follows": "Follows me", - "boosts": "Reblogs my post", - "mentions": "Mentions me", + "follows": "Seuraa minua", + "boosts": "Omien julkaisujen edelleen jaot", + "mentions": "Mainitsee minut", "trigger": { - "anyone": "anyone", - "follower": "a follower", - "follow": "anyone I follow", - "noone": "no one", - "title": "Notify me when" + "anyone": "kuka tahansa", + "follower": "seuraaja", + "follow": "kuka tahansa, jota seuraan", + "noone": "ei kukaan", + "title": "Ilmoita minulle, kun" } }, "preference": { - "title": "Preferences", - "true_black_dark_mode": "True black dark mode", - "disable_avatar_animation": "Disable animated avatars", - "disable_emoji_animation": "Disable animated emojis", - "using_default_browser": "Use default browser to open links", + "title": "Lisäasetukset", + "true_black_dark_mode": "Todellinen mustan tumma tila", + "disable_avatar_animation": "Poista käytöstä animoidut avatarit", + "disable_emoji_animation": "Poista käytöstä animoidut emojit", + "using_default_browser": "Käytä oletusselainta linkkien avaamiseen", "open_links_in_mastodon": "Open links in Mastodon" }, "boring_zone": { - "title": "The Boring Zone", - "account_settings": "Account Settings", - "terms": "Terms of Service", - "privacy": "Privacy Policy" + "title": "Tylsä alue", + "account_settings": "Tiliasetukset", + "terms": "Palveluehdot", + "privacy": "Tietosuojakäytäntö" }, "spicy_zone": { - "title": "The Spicy Zone", - "clear": "Clear Media Cache", - "signout": "Sign Out" + "title": "Varovainen alue", + "clear": "Tyhjennä median välimuisti", + "signout": "Kirjaudu ulos" } }, "footer": { - "mastodon_description": "Mastodon is open source software. You can report issues on GitHub at %s (%s)" + "mastodon_description": "Mastodon on avoimen lähdekoodin ohjelmisto. Voit raportoida ongelmasta GitHubissa osoitteessa %s (%s)" }, "keyboard": { - "close_settings_window": "Close Settings Window" + "close_settings_window": "Sulje asetukset" } }, "report": { "title_report": "Report", - "title": "Report %s", - "step1": "Step 1 of 2", - "step2": "Step 2 of 2", - "content1": "Are there any other posts you’d like to add to the report?", - "content2": "Is there anything the moderators should know about this report?", + "title": "Ilmianna %s", + "step1": "Vaihe 1/2", + "step2": "Vaihe 2/2", + "content1": "Onko julkaisuja, joita haluaisit lisätä ilmiantoon?", + "content2": "Onko valvojien syytä tietää tästä ilmiannosta?", "report_sent_title": "Thanks for reporting, we’ll look into this.", - "send": "Send Report", - "skip_to_send": "Send without comment", - "text_placeholder": "Type or paste additional comments", + "send": "Lähetä ilmianto", + "skip_to_send": "Lähetä ilman kommentteja", + "text_placeholder": "Kirjoita tai liitä lisäkommentteja", "reported": "REPORTED" }, "preview": { "keyboard": { - "close_preview": "Close Preview", - "show_next": "Show Next", - "show_previous": "Show Previous" + "close_preview": "Sulje esikatselu", + "show_next": "Näytä seuraava", + "show_previous": "Näytä edellinen" } }, "account_list": { - "tab_bar_hint": "Current selected profile: %s. Double tap then hold to show account switcher", - "dismiss_account_switcher": "Dismiss Account Switcher", - "add_account": "Add Account" + "tab_bar_hint": "Nykyinen valittu profiili: %s. Kaksoisnapauta ja pidä sitten painettuna näytääksesi tilin vaihtajan", + "dismiss_account_switcher": "Sulje tilin vaihtaja", + "add_account": "Lisää tili" }, "wizard": { - "new_in_mastodon": "New in Mastodon", - "multiple_account_switch_intro_description": "Switch between multiple accounts by holding the profile button.", - "accessibility_hint": "Double tap to dismiss this wizard" + "new_in_mastodon": "Uutta Mastodonissa", + "multiple_account_switch_intro_description": "Vaihda useiden tilien välillä pitämällä profiilipainiketta painettuna.", + "accessibility_hint": "Hylkää tämä ohjattu toiminto kaksoisnapauttamalla" } } } \ No newline at end of file From 8b4738b1c8c491385e05c9125c25994696be76ad Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 00:07:40 +0200 Subject: [PATCH 021/102] New translations ios-infoPlist.json (Finnish) --- .../StringsConvertor/input/fi_FI/ios-infoPlist.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Localization/StringsConvertor/input/fi_FI/ios-infoPlist.json b/Localization/StringsConvertor/input/fi_FI/ios-infoPlist.json index c6db73de..eb389f3b 100644 --- a/Localization/StringsConvertor/input/fi_FI/ios-infoPlist.json +++ b/Localization/StringsConvertor/input/fi_FI/ios-infoPlist.json @@ -1,6 +1,6 @@ { - "NSCameraUsageDescription": "Used to take photo for post status", - "NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library", - "NewPostShortcutItemTitle": "New Post", - "SearchShortcutItemTitle": "Search" + "NSCameraUsageDescription": "Käytetään kuvan ottamiseen julkaisua varten", + "NSPhotoLibraryAddUsageDescription": "Käytetään kuvan tallentamiseen kuvakirjastoon", + "NewPostShortcutItemTitle": "Uusi julkaisu", + "SearchShortcutItemTitle": "Haku" } From da08892a1812d8f07ccd291827d59bc3e2f05132 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 00:07:41 +0200 Subject: [PATCH 022/102] New translations Localizable.stringsdict (Finnish) --- .../input/fi_FI/Localizable.stringsdict | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Localization/StringsConvertor/input/fi_FI/Localizable.stringsdict b/Localization/StringsConvertor/input/fi_FI/Localizable.stringsdict index 503ff9db..43231214 100644 --- a/Localization/StringsConvertor/input/fi_FI/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/fi_FI/Localizable.stringsdict @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 unread notification + 1 lukematon ilmoitus other - %ld unread notification + %ld lukematonta ilmoitusta a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + Syöterajoitus ylittyy %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -29,15 +29,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 merkki other - %ld characters + %ld merkkiä a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + Syöterajoitus ylittyy %#@character_count@ päästä character_count NSStringFormatSpecTypeKey @@ -45,9 +45,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 merkki other - %ld characters + %ld merkkiä plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - post + julkaisu other - posts + julkaisut plural.count.post @@ -77,9 +77,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 julkaisu other - %ld posts + %ld julkaisua plural.count.favorite @@ -93,9 +93,9 @@ NSStringFormatValueTypeKey ld one - 1 favorite + 1 suosikki other - %ld favorites + %ld suosikkia plural.count.reblog @@ -109,9 +109,9 @@ NSStringFormatValueTypeKey ld one - 1 reblog + 1 edelleen jako other - %ld reblogs + %ld edelleen jakoa plural.count.reply @@ -141,9 +141,9 @@ NSStringFormatValueTypeKey ld one - 1 vote + 1 ääni other - %ld votes + %ld ääntä plural.count.voter @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 voter + 1 vastaaja other - %ld voters + %ld vastaajaa plural.people_talking @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 people talking + 1 ihminen puhuu other - %ld people talking + %ld ihmistä puhuu plural.count.following @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 following + 1 seurataan other - %ld following + %ld seurataan plural.count.follower @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 seuraaja other - %ld followers + %ld seuraajaa date.year.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + 1 vuosi jäljellä other - %ld years left + %ld vuotta jäljellä date.month.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + 1 kuukausi jäljellä other - %ld months left + %ld kuukautta jäljellä date.day.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + 1 päivä jäljellä other - %ld days left + %ld päivää jäljellä date.hour.left @@ -269,9 +269,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + 1 tunti jäljellä other - %ld hours left + %ld tuntia jäljellä date.minute.left @@ -285,9 +285,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + 1 minuutti jäljellä other - %ld minutes left + %ld minuuttia jäljellä date.second.left @@ -301,9 +301,9 @@ NSStringFormatValueTypeKey ld one - 1 second left + 1 sekuntti other - %ld seconds left + %ld sekunttia jäljellä date.year.ago.abbr @@ -317,9 +317,9 @@ NSStringFormatValueTypeKey ld one - 1y ago + 1v sitten other - %ldy ago + %ldv sitten date.month.ago.abbr @@ -333,9 +333,9 @@ NSStringFormatValueTypeKey ld one - 1M ago + 1kk sitten other - %ldM ago + %ldkk sitten date.day.ago.abbr @@ -349,9 +349,9 @@ NSStringFormatValueTypeKey ld one - 1d ago + 1pv sitten other - %ldd ago + %ldpv sitten date.hour.ago.abbr @@ -365,9 +365,9 @@ NSStringFormatValueTypeKey ld one - 1h ago + 1t sitten other - %ldh ago + %ldt sitten date.minute.ago.abbr @@ -381,9 +381,9 @@ NSStringFormatValueTypeKey ld one - 1m ago + 1min sitten other - %ldm ago + %ldmin sitten date.second.ago.abbr @@ -397,9 +397,9 @@ NSStringFormatValueTypeKey ld one - 1s ago + 1s sitten other - %lds ago + %lds sitten From a099e474b4d6a8ab8e1087a8e665180597e75c60 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 00:07:42 +0200 Subject: [PATCH 023/102] New translations Intents.strings (Finnish) --- .../Intents/input/fi_FI/Intents.strings | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/Localization/StringsConvertor/Intents/input/fi_FI/Intents.strings b/Localization/StringsConvertor/Intents/input/fi_FI/Intents.strings index 6877490b..1be213d4 100644 --- a/Localization/StringsConvertor/Intents/input/fi_FI/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/fi_FI/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Julkaise Mastodonissa"; -"751xkl" = "Text Content"; +"751xkl" = "Tekstisisältö"; -"CsR7G2" = "Post on Mastodon"; +"CsR7G2" = "Julkaise Mastodonissa"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "Mitä sisältöä julkaista?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Julkaiseminen epäonnistui"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Epäonnistumisen syy"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Lähetä julkaisu teksisisällöllä"; -"RxSqsb" = "Post"; +"RxSqsb" = "Julkaisu"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Julkaise ${content} Mastodonissa"; -"ZKJSNu" = "Post"; +"ZKJSNu" = "Julkaisu"; "ZS1XaK" = "${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Näkyvyys"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Julkaisun näkyvyys"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "On ${count} vaihtoehtoa, jotka vastaavat ‘Julkinen’."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "On ${count} vaihtoehtoa, jotka vastaavat ‘Vain seuraajat’."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, julkinen"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, vain seuraajat"; -"dUyuGg" = "Post on Mastodon"; +"dUyuGg" = "Julkaise Mastodonissa"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Julkinen"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Vain seuraajat"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Julkaiseminen epäonnistui. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "Julkaisu lähetettiin onnistuneesti."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Vahvitukseksi, halusit ‘Julkinen’?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Vahvitstukseksi, halusit ‘Vain seuraajat’?"; "rM6dvp" = "URL"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "Julkaisu lähetettiin onnistuneesti. "; From 9c6bed3a28bb19af67cddce94fbaca21b56403a3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 00:07:43 +0200 Subject: [PATCH 024/102] New translations Intents.stringsdict (Finnish) --- .../Intents/input/fi_FI/Intents.stringsdict | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Localization/StringsConvertor/Intents/input/fi_FI/Intents.stringsdict b/Localization/StringsConvertor/Intents/input/fi_FI/Intents.stringsdict index 18422c77..7825b778 100644 --- a/Localization/StringsConvertor/Intents/input/fi_FI/Intents.stringsdict +++ b/Localization/StringsConvertor/Intents/input/fi_FI/Intents.stringsdict @@ -5,7 +5,7 @@ There are ${count} options matching ‘${content}’. - 2 NSStringLocalizedFormatKey - There are %#@count_option@ matching ‘${content}’. + On %#@count_option@, joka/jotka vastaavat sisältöön ‘${content}’. count_option NSStringFormatSpecTypeKey @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey %ld one - 1 option + 1 vaihtoehto other - %ld options + %ld vaihtoehtoa There are ${count} options matching ‘${visibility}’. NSStringLocalizedFormatKey - There are %#@count_option@ matching ‘${visibility}’. + On vaihtoehtoa %#@count_option@, joka/jotka vastaavat näkyvyyteen ‘${visibility}’. count_option NSStringFormatSpecTypeKey @@ -29,9 +29,9 @@ NSStringFormatValueTypeKey %ld one - 1 option + 1 vaihtoehto other - %ld options + %ld vaihtoehtoa From c90468aba8bd74b15035de8aabc193e0b0940e37 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 10:48:53 +0200 Subject: [PATCH 025/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 55babe80..570794ee 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -266,13 +266,13 @@ }, "password": { "placeholder": "รหัสผ่าน", - "require": "รหัสผ่านของคุณต้องมีอย่างน้อย:", + "require": "รหัสผ่านของคุณจำเป็นต้องมีอย่างน้อย:", "character_limit": "8 ตัวอักษร", "accessibility": { "checked": "กาเครื่องหมายแล้ว", "unchecked": "ไม่ได้กาเครื่องหมาย" }, - "hint": "รหัสผ่านของคุณต้องมีอย่างน้อยแปดตัวอักษร" + "hint": "รหัสผ่านของคุณจำเป็นต้องมีอย่างน้อยแปดตัวอักษร" }, "invite": { "registration_user_invite_request": "ทำไมคุณจึงต้องการเข้าร่วม?" From 71a6366f1bec8003afd1acb23a56e7fe35278ed3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 13:04:04 +0200 Subject: [PATCH 026/102] New translations app.json (Scottish Gaelic) --- Localization/StringsConvertor/input/gd_GB/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/gd_GB/app.json b/Localization/StringsConvertor/input/gd_GB/app.json index fc9270c5..e3ff7c12 100644 --- a/Localization/StringsConvertor/input/gd_GB/app.json +++ b/Localization/StringsConvertor/input/gd_GB/app.json @@ -498,7 +498,7 @@ "posts": "Postaichean", "hashtags": "Tagaichean hais", "news": "Naidheachdan", - "community": "Community", + "community": "Coimhearsnachd", "for_you": "Dhut-sa" }, "intro": "Seo na postaichean fèillmhor ’nad cheàrnaidh de Mhastodon." From 0d540fe2c775a914769c8cc6d23abade3b10c076 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 22:37:34 +0200 Subject: [PATCH 027/102] New translations app.json (Japanese) --- Localization/StringsConvertor/input/ja_JP/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/ja_JP/app.json b/Localization/StringsConvertor/input/ja_JP/app.json index fd25af08..e77dc472 100644 --- a/Localization/StringsConvertor/input/ja_JP/app.json +++ b/Localization/StringsConvertor/input/ja_JP/app.json @@ -56,7 +56,7 @@ "controls": { "actions": { "back": "戻る", - "next": "次", + "next": "次へ", "previous": "前", "open": "開く", "add": "追加", @@ -207,7 +207,7 @@ "scene": { "welcome": { "slogan": "ソーシャルネットワーキングを、あなたの手の中に.", - "get_started": "Get Started", + "get_started": "はじめる", "log_in": "ログイン" }, "server_picker": { From 023c7fe5eeb317a511e8e00acc7d38f04b2f906c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 May 2022 23:33:15 +0200 Subject: [PATCH 028/102] New translations Localizable.stringsdict (Japanese) --- .../StringsConvertor/input/ja_JP/Localizable.stringsdict | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict b/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict index 8dfc9507..95c35172 100644 --- a/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict @@ -153,7 +153,7 @@ NSStringFormatValueTypeKey ld other - %ld people talking + %ld人が投稿 plural.count.following From dddacf325b7b37c1c91972e4f2198077bd3633a6 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 2 May 2022 19:03:05 +0200 Subject: [PATCH 029/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 570794ee..2f960c77 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -293,7 +293,7 @@ "taken": "%s ถูกใช้งานแล้ว", "reserved": "%s เป็นคำสงวน", "accepted": "ต้องยอมรับ %s", - "blank": "ต้องมี %s", + "blank": "ต้องการ %s", "invalid": "%s ไม่ถูกต้อง", "too_long": "%s ยาวเกินไป", "too_short": "%s สั้นเกินไป", From ca1103f748951f8a245988de979c719691baa92f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 3 May 2022 07:20:04 +0200 Subject: [PATCH 030/102] New translations app.json (Galician) --- .../StringsConvertor/input/gl_ES/app.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/app.json b/Localization/StringsConvertor/input/gl_ES/app.json index 0c5cbc03..c97add3c 100644 --- a/Localization/StringsConvertor/input/gl_ES/app.json +++ b/Localization/StringsConvertor/input/gl_ES/app.json @@ -195,18 +195,18 @@ "header": { "no_status_found": "Non se atopa a publicación", "blocking_warning": "Non podes ver o perfil da usuaria\nata que a desbloquees.\nAsí ven outras o teu perfil.", - "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", - "suspended_warning": "This user has been suspended.", - "user_suspended_warning": "%s’s account has been suspended." + "user_blocking_warning": "Non podes ver o perfil de %s\nata que o desbloquees.\nAsí se ve o teu perfil.", + "blocked_warning": "Non podes ver o perfil desta usuaria\nata que te desbloquee.", + "user_blocked_warning": "Non podes ver o perfil de %s\nata que te desbloquee.", + "suspended_warning": "Esta usuaria foi suspendida.", + "user_suspended_warning": "A conta de %s foi suspendida." } } } }, "scene": { "welcome": { - "slogan": "Social networking\nback in your hands.", + "slogan": "Comunicación social\nde volta ás túas mans.", "get_started": "Comezar", "log_in": "Acceder" }, @@ -301,14 +301,14 @@ }, "special": { "username_invalid": "O nome de usuaria só pode ter caracteres alfanuméricos e trazos baixos", - "username_too_long": "Username is too long (can’t be longer than 30 characters)", - "email_invalid": "This is not a valid email address", - "password_too_short": "Password is too short (must be at least 8 characters)" + "username_too_long": "O nome de usuaria é demasiado longo (maior de 30 caracteres)", + "email_invalid": "Este non é un enderezo válido de email", + "password_too_short": "O contrasinal é demasiado curto (debe ter 8 caracteres como mínimo)" } } }, "server_rules": { - "title": "Some ground rules.", + "title": "Algunhas regras básicas.", "subtitle": "These are set and enforced by the %s moderators.", "prompt": "By continuing, you’re subject to the terms of service and privacy policy for %s.", "terms_of_service": "terms of service", From c1fe2f833575da974a757763ba6daacf47984bb9 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 3 May 2022 08:15:16 +0200 Subject: [PATCH 031/102] New translations app.json (Galician) --- .../StringsConvertor/input/gl_ES/app.json | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/app.json b/Localization/StringsConvertor/input/gl_ES/app.json index c97add3c..ca1d824d 100644 --- a/Localization/StringsConvertor/input/gl_ES/app.json +++ b/Localization/StringsConvertor/input/gl_ES/app.json @@ -309,71 +309,71 @@ }, "server_rules": { "title": "Algunhas regras básicas.", - "subtitle": "These are set and enforced by the %s moderators.", - "prompt": "By continuing, you’re subject to the terms of service and privacy policy for %s.", - "terms_of_service": "terms of service", - "privacy_policy": "privacy policy", + "subtitle": "Son establecidas e aplicadas pola moderación de %s.", + "prompt": "Ao continuar, acatas os termos do servizo e a política de privacidade para %s.", + "terms_of_service": "termos do servizo", + "privacy_policy": "polícica de privacidade", "button": { - "confirm": "I Agree" + "confirm": "Acepto" } }, "confirm_email": { - "title": "One last thing.", - "subtitle": "Tap the link we emailed to you to verify your account.", + "title": "O último detalle.", + "subtitle": "Preme na ligazón que che enviamos ao email para verificar a conta.", "button": { - "open_email_app": "Open Email App", - "resend": "Resend" + "open_email_app": "Abrir app de email", + "resend": "Reenviar" }, "dont_receive_email": { - "title": "Check your email", - "description": "Check if your email address is correct as well as your junk folder if you haven’t.", - "resend_email": "Resend Email" + "title": "Revisa o teu correo", + "description": "Comproba que o enderezo de email é correcto e que non vaia directo ao cartafol de spam.", + "resend_email": "Volver enviar o correo" }, "open_email_app": { - "title": "Check your inbox.", - "description": "We just sent you an email. Check your junk folder if you haven’t.", - "mail": "Mail", - "open_email_client": "Open Email Client" + "title": "Mira na caixa de correo.", + "description": "Enviámosche un email. Se non aparece, mira no cartafol do lixo.", + "mail": "Correo", + "open_email_client": "Abrir cliente de email" } }, "home_timeline": { - "title": "Home", + "title": "Inicio", "navigation_bar_state": { - "offline": "Offline", - "new_posts": "See new posts", - "published": "Published!", - "Publishing": "Publishing post..." + "offline": "Sen conexión", + "new_posts": "Novas publicacións", + "published": "Publicado!", + "Publishing": "Publicando..." } }, "suggestion_account": { - "title": "Find People to Follow", - "follow_explain": "When you follow someone, you’ll see their posts in your home feed." + "title": "Atopar persoas para seguir", + "follow_explain": "Cando sigas a alguén verás as súas publicacións na cronoloxía de inicio." }, "compose": { "title": { - "new_post": "New Post", - "new_reply": "New Reply" + "new_post": "Nova publicación", + "new_reply": "Nova resposta" }, "media_selection": { - "camera": "Take Photo", - "photo_library": "Photo Library", - "browse": "Browse" + "camera": "Facer foto", + "photo_library": "Biblioteca de fotos", + "browse": "Explorar" }, - "content_input_placeholder": "Type or paste what’s on your mind", - "compose_action": "Publish", - "replying_to_user": "replying to %s", + "content_input_placeholder": "Escribe o que che apeteza", + "compose_action": "Publicar", + "replying_to_user": "en resposta a %s", "attachment": { - "photo": "photo", - "video": "video", - "attachment_broken": "This %s is broken and can’t be\nuploaded to Mastodon.", - "description_photo": "Describe the photo for the visually-impaired...", - "description_video": "Describe the video for the visually-impaired..." + "photo": "foto", + "video": "vídeo", + "attachment_broken": "Este %s está estragado e non pode\nser subido a Mastodon.", + "description_photo": "Describe a foto para persoas con problemas visuais...", + "description_video": "Describe o vídeo para persoas con problemas visuais..." }, "poll": { - "duration_time": "Duration: %s", - "thirty_minutes": "30 minutes", - "one_hour": "1 Hour", - "six_hours": "6 Hours", + "duration_time": "Duración: %s", + "thirty_minutes": "30 minutos", + "one_hour": "1 Hora", + "six_hours": "6 Horas", "one_day": "1 Día", "three_days": "3 Días", "seven_days": "7 Días", From fedb8680f2f2f8b98168d83f29865a2fa4676c54 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 3 May 2022 18:40:33 +0200 Subject: [PATCH 032/102] New translations app.json (German) --- Localization/StringsConvertor/input/de_DE/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/de_DE/app.json b/Localization/StringsConvertor/input/de_DE/app.json index 86b4fded..52f35a8d 100644 --- a/Localization/StringsConvertor/input/de_DE/app.json +++ b/Localization/StringsConvertor/input/de_DE/app.json @@ -612,7 +612,7 @@ }, "wizard": { "new_in_mastodon": "Neu in Mastodon", - "multiple_account_switch_intro_description": "Wechsel zwischen mehreren Konten durch drücken der Profil-Schaltfläche.", + "multiple_account_switch_intro_description": "Wechsel zwischen mehreren Konten durch Drücken der Profil-Schaltfläche.", "accessibility_hint": "Doppeltippen, um diesen Assistenten zu schließen" } } From 9c7e23f6ca518bdb7ca88977c57d4d09f402f884 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 03:47:21 +0200 Subject: [PATCH 033/102] New translations app.json (Japanese) --- Localization/StringsConvertor/input/ja_JP/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/ja_JP/app.json b/Localization/StringsConvertor/input/ja_JP/app.json index e77dc472..e9a2f5ef 100644 --- a/Localization/StringsConvertor/input/ja_JP/app.json +++ b/Localization/StringsConvertor/input/ja_JP/app.json @@ -501,7 +501,7 @@ "community": "コミュニティ", "for_you": "おすすめ" }, - "intro": "These are the posts gaining traction in your corner of Mastodon." + "intro": "あなたのMastodonサーバーで注目を集めている投稿がここに表示されます。" }, "favorite": { "title": "お気に入り" @@ -564,7 +564,7 @@ "disable_avatar_animation": "アバターのアニメーションを無効化する", "disable_emoji_animation": "絵文字のアニメーションを無効化する", "using_default_browser": "既定のブラウザでリンクを開く", - "open_links_in_mastodon": "Open links in Mastodon" + "open_links_in_mastodon": "Mastodonでリンクを開く" }, "boring_zone": { "title": "アプリについて", From 9b86f910ba8161b7a4090a07f88b090d467b75a2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 04:43:53 +0200 Subject: [PATCH 034/102] New translations app.json (Japanese) --- Localization/StringsConvertor/input/ja_JP/app.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ja_JP/app.json b/Localization/StringsConvertor/input/ja_JP/app.json index e9a2f5ef..eff801c5 100644 --- a/Localization/StringsConvertor/input/ja_JP/app.json +++ b/Localization/StringsConvertor/input/ja_JP/app.json @@ -131,7 +131,7 @@ "content_warning": "コンテンツ警告", "sensitive_content": "Sensitive Content", "media_content_warning": "どこかをタップして表示", - "tap_to_reveal": "Tap to reveal", + "tap_to_reveal": "タップして表示", "poll": { "vote": "投票", "closed": "クローズド" @@ -144,8 +144,8 @@ "unfavorite": "お気に入り登録を取り消す", "menu": "メニュー", "hide": "非表示", - "show_image": "Show image", - "show_gif": "Show GIF", + "show_image": "画像を表示", + "show_gif": "GIFを表示", "show_video_player": "Show video player", "tap_then_hold_to_show_menu": "Tap then hold to show menu" }, From cc31ac0b625cd41b21033266c770d16566a3fdf0 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 06:05:14 +0200 Subject: [PATCH 035/102] New translations app.json (Galician) --- .../StringsConvertor/input/gl_ES/app.json | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/app.json b/Localization/StringsConvertor/input/gl_ES/app.json index ca1d824d..12881f0b 100644 --- a/Localization/StringsConvertor/input/gl_ES/app.json +++ b/Localization/StringsConvertor/input/gl_ES/app.json @@ -499,90 +499,90 @@ "hashtags": "Cancelos", "news": "Novas", "community": "Comunidade", - "for_you": "For You" + "for_you": "Para ti" }, - "intro": "These are the posts gaining traction in your corner of Mastodon." + "intro": "Estas son as publicacións en voga no teu recuncho de Mastodon." }, "favorite": { - "title": "Your Favorites" + "title": "Publicacións Favoritas" }, "notification": { "title": { - "Everything": "Everything", - "Mentions": "Mentions" + "Everything": "Todo", + "Mentions": "Mencións" }, "notification_description": { - "followed_you": "followed you", - "favorited_your_post": "favorited your post", - "reblogged_your_post": "reblogged your post", - "mentioned_you": "mentioned you", - "request_to_follow_you": "request to follow you", - "poll_has_ended": "poll has ended" + "followed_you": "séguete", + "favorited_your_post": "marcou a túa publicación como favorita", + "reblogged_your_post": "compartiu a túa publicación", + "mentioned_you": "mencionoute", + "request_to_follow_you": "solicitou seguirte", + "poll_has_ended": "a enquisa rematou" }, "keyobard": { - "show_everything": "Show Everything", - "show_mentions": "Show Mentions" + "show_everything": "Mostrar Todo", + "show_mentions": "Mostrar mencións" } }, "thread": { - "back_title": "Post", - "title": "Post from %s" + "back_title": "Publicación", + "title": "Publicación de %s" }, "settings": { - "title": "Settings", + "title": "Axustes", "section": { "appearance": { - "title": "Appearance", - "automatic": "Automatic", - "light": "Always Light", - "dark": "Always Dark" + "title": "Aparencia", + "automatic": "Automático", + "light": "Sempre claro", + "dark": "Sempre escuro" }, "look_and_feel": { - "title": "Look and Feel", - "use_system": "Use System", - "really_dark": "Really Dark", - "sorta_dark": "Sorta Dark", - "light": "Light" + "title": "Aparencia", + "use_system": "Seguir o sistema", + "really_dark": "Realmente escuro", + "sorta_dark": "Algo escuro", + "light": "Claro" }, "notifications": { - "title": "Notifications", - "favorites": "Favorites my post", - "follows": "Follows me", - "boosts": "Reblogs my post", - "mentions": "Mentions me", + "title": "Notificacións", + "favorites": "Favorece a miña publicación", + "follows": "Me segue", + "boosts": "Promove a miña publicación", + "mentions": "Me menciona", "trigger": { - "anyone": "anyone", - "follower": "a follower", - "follow": "anyone I follow", - "noone": "no one", - "title": "Notify me when" + "anyone": "calquera", + "follower": "unha seguidora", + "follow": "alguén a quen sigo", + "noone": "ninguén", + "title": "Avisarme cando" } }, "preference": { - "title": "Preferences", - "true_black_dark_mode": "True black dark mode", - "disable_avatar_animation": "Disable animated avatars", - "disable_emoji_animation": "Disable animated emojis", - "using_default_browser": "Use default browser to open links", - "open_links_in_mastodon": "Open links in Mastodon" + "title": "Preferencias", + "true_black_dark_mode": "Modo negro verdadeiro", + "disable_avatar_animation": "Desactivar avatares animados", + "disable_emoji_animation": "Desactivar emojis animados", + "using_default_browser": "Usar navegador por defecto para as ligazóns", + "open_links_in_mastodon": "Abrir ligazóns en Mastodon" }, "boring_zone": { - "title": "The Boring Zone", - "account_settings": "Account Settings", - "terms": "Terms of Service", - "privacy": "Privacy Policy" + "title": "A zona aburrida", + "account_settings": "Axustes da conta", + "terms": "Termos do Servizo", + "privacy": "Política de Privacidade" }, "spicy_zone": { - "title": "The Spicy Zone", - "clear": "Clear Media Cache", - "signout": "Sign Out" + "title": "A zona picante", + "clear": "Limpar caché multimedia", + "signout": "Pechar sesión" } }, "footer": { - "mastodon_description": "Mastodon is open source software. You can report issues on GitHub at %s (%s)" + "mastodon_description": "Mastodon é software de código aberto. Podes informar de fallos en GitHub en %s (%s)" }, "keyboard": { - "close_settings_window": "Close Settings Window" + "close_settings_window": "Pechar ventá de axustes" } }, "report": { From b73d3479d7a0c3cb397b9411cc032203e3cb3c57 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 06:05:15 +0200 Subject: [PATCH 036/102] New translations Intents.strings (Galician) --- .../StringsConvertor/Intents/input/gl_ES/Intents.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings b/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings index 6877490b..f2c1bd52 100644 --- a/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings @@ -22,7 +22,7 @@ "ZbSjzC" = "Visibility"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Visibilidade da publicación"; "apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; From 62c5e7e159c9f8a1e6f0724c576dd53625f36d43 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 07:42:50 +0200 Subject: [PATCH 037/102] New translations app.json (Arabic) --- Localization/StringsConvertor/input/ar_SA/app.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Localization/StringsConvertor/input/ar_SA/app.json b/Localization/StringsConvertor/input/ar_SA/app.json index 4b28b011..19174618 100644 --- a/Localization/StringsConvertor/input/ar_SA/app.json +++ b/Localization/StringsConvertor/input/ar_SA/app.json @@ -71,7 +71,7 @@ "cancel": "إلغاء", "discard": "تجاهُل", "try_again": "المُحاولة مرة أُخرى", - "take_photo": "التقاط صورة", + "take_photo": "اِلتِقاطُ صُورَة", "save_photo": "حفظ الصورة", "copy_photo": "نسخ الصورة", "sign_in": "تسجيل الدخول", @@ -355,11 +355,11 @@ "new_reply": "رَدٌّ جديد" }, "media_selection": { - "camera": "إلتقاط صورة", - "photo_library": "مكتبة الصور", - "browse": "تصفح" + "camera": "اِلتِقاطُ صُورَة", + "photo_library": "مَكتَبَةُ الصُّوَر", + "browse": "تَصَفَّح" }, - "content_input_placeholder": "أخبِرنا بِما يَجُولُ فِي ذِهنَك", + "content_input_placeholder": "عَبِّر عَمَّ يَجُولُ فِي ذِهنِك", "compose_action": "نَشر", "replying_to_user": "رَدًا على %s", "attachment": { From 504629d87c2734dc38e965ac6a12c68f950d4bcf Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 16:49:34 +0200 Subject: [PATCH 038/102] New translations Localizable.stringsdict (Welsh) --- .../StringsConvertor/input/cy_GB/Localizable.stringsdict | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict b/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict index e0f1e0f2..c6c92680 100644 --- a/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict @@ -85,17 +85,17 @@ NSStringFormatValueTypeKey ld zero - posts + post one post two - posts + postiau few posts many posts other - posts + postiau plural.count.post From 73c078a6a2571c8d9045201ff7af0b39729148ce Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 17:52:07 +0200 Subject: [PATCH 039/102] New translations app.json (Welsh) --- Localization/StringsConvertor/input/cy_GB/app.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Localization/StringsConvertor/input/cy_GB/app.json b/Localization/StringsConvertor/input/cy_GB/app.json index 50512250..4d26232c 100644 --- a/Localization/StringsConvertor/input/cy_GB/app.json +++ b/Localization/StringsConvertor/input/cy_GB/app.json @@ -138,7 +138,7 @@ }, "actions": { "reply": "Reply", - "reblog": "Reblog", + "reblog": "Hybwch", "unreblog": "Undo reblog", "favorite": "Favorite", "unfavorite": "Unfavorite", @@ -411,7 +411,7 @@ }, "profile": { "dashboard": { - "posts": "posts", + "posts": "postiadau", "following": "following", "followers": "followers" }, @@ -423,9 +423,9 @@ } }, "segmented_control": { - "posts": "Posts", + "posts": "Postiadau", "replies": "Replies", - "posts_and_replies": "Posts and Replies", + "posts_and_replies": "Postiadau ac Atebion", "media": "Media", "about": "About" }, @@ -484,7 +484,7 @@ "all": "All", "people": "People", "hashtags": "Hashtags", - "posts": "Posts" + "posts": "Postiadau" }, "empty_state": { "no_results": "No results" @@ -495,7 +495,7 @@ }, "discovery": { "tabs": { - "posts": "Posts", + "posts": "Postiadau", "hashtags": "Hashtags", "news": "News", "community": "Community", From 56ae6f9faaaac7535c10b84a5d735a3795e50385 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 17:52:08 +0200 Subject: [PATCH 040/102] New translations ios-infoPlist.json (Welsh) --- Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json b/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json index c6db73de..26ba1d81 100644 --- a/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json +++ b/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json @@ -2,5 +2,5 @@ "NSCameraUsageDescription": "Used to take photo for post status", "NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library", "NewPostShortcutItemTitle": "New Post", - "SearchShortcutItemTitle": "Search" + "SearchShortcutItemTitle": "Chwilio" } From 5a7e70ce1cfe0ac79f6807e8e2d2c13f1f6f00d4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 19:53:48 +0200 Subject: [PATCH 041/102] New translations ios-infoPlist.json (Welsh) --- Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json b/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json index 26ba1d81..ee0c5bfe 100644 --- a/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json +++ b/Localization/StringsConvertor/input/cy_GB/ios-infoPlist.json @@ -1,6 +1,6 @@ { "NSCameraUsageDescription": "Used to take photo for post status", "NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library", - "NewPostShortcutItemTitle": "New Post", + "NewPostShortcutItemTitle": "Post Newydd", "SearchShortcutItemTitle": "Chwilio" } From 3c3efba45f3c5aa8f1a62370a49c7808619082ce Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 4 May 2022 20:57:24 +0200 Subject: [PATCH 042/102] New translations Localizable.stringsdict (Welsh) --- .../StringsConvertor/input/cy_GB/Localizable.stringsdict | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict b/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict index c6c92680..94759d78 100644 --- a/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict @@ -47,7 +47,7 @@ many %ld characters other - %ld characters + %ld nodau a11y.plural.count.input_limit_remains From 1ef2e1122443b23e566c4049d044fb9c6c57fee8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 5 May 2022 19:30:33 +0200 Subject: [PATCH 043/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 2f960c77..29086122 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -221,7 +221,7 @@ "academia": "วิชาการ", "activism": "กิจกรรมเพื่อการเปลี่ยนแปลง", "food": "อาหาร", - "furry": "สรรพสัตว์", + "furry": "สัตว์ขนยาว", "games": "เกม", "general": "ทั่วไป", "journalism": "การเขียนข่าว", From 045e0ddc1e9a549aa357b2ba41cbe42584bba637 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 15:08:28 +0200 Subject: [PATCH 044/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 29086122..e19d7d5c 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -224,7 +224,7 @@ "furry": "สัตว์ขนยาว", "games": "เกม", "general": "ทั่วไป", - "journalism": "การเขียนข่าว", + "journalism": "วารสารศาสตร์", "lgbt": "lgbt", "regional": "ภูมิภาค", "art": "ศิลปะ", From cfbf06b7bcd4910fb41043bb6885a1e78c1e877b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 16:03:42 +0200 Subject: [PATCH 045/102] New translations app.json (Thai) --- Localization/StringsConvertor/input/th_TH/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index e19d7d5c..93d7154b 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -218,7 +218,7 @@ "category": { "all": "ทั้งหมด", "all_accessiblity_description": "หมวดหมู่: ทั้งหมด", - "academia": "วิชาการ", + "academia": "สถาบันการศึกษา", "activism": "กิจกรรมเพื่อการเปลี่ยนแปลง", "food": "อาหาร", "furry": "สัตว์ขนยาว", From 5ad8ccd57acf880bf192801461a33ef004ff5ea4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 17:16:05 +0200 Subject: [PATCH 046/102] New translations app.json (Galician) --- Localization/StringsConvertor/input/gl_ES/app.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/app.json b/Localization/StringsConvertor/input/gl_ES/app.json index 12881f0b..16da9abe 100644 --- a/Localization/StringsConvertor/input/gl_ES/app.json +++ b/Localization/StringsConvertor/input/gl_ES/app.json @@ -606,14 +606,14 @@ } }, "account_list": { - "tab_bar_hint": "Current selected profile: %s. Double tap then hold to show account switcher", - "dismiss_account_switcher": "Dismiss Account Switcher", - "add_account": "Add Account" + "tab_bar_hint": "Perfil seleccionado: %s. Dobre toque e manter para mostrar o intercambiador de contas", + "dismiss_account_switcher": "Desbotar intercambiador de contas", + "add_account": "Engadir conta" }, "wizard": { - "new_in_mastodon": "New in Mastodon", - "multiple_account_switch_intro_description": "Switch between multiple accounts by holding the profile button.", - "accessibility_hint": "Double tap to dismiss this wizard" + "new_in_mastodon": "Novidade en Mastodon", + "multiple_account_switch_intro_description": "Cambia dunha conta a outra mantendo preso o botón do perfil.", + "accessibility_hint": "Dobre toque para desbotar este asistente" } } } \ No newline at end of file From 94b1e89030c15417562305278277c91c38468189 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 17:16:06 +0200 Subject: [PATCH 047/102] New translations ios-infoPlist.json (Galician) --- .../StringsConvertor/input/gl_ES/ios-infoPlist.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/ios-infoPlist.json b/Localization/StringsConvertor/input/gl_ES/ios-infoPlist.json index c6db73de..e3ec3fb7 100644 --- a/Localization/StringsConvertor/input/gl_ES/ios-infoPlist.json +++ b/Localization/StringsConvertor/input/gl_ES/ios-infoPlist.json @@ -1,6 +1,6 @@ { - "NSCameraUsageDescription": "Used to take photo for post status", - "NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library", - "NewPostShortcutItemTitle": "New Post", - "SearchShortcutItemTitle": "Search" + "NSCameraUsageDescription": "Utilizado para facer foto e publicar estado", + "NSPhotoLibraryAddUsageDescription": "Utilizado para gardar a foto na Biblioteca", + "NewPostShortcutItemTitle": "Nova publicación", + "SearchShortcutItemTitle": "Buscar" } From 0fa25dcfce12e8ac4817e5be73700c8cd9925ee8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 17:16:07 +0200 Subject: [PATCH 048/102] New translations Localizable.stringsdict (Galician) --- .../input/gl_ES/Localizable.stringsdict | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict b/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict index 503ff9db..e2fb1df9 100644 --- a/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 unread notification + 1 notificación non lida other - %ld unread notification + %ld notificacións non lidas a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + O límite supera %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -29,15 +29,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + O límite de entrada mantense en %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -45,9 +45,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - post + publicación other - posts + publicacións plural.count.post @@ -77,9 +77,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 publicación other - %ld posts + %ld publicacións plural.count.favorite @@ -93,9 +93,9 @@ NSStringFormatValueTypeKey ld one - 1 favorite + 1 favorito other - %ld favorites + %ld favoritos plural.count.reblog @@ -109,9 +109,9 @@ NSStringFormatValueTypeKey ld one - 1 reblog + 1 promoción other - %ld reblogs + %ld promocións plural.count.reply @@ -125,9 +125,9 @@ NSStringFormatValueTypeKey ld one - 1 reply + 1 resposta other - %ld replies + %ld respostas plural.count.vote @@ -141,9 +141,9 @@ NSStringFormatValueTypeKey ld one - 1 vote + 1 voto other - %ld votes + %ld votos plural.count.voter From edee7fc91742d69da37bf8a75c0b0597c9c3a2a4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 18:11:08 +0200 Subject: [PATCH 049/102] New translations Localizable.stringsdict (Galician) --- .../input/gl_ES/Localizable.stringsdict | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict b/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict index e2fb1df9..a67c938a 100644 --- a/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/gl_ES/Localizable.stringsdict @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 voter + 1 votante other - %ld voters + %ld votantes plural.people_talking @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 people talking + 1 persoa comentando other - %ld people talking + %ld persoas comentando plural.count.following @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 following + 1 seguimento other - %ld following + %ld seguimentos plural.count.follower @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 seguidora other - %ld followers + %ld seguidoras date.year.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + Queda 1 ano other - %ld years left + Quedan %ld anos date.month.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + Queda 1 mes other - %ld months left + Quedan %ld meses date.day.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + Queda 1 día other - %ld days left + Quedan %ld días date.hour.left @@ -269,9 +269,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + Queda 1 hora other - %ld hours left + Quedan %ld horas date.minute.left @@ -285,9 +285,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + Queda 1 minuto other - %ld minutes left + Quedan %ld minutos date.second.left @@ -301,9 +301,9 @@ NSStringFormatValueTypeKey ld one - 1 second left + Queda 1 segundo other - %ld seconds left + Quedan %ld segundos date.year.ago.abbr @@ -317,9 +317,9 @@ NSStringFormatValueTypeKey ld one - 1y ago + hai 1 ano other - %ldy ago + hai %ld anos date.month.ago.abbr @@ -333,9 +333,9 @@ NSStringFormatValueTypeKey ld one - 1M ago + hai 1 mes other - %ldM ago + hai %ld meses date.day.ago.abbr @@ -349,9 +349,9 @@ NSStringFormatValueTypeKey ld one - 1d ago + hai 1 día other - %ldd ago + hai %ld días date.hour.ago.abbr @@ -365,9 +365,9 @@ NSStringFormatValueTypeKey ld one - 1h ago + fai 1 hora other - %ldh ago + fai %ld horas date.minute.ago.abbr @@ -381,9 +381,9 @@ NSStringFormatValueTypeKey ld one - 1m ago + fai 1 minuto other - %ldm ago + fai %ld minutos date.second.ago.abbr @@ -397,9 +397,9 @@ NSStringFormatValueTypeKey ld one - 1s ago + fai 1 seg. other - %lds ago + fai %ld seg. From ac3903d62cefe5f58e8324d39803b43c227aee60 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 18:11:09 +0200 Subject: [PATCH 050/102] New translations Intents.strings (Galician) --- .../Intents/input/gl_ES/Intents.strings | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings b/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings index f2c1bd52..2083cc70 100644 --- a/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/gl_ES/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Publicar en Mastodon"; -"751xkl" = "Text Content"; +"751xkl" = "Texto a incluír"; -"CsR7G2" = "Post on Mastodon"; +"CsR7G2" = "Publicar en Mastodon"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "Cal é o contido a publicar?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Fallou a publicación"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Razón do fallo"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Enviar Publicación con texto"; -"RxSqsb" = "Post"; +"RxSqsb" = "Publicación"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Publicar ${content} en Mastodon"; -"ZKJSNu" = "Post"; +"ZKJSNu" = "Publicación"; "ZS1XaK" = "${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Visibilidade"; "Zo4jgJ" = "Visibilidade da publicación"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "Hai ${count} opcións que coinciden con ‘Público’."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "Hai ${count} opcións que coinciden con 'Só seguidoras’."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, Público"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, Só seguidoras"; -"dUyuGg" = "Post on Mastodon"; +"dUyuGg" = "Publicar en Mastodon"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Público"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Só seguidoras"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Fallou a publicación. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "Publicación correcta."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Só para confirmar, querías ’Público'?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Só para confirmar, querías ’Só para seguidoras'?"; "rM6dvp" = "URL"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "Publicación correcta. "; From d72f67f1ea49b9ec319c0380d185fce60b3918fb Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 18:11:10 +0200 Subject: [PATCH 051/102] New translations Intents.stringsdict (Galician) --- .../Intents/input/gl_ES/Intents.stringsdict | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Localization/StringsConvertor/Intents/input/gl_ES/Intents.stringsdict b/Localization/StringsConvertor/Intents/input/gl_ES/Intents.stringsdict index 18422c77..6e3a897f 100644 --- a/Localization/StringsConvertor/Intents/input/gl_ES/Intents.stringsdict +++ b/Localization/StringsConvertor/Intents/input/gl_ES/Intents.stringsdict @@ -5,7 +5,7 @@ There are ${count} options matching ‘${content}’. - 2 NSStringLocalizedFormatKey - There are %#@count_option@ matching ‘${content}’. + Hai %#@count_option@ coincidencias con '${content}'. count_option NSStringFormatSpecTypeKey @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey %ld one - 1 option + 1 opción other - %ld options + %ld opcións There are ${count} options matching ‘${visibility}’. NSStringLocalizedFormatKey - There are %#@count_option@ matching ‘${visibility}’. + Hai %#@count_option@ coincidentes con '${visibility}'. count_option NSStringFormatSpecTypeKey @@ -29,9 +29,9 @@ NSStringFormatValueTypeKey %ld one - 1 option + 1 opción other - %ld options + %ld opcións From 03dc820771284b86909af229c61e5d65a5518e55 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 May 2022 21:06:42 +0200 Subject: [PATCH 052/102] New translations app.json (Kurmanji (Kurdish)) --- Localization/StringsConvertor/input/kmr_TR/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/StringsConvertor/input/kmr_TR/app.json b/Localization/StringsConvertor/input/kmr_TR/app.json index 52dde00a..efca992f 100644 --- a/Localization/StringsConvertor/input/kmr_TR/app.json +++ b/Localization/StringsConvertor/input/kmr_TR/app.json @@ -240,7 +240,7 @@ "category": "BEŞ" }, "input": { - "placeholder": "Rajekarekî bibîne an jî beşdarî ya xwe bibe..." + "placeholder": "Li rajekaran bigere" }, "empty_state": { "finding_servers": "Peydakirina rajekarên berdest...", From 2ef6345d836c7d86d8485df3f521299a822a327f Mon Sep 17 00:00:00 2001 From: CMK Date: Tue, 10 May 2022 18:34:39 +0800 Subject: [PATCH 053/102] feat: add violates server rules report path --- Mastodon.xcodeproj/project.pbxproj | 78 ++++++-- .../xcschemes/xcschememanagement.plist | 6 +- Mastodon/Coordinator/SceneCoordinator.swift | 12 +- .../MastodonConfirmEmailViewController.swift | 5 + .../Register/MastodonRegisterView.swift | 3 - .../Report/Report/ReportViewController.swift | 165 ++++++++++++++++ .../Scene/Report/Report/ReportViewModel.swift | 176 ++++++++++++++++++ .../ReportReason/ReportReasonView.swift | 113 +++++++++++ .../ReportReasonViewController.swift | 116 ++++++++++++ .../ReportReason/ReportReasonViewModel.swift | 83 +++++++++ .../ReportResultViewController.swift | 16 ++ .../ReportServerRulesView.swift | 116 ++++++++++++ .../ReportServerRulesViewController.swift | 117 ++++++++++++ .../ReportServerRulesViewModel.swift | 35 ++++ ...swift => ReportStatusViewController.swift} | 76 ++++---- ...t => ReportStatusViewModel+Diffable.swift} | 6 +- ...wift => ReportStatusViewModel+State.swift} | 20 +- ...odel.swift => ReportStatusViewModel.swift} | 9 +- .../ReportSupplementaryViewController.swift | 65 +++---- ...eportSupplementaryViewModel+Diffable.swift | 4 +- .../ReportSupplementaryViewModel.swift | 50 +---- .../Cell/ReportCommentTableViewCell.swift | 17 +- .../ReportViewControllerAppearance.swift | 2 +- ...veStatusBarStyleNavigationController.swift | 8 +- 24 files changed, 1129 insertions(+), 169 deletions(-) create mode 100644 Mastodon/Scene/Report/Report/ReportViewController.swift create mode 100644 Mastodon/Scene/Report/Report/ReportViewModel.swift create mode 100644 Mastodon/Scene/Report/ReportReason/ReportReasonView.swift create mode 100644 Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift create mode 100644 Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift create mode 100644 Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift create mode 100644 Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewController.swift create mode 100644 Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift rename Mastodon/Scene/Report/ReportStatus/{ReportViewController.swift => ReportStatusViewController.swift} (75%) rename Mastodon/Scene/Report/ReportStatus/{ReportViewModel+Diffable.swift => ReportStatusViewModel+Diffable.swift} (93%) rename Mastodon/Scene/Report/ReportStatus/{ReportViewModel+State.swift => ReportStatusViewModel+State.swift} (92%) rename Mastodon/Scene/Report/ReportStatus/{ReportViewModel.swift => ReportStatusViewModel.swift} (91%) diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index d5f5cbd7..400e4d73 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -87,7 +87,7 @@ 2DF123A725C3B0210020F248 /* ActiveLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DF123A625C3B0210020F248 /* ActiveLabel.swift */; }; 2DF75BA725D10E1000694EC8 /* APIService+Favorite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DF75BA625D10E1000694EC8 /* APIService+Favorite.swift */; }; 5B24BBDA262DB14800A9381B /* ReportViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD7262DB14800A9381B /* ReportViewModel.swift */; }; - 5B24BBDB262DB14800A9381B /* ReportViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD8262DB14800A9381B /* ReportViewModel+Diffable.swift */; }; + 5B24BBDB262DB14800A9381B /* ReportStatusViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD8262DB14800A9381B /* ReportStatusViewModel+Diffable.swift */; }; 5B24BBE2262DB19100A9381B /* APIService+Report.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBE1262DB19100A9381B /* APIService+Report.swift */; }; 5B90C45E262599800002E742 /* SettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B90C456262599800002E742 /* SettingsViewModel.swift */; }; 5B90C45F262599800002E742 /* SettingsToggleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B90C459262599800002E742 /* SettingsToggleTableViewCell.swift */; }; @@ -440,7 +440,7 @@ DB98337125C9443200AD9700 /* APIService+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98337025C9443200AD9700 /* APIService+Authentication.swift */; }; DB98337F25C9452D00AD9700 /* APIService+APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98337E25C9452D00AD9700 /* APIService+APIError.swift */; }; DB98339C25C96DE600AD9700 /* APIService+Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98339B25C96DE600AD9700 /* APIService+Account.swift */; }; - DB98EB4727B0DFAA0082E365 /* ReportViewModel+State.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB4627B0DFAA0082E365 /* ReportViewModel+State.swift */; }; + DB98EB4727B0DFAA0082E365 /* ReportStatusViewModel+State.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB4627B0DFAA0082E365 /* ReportStatusViewModel+State.swift */; }; DB98EB4927B0F0CD0082E365 /* ReportStatusTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB4827B0F0CD0082E365 /* ReportStatusTableViewCell.swift */; }; DB98EB4C27B0F2BC0082E365 /* ReportStatusTableViewCell+ViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB4B27B0F2BC0082E365 /* ReportStatusTableViewCell+ViewModel.swift */; }; DB98EB5327B0F9890082E365 /* ReportHeadlineTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB5227B0F9890082E365 /* ReportHeadlineTableViewCell.swift */; }; @@ -566,6 +566,14 @@ DBE3CE07261D6A0E00430CC6 /* FavoriteViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE3CE06261D6A0E00430CC6 /* FavoriteViewModel+Diffable.swift */; }; DBE54AC62636C89F004E7C0B /* NotificationPreference.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE54AC52636C89F004E7C0B /* NotificationPreference.swift */; }; DBE54ACC2636C8FD004E7C0B /* NotificationPreference.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE54AC52636C89F004E7C0B /* NotificationPreference.swift */; }; + DBEFCD71282A12B200C0ABEA /* ReportReasonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD70282A12B200C0ABEA /* ReportReasonViewController.swift */; }; + DBEFCD74282A130400C0ABEA /* ReportReasonViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD73282A130400C0ABEA /* ReportReasonViewModel.swift */; }; + DBEFCD76282A143F00C0ABEA /* ReportStatusViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD75282A143F00C0ABEA /* ReportStatusViewController.swift */; }; + DBEFCD79282A147000C0ABEA /* ReportStatusViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD78282A147000C0ABEA /* ReportStatusViewModel.swift */; }; + DBEFCD7B282A162400C0ABEA /* ReportReasonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD7A282A162400C0ABEA /* ReportReasonView.swift */; }; + DBEFCD7D282A2A3B00C0ABEA /* ReportServerRulesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD7C282A2A3B00C0ABEA /* ReportServerRulesViewController.swift */; }; + DBEFCD80282A2AA900C0ABEA /* ReportServerRulesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD7F282A2AA900C0ABEA /* ReportServerRulesViewModel.swift */; }; + DBEFCD82282A2AB100C0ABEA /* ReportServerRulesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBEFCD81282A2AB100C0ABEA /* ReportServerRulesView.swift */; }; DBF156DF2701B17600EC00B7 /* SidebarAddAccountCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF156DE2701B17600EC00B7 /* SidebarAddAccountCollectionViewCell.swift */; }; DBF156E22702DA6900EC00B7 /* UIStatusBarManager+HandleTapAction.m in Sources */ = {isa = PBXBuildFile; fileRef = DBF156E12702DA6900EC00B7 /* UIStatusBarManager+HandleTapAction.m */; }; DBF156E42702DB3F00EC00B7 /* HandleTapAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF156E32702DB3F00EC00B7 /* HandleTapAction.swift */; }; @@ -789,7 +797,7 @@ 459EA4F43058CAB47719E963 /* Pods-Mastodon-MastodonUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon-MastodonUITests.debug.xcconfig"; path = "Target Support Files/Pods-Mastodon-MastodonUITests/Pods-Mastodon-MastodonUITests.debug.xcconfig"; sourceTree = ""; }; 46DAB0EBDDFB678347CD96FF /* Pods-MastodonTests.asdk - release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MastodonTests.asdk - release.xcconfig"; path = "Target Support Files/Pods-MastodonTests/Pods-MastodonTests.asdk - release.xcconfig"; sourceTree = ""; }; 5B24BBD7262DB14800A9381B /* ReportViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportViewModel.swift; sourceTree = ""; }; - 5B24BBD8262DB14800A9381B /* ReportViewModel+Diffable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ReportViewModel+Diffable.swift"; sourceTree = ""; }; + 5B24BBD8262DB14800A9381B /* ReportStatusViewModel+Diffable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ReportStatusViewModel+Diffable.swift"; sourceTree = ""; }; 5B24BBE1262DB19100A9381B /* APIService+Report.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "APIService+Report.swift"; sourceTree = ""; }; 5B90C456262599800002E742 /* SettingsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewModel.swift; sourceTree = ""; }; 5B90C459262599800002E742 /* SettingsToggleTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsToggleTableViewCell.swift; sourceTree = ""; }; @@ -1199,7 +1207,7 @@ DB98337025C9443200AD9700 /* APIService+Authentication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Authentication.swift"; sourceTree = ""; }; DB98337E25C9452D00AD9700 /* APIService+APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "APIService+APIError.swift"; sourceTree = ""; }; DB98339B25C96DE600AD9700 /* APIService+Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Account.swift"; sourceTree = ""; }; - DB98EB4627B0DFAA0082E365 /* ReportViewModel+State.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportViewModel+State.swift"; sourceTree = ""; }; + DB98EB4627B0DFAA0082E365 /* ReportStatusViewModel+State.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportStatusViewModel+State.swift"; sourceTree = ""; }; DB98EB4827B0F0CD0082E365 /* ReportStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportStatusTableViewCell.swift; sourceTree = ""; }; DB98EB4B27B0F2BC0082E365 /* ReportStatusTableViewCell+ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportStatusTableViewCell+ViewModel.swift"; sourceTree = ""; }; DB98EB5227B0F9890082E365 /* ReportHeadlineTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportHeadlineTableViewCell.swift; sourceTree = ""; }; @@ -1329,6 +1337,14 @@ DBEB19E927E4F37B00B0E80E /* ku */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ku; path = ku.lproj/Intents.strings; sourceTree = ""; }; DBEB19EA27E4F37B00B0E80E /* ku */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ku; path = ku.lproj/InfoPlist.strings; sourceTree = ""; }; DBEB19EB27E4F37B00B0E80E /* ku */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ku; path = ku.lproj/Intents.stringsdict; sourceTree = ""; }; + DBEFCD70282A12B200C0ABEA /* ReportReasonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportReasonViewController.swift; sourceTree = ""; }; + DBEFCD73282A130400C0ABEA /* ReportReasonViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportReasonViewModel.swift; sourceTree = ""; }; + DBEFCD75282A143F00C0ABEA /* ReportStatusViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportStatusViewController.swift; sourceTree = ""; }; + DBEFCD78282A147000C0ABEA /* ReportStatusViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportStatusViewModel.swift; sourceTree = ""; }; + DBEFCD7A282A162400C0ABEA /* ReportReasonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportReasonView.swift; sourceTree = ""; }; + DBEFCD7C282A2A3B00C0ABEA /* ReportServerRulesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportServerRulesViewController.swift; sourceTree = ""; }; + DBEFCD7F282A2AA900C0ABEA /* ReportServerRulesViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportServerRulesViewModel.swift; sourceTree = ""; }; + DBEFCD81282A2AB100C0ABEA /* ReportServerRulesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportServerRulesView.swift; sourceTree = ""; }; DBF156DE2701B17600EC00B7 /* SidebarAddAccountCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarAddAccountCollectionViewCell.swift; sourceTree = ""; }; DBF156E02702DA6800EC00B7 /* Mastodon-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Mastodon-Bridging-Header.h"; sourceTree = ""; }; DBF156E12702DA6900EC00B7 /* UIStatusBarManager+HandleTapAction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIStatusBarManager+HandleTapAction.m"; sourceTree = ""; }; @@ -1842,6 +1858,9 @@ isa = PBXGroup; children = ( DB98EB5727B0FF1F0082E365 /* Share */, + DBEFCD77282A144D00C0ABEA /* Report */, + DBEFCD72282A12B900C0ABEA /* ReportReason */, + DBEFCD7E282A2A3D00C0ABEA /* ReportServerRules */, DB98EB4F27B0F9300082E365 /* ReportStatus */, DB98EB5A27B109900082E365 /* ReportSupplementary */, DB98EB6327B216490082E365 /* ReportResult */, @@ -2208,8 +2227,8 @@ DB427DD425BAA00100D1B89D /* Mastodon */ = { isa = PBXGroup; children = ( - DB427DE325BAA00100D1B89D /* Info.plist */, DB89BA1025C10FF5008580ED /* Mastodon.entitlements */, + DB427DE325BAA00100D1B89D /* Info.plist */, 2D76319C25C151DE00929FB9 /* Diffiable */, DB8AF52A25C13561002E6C99 /* State */, 2D61335525C1886800CAE157 /* Service */, @@ -2850,10 +2869,10 @@ DB98EB4F27B0F9300082E365 /* ReportStatus */ = { isa = PBXGroup; children = ( - 5BB04FD4262E7AFF0043BFF6 /* ReportViewController.swift */, - 5B24BBD7262DB14800A9381B /* ReportViewModel.swift */, - 5B24BBD8262DB14800A9381B /* ReportViewModel+Diffable.swift */, - DB98EB4627B0DFAA0082E365 /* ReportViewModel+State.swift */, + DBEFCD75282A143F00C0ABEA /* ReportStatusViewController.swift */, + DBEFCD78282A147000C0ABEA /* ReportStatusViewModel.swift */, + 5B24BBD8262DB14800A9381B /* ReportStatusViewModel+Diffable.swift */, + DB98EB4627B0DFAA0082E365 /* ReportStatusViewModel+State.swift */, ); path = ReportStatus; sourceTree = ""; @@ -3177,6 +3196,35 @@ path = Favorite; sourceTree = ""; }; + DBEFCD72282A12B900C0ABEA /* ReportReason */ = { + isa = PBXGroup; + children = ( + DBEFCD70282A12B200C0ABEA /* ReportReasonViewController.swift */, + DBEFCD73282A130400C0ABEA /* ReportReasonViewModel.swift */, + DBEFCD7A282A162400C0ABEA /* ReportReasonView.swift */, + ); + path = ReportReason; + sourceTree = ""; + }; + DBEFCD77282A144D00C0ABEA /* Report */ = { + isa = PBXGroup; + children = ( + 5BB04FD4262E7AFF0043BFF6 /* ReportViewController.swift */, + 5B24BBD7262DB14800A9381B /* ReportViewModel.swift */, + ); + path = Report; + sourceTree = ""; + }; + DBEFCD7E282A2A3D00C0ABEA /* ReportServerRules */ = { + isa = PBXGroup; + children = ( + DBEFCD7C282A2A3B00C0ABEA /* ReportServerRulesViewController.swift */, + DBEFCD7F282A2AA900C0ABEA /* ReportServerRulesViewModel.swift */, + DBEFCD81282A2AB100C0ABEA /* ReportServerRulesView.swift */, + ); + path = ReportServerRules; + sourceTree = ""; + }; DBF1D24F269DAF6100C1C08A /* SearchDetail */ = { isa = PBXGroup; children = ( @@ -3873,6 +3921,7 @@ 2D364F7225E66D7500204FDC /* MastodonResendEmailViewController.swift in Sources */, DB68A06325E905E000CFDF14 /* UIApplication.swift in Sources */, DB02CDAB26256A9500D0A2AF /* ThreadReplyLoaderTableViewCell.swift in Sources */, + DBEFCD80282A2AA900C0ABEA /* ReportServerRulesViewModel.swift in Sources */, DB0617FF27855D6C0030EE79 /* MastodonServerRulesViewModel+Diffable.swift in Sources */, DBB5255E2611F07A002F1F29 /* ProfileViewModel.swift in Sources */, DB0FCB982797F6BF006C02E2 /* UserTableViewCell+ViewModel.swift in Sources */, @@ -3900,6 +3949,7 @@ DB63F76F279A7D1100455B82 /* NotificationTableViewCell.swift in Sources */, DB297B1B2679FAE200704C90 /* PlaceholderImageCacheService.swift in Sources */, DB0FCB8C2796BF8D006C02E2 /* SearchViewModel+Diffable.swift in Sources */, + DBEFCD76282A143F00C0ABEA /* ReportStatusViewController.swift in Sources */, 2D8FCA082637EABB00137F46 /* APIService+FollowRequest.swift in Sources */, DBDFF1952805561700557A48 /* DiscoveryPostsViewModel+Diffable.swift in Sources */, DB03A795272A981400EE37C5 /* ContentSplitViewController.swift in Sources */, @@ -4030,7 +4080,7 @@ DB63F75C279956D000455B82 /* Persistence+Tag.swift in Sources */, 2D84350525FF858100EECE90 /* UIScrollView.swift in Sources */, DB49A61F25FF32AA00B98345 /* EmojiService+CustomEmojiViewModel.swift in Sources */, - 5B24BBDB262DB14800A9381B /* ReportViewModel+Diffable.swift in Sources */, + 5B24BBDB262DB14800A9381B /* ReportStatusViewModel+Diffable.swift in Sources */, DB4F0968269ED8AD00D62E92 /* SearchHistoryTableHeaderView.swift in Sources */, 0FB3D2FE25E4CB6400AAD544 /* OnboardingHeadlineTableViewCell.swift in Sources */, 5DA732CC2629CEF500A92342 /* UIView+Remove.swift in Sources */, @@ -4042,6 +4092,7 @@ DBBF1DC92652538500E5B703 /* AutoCompleteSection.swift in Sources */, DB3E6FE72806A7A200B035AE /* DiscoveryItem.swift in Sources */, DB8AF55D25C138B7002E6C99 /* UIViewController.swift in Sources */, + DBEFCD79282A147000C0ABEA /* ReportStatusViewModel.swift in Sources */, DB7F48452620241000796008 /* ProfileHeaderViewModel.swift in Sources */, DB647C5926F1EA2700F7F82C /* WizardPreference.swift in Sources */, DB0A322E280EE9FD001729D2 /* DiscoveryIntroBannerView.swift in Sources */, @@ -4092,7 +4143,7 @@ DBA94434265CBB5300C537E1 /* ProfileFieldSection.swift in Sources */, DB336F28278D6EC70031E64B /* MastodonFieldContainer.swift in Sources */, DBF156E42702DB3F00EC00B7 /* HandleTapAction.swift in Sources */, - DB98EB4727B0DFAA0082E365 /* ReportViewModel+State.swift in Sources */, + DB98EB4727B0DFAA0082E365 /* ReportStatusViewModel+State.swift in Sources */, 2D5981A125E4A593000FB903 /* MastodonConfirmEmailViewModel.swift in Sources */, DB6B74F6272FBCDB00C70B6E /* FollowerListViewModel+State.swift in Sources */, DB87D4452609BE0500D12C0D /* ComposeStatusPollOptionCollectionViewCell.swift in Sources */, @@ -4150,6 +4201,7 @@ DB6D9F8426358EEC008423CD /* SettingsItem.swift in Sources */, 2D364F7825E66D8300204FDC /* MastodonResendEmailViewModel.swift in Sources */, DBA465932696B495002B41DB /* APIService+WebFinger.swift in Sources */, + DBEFCD7B282A162400C0ABEA /* ReportReasonView.swift in Sources */, DB8AF54525C13647002E6C99 /* NeedsDependency.swift in Sources */, DB63F77B279ACAE500455B82 /* DataSourceFacade+Favorite.swift in Sources */, DB9D6BF825E4F5690051B173 /* NotificationViewController.swift in Sources */, @@ -4164,6 +4216,7 @@ DB4F097526A037F500D62E92 /* SearchHistoryViewModel.swift in Sources */, DB3EA8E9281B7A3700598866 /* DiscoveryCommunityViewModel.swift in Sources */, DB6180F826391D660018D199 /* MediaPreviewingViewController.swift in Sources */, + DBEFCD71282A12B200C0ABEA /* ReportReasonViewController.swift in Sources */, DB0140CF25C42AEE00F9F3CF /* OSLog.swift in Sources */, DB98EB5627B0FF1B0082E365 /* ReportViewControllerAppearance.swift in Sources */, DB938F1526241FDF00E5B6C1 /* APIService+Thread.swift in Sources */, @@ -4200,6 +4253,7 @@ 2D7867192625B77500211898 /* NotificationItem.swift in Sources */, DB45FAB625CA5485005A8AC7 /* UIAlertController.swift in Sources */, DBE0821525CD382600FD6BBD /* MastodonRegisterViewController.swift in Sources */, + DBEFCD74282A130400C0ABEA /* ReportReasonViewModel.swift in Sources */, 2D5A3D0325CF8742002347D6 /* ControlContainableScrollViews.swift in Sources */, DB36679D268AB91B0027D07F /* ComposeStatusAttachmentTableViewCell.swift in Sources */, DB98336B25C9420100AD9700 /* APIService+App.swift in Sources */, @@ -4287,6 +4341,7 @@ DB0617EB277EF3820030EE79 /* GradientBorderView.swift in Sources */, DB789A1225F9F2CC0071ACA0 /* ComposeViewModel.swift in Sources */, DB63F74B279914A000455B82 /* FollowingListViewController+DataSourceProvider.swift in Sources */, + DBEFCD7D282A2A3B00C0ABEA /* ReportServerRulesViewController.swift in Sources */, DBB525362611ECEB002F1F29 /* UserTimelineViewController.swift in Sources */, DB938F3326243D6200E5B6C1 /* TimelineTopLoaderTableViewCell.swift in Sources */, DB98EB4927B0F0CD0082E365 /* ReportStatusTableViewCell.swift in Sources */, @@ -4297,6 +4352,7 @@ DB98EB6527B216500082E365 /* ReportResultViewModel.swift in Sources */, DB4F096A269EDAD200D62E92 /* SearchResultViewModel+State.swift in Sources */, 5BB04FF5262F0E6D0043BFF6 /* ReportSection.swift in Sources */, + DBEFCD82282A2AB100C0ABEA /* ReportServerRulesView.swift in Sources */, DBA94436265CBB7400C537E1 /* ProfileFieldItem.swift in Sources */, DB023D2A27A0FE5C005AC798 /* DataSourceProvider+NotificationTableViewCellDelegate.swift in Sources */, DB98EB6027B10E150082E365 /* ReportCommentTableViewCell.swift in Sources */, diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index 07a847a0..7f54b901 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -109,7 +109,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 28 + 20 MastodonIntents.xcscheme_^#shared#^_ @@ -124,12 +124,12 @@ NotificationService.xcscheme_^#shared#^_ orderHint - 27 + 19 ShareActionExtension.xcscheme_^#shared#^_ orderHint - 26 + 21 SuppressBuildableAutocreation diff --git a/Mastodon/Coordinator/SceneCoordinator.swift b/Mastodon/Coordinator/SceneCoordinator.swift index 5e7fbf47..d149e63a 100644 --- a/Mastodon/Coordinator/SceneCoordinator.swift +++ b/Mastodon/Coordinator/SceneCoordinator.swift @@ -158,7 +158,7 @@ extension SceneCoordinator { case mastodonServerRules(viewModel: MastodonServerRulesViewModel) case mastodonConfirmEmail(viewModel: MastodonConfirmEmailViewModel) case mastodonResendEmail(viewModel: MastodonResendEmailViewModel) - case mastodonWebView(viewModel:WebViewModel) + case mastodonWebView(viewModel: WebViewModel) // search case searchDetail(viewModel: SearchDetailViewModel) @@ -184,6 +184,8 @@ extension SceneCoordinator { // report case report(viewModel: ReportViewModel) + case reportServerRules(viewModel: ReportServerRulesViewModel) + case reportStatus(viewModel: ReportStatusViewModel) case reportSupplementary(viewModel: ReportSupplementaryViewModel) case reportResult(viewModel: ReportResultViewModel) @@ -447,6 +449,14 @@ private extension SceneCoordinator { let _viewController = ReportViewController() _viewController.viewModel = viewModel viewController = _viewController + case .reportServerRules(let viewModel): + let _viewController = ReportServerRulesViewController() + _viewController.viewModel = viewModel + viewController = _viewController + case .reportStatus(let viewModel): + let _viewController = ReportStatusViewController() + _viewController.viewModel = viewModel + viewController = _viewController case .reportSupplementary(let viewModel): let _viewController = ReportSupplementaryViewController() _viewController.viewModel = viewModel diff --git a/Mastodon/Scene/Onboarding/ConfirmEmail/MastodonConfirmEmailViewController.swift b/Mastodon/Scene/Onboarding/ConfirmEmail/MastodonConfirmEmailViewController.swift index b1b2280d..cb7a96f8 100644 --- a/Mastodon/Scene/Onboarding/ConfirmEmail/MastodonConfirmEmailViewController.swift +++ b/Mastodon/Scene/Onboarding/ConfirmEmail/MastodonConfirmEmailViewController.swift @@ -229,6 +229,11 @@ extension MastodonConfirmEmailViewController { } } +// MARK: - PanPopableViewController +extension MastodonConfirmEmailViewController: PanPopableViewController { + var isPanPopable: Bool { false } +} + // MARK: - OnboardingViewControllerAppearance extension MastodonConfirmEmailViewController: OnboardingViewControllerAppearance { } diff --git a/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift b/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift index 1a47de22..2be7c61d 100644 --- a/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift +++ b/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift @@ -197,9 +197,6 @@ struct MastodonRegisterView: View { } } - - - } struct WidthKey: PreferenceKey { diff --git a/Mastodon/Scene/Report/Report/ReportViewController.swift b/Mastodon/Scene/Report/Report/ReportViewController.swift new file mode 100644 index 00000000..6d3f6da0 --- /dev/null +++ b/Mastodon/Scene/Report/Report/ReportViewController.swift @@ -0,0 +1,165 @@ +// +// ReportViewController.swift +// Mastodon +// +// Created by ihugo on 2021/4/20. +// + +import os.log +import UIKit +import Combine +import CoreDataStack +import MastodonAsset +import MastodonLocalization + +class ReportViewController: UIViewController, NeedsDependency, ReportViewControllerAppearance { + + let logger = Logger(subsystem: "ReportViewController", category: "ViewController") + + var disposeBag = Set() + private var observations = Set() + + weak var context: AppContext! { willSet { precondition(!isViewLoaded) } } + weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } } + + var viewModel: ReportViewModel! + + deinit { + os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function) + } + +} + +extension ReportViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + setupAppearance() + defer { setupNavigationBarBackgroundView() } + + viewModel.reportReasonViewModel.delegate = self + viewModel.reportServerRulesViewModel.delegate = self + viewModel.reportStatusViewModel.delegate = self + viewModel.reportSupplementaryViewModel.delegate = self + + let reportReasonViewController = ReportReasonViewController() + reportReasonViewController.context = context + reportReasonViewController.coordinator = coordinator + reportReasonViewController.viewModel = viewModel.reportReasonViewModel + + addChild(reportReasonViewController) + reportReasonViewController.view.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(reportReasonViewController.view) + reportReasonViewController.didMove(toParent: self) + NSLayoutConstraint.activate([ + reportReasonViewController.view.topAnchor.constraint(equalTo: view.topAnchor), + reportReasonViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), + reportReasonViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), + reportReasonViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor), + ]) + } + +} + +// MARK: - UIAdaptivePresentationControllerDelegate +extension ReportViewController: UIAdaptivePresentationControllerDelegate { + func presentationControllerShouldDismiss(_ presentationController: UIPresentationController) -> Bool { + return viewModel.isReportSuccess + } +} + +// MARK: - ReportReasonViewControllerDelegate +extension ReportViewController: ReportReasonViewControllerDelegate { + func reportReasonViewController(_ viewController: ReportReasonViewController, nextButtonPressed button: UIButton) { + guard let reason = viewController.viewModel.selectReason else { return } + switch reason { + case .violateRule: + coordinator.present( + scene: .reportServerRules(viewModel: viewModel.reportServerRulesViewModel), + from: self, + transition: .show + ) + default: + break + } + } +} + +// MARK: - ReportServerRulesViewControllerDelegate +extension ReportViewController: ReportServerRulesViewControllerDelegate { + func reportServerRulesViewController(_ viewController: ReportServerRulesViewController, nextButtonPressed button: UIButton) { + if viewController.viewModel.isDislike { + + } else if viewController.viewModel.selectRule != nil { + coordinator.present( + scene: .reportStatus(viewModel: viewModel.reportStatusViewModel), + from: self, + transition: .show + ) + } else { + assertionFailure() + } + } +} + +// MARK: - ReportStatusViewControllerDelegate +extension ReportViewController: ReportStatusViewControllerDelegate { + func reportStatusViewController(_ viewController: ReportStatusViewController, skipButtonDidPressed button: UIButton) { + coordinateToReportSupplementary() + } + + func reportStatusViewController(_ viewController: ReportStatusViewController, nextButtonDidPressed button: UIButton) { + coordinateToReportSupplementary() + } + + private func coordinateToReportSupplementary() { + coordinator.present( + scene: .reportSupplementary(viewModel: viewModel.reportSupplementaryViewModel), + from: self, + transition: .show + ) + } +} + +// MARK: - ReportSupplementaryViewControllerDelegate +extension ReportViewController: ReportSupplementaryViewControllerDelegate { + func reportSupplementaryViewController(_ viewController: ReportSupplementaryViewController, skipButtonDidPressed button: UIButton) { + report() + } + + func reportSupplementaryViewController(_ viewController: ReportSupplementaryViewController, nextButtonDidPressed button: UIButton) { + report() + } + + private func report() { + Task { @MainActor in + do { + let _ = try await viewModel.report() + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): report success") + + let reportResultViewModel = ReportResultViewModel( + context: context, + user: viewModel.user + ) + + coordinator.present( + scene: .reportResult(viewModel: reportResultViewModel), + from: self, + transition: .show + ) + + } catch { + let alertController = UIAlertController(for: error, title: nil, preferredStyle: .alert) + let okAction = UIAlertAction(title: L10n.Common.Controls.Actions.ok, style: .default, handler: nil) + alertController.addAction(okAction) + self.coordinator.present( + scene: .alertController(alertController: alertController), + from: nil, + transition: .alertController(animated: true, completion: nil) + ) + } + } // end Task + } + +} diff --git a/Mastodon/Scene/Report/Report/ReportViewModel.swift b/Mastodon/Scene/Report/Report/ReportViewModel.swift new file mode 100644 index 00000000..73bac19b --- /dev/null +++ b/Mastodon/Scene/Report/Report/ReportViewModel.swift @@ -0,0 +1,176 @@ +// +// ReportViewModel.swift +// Mastodon +// +// Created by ihugo on 2021/4/19. +// + +import Combine +import CoreData +import CoreDataStack +import Foundation +import GameplayKit +import MastodonSDK +import OrderedCollections +import os.log +import UIKit + +class ReportViewModel { + + var disposeBag = Set() + + let reportReasonViewModel: ReportReasonViewModel + let reportServerRulesViewModel: ReportServerRulesViewModel + let reportStatusViewModel: ReportStatusViewModel + let reportSupplementaryViewModel: ReportSupplementaryViewModel + + // input + let context: AppContext + let user: ManagedObjectRecord + let status: ManagedObjectRecord? + + // output + @Published var isReporting = false + @Published var isReportSuccess = false + + init( + context: AppContext, + user: ManagedObjectRecord, + status: ManagedObjectRecord? + ) { + self.context = context + self.user = user + self.status = status + self.reportReasonViewModel = ReportReasonViewModel(context: context) + self.reportServerRulesViewModel = ReportServerRulesViewModel(context: context) + self.reportStatusViewModel = ReportStatusViewModel(context: context, user: user, status: status) + self.reportSupplementaryViewModel = ReportSupplementaryViewModel(context: context, user: user) + // end init + + guard let authenticationBox = context.authenticationService.activeMastodonAuthenticationBox.value else { + return + } + + // setup reason viewModel + if status != nil { + // TODO: i18n + reportReasonViewModel.headline = "What’s wrong with post?" + } else { + Task { @MainActor in + let managedObjectContext = context.managedObjectContext + let _username: String? = try? await managedObjectContext.perform { + let user = user.object(in: managedObjectContext) + return user?.acctWithDomain + } + if let username = _username { + reportReasonViewModel.headline = "What’s wrong with @\(username)?" + } else { + reportReasonViewModel.headline = "What’s wrong with this account?" + } + } // end Task + } + + // bind server rules + Task { @MainActor in + do { + let response = try await context.apiService.instance(domain: authenticationBox.domain) + .timeout(3, scheduler: DispatchQueue.main) + .singleOutput() + let rules = response.value.rules ?? [] + reportReasonViewModel.serverRules = rules + reportServerRulesViewModel.serverRules = rules + } catch { + reportReasonViewModel.serverRules = [] + reportServerRulesViewModel.serverRules = [] + } + } // end Task + + $isReporting + .assign(to: &reportSupplementaryViewModel.$isBusy) + } + +} + +extension ReportViewModel { + @MainActor + func report() async throws { + guard let authenticationBox = context.authenticationService.activeMastodonAuthenticationBox.value, + !isReporting + else { + assertionFailure() + return + } + + let managedObjectContext = context.managedObjectContext + let _query: Mastodon.API.Reports.FileReportQuery? = try await managedObjectContext.perform { + guard let user = self.user.object(in: managedObjectContext) else { return nil } + let statusIDs: [Status.ID]? = { + if self.reportStatusViewModel.isSkip { + let _id: Status.ID? = self.reportStatusViewModel.status.flatMap { record -> Status.ID? in + guard let status = record.object(in: managedObjectContext) else { return nil } + return status.id + } + return _id.flatMap { [$0] } + } else { + return self.reportStatusViewModel.selectStatuses.compactMap { record -> Status.ID? in + guard let status = record.object(in: managedObjectContext) else { return nil } + return status.id + } + } + }() + let comment: String? = { + var suffixes: [String] = [] + let content: String? + + if let reason = self.reportReasonViewModel.selectReason { + switch reason { + case .spam: + suffixes.append(reason.rawValue) + case .violateRule: + suffixes.append(reason.rawValue) + if let rule = self.reportServerRulesViewModel.selectRule { + suffixes.append(rule.text) + } + + case .dislike, .other: + break + } + } + + content = self.reportSupplementaryViewModel.isSkip ? nil : self.reportSupplementaryViewModel.commentContext.comment + + let suffix: String? = { + let text = suffixes.joined(separator: ". ") + guard !text.isEmpty else { return nil } + return "<" + text + ">" + }() + + let comment = [content, suffix] + .compactMap { $0 } + .joined(separator: " ") + return comment.isEmpty ? nil : comment + }() + return Mastodon.API.Reports.FileReportQuery( + accountID: user.id, + statusIDs: statusIDs, + comment: comment, + forward: true + ) + } + + guard let query = _query else { return } + + do { + isReporting = true + try await Task.sleep(nanoseconds: .second * 3) +// let _ = try await context.apiService.report( +// query: query, +// authenticationBox: authenticationBox +// ) + isReportSuccess = true + } catch { + isReporting = false + throw error + } + } +} diff --git a/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift b/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift new file mode 100644 index 00000000..3a8b4579 --- /dev/null +++ b/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift @@ -0,0 +1,113 @@ +// +// ReportReasonView.swift +// Mastodon +// +// Created by MainasuK on 2022-5-10. +// + +import UIKit +import SwiftUI +import MastodonLocalization +import MastodonSDK +import MastodonAsset + +struct ReportReasonView: View { + + @ObservedObject var viewModel: ReportReasonViewModel + + // TODO: i18n + var body: some View { + ScrollView(.vertical) { + HStack { + VStack(alignment: .leading, spacing: 8) { + Text("Step 1 of 4") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + Text(viewModel.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 28, weight: .bold)) as CTFont)) + Text("Select the best match") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + } + Spacer() + } + .padding() + + VStack(spacing: 16) { + if let serverRules = viewModel.serverRules { + ForEach(ReportReasonViewModel.Reason.allCases, id: \.self) { reason in + switch reason { + case .violateRule where serverRules.isEmpty: + EmptyView() + default: + ReportReasonRowView(reason: reason, isSelect: reason == viewModel.selectReason) + .background( + Color(viewModel.backgroundColor) + ) + .onTapGesture { + viewModel.selectReason = reason + } + } + } + } else { + ProgressView() + } + } + .padding() + .transition(.opacity) + .animation(.easeInOut) + + Spacer() + .frame(minHeight: viewModel.bottomPaddingHeight) + } + .background( + Color(viewModel.backgroundColor) + ) + } + +} + +struct ReportReasonRowView: View { + + var reason: ReportReasonViewModel.Reason + var isSelect: Bool + + var body: some View { + HStack(spacing: 14) { + Image(systemName: isSelect ? "checkmark.circle.fill" : "circle") + .resizable() + .frame(width: 28, height: 28, alignment: .center) + VStack(alignment: .leading, spacing: 4) { + Text(reason.title) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + .font(.headline) + Text(reason.subtitle) + .font(.subheadline) + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + } + Spacer() + } + } + +} + +#if DEBUG +struct ReportReasonView_Previews: PreviewProvider { + static var previews: some View { + Group { + NavigationView { + ReportReasonView(viewModel: ReportReasonViewModel(context: .shared)) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + NavigationView { + ReportReasonView(viewModel: ReportReasonViewModel(context: .shared)) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + .preferredColorScheme(.dark) + } + } +} +#endif diff --git a/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift b/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift new file mode 100644 index 00000000..b0651e42 --- /dev/null +++ b/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift @@ -0,0 +1,116 @@ +// +// ReportReasonViewController.swift +// Mastodon +// +// Created by MainasuK on 2022-5-10. +// + +import os.log +import UIKit +import SwiftUI +import Combine +import MastodonUI +import MastodonAsset +import MastodonLocalization + +protocol ReportReasonViewControllerDelegate: AnyObject { + func reportReasonViewController(_ viewController: ReportReasonViewController, nextButtonPressed button: UIButton) +} + +final class ReportReasonViewController: UIViewController, NeedsDependency, ReportViewControllerAppearance { + + let logger = Logger(subsystem: "ReportReasonViewController", category: "ViewController") + + weak var context: AppContext! { willSet { precondition(!isViewLoaded) } } + weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } } + + var disposeBag = Set() + private var observations = Set() + + var viewModel: ReportReasonViewModel! + private(set) lazy var reportReasonView = ReportReasonView(viewModel: viewModel) + + lazy var cancelBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .cancel, + target: self, + action: #selector(ReportReasonViewController.cancelBarButtonItemDidPressed(_:)) + ) + + let navigationActionView: NavigationActionView = { + let navigationActionView = NavigationActionView() + navigationActionView.backgroundColor = Asset.Scene.Onboarding.background.color + navigationActionView.hidesBackButton = true + return navigationActionView + }() + + deinit { + os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function) + } + +} + +extension ReportReasonViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + setupAppearance() + defer { setupNavigationBarBackgroundView() } + + navigationItem.rightBarButtonItem = cancelBarButtonItem + + let hostingViewController = UIHostingController(rootView: reportReasonView) + hostingViewController.view.preservesSuperviewLayoutMargins = true + addChild(hostingViewController) + hostingViewController.view.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(hostingViewController.view) + NSLayoutConstraint.activate([ + hostingViewController.view.topAnchor.constraint(equalTo: view.topAnchor), + hostingViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), + hostingViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), + hostingViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor), + ]) + + navigationActionView.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(navigationActionView) + defer { + view.bringSubviewToFront(navigationActionView) + } + NSLayoutConstraint.activate([ + navigationActionView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + navigationActionView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + view.bottomAnchor.constraint(equalTo: navigationActionView.bottomAnchor), + ]) + + navigationActionView + .observe(\.bounds, options: [.initial, .new]) { [weak self] navigationActionView, _ in + guard let self = self else { return } + let inset = navigationActionView.frame.height + self.viewModel.bottomPaddingHeight = inset + } + .store(in: &observations) + + viewModel.$selectReason + .map { $0 != nil } + .assign(to: \.isEnabled, on: navigationActionView.nextButton) + .store(in: &disposeBag) + + navigationActionView.nextButton.addTarget(self, action: #selector(ReportReasonViewController.nextButtonPressed(_:)), for: .touchUpInside) + } + +} + +extension ReportReasonViewController { + + @objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) { + dismiss(animated: true, completion: nil) + } + + @objc private func nextButtonPressed(_ sender: UIButton) { + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") + + assert(viewModel.delegate != nil) + viewModel.delegate?.reportReasonViewController(self, nextButtonPressed: sender) + } + +} diff --git a/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift b/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift new file mode 100644 index 00000000..b156ea31 --- /dev/null +++ b/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift @@ -0,0 +1,83 @@ +// +// ReportReasonViewModel.swift +// Mastodon +// +// Created by MainasuK on 2022-5-10. +// + +import UIKit +import SwiftUI +import MastodonAsset +import MastodonSDK + +final class ReportReasonViewModel: ObservableObject { + + weak var delegate: ReportReasonViewControllerDelegate? + + // input + let context: AppContext + + @Published var headline = "What's wrong with this account?" + @Published var serverRules: [Mastodon.Entity.Instance.Rule]? + + @Published var bottomPaddingHeight: CGFloat = .zero + @Published var backgroundColor: UIColor = Asset.Scene.Report.background.color + + // output + @Published var selectReason: Reason? + + init(context: AppContext) { + self.context = context + // end init + } + +} + +extension ReportReasonViewModel { + enum Reason: Hashable, CaseIterable { + case dislike + case spam + case violateRule + case other + + var title: String { + switch self { + case .dislike: + return "I don’t like it" + case .spam: + return "It’s spam" + case .violateRule: + return "It violates server rules" + case .other: + return "It’s something else" + } + } + + var subtitle: String { + switch self { + case .dislike: + return "It is not something you want to see" + case .spam: + return "Malicious links, fake engagement, or repetetive replies" + case .violateRule: + return "You are aware that it breaks specific rules" + case .other: + return "The issue does not fit into other categories" + } + } + + // do not i18n this + var rawValue: String { + switch self { + case .dislike: + return "I don’t like it" + case .spam: + return "It’s spam" + case .violateRule: + return "It violates server rules" + case .other: + return "It’s something else" + } + } + } +} diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift b/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift index 26f56b98..1073c21a 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift @@ -21,6 +21,12 @@ final class ReportResultViewController: UIViewController, NeedsDependency, Repor var viewModel: ReportResultViewModel! + lazy var doneBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .done, + target: self, + action: #selector(ReportResultViewController.doneBarButtonItemDidPressed(_:)) + ) + let tableView: UITableView = { let tableView = ControlContainableTableView() tableView.backgroundColor = Asset.Scene.Report.background.color @@ -60,6 +66,7 @@ extension ReportResultViewController { defer { setupNavigationBarBackgroundView() } navigationItem.hidesBackButton = true + navigationItem.rightBarButtonItem = doneBarButtonItem tableView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(tableView) @@ -102,6 +109,10 @@ extension ReportResultViewController { } extension ReportResultViewController { + + @objc func doneBarButtonItemDidPressed(_ sender: UIButton) { + dismiss(animated: true, completion: nil) + } @objc func nextButtonDidPressed(_ sender: UIButton) { dismiss(animated: true, completion: nil) @@ -111,3 +122,8 @@ extension ReportResultViewController { // MARK: - UITableViewDelegate extension ReportResultViewController: UITableViewDelegate { } + +// MARK: - PanPopableViewController +extension ReportResultViewController: PanPopableViewController { + var isPanPopable: Bool { false } +} diff --git a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift new file mode 100644 index 00000000..e8dcfa88 --- /dev/null +++ b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift @@ -0,0 +1,116 @@ +// +// ReportServerRulesView.swift +// Mastodon +// +// Created by MainasuK on 2022-5-10. +// + +import UIKit +import SwiftUI +import MastodonLocalization +import MastodonSDK +import MastodonAsset + +struct ReportServerRulesView: View { + + @ObservedObject var viewModel: ReportServerRulesViewModel + + // TODO: i18n + var body: some View { + ScrollView(.vertical) { + HStack { + VStack(alignment: .leading, spacing: 8) { + Text("Step 2 of 4") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + Text(viewModel.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 28, weight: .bold)) as CTFont)) + Text("Select all that apply") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + } + Spacer() + } + .padding() + + VStack(spacing: 32) { + ForEach(viewModel.serverRules, id: \.self) { rule in + ReportServerRulesRowView( + title: rule.text, + isSelect: rule == viewModel.selectRule + ) + .background( + Color(viewModel.backgroundColor) + ) + .onTapGesture { + viewModel.selectRule = rule + viewModel.isDislike = false + } + } + ReportServerRulesRowView( + title: "I just don’t like it", + isSelect: viewModel.isDislike + ) + .background( + Color(viewModel.backgroundColor) + ) + .onTapGesture { + viewModel.selectRule = nil + viewModel.isDislike = true + } + } + .padding() + .transition(.opacity) + .animation(.easeInOut) + + Spacer() + .frame(minHeight: viewModel.bottomPaddingHeight) + } + .background( + Color(viewModel.backgroundColor) + ) + } + +} + +struct ReportServerRulesRowView: View { + + var title: String + var isSelect: Bool + + var body: some View { + HStack(spacing: 14) { + Image(systemName: isSelect ? "checkmark.circle.fill" : "circle") + .resizable() + .frame(width: 28, height: 28, alignment: .center) + VStack(alignment: .leading, spacing: 4) { + Text(title) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + .font(.headline) + } + Spacer() + } + } + +} + +#if DEBUG +struct ReportServerRulesView_Previews: PreviewProvider { + static var previews: some View { + Group { + NavigationView { + ReportServerRulesView(viewModel: ReportServerRulesViewModel(context: .shared)) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + NavigationView { + ReportServerRulesView(viewModel: ReportServerRulesViewModel(context: .shared)) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + .preferredColorScheme(.dark) + } + } +} +#endif diff --git a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewController.swift b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewController.swift new file mode 100644 index 00000000..330debbb --- /dev/null +++ b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewController.swift @@ -0,0 +1,117 @@ +// +// ReportServerRulesViewController.swift +// Mastodon +// +// Created by MainasuK on 2022-5-10. +// + +import os.log +import UIKit +import SwiftUI +import Combine +import MastodonUI +import MastodonAsset +import MastodonLocalization + +protocol ReportServerRulesViewControllerDelegate: AnyObject { + func reportServerRulesViewController(_ viewController: ReportServerRulesViewController, nextButtonPressed button: UIButton) +} + +final class ReportServerRulesViewController: UIViewController, NeedsDependency, ReportViewControllerAppearance { + + let logger = Logger(subsystem: "ReportReasonViewController", category: "ViewController") + + weak var context: AppContext! { willSet { precondition(!isViewLoaded) } } + weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } } + + var disposeBag = Set() + private var observations = Set() + + var viewModel: ReportServerRulesViewModel! + private(set) lazy var reportServerRulesView = ReportServerRulesView(viewModel: viewModel) + + lazy var cancelBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .cancel, + target: self, + action: #selector(ReportServerRulesViewController.cancelBarButtonItemDidPressed(_:)) + ) + + let navigationActionView: NavigationActionView = { + let navigationActionView = NavigationActionView() + navigationActionView.backgroundColor = Asset.Scene.Onboarding.background.color + navigationActionView.hidesBackButton = true + return navigationActionView + }() + + deinit { + os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function) + } + +} + +extension ReportServerRulesViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + setupAppearance() + defer { setupNavigationBarBackgroundView() } + + let hostingViewController = UIHostingController(rootView: reportServerRulesView) + hostingViewController.view.preservesSuperviewLayoutMargins = true + addChild(hostingViewController) + hostingViewController.view.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(hostingViewController.view) + NSLayoutConstraint.activate([ + hostingViewController.view.topAnchor.constraint(equalTo: view.topAnchor), + hostingViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), + hostingViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), + hostingViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor), + ]) + + navigationActionView.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(navigationActionView) + defer { + view.bringSubviewToFront(navigationActionView) + } + NSLayoutConstraint.activate([ + navigationActionView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + navigationActionView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + view.bottomAnchor.constraint(equalTo: navigationActionView.bottomAnchor), + ]) + + navigationActionView + .observe(\.bounds, options: [.initial, .new]) { [weak self] navigationActionView, _ in + guard let self = self else { return } + let inset = navigationActionView.frame.height + self.viewModel.bottomPaddingHeight = inset + } + .store(in: &observations) + + Publishers.CombineLatest( + viewModel.$selectRule, + viewModel.$isDislike + ) + .map { $0 != nil || $1 } + .assign(to: \.isEnabled, on: navigationActionView.nextButton) + .store(in: &disposeBag) + + navigationActionView.nextButton.addTarget(self, action: #selector(ReportServerRulesViewController.nextButtonPressed(_:)), for: .touchUpInside) + } + +} + +extension ReportServerRulesViewController { + + @objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) { + dismiss(animated: true, completion: nil) + } + + @objc private func nextButtonPressed(_ sender: UIButton) { + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") + + assert(viewModel.delegate != nil) + viewModel.delegate?.reportServerRulesViewController(self, nextButtonPressed: sender) + } + +} diff --git a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift new file mode 100644 index 00000000..1960899a --- /dev/null +++ b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift @@ -0,0 +1,35 @@ +// +// ReportServerRulesViewModel.swift +// Mastodon +// +// Created by MainasuK on 2022-5-10. +// + +import UIKit +import SwiftUI +import MastodonAsset +import MastodonSDK + +final class ReportServerRulesViewModel: ObservableObject { + + weak var delegate: ReportServerRulesViewControllerDelegate? + + // input + let context: AppContext + + @Published var headline = "Which rules are being violated?" + @Published var serverRules: [Mastodon.Entity.Instance.Rule] = [] + + @Published var bottomPaddingHeight: CGFloat = .zero + @Published var backgroundColor: UIColor = Asset.Scene.Report.background.color + + // output + @Published var selectRule: Mastodon.Entity.Instance.Rule? + @Published var isDislike: Bool = false + + init(context: AppContext) { + self.context = context + // end init + } + +} diff --git a/Mastodon/Scene/Report/ReportStatus/ReportViewController.swift b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewController.swift similarity index 75% rename from Mastodon/Scene/Report/ReportStatus/ReportViewController.swift rename to Mastodon/Scene/Report/ReportStatus/ReportStatusViewController.swift index 12291a96..d3844a3b 100644 --- a/Mastodon/Scene/Report/ReportStatus/ReportViewController.swift +++ b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewController.swift @@ -1,8 +1,8 @@ // -// ReportViewController.swift +// ReportStatusViewController.swift // Mastodon // -// Created by ihugo on 2021/4/20. +// Created by MainasuK on 2022-5-10. // import os.log @@ -12,21 +12,29 @@ import CoreDataStack import MastodonAsset import MastodonLocalization -class ReportViewController: UIViewController, NeedsDependency, ReportViewControllerAppearance { +protocol ReportStatusViewControllerDelegate: AnyObject { + func reportStatusViewController(_ viewController: ReportStatusViewController, skipButtonDidPressed button: UIButton) + func reportStatusViewController(_ viewController: ReportStatusViewController, nextButtonDidPressed button: UIButton) +} + +class ReportStatusViewController: UIViewController, NeedsDependency, ReportViewControllerAppearance { + + let logger = Logger(subsystem: "ReportStatusViewController", category: "ViewController") var disposeBag = Set() private var observations = Set() weak var context: AppContext! { willSet { precondition(!isViewLoaded) } } weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } } - - var viewModel: ReportViewModel! + + var viewModel: ReportStatusViewModel! // MAKK: - UI + lazy var cancelBarButtonItem = UIBarButtonItem( barButtonSystemItem: .cancel, target: self, - action: #selector(ReportViewController.cancelBarButtonItemDidPressed(_:)) + action: #selector(ReportStatusViewController.cancelBarButtonItemDidPressed(_:)) ) let tableView: UITableView = { @@ -58,7 +66,7 @@ class ReportViewController: UIViewController, NeedsDependency, ReportViewControl } -extension ReportViewController { +extension ReportStatusViewController { override func viewDidLoad() { super.viewDidLoad() @@ -67,7 +75,7 @@ extension ReportViewController { defer { setupNavigationBarBackgroundView() } navigationItem.rightBarButtonItem = cancelBarButtonItem - + tableView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(tableView) NSLayoutConstraint.activate([ @@ -109,7 +117,7 @@ extension ReportViewController { .sink { [weak self] _ in guard let self = self else { return } guard self.view.window != nil else { return } - self.viewModel.stateMachine.enter(ReportViewModel.State.Loading.self) + self.viewModel.stateMachine.enter(ReportStatusViewModel.State.Loading.self) } .store(in: &disposeBag) @@ -118,56 +126,38 @@ extension ReportViewController { .assign(to: \.isEnabled, on: navigationActionView.nextButton) .store(in: &disposeBag) - navigationActionView.backButton.addTarget(self, action: #selector(ReportViewController.skipButtonDidPressed(_:)), for: .touchUpInside) - navigationActionView.nextButton.addTarget(self, action: #selector(ReportViewController.nextButtonDidPressed(_:)), for: .touchUpInside) + navigationActionView.backButton.addTarget(self, action: #selector(ReportStatusViewController.skipButtonDidPressed(_:)), for: .touchUpInside) + navigationActionView.nextButton.addTarget(self, action: #selector(ReportStatusViewController.nextButtonDidPressed(_:)), for: .touchUpInside) } } -extension ReportViewController { - +extension ReportStatusViewController { + @objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) { dismiss(animated: true, completion: nil) } - @objc func skipButtonDidPressed(_ sender: UIButton) { - var selectStatuses: [ManagedObjectRecord] = [] - if let selectStatus = viewModel.status { - selectStatuses.append(selectStatus) - } + @objc private func skipButtonDidPressed(_ sender: UIButton) { + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") - let reportSupplementaryViewModel = ReportSupplementaryViewModel( - context: context, - user: viewModel.user, - selectStatuses: selectStatuses - ) - coordinator.present( - scene: .reportSupplementary(viewModel: reportSupplementaryViewModel), - from: self, - transition: .show - ) + assert(viewModel.delegate != nil) + viewModel.isSkip = true + viewModel.delegate?.reportStatusViewController(self, skipButtonDidPressed: sender) } - @objc func nextButtonDidPressed(_ sender: UIButton) { - let selectStatuses = Array(viewModel.selectStatuses) - guard !selectStatuses.isEmpty else { return } + @objc private func nextButtonDidPressed(_ sender: UIButton) { + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") - let reportSupplementaryViewModel = ReportSupplementaryViewModel( - context: context, - user: viewModel.user, - selectStatuses: selectStatuses - ) - coordinator.present( - scene: .reportSupplementary(viewModel: reportSupplementaryViewModel), - from: self, - transition: .show - ) + assert(viewModel.delegate != nil) + viewModel.isSkip = false + viewModel.delegate?.reportStatusViewController(self, nextButtonDidPressed: sender) } } // MARK: - UITableViewDelegate -extension ReportViewController: UITableViewDelegate { +extension ReportStatusViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? { guard let item = viewModel.diffableDataSource?.itemIdentifier(for: indexPath), case .status = item @@ -214,7 +204,7 @@ extension ReportViewController: UITableViewDelegate { } // MARK: - UIAdaptivePresentationControllerDelegate -extension ReportViewController: UIAdaptivePresentationControllerDelegate { +extension ReportStatusViewController: UIAdaptivePresentationControllerDelegate { func presentationControllerShouldDismiss(_ presentationController: UIPresentationController) -> Bool { return false } diff --git a/Mastodon/Scene/Report/ReportStatus/ReportViewModel+Diffable.swift b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift similarity index 93% rename from Mastodon/Scene/Report/ReportStatus/ReportViewModel+Diffable.swift rename to Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift index 30ec5d87..5bcc2f3d 100644 --- a/Mastodon/Scene/Report/ReportStatus/ReportViewModel+Diffable.swift +++ b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift @@ -12,11 +12,11 @@ import CoreDataStack import MastodonAsset import MastodonLocalization -extension ReportViewModel { +extension ReportStatusViewModel { static let reportItemHeaderContext = ReportItem.HeaderContext( primaryLabelText: L10n.Scene.Report.content1, - secondaryLabelText: L10n.Scene.Report.step1 + secondaryLabelText: "Step 3 of 4" ) func setupDiffableDataSource( @@ -41,7 +41,7 @@ extension ReportViewModel { var snapshot = NSDiffableDataSourceSnapshot() snapshot.appendSections([.main]) - snapshot.appendItems([.header(context: ReportViewModel.reportItemHeaderContext)], toSection: .main) + snapshot.appendItems([.header(context: ReportStatusViewModel.reportItemHeaderContext)], toSection: .main) let items = records.map { ReportItem.status(record: $0) } snapshot.appendItems(items, toSection: .main) diff --git a/Mastodon/Scene/Report/ReportStatus/ReportViewModel+State.swift b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+State.swift similarity index 92% rename from Mastodon/Scene/Report/ReportStatus/ReportViewModel+State.swift rename to Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+State.swift index 1bc43830..c653fc4a 100644 --- a/Mastodon/Scene/Report/ReportStatus/ReportViewModel+State.swift +++ b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+State.swift @@ -12,7 +12,7 @@ import CoreData import CoreDataStack import GameplayKit -extension ReportViewModel { +extension ReportStatusViewModel { class State: GKState { let logger = Logger(subsystem: "ReportViewModel.State", category: "StateMachine") @@ -23,15 +23,15 @@ extension ReportViewModel { String(describing: Self.self) } - weak var viewModel: ReportViewModel? + weak var viewModel: ReportStatusViewModel? - init(viewModel: ReportViewModel) { + init(viewModel: ReportStatusViewModel) { self.viewModel = viewModel } override func didEnter(from previousState: GKState?) { super.didEnter(from: previousState) - let previousState = previousState as? ReportViewModel.State + let previousState = previousState as? ReportStatusViewModel.State logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): [\(self.id.uuidString)] enter \(self.name), previous: \(previousState?.name ?? "")") } @@ -46,8 +46,8 @@ extension ReportViewModel { } } -extension ReportViewModel.State { - class Initial: ReportViewModel.State { +extension ReportStatusViewModel.State { + class Initial: ReportStatusViewModel.State { override func isValidNextState(_ stateClass: AnyClass) -> Bool { guard let _ = viewModel else { return false } switch stateClass { @@ -59,7 +59,7 @@ extension ReportViewModel.State { } } - class Loading: ReportViewModel.State { + class Loading: ReportStatusViewModel.State { override func isValidNextState(_ stateClass: AnyClass) -> Bool { switch stateClass { case is Fail.Type: @@ -128,7 +128,7 @@ extension ReportViewModel.State { } } - class Fail: ReportViewModel.State { + class Fail: ReportStatusViewModel.State { override func isValidNextState(_ stateClass: AnyClass) -> Bool { switch stateClass { case is Loading.Type: @@ -139,7 +139,7 @@ extension ReportViewModel.State { } } - class Idle: ReportViewModel.State { + class Idle: ReportStatusViewModel.State { override func isValidNextState(_ stateClass: AnyClass) -> Bool { switch stateClass { case is Loading.Type: @@ -150,7 +150,7 @@ extension ReportViewModel.State { } } - class NoMore: ReportViewModel.State { + class NoMore: ReportStatusViewModel.State { override func isValidNextState(_ stateClass: AnyClass) -> Bool { return false } diff --git a/Mastodon/Scene/Report/ReportStatus/ReportViewModel.swift b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel.swift similarity index 91% rename from Mastodon/Scene/Report/ReportStatus/ReportViewModel.swift rename to Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel.swift index 46a47526..23996063 100644 --- a/Mastodon/Scene/Report/ReportStatus/ReportViewModel.swift +++ b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel.swift @@ -1,8 +1,8 @@ // -// ReportViewModel.swift +// ReportStatusViewModel.swift // Mastodon // -// Created by ihugo on 2021/4/19. +// Created by MainasuK on 2022-5-10. // import Combine @@ -15,10 +15,12 @@ import OrderedCollections import os.log import UIKit -class ReportViewModel { +class ReportStatusViewModel { var disposeBag = Set() + weak var delegate: ReportStatusViewControllerDelegate? + // input let context: AppContext let user: ManagedObjectRecord @@ -26,6 +28,7 @@ class ReportViewModel { let statusFetchedResultsController: StatusFetchedResultsController let listBatchFetchViewModel = ListBatchFetchViewModel() + @Published var isSkip = false @Published var selectStatuses = OrderedSet>() // output diff --git a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift index 4f6e102b..10191f6e 100644 --- a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift +++ b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift @@ -11,20 +11,25 @@ import Combine import MastodonAsset import MastodonLocalization +protocol ReportSupplementaryViewControllerDelegate: AnyObject { + func reportSupplementaryViewController(_ viewController: ReportSupplementaryViewController, skipButtonDidPressed button: UIButton) + func reportSupplementaryViewController(_ viewController: ReportSupplementaryViewController, nextButtonDidPressed button: UIButton) +} + final class ReportSupplementaryViewController: UIViewController, NeedsDependency, ReportViewControllerAppearance { let logger = Logger(subsystem: "ReportSupplementaryViewController", category: "ViewController") var disposeBag = Set() private var observations = Set() - + weak var context: AppContext! { willSet { precondition(!isViewLoaded) } } weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } } var viewModel: ReportSupplementaryViewModel! { willSet { precondition(!isViewLoaded) } } - // MAKK: - UI + lazy var cancelBarButtonItem = UIBarButtonItem( barButtonSystemItem: .cancel, target: self, @@ -74,16 +79,14 @@ extension ReportSupplementaryViewController { setupAppearance() defer { setupNavigationBarBackgroundView() } - navigationItem.rightBarButtonItem = cancelBarButtonItem - - viewModel.$isReporting + viewModel.$isBusy .receive(on: DispatchQueue.main) - .sink { [weak self] isReporting in + .sink { [weak self] isBusy in guard let self = self else { return } - self.navigationActionView.isUserInteractionEnabled = !isReporting + self.navigationItem.rightBarButtonItem = isBusy ? self.activityIndicatorBarButtonItem : self.cancelBarButtonItem } .store(in: &disposeBag) - + tableView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(tableView) NSLayoutConstraint.activate([ @@ -130,49 +133,25 @@ extension ReportSupplementaryViewController { } extension ReportSupplementaryViewController { - private func report(withComment: Bool) { - Task { - do { - let _ = try await viewModel.report(withComment: withComment) - logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): report success") - - let reportResultViewModel = ReportResultViewModel( - context: context, - user: viewModel.user - ) - - coordinator.present( - scene: .reportResult(viewModel: reportResultViewModel), - from: self, - transition: .show - ) - - } catch { - let alertController = UIAlertController(for: error, title: nil, preferredStyle: .alert) - let okAction = UIAlertAction(title: L10n.Common.Controls.Actions.ok, style: .default, handler: nil) - alertController.addAction(okAction) - self.coordinator.present( - scene: .alertController(alertController: alertController), - from: nil, - transition: .alertController(animated: true, completion: nil) - ) - } - } // end Task - } -} - -extension ReportSupplementaryViewController { - + @objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) { dismiss(animated: true, completion: nil) } @objc func skipButtonDidPressed(_ sender: UIButton) { - report(withComment: false) + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") + + assert(viewModel.delegate != nil) + viewModel.isSkip = true + viewModel.delegate?.reportSupplementaryViewController(self, skipButtonDidPressed: sender) } @objc func nextButtonDidPressed(_ sender: UIButton) { - report(withComment: true) + logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") + + assert(viewModel.delegate != nil) + viewModel.isSkip = false + viewModel.delegate?.reportSupplementaryViewController(self, nextButtonDidPressed: sender) } } diff --git a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift index 5fb9e742..e59617c3 100644 --- a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift +++ b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift @@ -15,8 +15,8 @@ import MastodonLocalization extension ReportSupplementaryViewModel { static let reportItemHeaderContext = ReportItem.HeaderContext( - primaryLabelText: L10n.Scene.Report.content2, - secondaryLabelText: L10n.Scene.Report.step2 + primaryLabelText: "Is there anything else we should know?", + secondaryLabelText: "Step 4 of 4" ) func setupDiffableDataSource( diff --git a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift index e73e82dd..4147d07d 100644 --- a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift +++ b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift @@ -12,26 +12,26 @@ import MastodonSDK class ReportSupplementaryViewModel { + weak var delegate: ReportSupplementaryViewControllerDelegate? + // Input var context: AppContext let user: ManagedObjectRecord - let selectStatuses: [ManagedObjectRecord] let commentContext = ReportItem.CommentContext() + @Published var isSkip = false + @Published var isBusy = false + // output var diffableDataSource: UITableViewDiffableDataSource? @Published var isNextButtonEnabled = false - @Published var isReporting = false - @Published var isReportSuccess = false init( context: AppContext, - user: ManagedObjectRecord, - selectStatuses: [ManagedObjectRecord] + user: ManagedObjectRecord ) { self.context = context self.user = user - self.selectStatuses = selectStatuses // end init commentContext.$comment @@ -42,41 +42,3 @@ class ReportSupplementaryViewModel { } } - -extension ReportSupplementaryViewModel { - func report(withComment: Bool) async throws { - guard let authenticationBox = context.authenticationService.activeMastodonAuthenticationBox.value else { - assertionFailure() - return - } - - let managedObjectContext = context.managedObjectContext - let _query: Mastodon.API.Reports.FileReportQuery? = try await managedObjectContext.perform { - guard let user = self.user.object(in: managedObjectContext) else { return nil } - let statusIDs = self.selectStatuses.compactMap { record -> Status.ID? in - guard let status = record.object(in: managedObjectContext) else { return nil } - return status.id - } - return Mastodon.API.Reports.FileReportQuery( - accountID: user.id, - statusIDs: statusIDs, - comment: withComment ? self.commentContext.comment : nil, - forward: nil - ) - } - - guard let query = _query else { return } - - do { - isReporting = true - let _ = try await context.apiService.report( - query: query, - authenticationBox: authenticationBox - ) - isReportSuccess = true - } catch { - isReporting = false - throw error - } - } -} diff --git a/Mastodon/Scene/Report/Share/Cell/ReportCommentTableViewCell.swift b/Mastodon/Scene/Report/Share/Cell/ReportCommentTableViewCell.swift index b982ee5a..d735a094 100644 --- a/Mastodon/Scene/Report/Share/Cell/ReportCommentTableViewCell.swift +++ b/Mastodon/Scene/Report/Share/Cell/ReportCommentTableViewCell.swift @@ -8,6 +8,7 @@ import UIKit import Combine import MastodonUI +import MastodonAsset import MastodonLocalization import UITextView_Placeholder @@ -27,7 +28,8 @@ final class ReportCommentTableViewCell: UITableViewCell { textView.attributedPlaceholder = NSAttributedString( string: L10n.Scene.Report.textPlaceholder, attributes: [ - .font: font + .font: font, + .foregroundColor: Asset.Colors.Label.secondary.color ] ) textView.textContainerInset = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16) @@ -80,4 +82,17 @@ extension ReportCommentTableViewCell { commentTextView.heightAnchor.constraint(greaterThanOrEqualToConstant: 100).priority(.defaultHigh), ]) } + + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + + commentTextView.attributedPlaceholder = NSAttributedString( + string: L10n.Scene.Report.textPlaceholder, + attributes: [ + .font: UIFontMetrics(forTextStyle: .body).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)), + .foregroundColor: Asset.Colors.Label.secondary.color + ] + ) + } + } diff --git a/Mastodon/Scene/Report/Share/ReportViewControllerAppearance.swift b/Mastodon/Scene/Report/Share/ReportViewControllerAppearance.swift index 6b35f3d8..fb9bcd63 100644 --- a/Mastodon/Scene/Report/Share/ReportViewControllerAppearance.swift +++ b/Mastodon/Scene/Report/Share/ReportViewControllerAppearance.swift @@ -19,7 +19,7 @@ extension ReportViewControllerAppearance { func setupAppearance() { - title = L10n.Scene.Report.titleReport + // title = L10n.Scene.Report.titleReport view.backgroundColor = Asset.Scene.Report.background.color setupNavigationBarAppearance() diff --git a/Mastodon/Scene/Share/NavigationController/AdaptiveStatusBarStyleNavigationController.swift b/Mastodon/Scene/Share/NavigationController/AdaptiveStatusBarStyleNavigationController.swift index f4ad467d..ec145f86 100644 --- a/Mastodon/Scene/Share/NavigationController/AdaptiveStatusBarStyleNavigationController.swift +++ b/Mastodon/Scene/Share/NavigationController/AdaptiveStatusBarStyleNavigationController.swift @@ -23,6 +23,7 @@ extension AdaptiveStatusBarStyleNavigationController { override func viewDidLoad() { super.viewDidLoad() + setupFullWidthBackGesture() } @@ -45,6 +46,11 @@ extension AdaptiveStatusBarStyleNavigationController: UIGestureRecognizerDelegat func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { let isSystemSwipeToBackEnabled = interactivePopGestureRecognizer?.isEnabled == true let isThereStackedViewControllers = viewControllers.count > 1 - return isSystemSwipeToBackEnabled && isThereStackedViewControllers + let isPanPopable = (topViewController as? PanPopableViewController)?.isPanPopable ?? true + return isSystemSwipeToBackEnabled && isThereStackedViewControllers && isPanPopable } } + +protocol PanPopableViewController: UIViewController { + var isPanPopable: Bool { get } +} From a88bb763fbbaf5f26715cbae4fd50a97be034db1 Mon Sep 17 00:00:00 2001 From: CMK Date: Tue, 10 May 2022 18:53:02 +0800 Subject: [PATCH 054/102] feat: add spam and other reason report flow path --- .../Report/Report/ReportViewController.swift | 29 +++++++++++++++++-- .../Scene/Report/Report/ReportViewModel.swift | 26 +++++++++++++---- .../ReportReasonViewController.swift | 12 -------- .../ReportSupplementaryViewController.swift | 2 ++ .../ReportSupplementaryViewModel.swift | 14 +++++---- 5 files changed, 57 insertions(+), 26 deletions(-) diff --git a/Mastodon/Scene/Report/Report/ReportViewController.swift b/Mastodon/Scene/Report/Report/ReportViewController.swift index 6d3f6da0..1fa8428e 100644 --- a/Mastodon/Scene/Report/Report/ReportViewController.swift +++ b/Mastodon/Scene/Report/Report/ReportViewController.swift @@ -24,6 +24,12 @@ class ReportViewController: UIViewController, NeedsDependency, ReportViewControl var viewModel: ReportViewModel! + lazy var cancelBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .cancel, + target: self, + action: #selector(ReportViewController.cancelBarButtonItemDidPressed(_:)) + ) + deinit { os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function) } @@ -38,6 +44,8 @@ extension ReportViewController { setupAppearance() defer { setupNavigationBarBackgroundView() } + navigationItem.rightBarButtonItem = cancelBarButtonItem + viewModel.reportReasonViewModel.delegate = self viewModel.reportServerRulesViewModel.delegate = self viewModel.reportStatusViewModel.delegate = self @@ -62,6 +70,14 @@ extension ReportViewController { } +extension ReportViewController { + + @objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) { + dismiss(animated: true, completion: nil) + } + +} + // MARK: - UIAdaptivePresentationControllerDelegate extension ReportViewController: UIAdaptivePresentationControllerDelegate { func presentationControllerShouldDismiss(_ presentationController: UIPresentationController) -> Bool { @@ -74,14 +90,21 @@ extension ReportViewController: ReportReasonViewControllerDelegate { func reportReasonViewController(_ viewController: ReportReasonViewController, nextButtonPressed button: UIButton) { guard let reason = viewController.viewModel.selectReason else { return } switch reason { + case .dislike: + // TODO: + break case .violateRule: coordinator.present( scene: .reportServerRules(viewModel: viewModel.reportServerRulesViewModel), from: self, transition: .show ) - default: - break + case .spam, .other: + coordinator.present( + scene: .reportStatus(viewModel: viewModel.reportStatusViewModel), + from: self, + transition: .show + ) } } } @@ -90,7 +113,7 @@ extension ReportViewController: ReportReasonViewControllerDelegate { extension ReportViewController: ReportServerRulesViewControllerDelegate { func reportServerRulesViewController(_ viewController: ReportServerRulesViewController, nextButtonPressed button: UIButton) { if viewController.viewModel.isDislike { - + // TODO: } else if viewController.viewModel.selectRule != nil { coordinator.present( scene: .reportStatus(viewModel: viewModel.reportStatusViewModel), diff --git a/Mastodon/Scene/Report/Report/ReportViewModel.swift b/Mastodon/Scene/Report/Report/ReportViewModel.swift index 73bac19b..590aed87 100644 --- a/Mastodon/Scene/Report/Report/ReportViewModel.swift +++ b/Mastodon/Scene/Report/Report/ReportViewModel.swift @@ -104,6 +104,9 @@ extension ReportViewModel { let managedObjectContext = context.managedObjectContext let _query: Mastodon.API.Reports.FileReportQuery? = try await managedObjectContext.perform { guard let user = self.user.object(in: managedObjectContext) else { return nil } + + // the status picker is essential step in report flow + // only check isSkip or not let statusIDs: [Status.ID]? = { if self.reportStatusViewModel.isSkip { let _id: Status.ID? = self.reportStatusViewModel.status.flatMap { record -> Status.ID? in @@ -118,10 +121,15 @@ extension ReportViewModel { } } }() + + // the user comment is essential step in report flow + // only check isSkip or not let comment: String? = { var suffixes: [String] = [] let content: String? + // the server rules is NOT essential step in report flow + // append suffix depends which reason if let reason = self.reportReasonViewModel.selectReason { switch reason { case .spam: @@ -130,9 +138,12 @@ extension ReportViewModel { suffixes.append(reason.rawValue) if let rule = self.reportServerRulesViewModel.selectRule { suffixes.append(rule.text) + } else { + assertionFailure("should select valid rule") } - - case .dislike, .other: + case .dislike: + assertionFailure("should not enter the report flow") + case .other: break } } @@ -162,11 +173,14 @@ extension ReportViewModel { do { isReporting = true + #if DEBUG try await Task.sleep(nanoseconds: .second * 3) -// let _ = try await context.apiService.report( -// query: query, -// authenticationBox: authenticationBox -// ) + #else + let _ = try await context.apiService.report( + query: query, + authenticationBox: authenticationBox + ) + #endif isReportSuccess = true } catch { isReporting = false diff --git a/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift b/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift index b0651e42..ac5d9e79 100644 --- a/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift +++ b/Mastodon/Scene/Report/ReportReason/ReportReasonViewController.swift @@ -30,12 +30,6 @@ final class ReportReasonViewController: UIViewController, NeedsDependency, Repor var viewModel: ReportReasonViewModel! private(set) lazy var reportReasonView = ReportReasonView(viewModel: viewModel) - lazy var cancelBarButtonItem = UIBarButtonItem( - barButtonSystemItem: .cancel, - target: self, - action: #selector(ReportReasonViewController.cancelBarButtonItemDidPressed(_:)) - ) - let navigationActionView: NavigationActionView = { let navigationActionView = NavigationActionView() navigationActionView.backgroundColor = Asset.Scene.Onboarding.background.color @@ -57,8 +51,6 @@ extension ReportReasonViewController { setupAppearance() defer { setupNavigationBarBackgroundView() } - navigationItem.rightBarButtonItem = cancelBarButtonItem - let hostingViewController = UIHostingController(rootView: reportReasonView) hostingViewController.view.preservesSuperviewLayoutMargins = true addChild(hostingViewController) @@ -102,10 +94,6 @@ extension ReportReasonViewController { extension ReportReasonViewController { - @objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) { - dismiss(animated: true, completion: nil) - } - @objc private func nextButtonPressed(_ sender: UIButton) { logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)") diff --git a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift index 10191f6e..fd778317 100644 --- a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift +++ b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewController.swift @@ -84,6 +84,8 @@ extension ReportSupplementaryViewController { .sink { [weak self] isBusy in guard let self = self else { return } self.navigationItem.rightBarButtonItem = isBusy ? self.activityIndicatorBarButtonItem : self.cancelBarButtonItem + self.navigationItem.hidesBackButton = isBusy + self.navigationActionView.backButton.isUserInteractionEnabled = !isBusy } .store(in: &disposeBag) diff --git a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift index 4147d07d..c07ee1f5 100644 --- a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift +++ b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel.swift @@ -34,11 +34,15 @@ class ReportSupplementaryViewModel { self.user = user // end init - commentContext.$comment - .map { comment -> Bool in - return !comment.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty - } - .assign(to: &$isNextButtonEnabled) + Publishers.CombineLatest( + commentContext.$comment, + $isBusy + ) + .map { comment, isBusy -> Bool in + guard !isBusy else { return false } + return !comment.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty + } + .assign(to: &$isNextButtonEnabled) } } From 18bd5d66d2181d46d6b66cb939490c2f2ef05184 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 11:04:48 +0800 Subject: [PATCH 055/102] chore: add profile scheme and build configuration --- Mastodon.xcodeproj/project.pbxproj | 347 +++++++++++++++--- .../xcschemes/xcschememanagement.plist | 29 +- Mastodon/Supporting Files/SceneDelegate.swift | 8 +- 3 files changed, 320 insertions(+), 64 deletions(-) diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index 400e4d73..b9105dcd 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -818,7 +818,10 @@ 5DDDF1A82617489F00311060 /* Mastodon+Entity+History.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Mastodon+Entity+History.swift"; sourceTree = ""; }; 5DF1056325F887CB00D6C0D4 /* AVPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AVPlayer.swift; sourceTree = ""; }; 6130CBE4B26E3C976ACC1688 /* Pods-ShareActionExtension.asdk - debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShareActionExtension.asdk - debug.xcconfig"; path = "Target Support Files/Pods-ShareActionExtension/Pods-ShareActionExtension.asdk - debug.xcconfig"; sourceTree = ""; }; + 63EF9E6E5B575CD2A8B0475D /* Pods-AppShared.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppShared.profile.xcconfig"; path = "Target Support Files/Pods-AppShared/Pods-AppShared.profile.xcconfig"; sourceTree = ""; }; + 728DE51ADA27C395C6E1BAB5 /* Pods-Mastodon-MastodonUITests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon-MastodonUITests.profile.xcconfig"; path = "Target Support Files/Pods-Mastodon-MastodonUITests/Pods-Mastodon-MastodonUITests.profile.xcconfig"; sourceTree = ""; }; 75E3471C898DDD9631729B6E /* Pods-Mastodon.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon.release.xcconfig"; path = "Target Support Files/Pods-Mastodon/Pods-Mastodon.release.xcconfig"; sourceTree = ""; }; + 7CB58D292DA7ACEF179A9050 /* Pods-Mastodon.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon.profile.xcconfig"; path = "Target Support Files/Pods-Mastodon/Pods-Mastodon.profile.xcconfig"; sourceTree = ""; }; 7CEFFAE9AF9284B13C0A758D /* Pods-MastodonTests.asdk - debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MastodonTests.asdk - debug.xcconfig"; path = "Target Support Files/Pods-MastodonTests/Pods-MastodonTests.asdk - debug.xcconfig"; sourceTree = ""; }; 819CEC9DCAD8E8E7BD85A7BB /* Pods-Mastodon.asdk.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon.asdk.xcconfig"; path = "Target Support Files/Pods-Mastodon/Pods-Mastodon.asdk.xcconfig"; sourceTree = ""; }; 8850E70A1D5FF51432E43653 /* Pods-Mastodon-MastodonUITests.asdk - release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon-MastodonUITests.asdk - release.xcconfig"; path = "Target Support Files/Pods-Mastodon-MastodonUITests/Pods-Mastodon-MastodonUITests.asdk - release.xcconfig"; sourceTree = ""; }; @@ -1385,6 +1388,7 @@ DBFEF07226A6913D006D7ED1 /* APIService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIService.swift; sourceTree = ""; }; DBFEF07A26A6BCE8006D7ED1 /* APIService+Status+Publish.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Status+Publish.swift"; sourceTree = ""; }; DDB1B139FA8EA26F510D58B6 /* Pods-AppShared.asdk - release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppShared.asdk - release.xcconfig"; path = "Target Support Files/Pods-AppShared/Pods-AppShared.asdk - release.xcconfig"; sourceTree = ""; }; + DF65937EC1FF64462BC002EE /* Pods-MastodonTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MastodonTests.profile.xcconfig"; path = "Target Support Files/Pods-MastodonTests/Pods-MastodonTests.profile.xcconfig"; sourceTree = ""; }; E5C7236E58D14A0322FE00F2 /* Pods-Mastodon-MastodonUITests.asdk - debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon-MastodonUITests.asdk - debug.xcconfig"; path = "Target Support Files/Pods-Mastodon-MastodonUITests/Pods-Mastodon-MastodonUITests.asdk - debug.xcconfig"; sourceTree = ""; }; E9AABD3D26B64B8C00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Intents.strings; sourceTree = ""; }; E9AABD4026B64B8D00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -1587,6 +1591,10 @@ 0655B257371274BEB7EB1C19 /* Pods-Mastodon.release snapshot.xcconfig */, 0827D1674B2523503E8605F6 /* Pods-Mastodon-MastodonUITests.release snapshot.xcconfig */, 8E79CCBE51FBC3F7FE8CF49F /* Pods-MastodonTests.release snapshot.xcconfig */, + 63EF9E6E5B575CD2A8B0475D /* Pods-AppShared.profile.xcconfig */, + 7CB58D292DA7ACEF179A9050 /* Pods-Mastodon.profile.xcconfig */, + 728DE51ADA27C395C6E1BAB5 /* Pods-Mastodon-MastodonUITests.profile.xcconfig */, + DF65937EC1FF64462BC002EE /* Pods-MastodonTests.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -3586,23 +3594,23 @@ ); mainGroup = DB427DC925BAA00100D1B89D; packageReferences = ( - DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */, + DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */, 2D61336725C18A4F00CAE157 /* XCRemoteSwiftPackageReference "AlamofireNetworkActivityIndicator" */, DB0140BB25C40D7500F9F3CF /* XCRemoteSwiftPackageReference "CommonOSLog" */, - 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer" */, - 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController" */, + 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer.git" */, + 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController.git" */, DBB525062611EAC0002F1F29 /* XCRemoteSwiftPackageReference "Tabman" */, - DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */, - DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */, - DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */, - DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */, - DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator" */, - DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin" */, - DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit" */, - DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections" */, - DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal" */, - DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */, - DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */, + DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess.git" */, + DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit.git" */, + DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources.git" */, + DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi.git" */, + DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator.git" */, + DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin.git" */, + DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit.git" */, + DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections.git" */, + DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal.git" */, + DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */, + DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */, ); productRefGroup = DB427DD325BAA00100D1B89D /* Products */; projectDirPath = ""; @@ -4668,7 +4676,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -4955,6 +4963,241 @@ }; name = Release; }; + DB848E2A282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "PROFILE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INTENTS_CODEGEN_LANGUAGE = Swift; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = PROFILE; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + DB848E2B282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7CB58D292DA7ACEF179A9050 /* Pods-Mastodon.profile.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 126; + DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + INFOPLIST_FILE = Mastodon/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.7; + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Mastodon/Vender/Mastodon-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + DB848E2C282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DF65937EC1FF64462BC002EE /* Pods-MastodonTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + INFOPLIST_FILE = MastodonTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.MastodonTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Mastodon.app/Mastodon"; + }; + name = Profile; + }; + DB848E2D282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 728DE51ADA27C395C6E1BAB5 /* Pods-Mastodon-MastodonUITests.profile.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + INFOPLIST_FILE = MastodonUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.MastodonUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = Mastodon; + }; + name = Profile; + }; + DB848E2E282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 63EF9E6E5B575CD2A8B0475D /* Pods-AppShared.profile.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 126; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 126; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = AppShared/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.AppShared; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Profile; + }; + DB848E2F282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 126; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + INFOPLIST_FILE = NotificationService/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0.7; + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.NotificationService; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + DB848E30282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 126; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + INFOPLIST_FILE = ShareActionExtension/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0.7; + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.ShareActionExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "APP_EXTENSION $(inherited)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + DB848E31282B5E6300A302CC /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 126; + DEVELOPMENT_TEAM = 5Z4GVSS33P; + INFOPLIST_FILE = MastodonIntent/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0.7; + PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.MastodonIntent; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "APP_EXTENSION $(inherited)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; DB8FABD026AEC7B2008E5AF4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5333,6 +5576,7 @@ isa = XCConfigurationList; buildConfigurations = ( DB427DFA25BAA00100D1B89D /* Debug */, + DB848E2A282B5E6300A302CC /* Profile */, DB427DFB25BAA00100D1B89D /* Release */, DBEB19E127E4658E00B0E80E /* Release Snapshot */, ); @@ -5343,6 +5587,7 @@ isa = XCConfigurationList; buildConfigurations = ( DB427DFD25BAA00100D1B89D /* Debug */, + DB848E2B282B5E6300A302CC /* Profile */, DB427DFE25BAA00100D1B89D /* Release */, DBEB19E227E4658E00B0E80E /* Release Snapshot */, ); @@ -5353,6 +5598,7 @@ isa = XCConfigurationList; buildConfigurations = ( DB427E0025BAA00100D1B89D /* Debug */, + DB848E2C282B5E6300A302CC /* Profile */, DB427E0125BAA00100D1B89D /* Release */, DBEB19E327E4658E00B0E80E /* Release Snapshot */, ); @@ -5363,6 +5609,7 @@ isa = XCConfigurationList; buildConfigurations = ( DB427E0325BAA00100D1B89D /* Debug */, + DB848E2D282B5E6300A302CC /* Profile */, DB427E0425BAA00100D1B89D /* Release */, DBEB19E427E4658E00B0E80E /* Release Snapshot */, ); @@ -5373,6 +5620,7 @@ isa = XCConfigurationList; buildConfigurations = ( DB6804892637CD4C00430867 /* Debug */, + DB848E2E282B5E6300A302CC /* Profile */, DB68048A2637CD4C00430867 /* Release */, DBEB19E527E4658E00B0E80E /* Release Snapshot */, ); @@ -5383,6 +5631,7 @@ isa = XCConfigurationList; buildConfigurations = ( DB8FABD026AEC7B2008E5AF4 /* Debug */, + DB848E31282B5E6300A302CC /* Profile */, DB8FABD326AEC7B2008E5AF4 /* Release */, DBEB19E827E4658E00B0E80E /* Release Snapshot */, ); @@ -5393,6 +5642,7 @@ isa = XCConfigurationList; buildConfigurations = ( DBC6461D26A170AB00B0E31B /* Debug */, + DB848E30282B5E6300A302CC /* Profile */, DBC6462026A170AB00B0E31B /* Release */, DBEB19E727E4658E00B0E80E /* Release Snapshot */, ); @@ -5403,6 +5653,7 @@ isa = XCConfigurationList; buildConfigurations = ( DBF8AE1C263293E400C9C23C /* Debug */, + DB848E2F282B5E6300A302CC /* Profile */, DBF8AE1D263293E400C9C23C /* Release */, DBEB19E627E4658E00B0E80E /* Release Snapshot */, ); @@ -5412,7 +5663,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer" */ = { + 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/vtourraine/ThirdPartyMailer.git"; requirement = { @@ -5428,7 +5679,7 @@ minimumVersion = 3.1.0; }; }; - 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController" */ = { + 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/TimOliver/TOCropViewController.git"; requirement = { @@ -5444,7 +5695,7 @@ minimumVersion = 0.1.1; }; }; - DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit" */ = { + DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/TwidereProject/MetaTextKit.git"; requirement = { @@ -5452,7 +5703,7 @@ version = 2.2.3; }; }; - DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin" */ = { + DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/kean/Nuke-FLAnimatedImage-Plugin.git"; requirement = { @@ -5460,7 +5711,7 @@ minimumVersion = 8.0.0; }; }; - DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */ = { + DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/Alamofire/AlamofireImage.git"; requirement = { @@ -5468,7 +5719,7 @@ minimumVersion = 4.1.0; }; }; - DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */ = { + DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/Alamofire/Alamofire.git"; requirement = { @@ -5476,7 +5727,7 @@ minimumVersion = 5.4.0; }; }; - DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections" */ = { + DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/apple/swift-collections.git"; requirement = { @@ -5484,7 +5735,7 @@ minimumVersion = 0.0.5; }; }; - DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */ = { + DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/kishikawakatsumi/KeychainAccess.git"; requirement = { @@ -5492,7 +5743,7 @@ minimumVersion = 4.2.2; }; }; - DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { + DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/siteline/SwiftUI-Introspect.git"; requirement = { @@ -5500,7 +5751,7 @@ minimumVersion = 0.1.4; }; }; - DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal" */ = { + DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/slackhq/PanModal.git"; requirement = { @@ -5508,7 +5759,7 @@ minimumVersion = 1.2.7; }; }; - DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */ = { + DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/ra1028/DifferenceKit.git"; requirement = { @@ -5516,7 +5767,7 @@ version = 1.2.0; }; }; - DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */ = { + DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/MainasuK/DiffableDataSources.git"; requirement = { @@ -5524,7 +5775,7 @@ kind = branch; }; }; - DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */ = { + DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/cezheng/Fuzi.git"; requirement = { @@ -5540,7 +5791,7 @@ minimumVersion = 2.11.0; }; }; - DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator" */ = { + DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/MainasuK/FPSIndicator.git"; requirement = { @@ -5553,7 +5804,7 @@ /* Begin XCSwiftPackageProductDependency section */ 2D5981B925E4D7F8000FB903 /* ThirdPartyMailer */ = { isa = XCSwiftPackageProductDependency; - package = 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer" */; + package = 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer.git" */; productName = ThirdPartyMailer; }; 2D61336825C18A4F00CAE157 /* AlamofireNetworkActivityIndicator */ = { @@ -5563,12 +5814,12 @@ }; 2D939AC725EE14620076FA61 /* CropViewController */ = { isa = XCSwiftPackageProductDependency; - package = 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController" */; + package = 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController.git" */; productName = CropViewController; }; DB02EA0A280D180D00E751C5 /* KeychainAccess */ = { isa = XCSwiftPackageProductDependency; - package = DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */; + package = DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess.git" */; productName = KeychainAccess; }; DB3EA8F4281BB65200598866 /* MastodonSDK */ = { @@ -5577,17 +5828,17 @@ }; DB3EA8FB281BBAE100598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; productName = AlamofireImage; }; DB3EA8FD281BBAF200598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; productName = Alamofire; }; DB3EA8FF281BBB1D00598866 /* MetaTextKit */ = { isa = XCSwiftPackageProductDependency; - package = DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit" */; + package = DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit.git" */; productName = MetaTextKit; }; DB3EA901281BBD5D00598866 /* CommonOSLog */ = { @@ -5597,12 +5848,12 @@ }; DB3EA903281BBD9400598866 /* Introspect */ = { isa = XCSwiftPackageProductDependency; - package = DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */; + package = DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */; productName = Introspect; }; DB3EA905281BBE8200598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; productName = AlamofireImage; }; DB3EA907281BBE8200598866 /* AlamofireNetworkActivityIndicator */ = { @@ -5612,12 +5863,12 @@ }; DB3EA909281BBE8200598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; productName = Alamofire; }; DB3EA90B281BBE9600598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; productName = AlamofireImage; }; DB3EA90D281BBE9600598866 /* AlamofireNetworkActivityIndicator */ = { @@ -5627,42 +5878,42 @@ }; DB3EA90F281BBE9600598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; productName = Alamofire; }; DB3EA911281BBEA800598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; productName = AlamofireImage; }; DB3EA913281BBEA800598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; productName = Alamofire; }; DB552D4E26BBD10C00E481F6 /* OrderedCollections */ = { isa = XCSwiftPackageProductDependency; - package = DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections" */; + package = DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections.git" */; productName = OrderedCollections; }; DBA5A52E26F07ED800CACBAA /* PanModal */ = { isa = XCSwiftPackageProductDependency; - package = DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal" */; + package = DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal.git" */; productName = PanModal; }; DBAC6482267D0B21007FE9FD /* DifferenceKit */ = { isa = XCSwiftPackageProductDependency; - package = DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */; + package = DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit.git" */; productName = DifferenceKit; }; DBAC649D267DFE43007FE9FD /* DiffableDataSources */ = { isa = XCSwiftPackageProductDependency; - package = DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */; + package = DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources.git" */; productName = DiffableDataSources; }; DBAC64A0267E6D02007FE9FD /* Fuzi */ = { isa = XCSwiftPackageProductDependency; - package = DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */; + package = DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi.git" */; productName = Fuzi; }; DBB525072611EAC0002F1F29 /* Tabman */ = { @@ -5672,7 +5923,7 @@ }; DBF7A0FB26830C33004176A2 /* FPSIndicator */ = { isa = XCSwiftPackageProductDependency; - package = DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator" */; + package = DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator.git" */; productName = FPSIndicator; }; /* End XCSwiftPackageProductDependency section */ diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index 7f54b901..3d2d4b72 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,33 +9,38 @@ isShown orderHint - 4 + 5 CoreDataStack.xcscheme_^#shared#^_ orderHint 27 - Mastodon - RTL.xcscheme_^#shared#^_ - - orderHint - 6 - - Mastodon - Release.xcscheme_^#shared#^_ + Mastodon - Profile.xcscheme_^#shared#^_ orderHint 1 - Mastodon - Snapshot.xcscheme_^#shared#^_ + Mastodon - RTL.xcscheme_^#shared#^_ + + orderHint + 7 + + Mastodon - Release.xcscheme_^#shared#^_ orderHint 2 - Mastodon - ar.xcscheme + Mastodon - Snapshot.xcscheme_^#shared#^_ orderHint 3 + Mastodon - ar.xcscheme + + orderHint + 4 + Mastodon - ar.xcscheme_^#shared#^_ orderHint @@ -109,7 +114,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 20 + 27 MastodonIntents.xcscheme_^#shared#^_ @@ -124,12 +129,12 @@ NotificationService.xcscheme_^#shared#^_ orderHint - 19 + 29 ShareActionExtension.xcscheme_^#shared#^_ orderHint - 21 + 28 SuppressBuildableAutocreation diff --git a/Mastodon/Supporting Files/SceneDelegate.swift b/Mastodon/Supporting Files/SceneDelegate.swift index d178cd0d..54b1fd57 100644 --- a/Mastodon/Supporting Files/SceneDelegate.swift +++ b/Mastodon/Supporting Files/SceneDelegate.swift @@ -10,7 +10,7 @@ import UIKit import Combine import CoreDataStack -#if DEBUG +#if PROFILE import FPSIndicator #endif @@ -22,7 +22,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? var coordinator: SceneCoordinator? - #if DEBUG + #if PROFILE var fpsIndicator: FPSIndicator? #endif @@ -87,8 +87,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { } .store(in: &observations) - #if DEBUG - // fpsIndicator = FPSIndicator(windowScene: windowScene) + #if PROFILE + fpsIndicator = FPSIndicator(windowScene: windowScene) #endif } From 590aa1336e381782bdb94dc42c7ff64007380aaf Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 15:02:47 +0800 Subject: [PATCH 056/102] chore: update i18n resources --- MastodonIntent/gl.lproj/Intents.strings | 48 ++-- .../Resources/ar.lproj/Localizable.strings | 10 +- .../ar.lproj/Localizable.stringsdict | 8 +- .../Resources/ca.lproj/Localizable.strings | 10 +- .../Resources/de.lproj/Localizable.strings | 6 +- .../es-419.lproj/Localizable.strings | 2 +- .../Resources/gd-GB.lproj/Localizable.strings | 2 +- .../Resources/gl.lproj/Localizable.strings | 224 +++++++++--------- .../gl.lproj/Localizable.stringsdict | 104 ++++---- .../Resources/ja.lproj/Localizable.strings | 48 ++-- .../ja.lproj/Localizable.stringsdict | 2 +- .../Resources/ku.lproj/Localizable.strings | 5 +- .../Resources/th.lproj/Localizable.strings | 22 +- .../Resources/tr.lproj/Localizable.strings | 4 +- 14 files changed, 247 insertions(+), 248 deletions(-) diff --git a/MastodonIntent/gl.lproj/Intents.strings b/MastodonIntent/gl.lproj/Intents.strings index 6877490b..2083cc70 100644 --- a/MastodonIntent/gl.lproj/Intents.strings +++ b/MastodonIntent/gl.lproj/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Publicar en Mastodon"; -"751xkl" = "Text Content"; +"751xkl" = "Texto a incluír"; -"CsR7G2" = "Post on Mastodon"; +"CsR7G2" = "Publicar en Mastodon"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "Cal é o contido a publicar?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Fallou a publicación"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Razón do fallo"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Enviar Publicación con texto"; -"RxSqsb" = "Post"; +"RxSqsb" = "Publicación"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Publicar ${content} en Mastodon"; -"ZKJSNu" = "Post"; +"ZKJSNu" = "Publicación"; "ZS1XaK" = "${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Visibilidade"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Visibilidade da publicación"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "Hai ${count} opcións que coinciden con ‘Público’."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "Hai ${count} opcións que coinciden con 'Só seguidoras’."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, Público"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, Só seguidoras"; -"dUyuGg" = "Post on Mastodon"; +"dUyuGg" = "Publicar en Mastodon"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Público"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Só seguidoras"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Fallou a publicación. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "Publicación correcta."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Só para confirmar, querías ’Público'?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Só para confirmar, querías ’Só para seguidoras'?"; "rM6dvp" = "URL"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "Publicación correcta. "; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings index 2ed1a8ad..09ab59f7 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings @@ -58,7 +58,7 @@ "Common.Controls.Actions.SignIn" = "تسجيل الدخول"; "Common.Controls.Actions.SignUp" = "إنشاء حِساب"; "Common.Controls.Actions.Skip" = "تخطي"; -"Common.Controls.Actions.TakePhoto" = "التقاط صورة"; +"Common.Controls.Actions.TakePhoto" = "اِلتِقاطُ صُورَة"; "Common.Controls.Actions.TryAgain" = "المُحاولة مرة أُخرى"; "Common.Controls.Actions.UnblockDomain" = "رفع الحظر عن %@"; "Common.Controls.Friendship.Block" = "حظر"; @@ -164,7 +164,7 @@ "Scene.Compose.Attachment.Video" = "مقطع مرئي"; "Scene.Compose.AutoComplete.SpaceToAdd" = "انقر على مساحة لإضافتِها"; "Scene.Compose.ComposeAction" = "نَشر"; -"Scene.Compose.ContentInputPlaceholder" = "أخبِرنا بِما يَجُولُ فِي ذِهنَك"; +"Scene.Compose.ContentInputPlaceholder" = "عَبِّر عَمَّ يَجُولُ فِي ذِهنِك"; "Scene.Compose.ContentWarning.Placeholder" = "اكتب تَحذيرًا دَقيقًا هُنا..."; "Scene.Compose.Keyboard.AppendAttachmentEntry" = "إضافة مُرفَق - %@"; "Scene.Compose.Keyboard.DiscardPost" = "تجاهُل المنشور"; @@ -172,9 +172,9 @@ "Scene.Compose.Keyboard.SelectVisibilityEntry" = "اختر مدى الظهور - %@"; "Scene.Compose.Keyboard.ToggleContentWarning" = "تبديل تحذير المُحتَوى"; "Scene.Compose.Keyboard.TogglePoll" = "تبديل الاستطلاع"; -"Scene.Compose.MediaSelection.Browse" = "تصفح"; -"Scene.Compose.MediaSelection.Camera" = "إلتقاط صورة"; -"Scene.Compose.MediaSelection.PhotoLibrary" = "مكتبة الصور"; +"Scene.Compose.MediaSelection.Browse" = "تَصَفَّح"; +"Scene.Compose.MediaSelection.Camera" = "اِلتِقاطُ صُورَة"; +"Scene.Compose.MediaSelection.PhotoLibrary" = "مَكتَبَةُ الصُّوَر"; "Scene.Compose.Poll.DurationTime" = "المُدَّة: %@"; "Scene.Compose.Poll.OneDay" = "يومٌ واحِد"; "Scene.Compose.Poll.OneHour" = "ساعةٌ واحدة"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.stringsdict b/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.stringsdict index c2f64172..dddba513 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.stringsdict +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.stringsdict @@ -109,7 +109,7 @@ NSStringFormatValueTypeKey ld zero - لا منشور + لا مَنشورات one منشورٌ واحِد two @@ -447,13 +447,13 @@ zero تتبقى لَحظة one - تتبقى ثانية + تتبقى ثانية واحِدة two - تتبقى ثانيتين + تتبقى ثانيتان few تتبقى %ld ثوان many - تتبقى %ld ثانيةً + تتبقى %ld ثانية other تتبقى %ld ثانية diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings index f22a0ff7..3c02a501 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings @@ -283,7 +283,7 @@ carregat a Mastodon."; "Scene.Register.Input.Password.Require" = "La teva contrasenya com a mínim necessita:"; "Scene.Register.Input.Username.DuplicatePrompt" = "Aquest nom d'usuari ja està en ús."; "Scene.Register.Input.Username.Placeholder" = "nom d'usuari"; -"Scene.Register.Title" = "Parla'ns de tu."; +"Scene.Register.Title" = "Anem a configurar-te a %@"; "Scene.Report.Content1" = "Hi ha alguna altre publicació que vulguis afegir a l'informe?"; "Scene.Report.Content2" = "Hi ha alguna cosa que els moderadors hagin de saber sobre aquest informe?"; "Scene.Report.ReportSentTitle" = "Gràcies per informar, ho investigarem."; @@ -328,10 +328,10 @@ carregat a Mastodon."; "Scene.ServerPicker.Button.Category.Tech" = "tecnologia"; "Scene.ServerPicker.Button.SeeLess" = "Veure Menys"; "Scene.ServerPicker.Button.SeeMore" = "Veure Més"; -"Scene.ServerPicker.EmptyState.BadNetwork" = "S'ha produït un error en carregar les dades. Comprova la teva connexió a Internet."; +"Scene.ServerPicker.EmptyState.BadNetwork" = "Alguna cosa no ha anat bé en carregar les dades. Comprova la teva connexió a Internet."; "Scene.ServerPicker.EmptyState.FindingServers" = "Cercant els servidors disponibles..."; "Scene.ServerPicker.EmptyState.NoResults" = "No hi ha resultats"; -"Scene.ServerPicker.Input.Placeholder" = "Troba un servidor o uneix-te al teu..."; +"Scene.ServerPicker.Input.Placeholder" = "Cerca servidors"; "Scene.ServerPicker.Label.Category" = "CATEGORIA"; "Scene.ServerPicker.Label.Language" = "LLENGUATGE"; "Scene.ServerPicker.Label.Users" = "USUARIS"; @@ -341,7 +341,7 @@ carregat a Mastodon."; "Scene.ServerRules.Button.Confirm" = "Hi estic d'acord"; "Scene.ServerRules.PrivacyPolicy" = "política de privadesa"; "Scene.ServerRules.Prompt" = "Al continuar, estàs subjecte als termes de servei i a la política de privacitat de %@."; -"Scene.ServerRules.Subtitle" = "Aquestes regles estan establertes per els administradors de %@."; +"Scene.ServerRules.Subtitle" = "Aquestes regles estan establertes i aplicades per els moderadors de %@."; "Scene.ServerRules.TermsOfService" = "termes del servei"; "Scene.ServerRules.Title" = "Algunes regles bàsiques."; "Scene.Settings.Footer.MastodonDescription" = "Mastodon és un programari de codi obert. Pots informar de problemes a GitHub a %@ (%@)"; @@ -380,7 +380,7 @@ carregat a Mastodon."; "Scene.Settings.Section.SpicyZone.Title" = "La Zona Picant"; "Scene.Settings.Title" = "Configuració"; "Scene.SuggestionAccount.FollowExplain" = "Quan segueixes algú, veuràs les seves publicacions a Inici."; -"Scene.SuggestionAccount.Title" = "Cerca Persones per Seguir"; +"Scene.SuggestionAccount.Title" = "Cerca Persones a Seguir"; "Scene.Thread.BackTitle" = "Publicació"; "Scene.Thread.Title" = "Publicació de %@"; "Scene.Welcome.GetStarted" = "Comença"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings index 29845981..7c3e16ec 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings @@ -108,7 +108,7 @@ Bitte überprüfe deine Internetverbindung."; "Common.Controls.Status.MediaContentWarning" = "Tippe irgendwo zum Anzeigen"; "Common.Controls.Status.Poll.Closed" = "Beendet"; "Common.Controls.Status.Poll.Vote" = "Abstimmen"; -"Common.Controls.Status.SensitiveContent" = "Sensitive Content"; +"Common.Controls.Status.SensitiveContent" = "NSFW-Inhalt"; "Common.Controls.Status.ShowPost" = "Beitrag anzeigen"; "Common.Controls.Status.ShowUserProfile" = "Benutzerprofil anzeigen"; "Common.Controls.Status.Tag.Email" = "E-Mail"; @@ -202,7 +202,7 @@ kann nicht auf Mastodon hochgeladen werden."; "Scene.ConfirmEmail.Subtitle" = "Wir haben gerade eine E-Mail an %@ gesendet, tippe darin auf den Link, um Dein Konto zu bestätigen."; "Scene.ConfirmEmail.Title" = "Noch eine letzte Sache."; -"Scene.Discovery.Intro" = "These are the posts gaining traction in your corner of Mastodon."; +"Scene.Discovery.Intro" = "Dies sind die Beiträge, die in deiner Umgebung auf Mastodon beliebter werden."; "Scene.Discovery.Tabs.Community" = "Community"; "Scene.Discovery.Tabs.ForYou" = "Für dich"; "Scene.Discovery.Tabs.Hashtags" = "Hashtags"; @@ -389,5 +389,5 @@ beliebigen Server."; "Scene.Welcome.LogIn" = "Anmelden"; "Scene.Welcome.Slogan" = "Soziale Netzwerke wieder in deinen Händen."; "Scene.Wizard.AccessibilityHint" = "Doppeltippen, um diesen Assistenten zu schließen"; -"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Wechsel zwischen mehreren Konten durch drücken der Profil-Schaltfläche."; +"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Wechsel zwischen mehreren Konten durch Drücken der Profil-Schaltfläche."; "Scene.Wizard.NewInMastodon" = "Neu in Mastodon"; \ No newline at end of file diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings index db6cacc3..af5d453b 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings @@ -203,7 +203,7 @@ y no se puede subir a Mastodon."; pulsá en el enlace para confirmar tu cuenta."; "Scene.ConfirmEmail.Title" = "Una última cosa."; "Scene.Discovery.Intro" = "Estos son los mensajes que están ganando tracción en tu rincón de Mastodon."; -"Scene.Discovery.Tabs.Community" = "Community"; +"Scene.Discovery.Tabs.Community" = "Comunidad"; "Scene.Discovery.Tabs.ForYou" = "Para vos"; "Scene.Discovery.Tabs.Hashtags" = "Etiquetas"; "Scene.Discovery.Tabs.News" = "Novedades"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings index 586258e5..d14d7acd 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings @@ -203,7 +203,7 @@ a luchdadh suas gu Mastodon."; thoir gnogag air a’ chunntas a dhearbhadh a’ chunntais agad."; "Scene.ConfirmEmail.Title" = "Aon rud eile."; "Scene.Discovery.Intro" = "Seo na postaichean fèillmhor ’nad cheàrnaidh de Mhastodon."; -"Scene.Discovery.Tabs.Community" = "Community"; +"Scene.Discovery.Tabs.Community" = "Coimhearsnachd"; "Scene.Discovery.Tabs.ForYou" = "Dhut-sa"; "Scene.Discovery.Tabs.Hashtags" = "Tagaichean hais"; "Scene.Discovery.Tabs.News" = "Naidheachdan"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings index a0a33a58..35fe4066 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings @@ -129,26 +129,26 @@ Comproba a conexión a internet."; "Common.Controls.Tabs.Profile" = "Perfil"; "Common.Controls.Tabs.Search" = "Busca"; "Common.Controls.Timeline.Filtered" = "Filtrado"; -"Common.Controls.Timeline.Header.BlockedWarning" = "You can’t view this user’s profile -until they unblock you."; +"Common.Controls.Timeline.Header.BlockedWarning" = "Non podes ver o perfil desta usuaria +ata que te desbloquee."; "Common.Controls.Timeline.Header.BlockingWarning" = "Non podes ver o perfil da usuaria ata que a desbloquees. Así ven outras o teu perfil."; "Common.Controls.Timeline.Header.NoStatusFound" = "Non se atopa a publicación"; -"Common.Controls.Timeline.Header.SuspendedWarning" = "This user has been suspended."; -"Common.Controls.Timeline.Header.UserBlockedWarning" = "You can’t view %@’s profile -until they unblock you."; -"Common.Controls.Timeline.Header.UserBlockingWarning" = "You can’t view %@’s profile -until you unblock them. -Your profile looks like this to them."; -"Common.Controls.Timeline.Header.UserSuspendedWarning" = "%@’s account has been suspended."; +"Common.Controls.Timeline.Header.SuspendedWarning" = "Esta usuaria foi suspendida."; +"Common.Controls.Timeline.Header.UserBlockedWarning" = "Non podes ver o perfil de %@ +ata que te desbloquee."; +"Common.Controls.Timeline.Header.UserBlockingWarning" = "Non podes ver o perfil de %@ +ata que o desbloquees. +Así se ve o teu perfil."; +"Common.Controls.Timeline.Header.UserSuspendedWarning" = "A conta de %@ foi suspendida."; "Common.Controls.Timeline.Loader.LoadMissingPosts" = "Cargar publicacións que faltan"; "Common.Controls.Timeline.Loader.LoadingMissingPosts" = "Cargando as publicacións que faltan..."; "Common.Controls.Timeline.Loader.ShowMoreReplies" = "Mostrar máis respostas"; "Common.Controls.Timeline.Timestamp.Now" = "Agora"; -"Scene.AccountList.AddAccount" = "Add Account"; -"Scene.AccountList.DismissAccountSwitcher" = "Dismiss Account Switcher"; -"Scene.AccountList.TabBarHint" = "Current selected profile: %@. Double tap then hold to show account switcher"; +"Scene.AccountList.AddAccount" = "Engadir conta"; +"Scene.AccountList.DismissAccountSwitcher" = "Desbotar intercambiador de contas"; +"Scene.AccountList.TabBarHint" = "Perfil seleccionado: %@. Dobre toque e manter para mostrar o intercambiador de contas"; "Scene.Compose.Accessibility.AppendAttachment" = "Engadir anexo"; "Scene.Compose.Accessibility.AppendPoll" = "Engadir enquisa"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Selector emoji personalizado"; @@ -156,15 +156,15 @@ Your profile looks like this to them."; "Scene.Compose.Accessibility.EnableContentWarning" = "Marcar con Aviso sobre o contido"; "Scene.Compose.Accessibility.PostVisibilityMenu" = "Visibilidade da publicación"; "Scene.Compose.Accessibility.RemovePoll" = "Eliminar enquisa"; -"Scene.Compose.Attachment.AttachmentBroken" = "This %@ is broken and can’t be -uploaded to Mastodon."; -"Scene.Compose.Attachment.DescriptionPhoto" = "Describe the photo for the visually-impaired..."; -"Scene.Compose.Attachment.DescriptionVideo" = "Describe the video for the visually-impaired..."; -"Scene.Compose.Attachment.Photo" = "photo"; -"Scene.Compose.Attachment.Video" = "video"; +"Scene.Compose.Attachment.AttachmentBroken" = "Este %@ está estragado e non pode +ser subido a Mastodon."; +"Scene.Compose.Attachment.DescriptionPhoto" = "Describe a foto para persoas con problemas visuais..."; +"Scene.Compose.Attachment.DescriptionVideo" = "Describe o vídeo para persoas con problemas visuais..."; +"Scene.Compose.Attachment.Photo" = "foto"; +"Scene.Compose.Attachment.Video" = "vídeo"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Barra de espazo engade"; -"Scene.Compose.ComposeAction" = "Publish"; -"Scene.Compose.ContentInputPlaceholder" = "Type or paste what’s on your mind"; +"Scene.Compose.ComposeAction" = "Publicar"; +"Scene.Compose.ContentInputPlaceholder" = "Escribe o que che apeteza"; "Scene.Compose.ContentWarning.Placeholder" = "Escribe o teu aviso aquí..."; "Scene.Compose.Keyboard.AppendAttachmentEntry" = "Engadir anexo - %@"; "Scene.Compose.Keyboard.DiscardPost" = "Descartar publicación"; @@ -172,59 +172,59 @@ uploaded to Mastodon."; "Scene.Compose.Keyboard.SelectVisibilityEntry" = "Elexir visibilidade - %@"; "Scene.Compose.Keyboard.ToggleContentWarning" = "Marcar con Aviso sobre o contido"; "Scene.Compose.Keyboard.TogglePoll" = "Activar enquisa"; -"Scene.Compose.MediaSelection.Browse" = "Browse"; -"Scene.Compose.MediaSelection.Camera" = "Take Photo"; -"Scene.Compose.MediaSelection.PhotoLibrary" = "Photo Library"; -"Scene.Compose.Poll.DurationTime" = "Duration: %@"; +"Scene.Compose.MediaSelection.Browse" = "Explorar"; +"Scene.Compose.MediaSelection.Camera" = "Facer foto"; +"Scene.Compose.MediaSelection.PhotoLibrary" = "Biblioteca de fotos"; +"Scene.Compose.Poll.DurationTime" = "Duración: %@"; "Scene.Compose.Poll.OneDay" = "1 Día"; -"Scene.Compose.Poll.OneHour" = "1 Hour"; +"Scene.Compose.Poll.OneHour" = "1 Hora"; "Scene.Compose.Poll.OptionNumber" = "Opción %ld"; "Scene.Compose.Poll.SevenDays" = "7 Días"; -"Scene.Compose.Poll.SixHours" = "6 Hours"; -"Scene.Compose.Poll.ThirtyMinutes" = "30 minutes"; +"Scene.Compose.Poll.SixHours" = "6 Horas"; +"Scene.Compose.Poll.ThirtyMinutes" = "30 minutos"; "Scene.Compose.Poll.ThreeDays" = "3 Días"; -"Scene.Compose.ReplyingToUser" = "replying to %@"; -"Scene.Compose.Title.NewPost" = "New Post"; -"Scene.Compose.Title.NewReply" = "New Reply"; +"Scene.Compose.ReplyingToUser" = "en resposta a %@"; +"Scene.Compose.Title.NewPost" = "Nova publicación"; +"Scene.Compose.Title.NewReply" = "Nova resposta"; "Scene.Compose.Visibility.Direct" = "Só para persoas mencionadas"; "Scene.Compose.Visibility.Private" = "Só para seguidoras"; "Scene.Compose.Visibility.Public" = "Público"; "Scene.Compose.Visibility.Unlisted" = "Non listado"; -"Scene.ConfirmEmail.Button.OpenEmailApp" = "Open Email App"; -"Scene.ConfirmEmail.Button.Resend" = "Resend"; -"Scene.ConfirmEmail.DontReceiveEmail.Description" = "Check if your email address is correct as well as your junk folder if you haven’t."; -"Scene.ConfirmEmail.DontReceiveEmail.ResendEmail" = "Resend Email"; -"Scene.ConfirmEmail.DontReceiveEmail.Title" = "Check your email"; -"Scene.ConfirmEmail.OpenEmailApp.Description" = "We just sent you an email. Check your junk folder if you haven’t."; -"Scene.ConfirmEmail.OpenEmailApp.Mail" = "Mail"; -"Scene.ConfirmEmail.OpenEmailApp.OpenEmailClient" = "Open Email Client"; -"Scene.ConfirmEmail.OpenEmailApp.Title" = "Check your inbox."; -"Scene.ConfirmEmail.Subtitle" = "Tap the link we emailed to you to verify your account."; -"Scene.ConfirmEmail.Title" = "One last thing."; -"Scene.Discovery.Intro" = "These are the posts gaining traction in your corner of Mastodon."; +"Scene.ConfirmEmail.Button.OpenEmailApp" = "Abrir app de email"; +"Scene.ConfirmEmail.Button.Resend" = "Reenviar"; +"Scene.ConfirmEmail.DontReceiveEmail.Description" = "Comproba que o enderezo de email é correcto e que non vaia directo ao cartafol de spam."; +"Scene.ConfirmEmail.DontReceiveEmail.ResendEmail" = "Volver enviar o correo"; +"Scene.ConfirmEmail.DontReceiveEmail.Title" = "Revisa o teu correo"; +"Scene.ConfirmEmail.OpenEmailApp.Description" = "Enviámosche un email. Se non aparece, mira no cartafol do lixo."; +"Scene.ConfirmEmail.OpenEmailApp.Mail" = "Correo"; +"Scene.ConfirmEmail.OpenEmailApp.OpenEmailClient" = "Abrir cliente de email"; +"Scene.ConfirmEmail.OpenEmailApp.Title" = "Mira na caixa de correo."; +"Scene.ConfirmEmail.Subtitle" = "Preme na ligazón que che enviamos ao email para verificar a conta."; +"Scene.ConfirmEmail.Title" = "O último detalle."; +"Scene.Discovery.Intro" = "Estas son as publicacións en voga no teu recuncho de Mastodon."; "Scene.Discovery.Tabs.Community" = "Comunidade"; -"Scene.Discovery.Tabs.ForYou" = "For You"; +"Scene.Discovery.Tabs.ForYou" = "Para ti"; "Scene.Discovery.Tabs.Hashtags" = "Cancelos"; "Scene.Discovery.Tabs.News" = "Novas"; "Scene.Discovery.Tabs.Posts" = "Publicacións"; -"Scene.Favorite.Title" = "Your Favorites"; +"Scene.Favorite.Title" = "Publicacións Favoritas"; "Scene.Follower.Footer" = "Non se mostran seguidoras desde outros servidores."; "Scene.Following.Footer" = "Non se mostran os seguimentos desde outros servidores."; -"Scene.HomeTimeline.NavigationBarState.NewPosts" = "See new posts"; -"Scene.HomeTimeline.NavigationBarState.Offline" = "Offline"; -"Scene.HomeTimeline.NavigationBarState.Published" = "Published!"; -"Scene.HomeTimeline.NavigationBarState.Publishing" = "Publishing post..."; -"Scene.HomeTimeline.Title" = "Home"; -"Scene.Notification.Keyobard.ShowEverything" = "Show Everything"; -"Scene.Notification.Keyobard.ShowMentions" = "Show Mentions"; -"Scene.Notification.NotificationDescription.FavoritedYourPost" = "favorited your post"; -"Scene.Notification.NotificationDescription.FollowedYou" = "followed you"; -"Scene.Notification.NotificationDescription.MentionedYou" = "mentioned you"; -"Scene.Notification.NotificationDescription.PollHasEnded" = "poll has ended"; -"Scene.Notification.NotificationDescription.RebloggedYourPost" = "reblogged your post"; -"Scene.Notification.NotificationDescription.RequestToFollowYou" = "request to follow you"; -"Scene.Notification.Title.Everything" = "Everything"; -"Scene.Notification.Title.Mentions" = "Mentions"; +"Scene.HomeTimeline.NavigationBarState.NewPosts" = "Novas publicacións"; +"Scene.HomeTimeline.NavigationBarState.Offline" = "Sen conexión"; +"Scene.HomeTimeline.NavigationBarState.Published" = "Publicado!"; +"Scene.HomeTimeline.NavigationBarState.Publishing" = "Publicando..."; +"Scene.HomeTimeline.Title" = "Inicio"; +"Scene.Notification.Keyobard.ShowEverything" = "Mostrar Todo"; +"Scene.Notification.Keyobard.ShowMentions" = "Mostrar mencións"; +"Scene.Notification.NotificationDescription.FavoritedYourPost" = "marcou a túa publicación como favorita"; +"Scene.Notification.NotificationDescription.FollowedYou" = "séguete"; +"Scene.Notification.NotificationDescription.MentionedYou" = "mencionoute"; +"Scene.Notification.NotificationDescription.PollHasEnded" = "a enquisa rematou"; +"Scene.Notification.NotificationDescription.RebloggedYourPost" = "compartiu a túa publicación"; +"Scene.Notification.NotificationDescription.RequestToFollowYou" = "solicitou seguirte"; +"Scene.Notification.Title.Everything" = "Todo"; +"Scene.Notification.Title.Mentions" = "Mencións"; "Scene.Preview.Keyboard.ClosePreview" = "Pechar vista previa"; "Scene.Preview.Keyboard.ShowNext" = "Mostrar Seguinte"; "Scene.Preview.Keyboard.ShowPrevious" = "Mostar Anterior"; @@ -267,10 +267,10 @@ uploaded to Mastodon."; "Scene.Register.Error.Reason.TooLong" = "%@ é demasiado longo"; "Scene.Register.Error.Reason.TooShort" = "%@ é demasiado curto"; "Scene.Register.Error.Reason.Unreachable" = "%@ semella que non existe"; -"Scene.Register.Error.Special.EmailInvalid" = "This is not a valid email address"; -"Scene.Register.Error.Special.PasswordTooShort" = "Password is too short (must be at least 8 characters)"; +"Scene.Register.Error.Special.EmailInvalid" = "Este non é un enderezo válido de email"; +"Scene.Register.Error.Special.PasswordTooShort" = "O contrasinal é demasiado curto (debe ter 8 caracteres como mínimo)"; "Scene.Register.Error.Special.UsernameInvalid" = "O nome de usuaria só pode ter caracteres alfanuméricos e trazos baixos"; -"Scene.Register.Error.Special.UsernameTooLong" = "Username is too long (can’t be longer than 30 characters)"; +"Scene.Register.Error.Special.UsernameTooLong" = "O nome de usuaria é demasiado longo (maior de 30 caracteres)"; "Scene.Register.Input.Avatar.Delete" = "Eliminar"; "Scene.Register.Input.DisplayName.Placeholder" = "nome público"; "Scene.Register.Input.Email.Placeholder" = "email"; @@ -338,55 +338,55 @@ uploaded to Mastodon."; "Scene.ServerPicker.Subtitle" = "Elixe unha comunidade en función dos teus intereses, rexión ou unha de propósito xeral."; "Scene.ServerPicker.SubtitleExtend" = "Elixe unha comunidade en función dos teus intereses, rexión ou unha de propósito xeral. Cada comunidade está xestionada por unha organización totalmente independente ou unha única persoa."; "Scene.ServerPicker.Title" = "Mastodon fórmano as persoas das diferentes comunidades."; -"Scene.ServerRules.Button.Confirm" = "I Agree"; -"Scene.ServerRules.PrivacyPolicy" = "privacy policy"; -"Scene.ServerRules.Prompt" = "By continuing, you’re subject to the terms of service and privacy policy for %@."; -"Scene.ServerRules.Subtitle" = "These are set and enforced by the %@ moderators."; -"Scene.ServerRules.TermsOfService" = "terms of service"; -"Scene.ServerRules.Title" = "Some ground rules."; -"Scene.Settings.Footer.MastodonDescription" = "Mastodon is open source software. You can report issues on GitHub at %@ (%@)"; -"Scene.Settings.Keyboard.CloseSettingsWindow" = "Close Settings Window"; -"Scene.Settings.Section.Appearance.Automatic" = "Automatic"; -"Scene.Settings.Section.Appearance.Dark" = "Always Dark"; -"Scene.Settings.Section.Appearance.Light" = "Always Light"; -"Scene.Settings.Section.Appearance.Title" = "Appearance"; -"Scene.Settings.Section.BoringZone.AccountSettings" = "Account Settings"; -"Scene.Settings.Section.BoringZone.Privacy" = "Privacy Policy"; -"Scene.Settings.Section.BoringZone.Terms" = "Terms of Service"; -"Scene.Settings.Section.BoringZone.Title" = "The Boring Zone"; -"Scene.Settings.Section.LookAndFeel.Light" = "Light"; -"Scene.Settings.Section.LookAndFeel.ReallyDark" = "Really Dark"; -"Scene.Settings.Section.LookAndFeel.SortaDark" = "Sorta Dark"; -"Scene.Settings.Section.LookAndFeel.Title" = "Look and Feel"; -"Scene.Settings.Section.LookAndFeel.UseSystem" = "Use System"; -"Scene.Settings.Section.Notifications.Boosts" = "Reblogs my post"; -"Scene.Settings.Section.Notifications.Favorites" = "Favorites my post"; -"Scene.Settings.Section.Notifications.Follows" = "Follows me"; -"Scene.Settings.Section.Notifications.Mentions" = "Mentions me"; -"Scene.Settings.Section.Notifications.Title" = "Notifications"; -"Scene.Settings.Section.Notifications.Trigger.Anyone" = "anyone"; -"Scene.Settings.Section.Notifications.Trigger.Follow" = "anyone I follow"; -"Scene.Settings.Section.Notifications.Trigger.Follower" = "a follower"; -"Scene.Settings.Section.Notifications.Trigger.Noone" = "no one"; -"Scene.Settings.Section.Notifications.Trigger.Title" = "Notify me when"; -"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "Disable animated avatars"; -"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Disable animated emojis"; -"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon"; -"Scene.Settings.Section.Preference.Title" = "Preferences"; -"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "True black dark mode"; -"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Use default browser to open links"; -"Scene.Settings.Section.SpicyZone.Clear" = "Clear Media Cache"; -"Scene.Settings.Section.SpicyZone.Signout" = "Sign Out"; -"Scene.Settings.Section.SpicyZone.Title" = "The Spicy Zone"; -"Scene.Settings.Title" = "Settings"; -"Scene.SuggestionAccount.FollowExplain" = "When you follow someone, you’ll see their posts in your home feed."; -"Scene.SuggestionAccount.Title" = "Find People to Follow"; -"Scene.Thread.BackTitle" = "Post"; -"Scene.Thread.Title" = "Post from %@"; +"Scene.ServerRules.Button.Confirm" = "Acepto"; +"Scene.ServerRules.PrivacyPolicy" = "polícica de privacidade"; +"Scene.ServerRules.Prompt" = "Ao continuar, acatas os termos do servizo e a política de privacidade para %@."; +"Scene.ServerRules.Subtitle" = "Son establecidas e aplicadas pola moderación de %@."; +"Scene.ServerRules.TermsOfService" = "termos do servizo"; +"Scene.ServerRules.Title" = "Algunhas regras básicas."; +"Scene.Settings.Footer.MastodonDescription" = "Mastodon é software de código aberto. Podes informar de fallos en GitHub en %@ (%@)"; +"Scene.Settings.Keyboard.CloseSettingsWindow" = "Pechar ventá de axustes"; +"Scene.Settings.Section.Appearance.Automatic" = "Automático"; +"Scene.Settings.Section.Appearance.Dark" = "Sempre escuro"; +"Scene.Settings.Section.Appearance.Light" = "Sempre claro"; +"Scene.Settings.Section.Appearance.Title" = "Aparencia"; +"Scene.Settings.Section.BoringZone.AccountSettings" = "Axustes da conta"; +"Scene.Settings.Section.BoringZone.Privacy" = "Política de Privacidade"; +"Scene.Settings.Section.BoringZone.Terms" = "Termos do Servizo"; +"Scene.Settings.Section.BoringZone.Title" = "A zona aburrida"; +"Scene.Settings.Section.LookAndFeel.Light" = "Claro"; +"Scene.Settings.Section.LookAndFeel.ReallyDark" = "Realmente escuro"; +"Scene.Settings.Section.LookAndFeel.SortaDark" = "Algo escuro"; +"Scene.Settings.Section.LookAndFeel.Title" = "Aparencia"; +"Scene.Settings.Section.LookAndFeel.UseSystem" = "Seguir o sistema"; +"Scene.Settings.Section.Notifications.Boosts" = "Promove a miña publicación"; +"Scene.Settings.Section.Notifications.Favorites" = "Favorece a miña publicación"; +"Scene.Settings.Section.Notifications.Follows" = "Me segue"; +"Scene.Settings.Section.Notifications.Mentions" = "Me menciona"; +"Scene.Settings.Section.Notifications.Title" = "Notificacións"; +"Scene.Settings.Section.Notifications.Trigger.Anyone" = "calquera"; +"Scene.Settings.Section.Notifications.Trigger.Follow" = "alguén a quen sigo"; +"Scene.Settings.Section.Notifications.Trigger.Follower" = "unha seguidora"; +"Scene.Settings.Section.Notifications.Trigger.Noone" = "ninguén"; +"Scene.Settings.Section.Notifications.Trigger.Title" = "Avisarme cando"; +"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "Desactivar avatares animados"; +"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Desactivar emojis animados"; +"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Abrir ligazóns en Mastodon"; +"Scene.Settings.Section.Preference.Title" = "Preferencias"; +"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Modo negro verdadeiro"; +"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Usar navegador por defecto para as ligazóns"; +"Scene.Settings.Section.SpicyZone.Clear" = "Limpar caché multimedia"; +"Scene.Settings.Section.SpicyZone.Signout" = "Pechar sesión"; +"Scene.Settings.Section.SpicyZone.Title" = "A zona picante"; +"Scene.Settings.Title" = "Axustes"; +"Scene.SuggestionAccount.FollowExplain" = "Cando sigas a alguén verás as súas publicacións na cronoloxía de inicio."; +"Scene.SuggestionAccount.Title" = "Atopar persoas para seguir"; +"Scene.Thread.BackTitle" = "Publicación"; +"Scene.Thread.Title" = "Publicación de %@"; "Scene.Welcome.GetStarted" = "Comezar"; "Scene.Welcome.LogIn" = "Acceder"; -"Scene.Welcome.Slogan" = "Social networking -back in your hands."; -"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard"; -"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button."; -"Scene.Wizard.NewInMastodon" = "New in Mastodon"; \ No newline at end of file +"Scene.Welcome.Slogan" = "Comunicación social +de volta ás túas mans."; +"Scene.Wizard.AccessibilityHint" = "Dobre toque para desbotar este asistente"; +"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Cambia dunha conta a outra mantendo preso o botón do perfil."; +"Scene.Wizard.NewInMastodon" = "Novidade en Mastodon"; \ No newline at end of file diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.stringsdict b/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.stringsdict index 503ff9db..a67c938a 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.stringsdict +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.stringsdict @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 unread notification + 1 notificación non lida other - %ld unread notification + %ld notificacións non lidas a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + O límite supera %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -29,15 +29,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + O límite de entrada mantense en %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -45,9 +45,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - post + publicación other - posts + publicacións plural.count.post @@ -77,9 +77,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 publicación other - %ld posts + %ld publicacións plural.count.favorite @@ -93,9 +93,9 @@ NSStringFormatValueTypeKey ld one - 1 favorite + 1 favorito other - %ld favorites + %ld favoritos plural.count.reblog @@ -109,9 +109,9 @@ NSStringFormatValueTypeKey ld one - 1 reblog + 1 promoción other - %ld reblogs + %ld promocións plural.count.reply @@ -125,9 +125,9 @@ NSStringFormatValueTypeKey ld one - 1 reply + 1 resposta other - %ld replies + %ld respostas plural.count.vote @@ -141,9 +141,9 @@ NSStringFormatValueTypeKey ld one - 1 vote + 1 voto other - %ld votes + %ld votos plural.count.voter @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 voter + 1 votante other - %ld voters + %ld votantes plural.people_talking @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 people talking + 1 persoa comentando other - %ld people talking + %ld persoas comentando plural.count.following @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 following + 1 seguimento other - %ld following + %ld seguimentos plural.count.follower @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 seguidora other - %ld followers + %ld seguidoras date.year.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + Queda 1 ano other - %ld years left + Quedan %ld anos date.month.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + Queda 1 mes other - %ld months left + Quedan %ld meses date.day.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + Queda 1 día other - %ld days left + Quedan %ld días date.hour.left @@ -269,9 +269,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + Queda 1 hora other - %ld hours left + Quedan %ld horas date.minute.left @@ -285,9 +285,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + Queda 1 minuto other - %ld minutes left + Quedan %ld minutos date.second.left @@ -301,9 +301,9 @@ NSStringFormatValueTypeKey ld one - 1 second left + Queda 1 segundo other - %ld seconds left + Quedan %ld segundos date.year.ago.abbr @@ -317,9 +317,9 @@ NSStringFormatValueTypeKey ld one - 1y ago + hai 1 ano other - %ldy ago + hai %ld anos date.month.ago.abbr @@ -333,9 +333,9 @@ NSStringFormatValueTypeKey ld one - 1M ago + hai 1 mes other - %ldM ago + hai %ld meses date.day.ago.abbr @@ -349,9 +349,9 @@ NSStringFormatValueTypeKey ld one - 1d ago + hai 1 día other - %ldd ago + hai %ld días date.hour.ago.abbr @@ -365,9 +365,9 @@ NSStringFormatValueTypeKey ld one - 1h ago + fai 1 hora other - %ldh ago + fai %ld horas date.minute.ago.abbr @@ -381,9 +381,9 @@ NSStringFormatValueTypeKey ld one - 1m ago + fai 1 minuto other - %ldm ago + fai %ld minutos date.second.ago.abbr @@ -397,9 +397,9 @@ NSStringFormatValueTypeKey ld one - 1s ago + fai 1 seg. other - %lds ago + fai %ld seg. diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings index 19056cf5..015a8855 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings @@ -4,8 +4,8 @@ "Common.Alerts.CleanCache.Title" = "キャッシュを消去"; "Common.Alerts.Common.PleaseTryAgain" = "もう一度お試しください。"; "Common.Alerts.Common.PleaseTryAgainLater" = "後でもう一度お試しください。"; -"Common.Alerts.DeletePost.Message" = "本当に削除しますか?"; -"Common.Alerts.DeletePost.Title" = "この投稿を消去しますか?"; +"Common.Alerts.DeletePost.Message" = "本当にこの投稿を削除しますか?"; +"Common.Alerts.DeletePost.Title" = "投稿を削除"; "Common.Alerts.DiscardPostContent.Message" = "この操作は取り消しできません。下書きは失われます。"; "Common.Alerts.DiscardPostContent.Title" = "投稿を破棄しますか?"; "Common.Alerts.EditProfileFailure.Message" = "プロフィールを編集できません。もう一度お試しください。"; @@ -32,13 +32,13 @@ "Common.Controls.Actions.Confirm" = "確認"; "Common.Controls.Actions.Continue" = "続ける"; "Common.Controls.Actions.CopyPhoto" = "写真をコピー"; -"Common.Controls.Actions.Delete" = "消去"; +"Common.Controls.Actions.Delete" = "削除"; "Common.Controls.Actions.Discard" = "破棄"; "Common.Controls.Actions.Done" = "完了"; "Common.Controls.Actions.Edit" = "編集"; "Common.Controls.Actions.FindPeople" = "フォローする人を見つける"; "Common.Controls.Actions.ManuallySearch" = "手動で検索する"; -"Common.Controls.Actions.Next" = "次"; +"Common.Controls.Actions.Next" = "次へ"; "Common.Controls.Actions.Ok" = "OK"; "Common.Controls.Actions.Open" = "開く"; "Common.Controls.Actions.OpenInBrowser" = "ブラウザで開く"; @@ -98,8 +98,8 @@ "Common.Controls.Status.Actions.Menu" = "メニュー"; "Common.Controls.Status.Actions.Reblog" = "ブースト"; "Common.Controls.Status.Actions.Reply" = "返信"; -"Common.Controls.Status.Actions.ShowGif" = "Show GIF"; -"Common.Controls.Status.Actions.ShowImage" = "Show image"; +"Common.Controls.Status.Actions.ShowGif" = "GIFを表示"; +"Common.Controls.Status.Actions.ShowImage" = "画像を表示"; "Common.Controls.Status.Actions.ShowVideoPlayer" = "Show video player"; "Common.Controls.Status.Actions.TapThenHoldToShowMenu" = "Tap then hold to show menu"; "Common.Controls.Status.Actions.Unfavorite" = "お気に入り登録を取り消す"; @@ -117,7 +117,7 @@ "Common.Controls.Status.Tag.Link" = "リンク"; "Common.Controls.Status.Tag.Mention" = "メンション"; "Common.Controls.Status.Tag.Url" = "URL"; -"Common.Controls.Status.TapToReveal" = "Tap to reveal"; +"Common.Controls.Status.TapToReveal" = "タップして表示"; "Common.Controls.Status.UserReblogged" = "%@がブースト"; "Common.Controls.Status.UserRepliedTo" = "%@に返信"; "Common.Controls.Status.Visibility.Direct" = "この投稿はメンションされたユーザーに限り見ることができます。"; @@ -196,9 +196,9 @@ "Scene.ConfirmEmail.OpenEmailApp.Title" = "メールを確認"; "Scene.ConfirmEmail.Subtitle" = "先程 %@ にメールを送信しました。リンクをタップしてアカウントを確認してください。"; "Scene.ConfirmEmail.Title" = "さいごにもうひとつ。"; -"Scene.Discovery.Intro" = "These are the posts gaining traction in your corner of Mastodon."; -"Scene.Discovery.Tabs.Community" = "Community"; -"Scene.Discovery.Tabs.ForYou" = "For You"; +"Scene.Discovery.Intro" = "あなたのMastodonサーバーで注目を集めている投稿がここに表示されます。"; +"Scene.Discovery.Tabs.Community" = "コミュニティ"; +"Scene.Discovery.Tabs.ForYou" = "おすすめ"; "Scene.Discovery.Tabs.Hashtags" = "ハッシュタグ"; "Scene.Discovery.Tabs.News" = "ニュース"; "Scene.Discovery.Tabs.Posts" = "投稿"; @@ -212,12 +212,12 @@ "Scene.HomeTimeline.Title" = "ホーム"; "Scene.Notification.Keyobard.ShowEverything" = "すべて見る"; "Scene.Notification.Keyobard.ShowMentions" = "メンションを見る"; -"Scene.Notification.NotificationDescription.FavoritedYourPost" = "favorited your post"; -"Scene.Notification.NotificationDescription.FollowedYou" = "followed you"; -"Scene.Notification.NotificationDescription.MentionedYou" = "mentioned you"; -"Scene.Notification.NotificationDescription.PollHasEnded" = "poll has ended"; -"Scene.Notification.NotificationDescription.RebloggedYourPost" = "reblogged your post"; -"Scene.Notification.NotificationDescription.RequestToFollowYou" = "request to follow you"; +"Scene.Notification.NotificationDescription.FavoritedYourPost" = "さんがあなたの投稿をお気に入りに登録しました"; +"Scene.Notification.NotificationDescription.FollowedYou" = "さんにフォローされました"; +"Scene.Notification.NotificationDescription.MentionedYou" = "さんがあなたに返信しました"; +"Scene.Notification.NotificationDescription.PollHasEnded" = "アンケートが終了しました"; +"Scene.Notification.NotificationDescription.RebloggedYourPost" = "さんがあなたの投稿をブーストしました"; +"Scene.Notification.NotificationDescription.RequestToFollowYou" = "さんがあなたにフォローリクエストしました"; "Scene.Notification.Title.Everything" = "すべて"; "Scene.Notification.Title.Mentions" = "メンション"; "Scene.Preview.Keyboard.ClosePreview" = "プレビューを閉じる"; @@ -266,7 +266,7 @@ "Scene.Register.Error.Special.PasswordTooShort" = "パスワードが短すぎます(8文字以上)"; "Scene.Register.Error.Special.UsernameInvalid" = "ユーザーネームには、英数字とアンダースコアのみを使用してください。"; "Scene.Register.Error.Special.UsernameTooLong" = "ユーザー名が長すぎます(30文字以内)"; -"Scene.Register.Input.Avatar.Delete" = "消去"; +"Scene.Register.Input.Avatar.Delete" = "削除"; "Scene.Register.Input.DisplayName.Placeholder" = "表示名"; "Scene.Register.Input.Email.Placeholder" = "メール"; "Scene.Register.Input.Invite.RegistrationUserInviteRequest" = "なぜ参加したいと思ったのですか?"; @@ -349,11 +349,11 @@ "Scene.Settings.Section.BoringZone.Privacy" = "プライバシーポリシー"; "Scene.Settings.Section.BoringZone.Terms" = "利用規約"; "Scene.Settings.Section.BoringZone.Title" = "アプリについて"; -"Scene.Settings.Section.LookAndFeel.Light" = "Light"; -"Scene.Settings.Section.LookAndFeel.ReallyDark" = "Really Dark"; -"Scene.Settings.Section.LookAndFeel.SortaDark" = "Sorta Dark"; -"Scene.Settings.Section.LookAndFeel.Title" = "Look and Feel"; -"Scene.Settings.Section.LookAndFeel.UseSystem" = "Use System"; +"Scene.Settings.Section.LookAndFeel.Light" = "ライト"; +"Scene.Settings.Section.LookAndFeel.ReallyDark" = "ブラック"; +"Scene.Settings.Section.LookAndFeel.SortaDark" = "ダーク"; +"Scene.Settings.Section.LookAndFeel.Title" = "テーマ"; +"Scene.Settings.Section.LookAndFeel.UseSystem" = "端末の設定を使う"; "Scene.Settings.Section.Notifications.Boosts" = "ブースト"; "Scene.Settings.Section.Notifications.Favorites" = "お気に入り登録"; "Scene.Settings.Section.Notifications.Follows" = "フォロー"; @@ -366,7 +366,7 @@ "Scene.Settings.Section.Notifications.Trigger.Title" = "通知を受け取る"; "Scene.Settings.Section.Preference.DisableAvatarAnimation" = "アバターのアニメーションを無効化する"; "Scene.Settings.Section.Preference.DisableEmojiAnimation" = "絵文字のアニメーションを無効化する"; -"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon"; +"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Mastodonでリンクを開く"; "Scene.Settings.Section.Preference.Title" = "環境設定"; "Scene.Settings.Section.Preference.TrueBlackDarkMode" = "真っ黒なダークテーマを使用する"; "Scene.Settings.Section.Preference.UsingDefaultBrowser" = "既定のブラウザでリンクを開く"; @@ -378,7 +378,7 @@ "Scene.SuggestionAccount.Title" = "フォローする人を探す"; "Scene.Thread.BackTitle" = "投稿"; "Scene.Thread.Title" = "%@の投稿"; -"Scene.Welcome.GetStarted" = "Get Started"; +"Scene.Welcome.GetStarted" = "はじめる"; "Scene.Welcome.LogIn" = "ログイン"; "Scene.Welcome.Slogan" = "ソーシャルネットワーキングを、あなたの手の中に."; "Scene.Wizard.AccessibilityHint" = "チュートリアルを閉じるには、ダブルタップしてください"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.stringsdict b/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.stringsdict index 8dfc9507..95c35172 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.stringsdict +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.stringsdict @@ -153,7 +153,7 @@ NSStringFormatValueTypeKey ld other - %ld people talking + %ld人が投稿 plural.count.following diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings index 7f2e7ef4..f9c23777 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings @@ -332,14 +332,13 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin."; "Scene.ServerPicker.EmptyState.BadNetwork" = "Di dema barkirina daneyan da çewtî derket. Girêdana xwe ya înternetê kontrol bike."; "Scene.ServerPicker.EmptyState.FindingServers" = "Peydakirina rajekarên berdest..."; "Scene.ServerPicker.EmptyState.NoResults" = "Encam tune"; -"Scene.ServerPicker.Input.Placeholder" = "Rajekarekî bibîne an jî beşdarî ya xwe bibe..."; +"Scene.ServerPicker.Input.Placeholder" = "Li rajekaran bigere"; "Scene.ServerPicker.Label.Category" = "BEŞ"; "Scene.ServerPicker.Label.Language" = "ZIMAN"; "Scene.ServerPicker.Label.Users" = "BIKARHÊNER"; "Scene.ServerPicker.Subtitle" = "Li gorî berjewendî, herêm, an jî armancek gelemperî civakekê hilbijêre."; "Scene.ServerPicker.SubtitleExtend" = "Li gorî berjewendî, herêm, an jî armancek gelemperî civakekê hilbijêre. Her civakek ji hêla rêxistinek an kesek bi tevahî serbixwe ve tê xebitandin."; -"Scene.ServerPicker.Title" = "Rajekarekê hilbijêre, -Her kîjan rajekar be."; +"Scene.ServerPicker.Title" = "Mastodon ji bikarhênerên di civakên cuda de pêk tê."; "Scene.ServerRules.Button.Confirm" = "Ez dipejirînim"; "Scene.ServerRules.PrivacyPolicy" = "polîtikaya nihêniyê"; "Scene.ServerRules.Prompt" = "Bi domandinê, tu ji bo %@ di bin mercên bikaranînê û polîtîkaya nepenîtiyê dipejirînî."; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings index 1ceff03a..ef723027 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings @@ -202,7 +202,7 @@ "Scene.ConfirmEmail.Subtitle" = "แตะลิงก์ที่เราส่งอีเมลถึงคุณเพื่อยืนยันบัญชีของคุณ"; "Scene.ConfirmEmail.Title" = "หนึ่งสิ่งสุดท้าย"; "Scene.Discovery.Intro" = "นี่คือโพสต์ที่กำลังได้รับความสนใจในมุมของ Mastodon ของคุณ"; -"Scene.Discovery.Tabs.Community" = "Community"; +"Scene.Discovery.Tabs.Community" = "ชุมชน"; "Scene.Discovery.Tabs.ForYou" = "สำหรับคุณ"; "Scene.Discovery.Tabs.Hashtags" = "แฮชแท็ก"; "Scene.Discovery.Tabs.News" = "ข่าว"; @@ -258,7 +258,7 @@ "Scene.Register.Error.Item.Reason" = "เหตุผล"; "Scene.Register.Error.Item.Username" = "ชื่อผู้ใช้"; "Scene.Register.Error.Reason.Accepted" = "ต้องยอมรับ %@"; -"Scene.Register.Error.Reason.Blank" = "ต้องมี %@"; +"Scene.Register.Error.Reason.Blank" = "ต้องการ %@"; "Scene.Register.Error.Reason.Blocked" = "%@ มีผู้ให้บริการอีเมลที่ไม่ได้รับอนุญาต"; "Scene.Register.Error.Reason.Inclusion" = "%@ ไม่ใช่ค่าที่รองรับ"; "Scene.Register.Error.Reason.Invalid" = "%@ ไม่ถูกต้อง"; @@ -278,9 +278,9 @@ "Scene.Register.Input.Password.Accessibility.Checked" = "กาเครื่องหมายแล้ว"; "Scene.Register.Input.Password.Accessibility.Unchecked" = "ไม่ได้กาเครื่องหมาย"; "Scene.Register.Input.Password.CharacterLimit" = "8 ตัวอักษร"; -"Scene.Register.Input.Password.Hint" = "รหัสผ่านของคุณต้องมีอย่างน้อยแปดตัวอักษร"; +"Scene.Register.Input.Password.Hint" = "รหัสผ่านของคุณจำเป็นต้องมีอย่างน้อยแปดตัวอักษร"; "Scene.Register.Input.Password.Placeholder" = "รหัสผ่าน"; -"Scene.Register.Input.Password.Require" = "รหัสผ่านของคุณต้องมีอย่างน้อย:"; +"Scene.Register.Input.Password.Require" = "รหัสผ่านของคุณจำเป็นต้องมีอย่างน้อย:"; "Scene.Register.Input.Username.DuplicatePrompt" = "ชื่อผู้ใช้นี้ถูกใช้ไปแล้ว"; "Scene.Register.Input.Username.Placeholder" = "ชื่อผู้ใช้"; "Scene.Register.Title" = "มาตั้งค่าของคุณใน %@ กันเลย"; @@ -312,16 +312,16 @@ "Scene.Search.Searching.Segment.People" = "ผู้คน"; "Scene.Search.Searching.Segment.Posts" = "โพสต์"; "Scene.Search.Title" = "ค้นหา"; -"Scene.ServerPicker.Button.Category.Academia" = "วิชาการ"; +"Scene.ServerPicker.Button.Category.Academia" = "สถาบันการศึกษา"; "Scene.ServerPicker.Button.Category.Activism" = "กิจกรรมเพื่อการเปลี่ยนแปลง"; "Scene.ServerPicker.Button.Category.All" = "ทั้งหมด"; "Scene.ServerPicker.Button.Category.AllAccessiblityDescription" = "หมวดหมู่: ทั้งหมด"; "Scene.ServerPicker.Button.Category.Art" = "ศิลปะ"; "Scene.ServerPicker.Button.Category.Food" = "อาหาร"; -"Scene.ServerPicker.Button.Category.Furry" = "furry"; +"Scene.ServerPicker.Button.Category.Furry" = "สัตว์ขนยาว"; "Scene.ServerPicker.Button.Category.Games" = "เกม"; "Scene.ServerPicker.Button.Category.General" = "ทั่วไป"; -"Scene.ServerPicker.Button.Category.Journalism" = "การเขียนข่าว"; +"Scene.ServerPicker.Button.Category.Journalism" = "วารสารศาสตร์"; "Scene.ServerPicker.Button.Category.Lgbt" = "lgbt"; "Scene.ServerPicker.Button.Category.Music" = "ดนตรี"; "Scene.ServerPicker.Button.Category.Regional" = "ภูมิภาค"; @@ -331,13 +331,13 @@ "Scene.ServerPicker.EmptyState.BadNetwork" = "มีบางอย่างผิดพลาดขณะโหลดข้อมูล ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ"; "Scene.ServerPicker.EmptyState.FindingServers" = "กำลังค้นหาเซิร์ฟเวอร์ที่พร้อมใช้งาน..."; "Scene.ServerPicker.EmptyState.NoResults" = "ไม่มีผลลัพธ์"; -"Scene.ServerPicker.Input.Placeholder" = "ค้นหาชุมชน"; +"Scene.ServerPicker.Input.Placeholder" = "ค้นหาเซิร์ฟเวอร์"; "Scene.ServerPicker.Label.Category" = "หมวดหมู่"; "Scene.ServerPicker.Label.Language" = "ภาษา"; "Scene.ServerPicker.Label.Users" = "ผู้ใช้"; -"Scene.ServerPicker.Subtitle" = "เลือกชุมชนตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ"; -"Scene.ServerPicker.SubtitleExtend" = "เลือกชุมชนตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละชุมชนดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง"; -"Scene.ServerPicker.Title" = "Mastodon ประกอบด้วยผู้ใช้ในชุมชนต่าง ๆ"; +"Scene.ServerPicker.Subtitle" = "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ"; +"Scene.ServerPicker.SubtitleExtend" = "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง"; +"Scene.ServerPicker.Title" = "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ"; "Scene.ServerRules.Button.Confirm" = "ฉันเห็นด้วย"; "Scene.ServerRules.PrivacyPolicy" = "นโยบายความเป็นส่วนตัว"; "Scene.ServerRules.Prompt" = "เมื่อคุณดำเนินการต่อ คุณอยู่ภายใต้เงื่อนไขการให้บริการและนโยบายความเป็นส่วนตัวสำหรับ %@"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings index 9bee4db1..887fa064 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings @@ -201,7 +201,7 @@ yüklenemiyor."; "Scene.ConfirmEmail.Subtitle" = "Hesabınızı doğrulamak için size e-postayla gönderdiğimiz bağlantıya dokunun."; "Scene.ConfirmEmail.Title" = "Son bir şey."; "Scene.Discovery.Intro" = "Bunlar, Mastodon'un köşesinde ilgi çeken gönderilerdir."; -"Scene.Discovery.Tabs.Community" = "Community"; +"Scene.Discovery.Tabs.Community" = "Topluluk"; "Scene.Discovery.Tabs.ForYou" = "Senin İçin"; "Scene.Discovery.Tabs.Hashtags" = "Etiketler"; "Scene.Discovery.Tabs.News" = "Haberler"; @@ -356,7 +356,7 @@ yüklenemiyor."; "Scene.Settings.Section.LookAndFeel.Light" = "Açık"; "Scene.Settings.Section.LookAndFeel.ReallyDark" = "Gerçek Koyu"; "Scene.Settings.Section.LookAndFeel.SortaDark" = "Hafif Koyu"; -"Scene.Settings.Section.LookAndFeel.Title" = "Look and Feel"; +"Scene.Settings.Section.LookAndFeel.Title" = "Görünüm"; "Scene.Settings.Section.LookAndFeel.UseSystem" = "Sistem İle Aynı"; "Scene.Settings.Section.Notifications.Boosts" = "Gönderimi yeniden paylaştığında"; "Scene.Settings.Section.Notifications.Favorites" = "Gönderimi favorilerine eklediğinde"; From 7f1b3188de8e3d4b9165ea4fea290185da8a1178 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 16:09:52 +0800 Subject: [PATCH 057/102] feat: add report actions --- Mastodon.xcodeproj/project.pbxproj | 102 ++++----- .../xcschemes/xcschememanagement.plist | 6 +- .../ReportResult/ReportResultView.swift | 206 ++++++++++++++++++ .../ReportResultViewController.swift | 118 +++++++--- .../ReportResultViewModel+Diffable.swift | 37 ---- .../ReportResult/ReportResultViewModel.swift | 33 ++- 6 files changed, 376 insertions(+), 126 deletions(-) create mode 100644 Mastodon/Scene/Report/ReportResult/ReportResultView.swift delete mode 100644 Mastodon/Scene/Report/ReportResult/ReportResultViewModel+Diffable.swift diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index b9105dcd..59b29381 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -410,6 +410,7 @@ DB7A9F932818F33C0016AF98 /* MastodonServerRulesViewController+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB7A9F922818F33C0016AF98 /* MastodonServerRulesViewController+Debug.swift */; }; DB7F48452620241000796008 /* ProfileHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB7F48442620241000796008 /* ProfileHeaderViewModel.swift */; }; DB8190C62601FF0400020C08 /* AttachmentContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB8190C52601FF0400020C08 /* AttachmentContainerView.swift */; }; + DB848E33282B62A800A302CC /* ReportResultView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB848E32282B62A800A302CC /* ReportResultView.swift */; }; DB852D1926FAEB6B00FC9D81 /* SidebarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB852D1826FAEB6B00FC9D81 /* SidebarViewController.swift */; }; DB852D1C26FB021500FC9D81 /* RootSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB852D1B26FB021500FC9D81 /* RootSplitViewController.swift */; }; DB852D1F26FB037800FC9D81 /* SidebarViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB852D1E26FB037800FC9D81 /* SidebarViewModel.swift */; }; @@ -451,7 +452,6 @@ DB98EB6027B10E150082E365 /* ReportCommentTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB5F27B10E150082E365 /* ReportCommentTableViewCell.swift */; }; DB98EB6227B215EB0082E365 /* ReportResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB6127B215EB0082E365 /* ReportResultViewController.swift */; }; DB98EB6527B216500082E365 /* ReportResultViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB6427B216500082E365 /* ReportResultViewModel.swift */; }; - DB98EB6727B216560082E365 /* ReportResultViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB6627B216560082E365 /* ReportResultViewModel+Diffable.swift */; }; DB98EB6927B21A7C0082E365 /* ReportResultActionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB6827B21A7C0082E365 /* ReportResultActionTableViewCell.swift */; }; DB98EB6B27B243470082E365 /* SettingsAppearanceTableViewCell+ViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB98EB6A27B243470082E365 /* SettingsAppearanceTableViewCell+ViewModel.swift */; }; DB9A486C26032AC1008B817C /* AttachmentContainerView+EmptyStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB9A486B26032AC1008B817C /* AttachmentContainerView+EmptyStateView.swift */; }; @@ -1173,6 +1173,7 @@ DB8190C52601FF0400020C08 /* AttachmentContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentContainerView.swift; sourceTree = ""; }; DB8481142788121200BBEABA /* MastodonRegisterTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MastodonRegisterTextFieldTableViewCell.swift; sourceTree = ""; }; DB84811627883C2600BBEABA /* MastodonRegisterPasswordHintTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MastodonRegisterPasswordHintTableViewCell.swift; sourceTree = ""; }; + DB848E32282B62A800A302CC /* ReportResultView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultView.swift; sourceTree = ""; }; DB852D1826FAEB6B00FC9D81 /* SidebarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarViewController.swift; sourceTree = ""; }; DB852D1B26FB021500FC9D81 /* RootSplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootSplitViewController.swift; sourceTree = ""; }; DB852D1E26FB037800FC9D81 /* SidebarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarViewModel.swift; sourceTree = ""; }; @@ -1221,7 +1222,6 @@ DB98EB5F27B10E150082E365 /* ReportCommentTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportCommentTableViewCell.swift; sourceTree = ""; }; DB98EB6127B215EB0082E365 /* ReportResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultViewController.swift; sourceTree = ""; }; DB98EB6427B216500082E365 /* ReportResultViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultViewModel.swift; sourceTree = ""; }; - DB98EB6627B216560082E365 /* ReportResultViewModel+Diffable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportResultViewModel+Diffable.swift"; sourceTree = ""; }; DB98EB6827B21A7C0082E365 /* ReportResultActionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultActionTableViewCell.swift; sourceTree = ""; }; DB98EB6A27B243470082E365 /* SettingsAppearanceTableViewCell+ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SettingsAppearanceTableViewCell+ViewModel.swift"; sourceTree = ""; }; DB9A486B26032AC1008B817C /* AttachmentContainerView+EmptyStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AttachmentContainerView+EmptyStateView.swift"; sourceTree = ""; }; @@ -2909,7 +2909,7 @@ children = ( DB98EB6127B215EB0082E365 /* ReportResultViewController.swift */, DB98EB6427B216500082E365 /* ReportResultViewModel.swift */, - DB98EB6627B216560082E365 /* ReportResultViewModel+Diffable.swift */, + DB848E32282B62A800A302CC /* ReportResultView.swift */, ); path = ReportResult; sourceTree = ""; @@ -3594,23 +3594,23 @@ ); mainGroup = DB427DC925BAA00100D1B89D; packageReferences = ( - DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */, + DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */, 2D61336725C18A4F00CAE157 /* XCRemoteSwiftPackageReference "AlamofireNetworkActivityIndicator" */, DB0140BB25C40D7500F9F3CF /* XCRemoteSwiftPackageReference "CommonOSLog" */, - 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer.git" */, - 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController.git" */, + 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer" */, + 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController" */, DBB525062611EAC0002F1F29 /* XCRemoteSwiftPackageReference "Tabman" */, - DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess.git" */, - DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit.git" */, - DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources.git" */, - DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi.git" */, - DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator.git" */, - DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin.git" */, - DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit.git" */, - DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections.git" */, - DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal.git" */, - DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */, - DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */, + DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */, + DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */, + DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */, + DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */, + DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator" */, + DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin" */, + DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit" */, + DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections" */, + DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal" */, + DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */, + DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */, ); productRefGroup = DB427DD325BAA00100D1B89D /* Products */; projectDirPath = ""; @@ -3951,6 +3951,7 @@ 5DDDF1932617442700311060 /* Mastodon+Entity+Account.swift in Sources */, DB63F767279A5EB300455B82 /* NotificationTimelineViewModel.swift in Sources */, 2D607AD826242FC500B70763 /* NotificationViewModel.swift in Sources */, + DB848E33282B62A800A302CC /* ReportResultView.swift in Sources */, DBABE3EC25ECAC4B00879EE5 /* WelcomeIllustrationView.swift in Sources */, DB564BD3269F3B35001E39A7 /* StatusFilterService.swift in Sources */, DB0FCB9C27980AB6006C02E2 /* HashtagTimelineViewController+DataSourceProvider.swift in Sources */, @@ -4126,7 +4127,6 @@ DB3E6FEF2806D82600B035AE /* DiscoveryNewsViewModel.swift in Sources */, DBBF1DCB2652539E00E5B703 /* AutoCompleteItem.swift in Sources */, 2DA6054725F716A2006356F9 /* PlaybackState.swift in Sources */, - DB98EB6727B216560082E365 /* ReportResultViewModel+Diffable.swift in Sources */, DBC7A672260C897100E57475 /* StatusContentWarningEditorView.swift in Sources */, DB025B95278D6530002F581E /* Persistence+MastodonUser.swift in Sources */, DB3667A6268AE2620027D07F /* ComposeStatusPollSection.swift in Sources */, @@ -5663,7 +5663,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer.git" */ = { + 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/vtourraine/ThirdPartyMailer.git"; requirement = { @@ -5679,7 +5679,7 @@ minimumVersion = 3.1.0; }; }; - 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController.git" */ = { + 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/TimOliver/TOCropViewController.git"; requirement = { @@ -5695,7 +5695,7 @@ minimumVersion = 0.1.1; }; }; - DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit.git" */ = { + DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/TwidereProject/MetaTextKit.git"; requirement = { @@ -5703,7 +5703,7 @@ version = 2.2.3; }; }; - DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin.git" */ = { + DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/kean/Nuke-FLAnimatedImage-Plugin.git"; requirement = { @@ -5711,7 +5711,7 @@ minimumVersion = 8.0.0; }; }; - DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */ = { + DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/Alamofire/AlamofireImage.git"; requirement = { @@ -5719,7 +5719,7 @@ minimumVersion = 4.1.0; }; }; - DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */ = { + DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/Alamofire/Alamofire.git"; requirement = { @@ -5727,7 +5727,7 @@ minimumVersion = 5.4.0; }; }; - DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections.git" */ = { + DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/apple/swift-collections.git"; requirement = { @@ -5735,7 +5735,7 @@ minimumVersion = 0.0.5; }; }; - DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess.git" */ = { + DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/kishikawakatsumi/KeychainAccess.git"; requirement = { @@ -5743,7 +5743,7 @@ minimumVersion = 4.2.2; }; }; - DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */ = { + DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/siteline/SwiftUI-Introspect.git"; requirement = { @@ -5751,7 +5751,7 @@ minimumVersion = 0.1.4; }; }; - DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal.git" */ = { + DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/slackhq/PanModal.git"; requirement = { @@ -5759,7 +5759,7 @@ minimumVersion = 1.2.7; }; }; - DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit.git" */ = { + DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/ra1028/DifferenceKit.git"; requirement = { @@ -5767,7 +5767,7 @@ version = 1.2.0; }; }; - DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources.git" */ = { + DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/MainasuK/DiffableDataSources.git"; requirement = { @@ -5775,7 +5775,7 @@ kind = branch; }; }; - DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi.git" */ = { + DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/cezheng/Fuzi.git"; requirement = { @@ -5791,7 +5791,7 @@ minimumVersion = 2.11.0; }; }; - DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator.git" */ = { + DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/MainasuK/FPSIndicator.git"; requirement = { @@ -5804,7 +5804,7 @@ /* Begin XCSwiftPackageProductDependency section */ 2D5981B925E4D7F8000FB903 /* ThirdPartyMailer */ = { isa = XCSwiftPackageProductDependency; - package = 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer.git" */; + package = 2D5981B825E4D7F8000FB903 /* XCRemoteSwiftPackageReference "ThirdPartyMailer" */; productName = ThirdPartyMailer; }; 2D61336825C18A4F00CAE157 /* AlamofireNetworkActivityIndicator */ = { @@ -5814,12 +5814,12 @@ }; 2D939AC725EE14620076FA61 /* CropViewController */ = { isa = XCSwiftPackageProductDependency; - package = 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController.git" */; + package = 2D939AC625EE14620076FA61 /* XCRemoteSwiftPackageReference "TOCropViewController" */; productName = CropViewController; }; DB02EA0A280D180D00E751C5 /* KeychainAccess */ = { isa = XCSwiftPackageProductDependency; - package = DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess.git" */; + package = DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */; productName = KeychainAccess; }; DB3EA8F4281BB65200598866 /* MastodonSDK */ = { @@ -5828,17 +5828,17 @@ }; DB3EA8FB281BBAE100598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; productName = AlamofireImage; }; DB3EA8FD281BBAF200598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; productName = Alamofire; }; DB3EA8FF281BBB1D00598866 /* MetaTextKit */ = { isa = XCSwiftPackageProductDependency; - package = DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit.git" */; + package = DB01E23126A98F0900C3965B /* XCRemoteSwiftPackageReference "MetaTextKit" */; productName = MetaTextKit; }; DB3EA901281BBD5D00598866 /* CommonOSLog */ = { @@ -5848,12 +5848,12 @@ }; DB3EA903281BBD9400598866 /* Introspect */ = { isa = XCSwiftPackageProductDependency; - package = DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */; + package = DB8D8E2D28192EED009FD90F /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */; productName = Introspect; }; DB3EA905281BBE8200598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; productName = AlamofireImage; }; DB3EA907281BBE8200598866 /* AlamofireNetworkActivityIndicator */ = { @@ -5863,12 +5863,12 @@ }; DB3EA909281BBE8200598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; productName = Alamofire; }; DB3EA90B281BBE9600598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; productName = AlamofireImage; }; DB3EA90D281BBE9600598866 /* AlamofireNetworkActivityIndicator */ = { @@ -5878,42 +5878,42 @@ }; DB3EA90F281BBE9600598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; productName = Alamofire; }; DB3EA911281BBEA800598866 /* AlamofireImage */ = { isa = XCSwiftPackageProductDependency; - package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage.git" */; + package = DB3D0FF125BAA61700EAA174 /* XCRemoteSwiftPackageReference "AlamofireImage" */; productName = AlamofireImage; }; DB3EA913281BBEA800598866 /* Alamofire */ = { isa = XCSwiftPackageProductDependency; - package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire.git" */; + package = DB3EA8F6281BBA4C00598866 /* XCRemoteSwiftPackageReference "Alamofire" */; productName = Alamofire; }; DB552D4E26BBD10C00E481F6 /* OrderedCollections */ = { isa = XCSwiftPackageProductDependency; - package = DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections.git" */; + package = DB552D4D26BBD10C00E481F6 /* XCRemoteSwiftPackageReference "swift-collections" */; productName = OrderedCollections; }; DBA5A52E26F07ED800CACBAA /* PanModal */ = { isa = XCSwiftPackageProductDependency; - package = DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal.git" */; + package = DBA5A52D26F07ED800CACBAA /* XCRemoteSwiftPackageReference "PanModal" */; productName = PanModal; }; DBAC6482267D0B21007FE9FD /* DifferenceKit */ = { isa = XCSwiftPackageProductDependency; - package = DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit.git" */; + package = DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */; productName = DifferenceKit; }; DBAC649D267DFE43007FE9FD /* DiffableDataSources */ = { isa = XCSwiftPackageProductDependency; - package = DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources.git" */; + package = DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */; productName = DiffableDataSources; }; DBAC64A0267E6D02007FE9FD /* Fuzi */ = { isa = XCSwiftPackageProductDependency; - package = DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi.git" */; + package = DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */; productName = Fuzi; }; DBB525072611EAC0002F1F29 /* Tabman */ = { @@ -5923,7 +5923,7 @@ }; DBF7A0FB26830C33004176A2 /* FPSIndicator */ = { isa = XCSwiftPackageProductDependency; - package = DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator.git" */; + package = DBF7A0FA26830C33004176A2 /* XCRemoteSwiftPackageReference "FPSIndicator" */; productName = FPSIndicator; }; /* End XCSwiftPackageProductDependency section */ diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index 3d2d4b72..66a7b7bd 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -114,7 +114,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 27 + 22 MastodonIntents.xcscheme_^#shared#^_ @@ -129,12 +129,12 @@ NotificationService.xcscheme_^#shared#^_ orderHint - 29 + 20 ShareActionExtension.xcscheme_^#shared#^_ orderHint - 28 + 21 SuppressBuildableAutocreation diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultView.swift b/Mastodon/Scene/Report/ReportResult/ReportResultView.swift new file mode 100644 index 00000000..aa063ac2 --- /dev/null +++ b/Mastodon/Scene/Report/ReportResult/ReportResultView.swift @@ -0,0 +1,206 @@ +// +// ReportResultView.swift +// Mastodon +// +// Created by MainasuK on 2022-5-11. +// + +import UIKit +import SwiftUI +import MastodonLocalization +import MastodonSDK +import MastodonUI +import MastodonAsset +import CoreDataStack + +struct ReportResultView: View { + + @ObservedObject var viewModel: ReportResultViewModel + + var avatarView: some View { + HStack { + Spacer() + ZStack { + AnimatedImage(imageURL: viewModel.avatarURL) + .frame(width: 106, height: 106, alignment: .center) + .background(Color(UIColor.systemFill)) + .cornerRadius(27) + Text(L10n.Scene.Report.reported) + .font(Font(FontFamily.Staatliches.regular.font(size: 49) as CTFont)) + .foregroundColor(Color(Asset.Scene.Report.reportBanner.color)) + .padding(EdgeInsets(top: 0, leading: 10, bottom: -2, trailing: 10)) + .background(Color(viewModel.backgroundColor)) + .cornerRadius(7) + .padding(7) + .background(Color(Asset.Scene.Report.reportBanner.color)) + .cornerRadius(12) + .rotationEffect(.degrees(-8)) + .offset(x: 0, y: -5) + } + Spacer() + } + .padding() + } + + // TODO: i18n + var body: some View { + ScrollView(.vertical) { + HStack { + VStack(alignment: .leading, spacing: 8) { + Text(viewModel.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 28, weight: .bold)) as CTFont)) + avatarView + Text(verbatim: "While we review this, you can take action against @\(viewModel.username)") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + } + Spacer() + } + .padding() + + VStack(spacing: 32) { + // Follow + VStack(alignment: .leading, spacing: 4) { + Text("Unfollow @\(viewModel.username)") + .font(.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + ReportActionButton( + action: { + viewModel.followActionPublisher.send() + }, + title: viewModel.relationshipViewModel.isFollowing ? "Unfollow" : "Unfollowed", + isBusy: viewModel.isRequestFollow + ) + } + + // Mute + VStack(alignment: .leading, spacing: 4) { + Text("Mute @\(viewModel.username)") + .font(.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + Text(verbatim: "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .subheadline).scaledFont(for: .systemFont(ofSize: 13, weight: .regular)) as CTFont)) + ReportActionButton( + action: { + viewModel.muteActionPublisher.send() + }, + title: viewModel.relationshipViewModel.isMuting ? L10n.Common.Controls.Friendship.muted : L10n.Common.Controls.Friendship.mute, + isBusy: viewModel.isRequestMute + ) + } + + // Block + VStack(alignment: .leading, spacing: 4) { + Text("Block @\(viewModel.username)") + .font(.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + Text(verbatim: "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked.") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .subheadline).scaledFont(for: .systemFont(ofSize: 13, weight: .regular)) as CTFont)) + ReportActionButton( + action: { + viewModel.blockActionPublisher.send() + }, + title: viewModel.relationshipViewModel.isBlocking ? L10n.Common.Controls.Friendship.blocked : L10n.Common.Controls.Friendship.block, + isBusy: viewModel.isRequestBlock + ) + } + } + .padding() + + Spacer() + .frame(minHeight: viewModel.bottomPaddingHeight) + } + .background( + Color(viewModel.backgroundColor) + ) + } + +} + +struct ReportActionButton: View { + + var action: () -> Void + var title: String + var isBusy: Bool + + var body: some View { + Button { + action() + } label: { + ZStack { + ProgressView() + .opacity(isBusy ? 1 : 0) + Text(title) + .font(.headline) + .foregroundColor(Color(Asset.Colors.Label.primary.color)) + .opacity(isBusy ? 0 : 1) + } + .frame(maxWidth: .infinity) + .padding() + .background(Color(UIColor.systemBackground)) + .cornerRadius(10) + .shadow(color: .black.opacity(0.1), radius: 2, x: 0, y: 1) + } + } + +} + +#if DEBUG +struct ReportResultView_Previews: PreviewProvider { + + static var viewModel: ReportResultViewModel { + let context = AppContext.shared + let request = MastodonUser.sortedFetchRequest + request.fetchLimit = 1 + + let property = MastodonUser.Property( + identifier: "1", + domain: "domain.com", + id: "1", + acct: "@user@domain.com", + username: "user", + displayName: "User", + avatar: "", + avatarStatic: "", + header: "", + headerStatic: "", + note: "", + url: "", + statusesCount: Int64(100), + followingCount: Int64(100), + followersCount: Int64(100), + locked: false, + bot: false, + suspended: false, + createdAt: Date(), + updatedAt: Date(), + emojis: [], + fields: [] + ) + let user = try! context.managedObjectContext.fetch(request).first ?? MastodonUser.insert(into: context.managedObjectContext, property: property) + + return ReportResultViewModel( + context: context, + user: .init(objectID: user.objectID) + ) + } + static var previews: some View { + Group { + NavigationView { + ReportResultView(viewModel: viewModel) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + NavigationView { + ReportResultView(viewModel: viewModel) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + .preferredColorScheme(.dark) + } + } +} +#endif diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift b/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift index 1073c21a..957760f3 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultViewController.swift @@ -7,6 +7,7 @@ import os.log import UIKit +import SwiftUI import Combine import MastodonAsset import MastodonLocalization @@ -20,29 +21,14 @@ final class ReportResultViewController: UIViewController, NeedsDependency, Repor weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } } var viewModel: ReportResultViewModel! - + private(set) lazy var reportResultView = ReportResultView(viewModel: viewModel) + lazy var doneBarButtonItem = UIBarButtonItem( barButtonSystemItem: .done, target: self, action: #selector(ReportResultViewController.doneBarButtonItemDidPressed(_:)) ) - let tableView: UITableView = { - let tableView = ControlContainableTableView() - tableView.backgroundColor = Asset.Scene.Report.background.color - tableView.rowHeight = UITableView.automaticDimension - tableView.separatorStyle = .none - tableView.backgroundColor = .clear - tableView.keyboardDismissMode = .onDrag - tableView.allowsMultipleSelection = true - if #available(iOS 15.0, *) { - tableView.sectionHeaderTopPadding = .leastNonzeroMagnitude - } else { - // Fallback on earlier versions - } - return tableView - }() - let navigationActionView: NavigationActionView = { let navigationActionView = NavigationActionView() navigationActionView.backgroundColor = Asset.Scene.Onboarding.background.color @@ -68,20 +54,18 @@ extension ReportResultViewController { navigationItem.hidesBackButton = true navigationItem.rightBarButtonItem = doneBarButtonItem - tableView.translatesAutoresizingMaskIntoConstraints = false - view.addSubview(tableView) + let hostingViewController = UIHostingController(rootView: reportResultView) + hostingViewController.view.preservesSuperviewLayoutMargins = true + addChild(hostingViewController) + hostingViewController.view.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(hostingViewController.view) NSLayoutConstraint.activate([ - tableView.topAnchor.constraint(equalTo: view.topAnchor), - tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + hostingViewController.view.topAnchor.constraint(equalTo: view.topAnchor), + hostingViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), + hostingViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), + hostingViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor), ]) - tableView.delegate = self - viewModel.setupDiffableDataSource( - tableView: tableView - ) - navigationActionView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(navigationActionView) defer { @@ -97,13 +81,84 @@ extension ReportResultViewController { .observe(\.bounds, options: [.initial, .new]) { [weak self] navigationActionView, _ in guard let self = self else { return } let inset = navigationActionView.frame.height - self.tableView.contentInset.bottom = inset - self.tableView.verticalScrollIndicatorInsets.bottom = inset + self.viewModel.bottomPaddingHeight = inset } .store(in: &observations) navigationActionView.nextButton.addTarget(self, action: #selector(ReportSupplementaryViewController.nextButtonDidPressed(_:)), for: .touchUpInside) + + viewModel.followActionPublisher + .throttle(for: 0.3, scheduler: DispatchQueue.main, latest: false) + .sink { [weak self] in + guard let self = self else { return } + guard let authenticationBox = self.context.authenticationService.activeMastodonAuthenticationBox.value else { + return + } + Task { @MainActor in + guard !self.viewModel.isRequestFollow else { return } + self.viewModel.isRequestFollow = true + do { + try await DataSourceFacade.responseToUserFollowAction( + dependency: self, + user: self.viewModel.user, + authenticationBox: authenticationBox + ) + } catch { + // handle error + } + self.viewModel.isRequestFollow = false + } // end Task + } + .store(in: &disposeBag) + + viewModel.muteActionPublisher + .throttle(for: 0.3, scheduler: DispatchQueue.main, latest: false) + .sink { [weak self] in + guard let self = self else { return } + guard let authenticationBox = self.context.authenticationService.activeMastodonAuthenticationBox.value else { + return + } + Task { @MainActor in + guard !self.viewModel.isRequestMute else { return } + self.viewModel.isRequestMute = true + do { + try await DataSourceFacade.responseToUserMuteAction( + dependency: self, + user: self.viewModel.user, + authenticationBox: authenticationBox + ) + } catch { + // handle error + } + self.viewModel.isRequestMute = false + } // end Task + } + .store(in: &disposeBag) + + viewModel.blockActionPublisher + .throttle(for: 0.3, scheduler: DispatchQueue.main, latest: false) + .sink { [weak self] in + guard let self = self else { return } + guard let authenticationBox = self.context.authenticationService.activeMastodonAuthenticationBox.value else { + return + } + Task { @MainActor in + guard !self.viewModel.isRequestBlock else { return } + self.viewModel.isRequestBlock = true + do { + try await DataSourceFacade.responseToUserBlockAction( + dependency: self, + user: self.viewModel.user, + authenticationBox: authenticationBox + ) + } catch { + // handle error + } + self.viewModel.isRequestBlock = false + } // end Task + } + .store(in: &disposeBag) } } @@ -120,9 +175,6 @@ extension ReportResultViewController { } -// MARK: - UITableViewDelegate -extension ReportResultViewController: UITableViewDelegate { } - // MARK: - PanPopableViewController extension ReportResultViewController: PanPopableViewController { var isPanPopable: Bool { false } diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel+Diffable.swift b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel+Diffable.swift deleted file mode 100644 index a9c1272d..00000000 --- a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel+Diffable.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// ReportResultViewModel+Diffable.swift -// Mastodon -// -// Created by MainasuK on 2022-2-8. -// - -import UIKit -import Combine -import CoreData -import CoreDataStack -import MastodonAsset -import MastodonLocalization - -extension ReportResultViewModel { - - static let reportItemHeaderContext = ReportItem.HeaderContext( - primaryLabelText: "Thanks for reporting, we’ll look into this.", - secondaryLabelText: "" - ) - - func setupDiffableDataSource( - tableView: UITableView - ) { - diffableDataSource = ReportSection.diffableDataSource( - tableView: tableView, - context: context, - configuration: ReportSection.Configuration() - ) - - var snapshot = NSDiffableDataSourceSnapshot() - snapshot.appendSections([.main]) - snapshot.appendItems([.header(context: ReportResultViewModel.reportItemHeaderContext)], toSection: .main) - snapshot.appendItems([.result(record: user)], toSection: .main) - diffableDataSource?.apply(snapshot) - } -} diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift index 79fec493..8617f26f 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift @@ -12,8 +12,10 @@ import Foundation import MastodonSDK import os.log import UIKit +import MastodonAsset +import MastodonUI -class ReportResultViewModel { +class ReportResultViewModel: ObservableObject { var disposeBag = Set() @@ -21,8 +23,22 @@ class ReportResultViewModel { let context: AppContext let user: ManagedObjectRecord + @Published var headline = "Thanks for reporting, we’ll look into this." + @Published var bottomPaddingHeight: CGFloat = .zero + @Published var backgroundColor: UIColor = Asset.Scene.Report.background.color + + @Published var isRequestFollow = false + @Published var isRequestMute = false + @Published var isRequestBlock = false + // output - var diffableDataSource: UITableViewDiffableDataSource? + @Published var avatarURL: URL? + @Published var username: String = "" + + let relationshipViewModel = RelationshipViewModel() + let muteActionPublisher = PassthroughSubject() + let followActionPublisher = PassthroughSubject() + let blockActionPublisher = PassthroughSubject() init( context: AppContext, @@ -31,6 +47,19 @@ class ReportResultViewModel { self.context = context self.user = user // end init + + Task { @MainActor in + guard let user = user.object(in: context.managedObjectContext) else { return } + guard let me = context.authenticationService.activeMastodonAuthenticationBox.value?.authenticationRecord.object(in: context.managedObjectContext)?.user else { return } + self.relationshipViewModel.user = user + self.relationshipViewModel.me = me + + self.avatarURL = user.avatarImageURL() + self.username = user.acctWithDomain + + } // end Task } } + + From 16dc0adccd625fa479673dfb489b1dc5d2aa1d85 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 16:26:57 +0800 Subject: [PATCH 058/102] feat: add dislike report path --- .../Report/Report/ReportViewController.swift | 26 ++++++++++++++--- .../ReportResult/ReportResultView.swift | 28 +++++++++++++------ .../ReportResult/ReportResultViewModel.swift | 9 ++++-- 3 files changed, 49 insertions(+), 14 deletions(-) diff --git a/Mastodon/Scene/Report/Report/ReportViewController.swift b/Mastodon/Scene/Report/Report/ReportViewController.swift index 1fa8428e..1fe1a720 100644 --- a/Mastodon/Scene/Report/Report/ReportViewController.swift +++ b/Mastodon/Scene/Report/Report/ReportViewController.swift @@ -91,8 +91,16 @@ extension ReportViewController: ReportReasonViewControllerDelegate { guard let reason = viewController.viewModel.selectReason else { return } switch reason { case .dislike: - // TODO: - break + let reportResultViewModel = ReportResultViewModel( + context: context, + user: viewModel.user, + isReported: false + ) + coordinator.present( + scene: .reportResult(viewModel: reportResultViewModel), + from: self, + transition: .show + ) case .violateRule: coordinator.present( scene: .reportServerRules(viewModel: viewModel.reportServerRulesViewModel), @@ -113,7 +121,16 @@ extension ReportViewController: ReportReasonViewControllerDelegate { extension ReportViewController: ReportServerRulesViewControllerDelegate { func reportServerRulesViewController(_ viewController: ReportServerRulesViewController, nextButtonPressed button: UIButton) { if viewController.viewModel.isDislike { - // TODO: + let reportResultViewModel = ReportResultViewModel( + context: context, + user: viewModel.user, + isReported: false + ) + coordinator.present( + scene: .reportResult(viewModel: reportResultViewModel), + from: self, + transition: .show + ) } else if viewController.viewModel.selectRule != nil { coordinator.present( scene: .reportStatus(viewModel: viewModel.reportStatusViewModel), @@ -163,7 +180,8 @@ extension ReportViewController: ReportSupplementaryViewControllerDelegate { let reportResultViewModel = ReportResultViewModel( context: context, - user: viewModel.user + user: viewModel.user, + isReported: true ) coordinator.present( diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultView.swift b/Mastodon/Scene/Report/ReportResult/ReportResultView.swift index aa063ac2..dff87e35 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultView.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultView.swift @@ -50,10 +50,16 @@ struct ReportResultView: View { Text(viewModel.headline) .foregroundColor(Color(Asset.Colors.Label.primary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 28, weight: .bold)) as CTFont)) - avatarView - Text(verbatim: "While we review this, you can take action against @\(viewModel.username)") - .foregroundColor(Color(Asset.Colors.Label.secondary.color)) - .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + if viewModel.isReported { + avatarView + Text(verbatim: "While we review this, you can take action against @\(viewModel.username)") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + } else { + Text(verbatim: "When you see something you don’t like on Mastodon, you can remove the person from your experience.") + .foregroundColor(Color(Asset.Colors.Label.secondary.color)) + .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) + } } Spacer() } @@ -151,7 +157,7 @@ struct ReportActionButton: View { #if DEBUG struct ReportResultView_Previews: PreviewProvider { - static var viewModel: ReportResultViewModel { + static func viewModel(isReported: Bool) -> ReportResultViewModel { let context = AppContext.shared let request = MastodonUser.sortedFetchRequest request.fetchLimit = 1 @@ -184,18 +190,24 @@ struct ReportResultView_Previews: PreviewProvider { return ReportResultViewModel( context: context, - user: .init(objectID: user.objectID) + user: .init(objectID: user.objectID), + isReported: isReported ) } static var previews: some View { Group { NavigationView { - ReportResultView(viewModel: viewModel) + ReportResultView(viewModel: viewModel(isReported: true)) .navigationBarTitle(Text("")) .navigationBarTitleDisplayMode(.inline) } NavigationView { - ReportResultView(viewModel: viewModel) + ReportResultView(viewModel: viewModel(isReported: false)) + .navigationBarTitle(Text("")) + .navigationBarTitleDisplayMode(.inline) + } + NavigationView { + ReportResultView(viewModel: viewModel(isReported: true)) .navigationBarTitle(Text("")) .navigationBarTitleDisplayMode(.inline) } diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift index 8617f26f..ea949a90 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift @@ -22,8 +22,11 @@ class ReportResultViewModel: ObservableObject { // input let context: AppContext let user: ManagedObjectRecord + let isReported: Bool - @Published var headline = "Thanks for reporting, we’ll look into this." + var headline: String { + isReported ? "Thanks for reporting, we’ll look into this." : "Don’t want to see this?" + } @Published var bottomPaddingHeight: CGFloat = .zero @Published var backgroundColor: UIColor = Asset.Scene.Report.background.color @@ -42,10 +45,12 @@ class ReportResultViewModel: ObservableObject { init( context: AppContext, - user: ManagedObjectRecord + user: ManagedObjectRecord, + isReported: Bool ) { self.context = context self.user = user + self.isReported = isReported // end init Task { @MainActor in From 741e8d998d0f6b0e0c7443ec8c4ea6482f34e622 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 16:27:32 +0800 Subject: [PATCH 059/102] fix: i18n template --- Localization/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/app.json b/Localization/app.json index 44ff04de..7ac3252f 100644 --- a/Localization/app.json +++ b/Localization/app.json @@ -348,7 +348,7 @@ "logo_label": "Logo Button", "logo_hint": "Tap to scroll to top and tap again to previous location" } - }, + } }, "suggestion_account": { "title": "Find People to Follow", From 92f6b67a63c30178e67a047e6d3728c2c80eacc1 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 16:34:11 +0800 Subject: [PATCH 060/102] feat: add report i18n words --- Localization/app.json | 4 +++- .../mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Localization/app.json b/Localization/app.json index 7ac3252f..8de2dc0b 100644 --- a/Localization/app.json +++ b/Localization/app.json @@ -635,10 +635,12 @@ "step_final": { "dont_want_to_see_this": "Don’t want to see this?", "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", "unfollow_user": "Unfollow %s", "mute_user": "Mute %s", "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", - "Block_domain": "Block %s", + "block_user": "Block %s", "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." } }, diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index 66a7b7bd..8e16cec2 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -114,7 +114,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 22 + 20 MastodonIntents.xcscheme_^#shared#^_ @@ -129,12 +129,12 @@ NotificationService.xcscheme_^#shared#^_ orderHint - 20 + 21 ShareActionExtension.xcscheme_^#shared#^_ orderHint - 21 + 22 SuppressBuildableAutocreation From 2abb0cb0aa59d6e3c6dedf063f63a768b925a64d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:49 +0200 Subject: [PATCH 061/102] New translations app.json (Catalan) --- .../StringsConvertor/input/ca_ES/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ca_ES/app.json b/Localization/StringsConvertor/input/ca_ES/app.json index 9650d66c..252eded0 100644 --- a/Localization/StringsConvertor/input/ca_ES/app.json +++ b/Localization/StringsConvertor/input/ca_ES/app.json @@ -240,7 +240,8 @@ "category": "CATEGORIA" }, "input": { - "placeholder": "Cerca servidors" + "placeholder": "Cerca servidors", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Cercant els servidors disponibles...", @@ -342,7 +343,11 @@ "offline": "Fora de línia", "new_posts": "Veure noves publicacions", "published": "Publicat!", - "Publishing": "S'està publicant..." + "Publishing": "S'està publicant...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Envia Informe", "skip_to_send": "Envia sense comentaris", "text_placeholder": "Escriu o enganxa comentaris addicionals", - "reported": "REPORTAT" + "reported": "REPORTAT", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 87c32d9ceab02b50670870a7b8820f4d477dd600 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:50 +0200 Subject: [PATCH 062/102] New translations app.json (Swedish) --- .../StringsConvertor/input/sv_SE/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/sv_SE/app.json b/Localization/StringsConvertor/input/sv_SE/app.json index e7bdecf1..636e2193 100644 --- a/Localization/StringsConvertor/input/sv_SE/app.json +++ b/Localization/StringsConvertor/input/sv_SE/app.json @@ -240,7 +240,8 @@ "category": "KATEGORI" }, "input": { - "placeholder": "Sök gemenskaper" + "placeholder": "Sök gemenskaper", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Söker tillgängliga servrar...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "Nya inlägg", "published": "Publicerat!", - "Publishing": "Publicerar inlägget..." + "Publishing": "Publicerar inlägget...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Skicka rapport", "skip_to_send": "Skicka utan kommentar", "text_placeholder": "Skriv eller klistra in ytterligare kommentarer", - "reported": "RAPPORTERAD" + "reported": "RAPPORTERAD", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 5cab730558959468d2e1203d4c9f0912a4b44b60 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:51 +0200 Subject: [PATCH 063/102] New translations app.json (Sorani (Kurdish)) --- .../StringsConvertor/input/ckb_IR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ckb_IR/app.json b/Localization/StringsConvertor/input/ckb_IR/app.json index de4aab37..94892431 100644 --- a/Localization/StringsConvertor/input/ckb_IR/app.json +++ b/Localization/StringsConvertor/input/ckb_IR/app.json @@ -240,7 +240,8 @@ "category": "بەش" }, "input": { - "placeholder": "بگەڕێ" + "placeholder": "بگەڕێ", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "ڕاژەکار دەدۆزرێتەوە...", @@ -342,7 +343,11 @@ "offline": "دەرهێڵ", "new_posts": "پۆستە نوێکان ببینە", "published": "بڵاوکرایەوە!", - "Publishing": "پۆستەکە بڵاو دەکرێتەوە..." + "Publishing": "پۆستەکە بڵاو دەکرێتەوە...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "سکاڵاکە بنێرە", "skip_to_send": "بەبێ لێدوان بینێرە", "text_placeholder": "ڕوونکردنەوەی زۆرتر بدە", - "reported": "سکاڵای لێ کرا" + "reported": "سکاڵای لێ کرا", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From a14c51b9e5cc5e69ad4defa4c9212e3c37462d30 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:52 +0200 Subject: [PATCH 064/102] New translations app.json (Turkish) --- .../StringsConvertor/input/tr_TR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/tr_TR/app.json b/Localization/StringsConvertor/input/tr_TR/app.json index 000f79bf..241198c0 100644 --- a/Localization/StringsConvertor/input/tr_TR/app.json +++ b/Localization/StringsConvertor/input/tr_TR/app.json @@ -240,7 +240,8 @@ "category": "KATEGORİ" }, "input": { - "placeholder": "Toplulukları ara" + "placeholder": "Toplulukları ara", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Mevcut sunucular aranıyor...", @@ -342,7 +343,11 @@ "offline": "Çevrimdışı", "new_posts": "Yeni gönderiler gör", "published": "Yayınlandı!", - "Publishing": "Gönderi yayınlanıyor..." + "Publishing": "Gönderi yayınlanıyor...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Raporu Gönder", "skip_to_send": "Yorum yapmadan gönder", "text_placeholder": "Ek yorum yazın veya yapıştırın", - "reported": "RAPORLANDI" + "reported": "RAPORLANDI", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 4c0ce76fabe1855f944382eced4d38aa8fb51f23 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:54 +0200 Subject: [PATCH 065/102] New translations app.json (Galician) --- .../StringsConvertor/input/gl_ES/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/gl_ES/app.json b/Localization/StringsConvertor/input/gl_ES/app.json index 16da9abe..9c2f3f8a 100644 --- a/Localization/StringsConvertor/input/gl_ES/app.json +++ b/Localization/StringsConvertor/input/gl_ES/app.json @@ -240,7 +240,8 @@ "category": "CATEGORÍA" }, "input": { - "placeholder": "Buscar comunidades" + "placeholder": "Buscar comunidades", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Buscando servidores dispoñibles...", @@ -342,7 +343,11 @@ "offline": "Sen conexión", "new_posts": "Novas publicacións", "published": "Publicado!", - "Publishing": "Publicando..." + "Publishing": "Publicando...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Enviar Denuncia", "skip_to_send": "Enviar sen comentarios", "text_placeholder": "Escribe ou pega comentarios adicionais", - "reported": "DENUNCIADO" + "reported": "DENUNCIADO", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 0f70b35da2b52cc64ab8c113d45b906815c8a552 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:55 +0200 Subject: [PATCH 066/102] New translations app.json (Kabyle) --- .../StringsConvertor/input/kab_KAB/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/kab_KAB/app.json b/Localization/StringsConvertor/input/kab_KAB/app.json index 1c73686b..30795293 100644 --- a/Localization/StringsConvertor/input/kab_KAB/app.json +++ b/Localization/StringsConvertor/input/kab_KAB/app.json @@ -240,7 +240,8 @@ "category": "TAGGAYT" }, "input": { - "placeholder": "Nadi timɣiwnin" + "placeholder": "Nadi timɣiwnin", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Tifin n yiqeddacen yellan...", @@ -342,7 +343,11 @@ "offline": "Beṛṛa n tuqqna", "new_posts": "Tissufaɣ timaynutin", "published": "Yettwasuffeɣ!", - "Publishing": "Asuffeɣ tasuffeɣt..." + "Publishing": "Asuffeɣ tasuffeɣt...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Azen aneqis", "skip_to_send": "Azen s war awennit", "text_placeholder": "Aru neɣ senteḍ iwenniten-nniḍen", - "reported": "YETTWAMMEL" + "reported": "YETTWAMMEL", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 05cecd0db32a1bcd232ff912c53f1e1c1e9d5c73 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:56 +0200 Subject: [PATCH 067/102] New translations app.json (Kurmanji (Kurdish)) --- .../StringsConvertor/input/kmr_TR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/kmr_TR/app.json b/Localization/StringsConvertor/input/kmr_TR/app.json index efca992f..d8396680 100644 --- a/Localization/StringsConvertor/input/kmr_TR/app.json +++ b/Localization/StringsConvertor/input/kmr_TR/app.json @@ -240,7 +240,8 @@ "category": "BEŞ" }, "input": { - "placeholder": "Li rajekaran bigere" + "placeholder": "Li rajekaran bigere", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Peydakirina rajekarên berdest...", @@ -342,7 +343,11 @@ "offline": "Derhêl", "new_posts": "Şandiyên nû bibîne", "published": "Hate weşandin!", - "Publishing": "Şandî tê weşandin..." + "Publishing": "Şandî tê weşandin...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Ragihandinê bişîne", "skip_to_send": "Bêyî şirove bişîne", "text_placeholder": "Şiroveyên daxwazkirê binivîsine an jî pê ve bike", - "reported": "HATE RAGIHANDIN" + "reported": "HATE RAGIHANDIN", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 2dac7d0c166f11e7fcaa125c0e7b4ebaedfb6a19 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:57 +0200 Subject: [PATCH 068/102] New translations app.json (Scottish Gaelic) --- .../StringsConvertor/input/gd_GB/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/gd_GB/app.json b/Localization/StringsConvertor/input/gd_GB/app.json index e3ff7c12..4b18ab6d 100644 --- a/Localization/StringsConvertor/input/gd_GB/app.json +++ b/Localization/StringsConvertor/input/gd_GB/app.json @@ -240,7 +240,8 @@ "category": "ROINN-SEÒRSA" }, "input": { - "placeholder": "Lorg frithealaiche no gabh pàirt san fhear agad fhèin…" + "placeholder": "Lorg frithealaiche no gabh pàirt san fhear agad fhèin…", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "A’ lorg nam frithealaichean ri am faighinn…", @@ -342,7 +343,11 @@ "offline": "Far loidhne", "new_posts": "Seall na postaichean ùra", "published": "Chaidh fhoillseachadh!", - "Publishing": "A’ foillseachadh a’ phuist…" + "Publishing": "A’ foillseachadh a’ phuist…", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Cuir an gearan", "skip_to_send": "Cuir gun bheachd ris", "text_placeholder": "Sgrìobh no cuir ann beachdan a bharrachd", - "reported": "CHAIDH GEARAN A DHÈANAMH" + "reported": "CHAIDH GEARAN A DHÈANAMH", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 753065d6fd9ff8d47531d04c7cdef910464ff4c0 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:58 +0200 Subject: [PATCH 069/102] New translations app.json (Welsh) --- .../StringsConvertor/input/cy_GB/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/cy_GB/app.json b/Localization/StringsConvertor/input/cy_GB/app.json index 4d26232c..9297b165 100644 --- a/Localization/StringsConvertor/input/cy_GB/app.json +++ b/Localization/StringsConvertor/input/cy_GB/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From d104fd4d44fd8e873874c020acf6cb377bb5b47b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:47:59 +0200 Subject: [PATCH 070/102] New translations app.json (English, United States) --- .../StringsConvertor/input/en_US/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/en_US/app.json b/Localization/StringsConvertor/input/en_US/app.json index 50512250..8de2dc0b 100644 --- a/Localization/StringsConvertor/input/en_US/app.json +++ b/Localization/StringsConvertor/input/en_US/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 90c04a4efd0798d0e79fb89ee7a81d1b3ae7adc2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:02 +0200 Subject: [PATCH 071/102] New translations app.json (Hindi) --- .../StringsConvertor/input/hi_IN/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/hi_IN/app.json b/Localization/StringsConvertor/input/hi_IN/app.json index b9f99277..6bd6131b 100644 --- a/Localization/StringsConvertor/input/hi_IN/app.json +++ b/Localization/StringsConvertor/input/hi_IN/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 634268e7c755f65198d85b70a6346df333b6d447 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:03 +0200 Subject: [PATCH 072/102] New translations app.json (Spanish, Argentina) --- .../StringsConvertor/input/es_AR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/es_AR/app.json b/Localization/StringsConvertor/input/es_AR/app.json index d5dbafd7..e0e7bbe1 100644 --- a/Localization/StringsConvertor/input/es_AR/app.json +++ b/Localization/StringsConvertor/input/es_AR/app.json @@ -240,7 +240,8 @@ "category": "CATEGORÍA" }, "input": { - "placeholder": "Encontrá un servidor o unite al tuyo…" + "placeholder": "Encontrá un servidor o unite al tuyo…", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Buscando servidores disponibles…", @@ -342,7 +343,11 @@ "offline": "Desconectado", "new_posts": "Ver nuevos mensajes", "published": "¡Enviado!", - "Publishing": "Enviando mensaje…" + "Publishing": "Enviando mensaje…", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Enviar denuncia", "skip_to_send": "Enviar sin comentarios", "text_placeholder": "Escribí o pegá comentarios adicionales", - "reported": "DENUNCIADA" + "reported": "DENUNCIADA", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 69bc666ec69aba44857f2a1545c95b697cc580b2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:04 +0200 Subject: [PATCH 073/102] New translations app.json (Indonesian) --- .../StringsConvertor/input/id_ID/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/id_ID/app.json b/Localization/StringsConvertor/input/id_ID/app.json index 4e75ce92..87c213af 100644 --- a/Localization/StringsConvertor/input/id_ID/app.json +++ b/Localization/StringsConvertor/input/id_ID/app.json @@ -240,7 +240,8 @@ "category": "KATEGORI" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Mencari server yang tersedia...", @@ -342,7 +343,11 @@ "offline": "Luring", "new_posts": "Lihat postingan baru", "published": "Dipublikasikan!", - "Publishing": "Mempublikasikan postingan..." + "Publishing": "Mempublikasikan postingan...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Kirim Laporan", "skip_to_send": "Kirim tanpa komentar", "text_placeholder": "Ketik atau tempel komentar tambahan", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 7a6e2312da43496a450a7f06534c56d08fdc2697 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:05 +0200 Subject: [PATCH 074/102] New translations app.json (Portuguese, Brazilian) --- .../StringsConvertor/input/pt_BR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/pt_BR/app.json b/Localization/StringsConvertor/input/pt_BR/app.json index 77866999..5bb83793 100644 --- a/Localization/StringsConvertor/input/pt_BR/app.json +++ b/Localization/StringsConvertor/input/pt_BR/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 800a1791f3d29a7ed69dbd6f9c07e8f7b8669274 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:07 +0200 Subject: [PATCH 075/102] New translations app.json (Chinese Traditional) --- .../StringsConvertor/input/zh_TW/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/zh_TW/app.json b/Localization/StringsConvertor/input/zh_TW/app.json index 1fd5e2f0..3c2d4313 100644 --- a/Localization/StringsConvertor/input/zh_TW/app.json +++ b/Localization/StringsConvertor/input/zh_TW/app.json @@ -240,7 +240,8 @@ "category": "分類" }, "input": { - "placeholder": "搜尋伺服器" + "placeholder": "搜尋伺服器", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "尋找可用的伺服器...", @@ -342,7 +343,11 @@ "offline": "離線", "new_posts": "檢視最新嘟文", "published": "嘟出去!", - "Publishing": "發表嘟文..." + "Publishing": "發表嘟文...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "傳送檢舉報告", "skip_to_send": "不加入備註並傳送", "text_placeholder": "請輸入或貼上額外的備註", - "reported": "已檢舉" + "reported": "已檢舉", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 35a6f5a0928800b6f7a61219adb577b01492ef14 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:08 +0200 Subject: [PATCH 076/102] New translations app.json (Portuguese) --- .../StringsConvertor/input/pt_PT/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/pt_PT/app.json b/Localization/StringsConvertor/input/pt_PT/app.json index 50512250..8de2dc0b 100644 --- a/Localization/StringsConvertor/input/pt_PT/app.json +++ b/Localization/StringsConvertor/input/pt_PT/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 3497a1423a0d25b0e0601dd9c412b01fb2b47643 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:09 +0200 Subject: [PATCH 077/102] New translations app.json (Italian) --- .../StringsConvertor/input/it_IT/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/it_IT/app.json b/Localization/StringsConvertor/input/it_IT/app.json index 9ba5de28..423ebd10 100644 --- a/Localization/StringsConvertor/input/it_IT/app.json +++ b/Localization/StringsConvertor/input/it_IT/app.json @@ -240,7 +240,8 @@ "category": "CATEGORIA" }, "input": { - "placeholder": "Cerca comunità" + "placeholder": "Cerca comunità", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Ricerca server disponibili...", @@ -342,7 +343,11 @@ "offline": "Non in linea", "new_posts": "Vedi nuovi post", "published": "Pubblicato!", - "Publishing": "Pubblicazione post..." + "Publishing": "Pubblicazione post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Invia segnalazione", "skip_to_send": "Invia senza commento", "text_placeholder": "Digita o incolla commenti aggiuntivi", - "reported": "SEGNALATO" + "reported": "SEGNALATO", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 95879b0478a8c945ee3640b8fff3096d66272fe8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:11 +0200 Subject: [PATCH 078/102] New translations app.json (Dutch) --- .../StringsConvertor/input/nl_NL/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/nl_NL/app.json b/Localization/StringsConvertor/input/nl_NL/app.json index aa43e849..f21f62a9 100644 --- a/Localization/StringsConvertor/input/nl_NL/app.json +++ b/Localization/StringsConvertor/input/nl_NL/app.json @@ -240,7 +240,8 @@ "category": "CATEGORIE" }, "input": { - "placeholder": "Zoek uw server of sluit u bij een nieuwe server aan..." + "placeholder": "Zoek uw server of sluit u bij een nieuwe server aan...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Beschikbare servers zoeken...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "Bekijk nieuwe berichten", "published": "Gepubliceerd!", - "Publishing": "Bericht publiceren..." + "Publishing": "Bericht publiceren...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Stuur rapport", "skip_to_send": "Verstuur zonder opmerkingen", "text_placeholder": "Schrijf of plak aanvullende opmerkingen", - "reported": "Gerapporteerd" + "reported": "Gerapporteerd", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 4609f885a2da19b165c0631d9cf996691be578a1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:12 +0200 Subject: [PATCH 079/102] New translations app.json (Korean) --- .../StringsConvertor/input/ko_KR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ko_KR/app.json b/Localization/StringsConvertor/input/ko_KR/app.json index 294a53bb..9d2fb90d 100644 --- a/Localization/StringsConvertor/input/ko_KR/app.json +++ b/Localization/StringsConvertor/input/ko_KR/app.json @@ -240,7 +240,8 @@ "category": "분류" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "오프라인", "new_posts": "새 글 보기", "published": "게시됨!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "신고 전송", "skip_to_send": "추가설명 없이 보내기", "text_placeholder": "추가 설명을 적거나 붙여넣으세요", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 75cb0cad147fcc5686b5fffba2fef4fc8229d7f7 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:13 +0200 Subject: [PATCH 080/102] New translations app.json (Japanese) --- .../StringsConvertor/input/ja_JP/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ja_JP/app.json b/Localization/StringsConvertor/input/ja_JP/app.json index eff801c5..04d5f015 100644 --- a/Localization/StringsConvertor/input/ja_JP/app.json +++ b/Localization/StringsConvertor/input/ja_JP/app.json @@ -240,7 +240,8 @@ "category": "カテゴリー" }, "input": { - "placeholder": "サーバーを探す" + "placeholder": "サーバーを探す", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "利用可能なサーバーの検索...", @@ -342,7 +343,11 @@ "offline": "オフライン", "new_posts": "新しい投稿を見る", "published": "投稿しました!", - "Publishing": "投稿中..." + "Publishing": "投稿中...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "通報を送信", "skip_to_send": "コメントなしで送信", "text_placeholder": "追加コメントを入力", - "reported": "報告済み" + "reported": "報告済み", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 96f134eec1d6cd90346f7f21e16ddc482e359e02 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:14 +0200 Subject: [PATCH 081/102] New translations app.json (German) --- .../StringsConvertor/input/de_DE/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/de_DE/app.json b/Localization/StringsConvertor/input/de_DE/app.json index 52f35a8d..ddd60144 100644 --- a/Localization/StringsConvertor/input/de_DE/app.json +++ b/Localization/StringsConvertor/input/de_DE/app.json @@ -240,7 +240,8 @@ "category": "KATEGORIE" }, "input": { - "placeholder": "Finde einen Server oder trete deinem eigenen bei..." + "placeholder": "Finde einen Server oder trete deinem eigenen bei...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Verfügbare Server werden gesucht...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "Neue Beiträge anzeigen", "published": "Veröffentlicht!", - "Publishing": "Beitrag wird veröffentlicht..." + "Publishing": "Beitrag wird veröffentlicht...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Meldung abschicken", "skip_to_send": "Ohne Kommentar abschicken", "text_placeholder": "Zusätzliche Kommentare eingeben oder einfügen", - "reported": "GEMELDET" + "reported": "GEMELDET", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From a22e2e56e607014690aeceb90740a2222cf91ecd Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:15 +0200 Subject: [PATCH 082/102] New translations app.json (Danish) --- .../StringsConvertor/input/da_DK/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/da_DK/app.json b/Localization/StringsConvertor/input/da_DK/app.json index 50512250..8de2dc0b 100644 --- a/Localization/StringsConvertor/input/da_DK/app.json +++ b/Localization/StringsConvertor/input/da_DK/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 434414ef4de603a9789b0c7d570fd8246a101e7b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:17 +0200 Subject: [PATCH 083/102] New translations app.json (Arabic) --- .../StringsConvertor/input/ar_SA/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ar_SA/app.json b/Localization/StringsConvertor/input/ar_SA/app.json index 19174618..79953f11 100644 --- a/Localization/StringsConvertor/input/ar_SA/app.json +++ b/Localization/StringsConvertor/input/ar_SA/app.json @@ -240,7 +240,8 @@ "category": "الفئة" }, "input": { - "placeholder": "اِبحَث عن خادِم أو انضم إلى آخر خاص بك..." + "placeholder": "اِبحَث عن خادِم أو انضم إلى آخر خاص بك...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "يجري إيجاد خوادم متوفِّرَة...", @@ -342,7 +343,11 @@ "offline": "غَير مُتَّصِل", "new_posts": "إظهار منشورات جديدة", "published": "تمَّ النَّشر!", - "Publishing": "يَجري نَشر المُشارَكَة..." + "Publishing": "يَجري نَشر المُشارَكَة...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "إرسال البلاغ", "skip_to_send": "إرسال بدون تعليق", "text_placeholder": "اكتب أو الصق تعليقات إضافيَّة", - "reported": "مُبْلَغٌ عَنه" + "reported": "مُبْلَغٌ عَنه", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From ae72ce689d4a8ff0cd9407bfab042f6e9844f2c2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:18 +0200 Subject: [PATCH 084/102] New translations app.json (Spanish) --- .../StringsConvertor/input/es_ES/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/es_ES/app.json b/Localization/StringsConvertor/input/es_ES/app.json index b74b8e5e..614192cb 100644 --- a/Localization/StringsConvertor/input/es_ES/app.json +++ b/Localization/StringsConvertor/input/es_ES/app.json @@ -240,7 +240,8 @@ "category": "CATEGORÍA" }, "input": { - "placeholder": "Encuentra un servidor o únete al tuyo propio..." + "placeholder": "Encuentra un servidor o únete al tuyo propio...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Encontrando servidores disponibles...", @@ -342,7 +343,11 @@ "offline": "Sin Conexión", "new_posts": "Ver nuevas publicaciones", "published": "¡Publicado!", - "Publishing": "Publicación en curso..." + "Publishing": "Publicación en curso...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Enviar Reporte", "skip_to_send": "Enviar sin comentarios", "text_placeholder": "Escribe o pega comentarios adicionales", - "reported": "REPORTADO" + "reported": "REPORTADO", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 20e2cd778421e21c496c6b8092aa0d1e0eae43f4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:19 +0200 Subject: [PATCH 085/102] New translations app.json (French) --- .../StringsConvertor/input/fr_FR/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/fr_FR/app.json b/Localization/StringsConvertor/input/fr_FR/app.json index a3aa9802..ae5f10c8 100644 --- a/Localization/StringsConvertor/input/fr_FR/app.json +++ b/Localization/StringsConvertor/input/fr_FR/app.json @@ -240,7 +240,8 @@ "category": "CATÉGORIE" }, "input": { - "placeholder": "Trouvez un serveur ou rejoignez le vôtre..." + "placeholder": "Trouvez un serveur ou rejoignez le vôtre...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Recherche des serveurs disponibles...", @@ -342,7 +343,11 @@ "offline": "Hors ligne", "new_posts": "Voir les nouvelles publications", "published": "Publié!", - "Publishing": "Publication en cours ..." + "Publishing": "Publication en cours ...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Envoyer le rapport", "skip_to_send": "Envoyer sans commentaire", "text_placeholder": "Tapez ou collez des informations supplémentaires", - "reported": "SIGNALÉ" + "reported": "SIGNALÉ", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 838ba730fe765084dd6dcadaaf5e8617bf9eda38 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:20 +0200 Subject: [PATCH 086/102] New translations app.json (Romanian) --- .../StringsConvertor/input/ro_RO/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ro_RO/app.json b/Localization/StringsConvertor/input/ro_RO/app.json index 3436a94e..3d130a84 100644 --- a/Localization/StringsConvertor/input/ro_RO/app.json +++ b/Localization/StringsConvertor/input/ro_RO/app.json @@ -240,7 +240,8 @@ "category": "CATEGORY" }, "input": { - "placeholder": "Search servers" + "placeholder": "Search servers", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Finding available servers...", @@ -342,7 +343,11 @@ "offline": "Offline", "new_posts": "See new posts", "published": "Published!", - "Publishing": "Publishing post..." + "Publishing": "Publishing post...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Send Report", "skip_to_send": "Send without comment", "text_placeholder": "Type or paste additional comments", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 86ce413972d3fd2758c7dc4ec7525f5908608197 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:21 +0200 Subject: [PATCH 087/102] New translations app.json (Basque) --- .../StringsConvertor/input/eu_ES/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/eu_ES/app.json b/Localization/StringsConvertor/input/eu_ES/app.json index 6905c37a..286c58da 100644 --- a/Localization/StringsConvertor/input/eu_ES/app.json +++ b/Localization/StringsConvertor/input/eu_ES/app.json @@ -240,7 +240,8 @@ "category": "KATEGORIA" }, "input": { - "placeholder": "Bilatu zerbitzari bat edo sortu zurea..." + "placeholder": "Bilatu zerbitzari bat edo sortu zurea...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Erabilgarri dauden zerbitzariak bilatzen...", @@ -342,7 +343,11 @@ "offline": "Konexio gabe", "new_posts": "Ikusi bidal. berriak", "published": "Argitaratua!", - "Publishing": "Bidalketa argitaratzen..." + "Publishing": "Bidalketa argitaratzen...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Bidali salaketa", "skip_to_send": "Bidali iruzkinik gabe", "text_placeholder": "Idatzi edo itsatsi iruzkin gehigarriak", - "reported": "SALATUA" + "reported": "SALATUA", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From c49e5e5b95e560cc7573b3108130c352726883fb Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:22 +0200 Subject: [PATCH 088/102] New translations app.json (Vietnamese) --- .../StringsConvertor/input/vi_VN/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/vi_VN/app.json b/Localization/StringsConvertor/input/vi_VN/app.json index 2a6c1a49..73d3615c 100644 --- a/Localization/StringsConvertor/input/vi_VN/app.json +++ b/Localization/StringsConvertor/input/vi_VN/app.json @@ -240,7 +240,8 @@ "category": "PHÂN LOẠI" }, "input": { - "placeholder": "Tìm máy chủ" + "placeholder": "Tìm máy chủ", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Đang tìm máy chủ hoạt động...", @@ -342,7 +343,11 @@ "offline": "Ngoại tuyến", "new_posts": "Đọc những tút mới", "published": "Đã đăng!", - "Publishing": "Đang đăng tút..." + "Publishing": "Đang đăng tút...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Gửi báo cáo", "skip_to_send": "Gửi không ghi chú", "text_placeholder": "Nhập hoặc bổ sung chú thích", - "reported": "ĐÃ BÁO CÁO" + "reported": "ĐÃ BÁO CÁO", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From a2b9e8f2b5ea07af105ea3eb66c26ace63357b2c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:24 +0200 Subject: [PATCH 089/102] New translations app.json (Thai) --- .../StringsConvertor/input/th_TH/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json index 93d7154b..c162f9f0 100644 --- a/Localization/StringsConvertor/input/th_TH/app.json +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -240,7 +240,8 @@ "category": "หมวดหมู่" }, "input": { - "placeholder": "ค้นหาเซิร์ฟเวอร์" + "placeholder": "ค้นหาเซิร์ฟเวอร์", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "กำลังค้นหาเซิร์ฟเวอร์ที่พร้อมใช้งาน...", @@ -342,7 +343,11 @@ "offline": "ออฟไลน์", "new_posts": "ดูโพสต์ใหม่", "published": "เผยแพร่แล้ว!", - "Publishing": "กำลังเผยแพร่โพสต์..." + "Publishing": "กำลังเผยแพร่โพสต์...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "ส่งรายงาน", "skip_to_send": "ส่งโดยไม่มีความคิดเห็น", "text_placeholder": "พิมพ์หรือวางความคิดเห็นเพิ่มเติม", - "reported": "รายงานแล้ว" + "reported": "รายงานแล้ว", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From dbf30f82e6f501ee086f39abaf8255aeea39d791 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:25 +0200 Subject: [PATCH 090/102] New translations app.json (Chinese Simplified) --- .../StringsConvertor/input/zh_CN/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/zh_CN/app.json b/Localization/StringsConvertor/input/zh_CN/app.json index 2809b4c3..8e63b09a 100644 --- a/Localization/StringsConvertor/input/zh_CN/app.json +++ b/Localization/StringsConvertor/input/zh_CN/app.json @@ -240,7 +240,8 @@ "category": "类别" }, "input": { - "placeholder": "查找或加入你自己的服务器..." + "placeholder": "查找或加入你自己的服务器...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "正在查找可用的服务器...", @@ -342,7 +343,11 @@ "offline": "离线", "new_posts": "查看新帖子", "published": "已发送", - "Publishing": "正在发送..." + "Publishing": "正在发送...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "发送举报", "skip_to_send": "直接发送", "text_placeholder": "输入或粘贴额外的注释", - "reported": "已报告" + "reported": "已报告", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 6bd0e25b13a2170954d8b2a4e7d661f262c541da Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:26 +0200 Subject: [PATCH 091/102] New translations app.json (Russian) --- .../StringsConvertor/input/ru_RU/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/ru_RU/app.json b/Localization/StringsConvertor/input/ru_RU/app.json index 1f7a4554..05770e7e 100644 --- a/Localization/StringsConvertor/input/ru_RU/app.json +++ b/Localization/StringsConvertor/input/ru_RU/app.json @@ -240,7 +240,8 @@ "category": "КАТЕГОРИЯ" }, "input": { - "placeholder": "Найдите сервер или присоединитесь к своему..." + "placeholder": "Найдите сервер или присоединитесь к своему...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Ищем доступные сервера...", @@ -342,7 +343,11 @@ "offline": "Не в сети", "new_posts": "Показать новые", "published": "Опубликовано!", - "Publishing": "Публикуем пост..." + "Publishing": "Публикуем пост...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Пожаловаться", "skip_to_send": "Отправить без комментария", "text_placeholder": "Дополнительные комментарии", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 9ecc11876426a8fd4821f16b782c1bda70fc707a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 10:48:27 +0200 Subject: [PATCH 092/102] New translations app.json (Finnish) --- .../StringsConvertor/input/fi_FI/app.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/Localization/StringsConvertor/input/fi_FI/app.json b/Localization/StringsConvertor/input/fi_FI/app.json index 4599c964..4fe8f57b 100644 --- a/Localization/StringsConvertor/input/fi_FI/app.json +++ b/Localization/StringsConvertor/input/fi_FI/app.json @@ -240,7 +240,8 @@ "category": "KATEGORIA" }, "input": { - "placeholder": "Etsi palvelin tai liity omaan..." + "placeholder": "Etsi palvelin tai liity omaan...", + "search_servers_or_enter_url": "Search communities or enter URL" }, "empty_state": { "finding_servers": "Etsistään saatavilla olevia palvelimia...", @@ -342,7 +343,11 @@ "offline": "Yhteydetön", "new_posts": "Uusia julkaisuja", "published": "Julkaistu!", - "Publishing": "Julkaistaan julkaisua..." + "Publishing": "Julkaistaan julkaisua...", + "accessibility": { + "logo_label": "Logo Button", + "logo_hint": "Tap to scroll to top and tap again to previous location" + } } }, "suggestion_account": { @@ -596,7 +601,48 @@ "send": "Lähetä ilmianto", "skip_to_send": "Lähetä ilman kommentteja", "text_placeholder": "Kirjoita tai liitä lisäkommentteja", - "reported": "REPORTED" + "reported": "REPORTED", + "step_one": { + "step_1_of_4": "Step 1 of 4", + "whats_wrong_with_this_post": "What's wrong with this post?", + "whats_wrong_with_this_account": "What's wrong with this account?", + "whats_wrong_with_this_username": "What's wrong with %s?", + "select_the_best_match": "Select the best match", + "i_dont_like_it": "I don’t like it", + "it_is_not_something_you_want_to_see": "It is not something you want to see", + "its_spam": "It’s spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", + "it_violates_server_rules": "It violates server rules", + "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", + "its_something_else": "It’s something else", + "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + }, + "step_two": { + "step_2_of_4": "Step 2 of 4", + "which_rules_are_being_violated": "Which rules are being violated?", + "select_all_that_apply": "Select all that apply", + "i_just_don’t_like_it": "I just don’t like it" + }, + "step_three": { + "step_3_of_4": "Step 3 of 4", + "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "select_all_that_apply": "Select all that apply" + }, + "step_four": { + "step_4_of_4": "Step 4 of 4", + "is_there_anything_else_we_should_know": "Is there anything else we should know?" + }, + "step_final": { + "dont_want_to_see_this": "Don’t want to see this?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", + "unfollow": "Unfollow", + "unfollowed": "Unfollowed", + "unfollow_user": "Unfollow %s", + "mute_user": "Mute %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", + "block_user": "Block %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + } }, "preview": { "keyboard": { From 7025aa0fb1dbf5f6673d6c0fef0e7d7b9be06b8a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 11:47:13 +0200 Subject: [PATCH 093/102] New translations app.json (Catalan) --- .../StringsConvertor/input/ca_ES/app.json | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Localization/StringsConvertor/input/ca_ES/app.json b/Localization/StringsConvertor/input/ca_ES/app.json index 252eded0..8d8e94cb 100644 --- a/Localization/StringsConvertor/input/ca_ES/app.json +++ b/Localization/StringsConvertor/input/ca_ES/app.json @@ -241,7 +241,7 @@ }, "input": { "placeholder": "Cerca servidors", - "search_servers_or_enter_url": "Search communities or enter URL" + "search_servers_or_enter_url": "Cerca comunitats o introdueix l'URL" }, "empty_state": { "finding_servers": "Cercant els servidors disponibles...", @@ -345,8 +345,8 @@ "published": "Publicat!", "Publishing": "S'està publicant...", "accessibility": { - "logo_label": "Logo Button", - "logo_hint": "Tap to scroll to top and tap again to previous location" + "logo_label": "Botó de logotip", + "logo_hint": "Toca per desplaçar-te cap a dalt i torna a toca de nou per tornar a la ubicació anterior" } } }, @@ -603,45 +603,45 @@ "text_placeholder": "Escriu o enganxa comentaris addicionals", "reported": "REPORTAT", "step_one": { - "step_1_of_4": "Step 1 of 4", - "whats_wrong_with_this_post": "What's wrong with this post?", - "whats_wrong_with_this_account": "What's wrong with this account?", - "whats_wrong_with_this_username": "What's wrong with %s?", - "select_the_best_match": "Select the best match", - "i_dont_like_it": "I don’t like it", - "it_is_not_something_you_want_to_see": "It is not something you want to see", - "its_spam": "It’s spam", - "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", - "it_violates_server_rules": "It violates server rules", - "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", - "its_something_else": "It’s something else", - "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + "step_1_of_4": "Pas 1 de 4", + "whats_wrong_with_this_post": "Quin és el problema amb aquesta publicació?", + "whats_wrong_with_this_account": "Quin és el problema amb aquest compte?", + "whats_wrong_with_this_username": "Quin és el problema amb %s?", + "select_the_best_match": "Selecciona la millor coincidència", + "i_dont_like_it": "No m'agrada", + "it_is_not_something_you_want_to_see": "No és una cosa que vulguis veure", + "its_spam": "És contingut brossa", + "malicious_links_fake_engagement_or_repetetive_replies": "Enllaços maliciosos, compromís falç o respostes repetitives", + "it_violates_server_rules": "Infringeix les normes del servidor", + "you_are_aware_that_it_breaks_specific_rules": "Ets conscient que incompleix normes específiques", + "its_something_else": "És una altra cosa", + "the_issue_does_not_fit_into_other_categories": "El problema no encaixa en altres categories" }, "step_two": { - "step_2_of_4": "Step 2 of 4", - "which_rules_are_being_violated": "Which rules are being violated?", - "select_all_that_apply": "Select all that apply", - "i_just_don’t_like_it": "I just don’t like it" + "step_2_of_4": "Pas 2 de 4", + "which_rules_are_being_violated": "Quines normes s'estan infringint?", + "select_all_that_apply": "Selecciona tot el que correspongui", + "i_just_don’t_like_it": "Simplement no m'agrada" }, "step_three": { - "step_3_of_4": "Step 3 of 4", - "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", - "select_all_that_apply": "Select all that apply" + "step_3_of_4": "Pas 3 de 4", + "are_there_any_posts_that_back_up_this_report": "Hi ha alguna publicació que recolzi aquest informe?", + "select_all_that_apply": "Selecciona tot el que correspongui" }, "step_four": { - "step_4_of_4": "Step 4 of 4", - "is_there_anything_else_we_should_know": "Is there anything else we should know?" + "step_4_of_4": "Pas 4 de 4", + "is_there_anything_else_we_should_know": "Hi ha res més que hauríem de saber?" }, "step_final": { - "dont_want_to_see_this": "Don’t want to see this?", - "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", - "unfollow": "Unfollow", - "unfollowed": "Unfollowed", - "unfollow_user": "Unfollow %s", - "mute_user": "Mute %s", - "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", - "block_user": "Block %s", - "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + "dont_want_to_see_this": "No vols veure això?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "Quan veus alguna cosa que no t'agrada a Mastodon, pots eliminar la persona de la vostra experiència.", + "unfollow": "Deixa de seguir", + "unfollowed": "S'ha deixat de seguir", + "unfollow_user": "Deixa de seguir %s", + "mute_user": "Silencia %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "No veuràs les seves publicacions o impulsos a la teva línia de temps personal. No sabran que han estat silenciats.", + "block_user": "Bloca %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "Ja no podran seguir ni veure les teves publicacions, però poden veure si han estat bloquejats." } }, "preview": { From 352ec37a60a23647ec64fcc06f31e59540cdbf0e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 11:47:15 +0200 Subject: [PATCH 094/102] New translations app.json (Italian) --- .../StringsConvertor/input/it_IT/app.json | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Localization/StringsConvertor/input/it_IT/app.json b/Localization/StringsConvertor/input/it_IT/app.json index 423ebd10..6635a37c 100644 --- a/Localization/StringsConvertor/input/it_IT/app.json +++ b/Localization/StringsConvertor/input/it_IT/app.json @@ -241,7 +241,7 @@ }, "input": { "placeholder": "Cerca comunità", - "search_servers_or_enter_url": "Search communities or enter URL" + "search_servers_or_enter_url": "Cerca comunità o inserisci l'URL" }, "empty_state": { "finding_servers": "Ricerca server disponibili...", @@ -345,8 +345,8 @@ "published": "Pubblicato!", "Publishing": "Pubblicazione post...", "accessibility": { - "logo_label": "Logo Button", - "logo_hint": "Tap to scroll to top and tap again to previous location" + "logo_label": "Pulsante Logo", + "logo_hint": "Tocca per scorrere verso l'alto e tocca di nuovo verso la posizione precedente" } } }, @@ -603,45 +603,45 @@ "text_placeholder": "Digita o incolla commenti aggiuntivi", "reported": "SEGNALATO", "step_one": { - "step_1_of_4": "Step 1 of 4", - "whats_wrong_with_this_post": "What's wrong with this post?", - "whats_wrong_with_this_account": "What's wrong with this account?", - "whats_wrong_with_this_username": "What's wrong with %s?", - "select_the_best_match": "Select the best match", - "i_dont_like_it": "I don’t like it", - "it_is_not_something_you_want_to_see": "It is not something you want to see", - "its_spam": "It’s spam", - "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", - "it_violates_server_rules": "It violates server rules", - "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", - "its_something_else": "It’s something else", - "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + "step_1_of_4": "Fase 1 di 4", + "whats_wrong_with_this_post": "Cosa c'è che non va con questo post?", + "whats_wrong_with_this_account": "Cosa c'è che non va con questo account?", + "whats_wrong_with_this_username": "Cosa c'è che non va con %s?", + "select_the_best_match": "Scegli la migliore corrispondenza", + "i_dont_like_it": "Non mi piace", + "it_is_not_something_you_want_to_see": "È qualcosa che non vuoi vedere", + "its_spam": "È spam", + "malicious_links_fake_engagement_or_repetetive_replies": "Collegamenti malevoli, false interazioni o risposte ripetitive", + "it_violates_server_rules": "Viola le regole del server", + "you_are_aware_that_it_breaks_specific_rules": "Sei consapevole che violi regole specifiche", + "its_something_else": "È qualcos'altro", + "the_issue_does_not_fit_into_other_categories": "Il problema non rientra in altre categorie" }, "step_two": { - "step_2_of_4": "Step 2 of 4", - "which_rules_are_being_violated": "Which rules are being violated?", - "select_all_that_apply": "Select all that apply", - "i_just_don’t_like_it": "I just don’t like it" + "step_2_of_4": "Fase 2 di 4", + "which_rules_are_being_violated": "Quali regole vengono violate?", + "select_all_that_apply": "Seleziona tutte le risposte pertinenti", + "i_just_don’t_like_it": "Non mi piace" }, "step_three": { - "step_3_of_4": "Step 3 of 4", - "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", - "select_all_that_apply": "Select all that apply" + "step_3_of_4": "Fase 3 di 4", + "are_there_any_posts_that_back_up_this_report": "Ci sono post a sostegno di questa segnalazione?", + "select_all_that_apply": "Seleziona tutte le risposte pertinenti" }, "step_four": { - "step_4_of_4": "Step 4 of 4", - "is_there_anything_else_we_should_know": "Is there anything else we should know?" + "step_4_of_4": "Fase 4 di 4", + "is_there_anything_else_we_should_know": "C'è altro che dovremmo sapere?" }, "step_final": { - "dont_want_to_see_this": "Don’t want to see this?", - "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", - "unfollow": "Unfollow", - "unfollowed": "Unfollowed", - "unfollow_user": "Unfollow %s", - "mute_user": "Mute %s", - "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", - "block_user": "Block %s", - "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + "dont_want_to_see_this": "Non vuoi vedere questo?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "Quando vedi qualcosa che non ti piace su Mastodon, puoi rimuovere la persona dalla tua esperienza.", + "unfollow": "Smetti di seguire", + "unfollowed": "Non seguito", + "unfollow_user": "Smetti di seguire %s", + "mute_user": "Silenzia %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "Non vedrai i loro post o le condivisioni nel tuo feed. Non sapranno di essere stati silenziati.", + "block_user": "Blocca %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "Non saranno più in grado di seguire o vedere i tuoi post, ma possono vedere se sono stati bloccati." } }, "preview": { From 69484402da38b49b3f1a225ef67e3b9de09bab29 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 11:47:17 +0200 Subject: [PATCH 095/102] New translations app.json (Arabic) --- .../StringsConvertor/input/ar_SA/app.json | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Localization/StringsConvertor/input/ar_SA/app.json b/Localization/StringsConvertor/input/ar_SA/app.json index 79953f11..463f9e9d 100644 --- a/Localization/StringsConvertor/input/ar_SA/app.json +++ b/Localization/StringsConvertor/input/ar_SA/app.json @@ -241,7 +241,7 @@ }, "input": { "placeholder": "اِبحَث عن خادِم أو انضم إلى آخر خاص بك...", - "search_servers_or_enter_url": "Search communities or enter URL" + "search_servers_or_enter_url": "اِبحث عَن مُجتَمَعَات أو أدخِل عُنوانَ URL" }, "empty_state": { "finding_servers": "يجري إيجاد خوادم متوفِّرَة...", @@ -345,8 +345,8 @@ "published": "تمَّ النَّشر!", "Publishing": "يَجري نَشر المُشارَكَة...", "accessibility": { - "logo_label": "Logo Button", - "logo_hint": "Tap to scroll to top and tap again to previous location" + "logo_label": "ُّزِرُّ الشِّعار", + "logo_hint": "اُنقُر لِلتمريرِ لأعلى واُنقُر مَرّةً أُخرَى لِلذَّهابِ إلَى المَوقِعِ السَّابِق" } } }, @@ -593,8 +593,8 @@ "report": { "title_report": "إبلاغ", "title": "الإبلاغ عن %s", - "step1": "الخطوة الأولى مِن أصل اثنتين", - "step2": "الخطوة الثانية والأخيرة", + "step1": "الخطوة 1 مِن أصل 2", + "step2": "الخطوة 2 مِن أصل 2", "content1": "هل ترغب في إضافة أي منشورات أُخرى إلى البلاغ؟", "content2": "هل هناك أي شيء يجب أن يعرفه المُراقبين حول هذا البلاغ؟", "report_sent_title": "شُكرًا لَكَ على الإبلاغ، سَوفَ نَنظُرُ فِي هَذَا الأمر.", @@ -603,44 +603,44 @@ "text_placeholder": "اكتب أو الصق تعليقات إضافيَّة", "reported": "مُبْلَغٌ عَنه", "step_one": { - "step_1_of_4": "Step 1 of 4", - "whats_wrong_with_this_post": "What's wrong with this post?", - "whats_wrong_with_this_account": "What's wrong with this account?", - "whats_wrong_with_this_username": "What's wrong with %s?", - "select_the_best_match": "Select the best match", - "i_dont_like_it": "I don’t like it", - "it_is_not_something_you_want_to_see": "It is not something you want to see", - "its_spam": "It’s spam", - "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", - "it_violates_server_rules": "It violates server rules", - "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", - "its_something_else": "It’s something else", - "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + "step_1_of_4": "الخطوة 1 مِن أصل 4", + "whats_wrong_with_this_post": "ما المُشكِلَةُ فِي هَذَا المَنشُور؟", + "whats_wrong_with_this_account": "ما المُشكِلَةُ فِي هَذَا الحِساب؟", + "whats_wrong_with_this_username": "ما المُشكِلَة مَعَ %s؟", + "select_the_best_match": "اِختَر أفضلَ تَطابُق", + "i_dont_like_it": "لا يُعجِبُني", + "it_is_not_something_you_want_to_see": "إنَّهُ ليسَ شيئًا تُريدُ رُؤيَتَه", + "its_spam": "إنَّهُ غَيرٌ مَرغوبٍ فيه", + "malicious_links_fake_engagement_or_repetetive_replies": "رَوابِطٌ ضَارَّة، اِرتِباطاتٌ مُزيَّفَة أو رُدودٌ مُتَكَرِّرَة", + "it_violates_server_rules": "يَنتَهِكُ قَواعِدَ الخادِم", + "you_are_aware_that_it_breaks_specific_rules": "أنتَ مُدِركٌ لِانتِهاكِهِ قَواعِدًا مُحَدَّدَة", + "its_something_else": "إنَّهُ شَيءٌ آخَر", + "the_issue_does_not_fit_into_other_categories": "المُشكِلَةُ لَا تَتَناسَبُ مَعَ الفِئاتِ الأُخرَى" }, "step_two": { - "step_2_of_4": "Step 2 of 4", - "which_rules_are_being_violated": "Which rules are being violated?", - "select_all_that_apply": "Select all that apply", - "i_just_don’t_like_it": "I just don’t like it" + "step_2_of_4": "الخطوة 2 مِن أصل 4", + "which_rules_are_being_violated": "مَا هِيَ القَواعِدُ الَّتي تُنتَهَك؟", + "select_all_that_apply": "اِختَر كُلَّ ما يَنطَبِق", + "i_just_don’t_like_it": "أنا فَقَط لا يُعجِبُني" }, "step_three": { - "step_3_of_4": "Step 3 of 4", + "step_3_of_4": "الخطوة 3 مِن أصل 4", "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", - "select_all_that_apply": "Select all that apply" + "select_all_that_apply": "اِختَر كُلَّ ما يَنطَبِق" }, "step_four": { - "step_4_of_4": "Step 4 of 4", - "is_there_anything_else_we_should_know": "Is there anything else we should know?" + "step_4_of_4": "الخطوة 4 مِن أصل 4", + "is_there_anything_else_we_should_know": "هَل هُناكَ شَيءٌ آخَرَ يَجِبُ أن نَعلَمَ بِه؟" }, "step_final": { - "dont_want_to_see_this": "Don’t want to see this?", - "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", - "unfollow": "Unfollow", - "unfollowed": "Unfollowed", - "unfollow_user": "Unfollow %s", - "mute_user": "Mute %s", - "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", - "block_user": "Block %s", + "dont_want_to_see_this": "ألَا تُريدُ رُؤيَةَ هَذَا؟", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "عِندما تَرى شيئًا لَا يُعجِبُكَ عَلَى مَاستودُون، يُمكِنُكَ إزالَةُ الشَّخصِ مِن تَجرِبَتِك.", + "unfollow": "إلغاءُ المُتابَعَة", + "unfollowed": "أُلغِيَت المُتابَعَة", + "unfollow_user": "إلغاءُ مُتابَعَةِ %s", + "mute_user": "كَتمُ %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "لَن تَرى مُشارَكاتِهِ أو إعادَاتِ تَدوينَهِ فِي تغذيَتِكَ الرَّئيسَة. لَن يَعرِفَ أنَّهُ قَد كُتِمَ أيضًا.", + "block_user": "حَظرُ %s", "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." } }, From 44a3aa51fcc826ef76c504ff7315bfb1e55eda47 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 12:54:37 +0200 Subject: [PATCH 096/102] New translations app.json (Arabic) --- Localization/StringsConvertor/input/ar_SA/app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/StringsConvertor/input/ar_SA/app.json b/Localization/StringsConvertor/input/ar_SA/app.json index 463f9e9d..f06aba50 100644 --- a/Localization/StringsConvertor/input/ar_SA/app.json +++ b/Localization/StringsConvertor/input/ar_SA/app.json @@ -625,7 +625,7 @@ }, "step_three": { "step_3_of_4": "الخطوة 3 مِن أصل 4", - "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", + "are_there_any_posts_that_back_up_this_report": "هَل هُناكَ أيُّ مَنشُوراتٍ أُخرَى تَتَوافَقُ مَعَ هَذَا التَّقرير؟", "select_all_that_apply": "اِختَر كُلَّ ما يَنطَبِق" }, "step_four": { @@ -641,7 +641,7 @@ "mute_user": "كَتمُ %s", "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "لَن تَرى مُشارَكاتِهِ أو إعادَاتِ تَدوينَهِ فِي تغذيَتِكَ الرَّئيسَة. لَن يَعرِفَ أنَّهُ قَد كُتِمَ أيضًا.", "block_user": "حَظرُ %s", - "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "لَن يَتمكَّنَ بَعدَ الآنِ مِن مُتابَعَةِ مَنشوراتِكَ أو رُؤيَتِها، وَلكِن يُمكِنَهُ مَعرِفَةُ مَا إذا حُظَرِت عَنه." } }, "preview": { From f924815594fa60d16853e56141d87ca386c0f1e1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 12:54:38 +0200 Subject: [PATCH 097/102] New translations app.json (Swedish) --- .../StringsConvertor/input/sv_SE/app.json | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Localization/StringsConvertor/input/sv_SE/app.json b/Localization/StringsConvertor/input/sv_SE/app.json index 636e2193..d7570575 100644 --- a/Localization/StringsConvertor/input/sv_SE/app.json +++ b/Localization/StringsConvertor/input/sv_SE/app.json @@ -241,7 +241,7 @@ }, "input": { "placeholder": "Sök gemenskaper", - "search_servers_or_enter_url": "Search communities or enter URL" + "search_servers_or_enter_url": "Sök gemenskaper eller ange URL" }, "empty_state": { "finding_servers": "Söker tillgängliga servrar...", @@ -345,8 +345,8 @@ "published": "Publicerat!", "Publishing": "Publicerar inlägget...", "accessibility": { - "logo_label": "Logo Button", - "logo_hint": "Tap to scroll to top and tap again to previous location" + "logo_label": "Logo-knapp", + "logo_hint": "Tryck för att bläddra till toppen och tryck igen för föregående plats" } } }, @@ -603,45 +603,45 @@ "text_placeholder": "Skriv eller klistra in ytterligare kommentarer", "reported": "RAPPORTERAD", "step_one": { - "step_1_of_4": "Step 1 of 4", - "whats_wrong_with_this_post": "What's wrong with this post?", - "whats_wrong_with_this_account": "What's wrong with this account?", - "whats_wrong_with_this_username": "What's wrong with %s?", - "select_the_best_match": "Select the best match", - "i_dont_like_it": "I don’t like it", - "it_is_not_something_you_want_to_see": "It is not something you want to see", - "its_spam": "It’s spam", - "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", - "it_violates_server_rules": "It violates server rules", - "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", - "its_something_else": "It’s something else", - "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + "step_1_of_4": "Steg 1 av 4", + "whats_wrong_with_this_post": "Vad är fel med det här inlägget?", + "whats_wrong_with_this_account": "Vad är fel med det här kontot?", + "whats_wrong_with_this_username": "Vad är fel med %s?", + "select_the_best_match": "Välj den bästa träffen", + "i_dont_like_it": "Jag tycker inte om det", + "it_is_not_something_you_want_to_see": "Det är inget som du vill se", + "its_spam": "Det är skräppost", + "malicious_links_fake_engagement_or_repetetive_replies": "Skadliga länkar, bedrägligt beteende eller repetitiva svar", + "it_violates_server_rules": "Det bryter mot serverns regler", + "you_are_aware_that_it_breaks_specific_rules": "Du är medveten om att det bryter mot specifika regler", + "its_something_else": "Det är något annat", + "the_issue_does_not_fit_into_other_categories": "Frågan passar inte in i andra kategorier" }, "step_two": { - "step_2_of_4": "Step 2 of 4", - "which_rules_are_being_violated": "Which rules are being violated?", - "select_all_that_apply": "Select all that apply", - "i_just_don’t_like_it": "I just don’t like it" + "step_2_of_4": "Steg 2 av 4", + "which_rules_are_being_violated": "Vilka regler överträds?", + "select_all_that_apply": "Välj allt som stämmer", + "i_just_don’t_like_it": "Jag tycker bara inte om det" }, "step_three": { - "step_3_of_4": "Step 3 of 4", - "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", - "select_all_that_apply": "Select all that apply" + "step_3_of_4": "Steg 3 av 4", + "are_there_any_posts_that_back_up_this_report": "Finns det några inlägg som stöder denna rapport?", + "select_all_that_apply": "Välj allt som stämmer" }, "step_four": { - "step_4_of_4": "Step 4 of 4", - "is_there_anything_else_we_should_know": "Is there anything else we should know?" + "step_4_of_4": "Steg 4 av 4", + "is_there_anything_else_we_should_know": "Finns det något annat vi borde veta?" }, "step_final": { - "dont_want_to_see_this": "Don’t want to see this?", - "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", - "unfollow": "Unfollow", - "unfollowed": "Unfollowed", - "unfollow_user": "Unfollow %s", - "mute_user": "Mute %s", - "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", - "block_user": "Block %s", - "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + "dont_want_to_see_this": "Vill du inte se det här?", + "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "När du ser något som du inte gillar på Mastodon kan du ta bort personen från din upplevelse.", + "unfollow": "Avfölj", + "unfollowed": "Slutade följa", + "unfollow_user": "Avfölj %s", + "mute_user": "Tysta %s", + "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "Du kommer inte att se deras inlägg eller ompostningar i ditt hemflöde. De kommer inte att veta att de har blivit tystade.", + "block_user": "Blockera %s", + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "De kommer inte längre att kunna följa eller se dina inlägg, men de kan se om de har blockerats." } }, "preview": { From f5af31585009673227c2466ff21e6b8b8e619f95 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 May 2022 13:54:52 +0200 Subject: [PATCH 098/102] New translations app.json (Turkish) --- .../StringsConvertor/input/tr_TR/app.json | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Localization/StringsConvertor/input/tr_TR/app.json b/Localization/StringsConvertor/input/tr_TR/app.json index 241198c0..89659407 100644 --- a/Localization/StringsConvertor/input/tr_TR/app.json +++ b/Localization/StringsConvertor/input/tr_TR/app.json @@ -603,39 +603,39 @@ "text_placeholder": "Ek yorum yazın veya yapıştırın", "reported": "RAPORLANDI", "step_one": { - "step_1_of_4": "Step 1 of 4", - "whats_wrong_with_this_post": "What's wrong with this post?", - "whats_wrong_with_this_account": "What's wrong with this account?", - "whats_wrong_with_this_username": "What's wrong with %s?", - "select_the_best_match": "Select the best match", - "i_dont_like_it": "I don’t like it", - "it_is_not_something_you_want_to_see": "It is not something you want to see", - "its_spam": "It’s spam", + "step_1_of_4": "Adım 1/4", + "whats_wrong_with_this_post": "Bu gönderi ile ilgili sorun nedir?", + "whats_wrong_with_this_account": "Bu hesap ile ilgili sorun nedir?", + "whats_wrong_with_this_username": "%s kişisinin sorunu nedir?", + "select_the_best_match": "En iyi seçeneceği seçiniz", + "i_dont_like_it": "Beğenmedim", + "it_is_not_something_you_want_to_see": "Görmek isteyeceğim bir şey değil", + "its_spam": "Spam", "malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", - "it_violates_server_rules": "It violates server rules", + "it_violates_server_rules": "Sunucu kurallarını ihlal ediyor", "you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", - "its_something_else": "It’s something else", - "the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" + "its_something_else": "Başka bir şey", + "the_issue_does_not_fit_into_other_categories": "Sorun bunlardan biri değil" }, "step_two": { - "step_2_of_4": "Step 2 of 4", - "which_rules_are_being_violated": "Which rules are being violated?", - "select_all_that_apply": "Select all that apply", - "i_just_don’t_like_it": "I just don’t like it" + "step_2_of_4": "Adım 2/4", + "which_rules_are_being_violated": "Hangi kurallar ihlal ediliyor?", + "select_all_that_apply": "Geçerli olan tümünü seçiniz", + "i_just_don’t_like_it": "Beğenmedim" }, "step_three": { - "step_3_of_4": "Step 3 of 4", - "are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", - "select_all_that_apply": "Select all that apply" + "step_3_of_4": "Adım 3/4", + "are_there_any_posts_that_back_up_this_report": "Bu bildirimi destekleyecek herhangi bir gönderi var mı?", + "select_all_that_apply": "Geçerli olanların tümünü seçiniz" }, "step_four": { - "step_4_of_4": "Step 4 of 4", - "is_there_anything_else_we_should_know": "Is there anything else we should know?" + "step_4_of_4": "Adım 4/4", + "is_there_anything_else_we_should_know": "Bilmemiz gereken başka bir şey var mı?" }, "step_final": { - "dont_want_to_see_this": "Don’t want to see this?", + "dont_want_to_see_this": "Bunu görmek istemiyor musunuz?", "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you don’t like on Mastodon, you can remove the person from your experience.", - "unfollow": "Unfollow", + "unfollow": "Takibi bırak", "unfollowed": "Unfollowed", "unfollow_user": "Unfollow %s", "mute_user": "Mute %s", From 11762100eb9234a13f7d58de3d5520940af23216 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 20:55:37 +0800 Subject: [PATCH 099/102] chore: update i18n resources --- .../Generated/Strings.swift | 88 +++++++++++++++++++ .../Resources/ar.lproj/Localizable.strings | 38 +++++++- .../Resources/ca.lproj/Localizable.strings | 34 +++++++ .../Resources/ckb.lproj/Localizable.strings | 34 +++++++ .../Resources/de.lproj/Localizable.strings | 34 +++++++ .../Resources/en.lproj/Localizable.strings | 34 +++++++ .../es-419.lproj/Localizable.strings | 34 +++++++ .../Resources/es.lproj/Localizable.strings | 34 +++++++ .../Resources/eu-ES.lproj/Localizable.strings | 34 +++++++ .../Resources/fr.lproj/Localizable.strings | 34 +++++++ .../Resources/gd-GB.lproj/Localizable.strings | 34 +++++++ .../Resources/gl.lproj/Localizable.strings | 34 +++++++ .../Resources/it.lproj/Localizable.strings | 34 +++++++ .../Resources/ja.lproj/Localizable.strings | 34 +++++++ .../Resources/kab.lproj/Localizable.strings | 34 +++++++ .../Resources/ku.lproj/Localizable.strings | 34 +++++++ .../Resources/nl.lproj/Localizable.strings | 34 +++++++ .../Resources/ru.lproj/Localizable.strings | 34 +++++++ .../Resources/th.lproj/Localizable.strings | 34 +++++++ .../Resources/tr.lproj/Localizable.strings | 34 +++++++ .../Resources/vi.lproj/Localizable.strings | 34 +++++++ .../zh-Hans.lproj/Localizable.strings | 34 +++++++ .../zh-Hant.lproj/Localizable.strings | 34 +++++++ 23 files changed, 838 insertions(+), 2 deletions(-) diff --git a/MastodonSDK/Sources/MastodonLocalization/Generated/Strings.swift b/MastodonSDK/Sources/MastodonLocalization/Generated/Strings.swift index de6b55cb..b5403a14 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Generated/Strings.swift +++ b/MastodonSDK/Sources/MastodonLocalization/Generated/Strings.swift @@ -585,6 +585,12 @@ public enum L10n { public static let published = L10n.tr("Localizable", "Scene.HomeTimeline.NavigationBarState.Published") /// Publishing post... public static let publishing = L10n.tr("Localizable", "Scene.HomeTimeline.NavigationBarState.Publishing") + public enum Accessibility { + /// Tap to scroll to top and tap again to previous location + public static let logoHint = L10n.tr("Localizable", "Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint") + /// Logo Button + public static let logoLabel = L10n.tr("Localizable", "Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel") + } } } public enum Notification { @@ -840,6 +846,86 @@ public enum L10n { } /// Report public static let titleReport = L10n.tr("Localizable", "Scene.Report.TitleReport") + public enum StepFinal { + /// Block %@ + public static func blockUser(_ p1: Any) -> String { + return L10n.tr("Localizable", "Scene.Report.StepFinal.BlockUser", String(describing: p1)) + } + /// Don’t want to see this? + public static let dontWantToSeeThis = L10n.tr("Localizable", "Scene.Report.StepFinal.DontWantToSeeThis") + /// Mute %@ + public static func muteUser(_ p1: Any) -> String { + return L10n.tr("Localizable", "Scene.Report.StepFinal.MuteUser", String(describing: p1)) + } + /// They will no longer be able to follow or see your posts, but they can see if they’ve been blocked. + public static let theyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked = L10n.tr("Localizable", "Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked") + /// Unfollow + public static let unfollow = L10n.tr("Localizable", "Scene.Report.StepFinal.Unfollow") + /// Unfollowed + public static let unfollowed = L10n.tr("Localizable", "Scene.Report.StepFinal.Unfollowed") + /// Unfollow %@ + public static func unfollowUser(_ p1: Any) -> String { + return L10n.tr("Localizable", "Scene.Report.StepFinal.UnfollowUser", String(describing: p1)) + } + /// When you see something you don’t like on Mastodon, you can remove the person from your experience. + public static let whenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience = L10n.tr("Localizable", "Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience.") + /// You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted. + public static let youWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted = L10n.tr("Localizable", "Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted") + } + public enum StepFour { + /// Is there anything else we should know? + public static let isThereAnythingElseWeShouldKnow = L10n.tr("Localizable", "Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow") + /// Step 4 of 4 + public static let step4Of4 = L10n.tr("Localizable", "Scene.Report.StepFour.Step4Of4") + } + public enum StepOne { + /// I don’t like it + public static let iDontLikeIt = L10n.tr("Localizable", "Scene.Report.StepOne.IDontLikeIt") + /// It is not something you want to see + public static let itIsNotSomethingYouWantToSee = L10n.tr("Localizable", "Scene.Report.StepOne.ItIsNotSomethingYouWantToSee") + /// It’s something else + public static let itsSomethingElse = L10n.tr("Localizable", "Scene.Report.StepOne.ItsSomethingElse") + /// It’s spam + public static let itsSpam = L10n.tr("Localizable", "Scene.Report.StepOne.ItsSpam") + /// It violates server rules + public static let itViolatesServerRules = L10n.tr("Localizable", "Scene.Report.StepOne.ItViolatesServerRules") + /// Malicious links, fake engagement, or repetetive replies + public static let maliciousLinksFakeEngagementOrRepetetiveReplies = L10n.tr("Localizable", "Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies") + /// Select the best match + public static let selectTheBestMatch = L10n.tr("Localizable", "Scene.Report.StepOne.SelectTheBestMatch") + /// Step 1 of 4 + public static let step1Of4 = L10n.tr("Localizable", "Scene.Report.StepOne.Step1Of4") + /// The issue does not fit into other categories + public static let theIssueDoesNotFitIntoOtherCategories = L10n.tr("Localizable", "Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories") + /// What's wrong with this account? + public static let whatsWrongWithThisAccount = L10n.tr("Localizable", "Scene.Report.StepOne.WhatsWrongWithThisAccount") + /// What's wrong with this post? + public static let whatsWrongWithThisPost = L10n.tr("Localizable", "Scene.Report.StepOne.WhatsWrongWithThisPost") + /// What's wrong with %@? + public static func whatsWrongWithThisUsername(_ p1: Any) -> String { + return L10n.tr("Localizable", "Scene.Report.StepOne.WhatsWrongWithThisUsername", String(describing: p1)) + } + /// You are aware that it breaks specific rules + public static let youAreAwareThatItBreaksSpecificRules = L10n.tr("Localizable", "Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules") + } + public enum StepThree { + /// Are there any posts that back up this report? + public static let areThereAnyPostsThatBackUpThisReport = L10n.tr("Localizable", "Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport") + /// Select all that apply + public static let selectAllThatApply = L10n.tr("Localizable", "Scene.Report.StepThree.SelectAllThatApply") + /// Step 3 of 4 + public static let step3Of4 = L10n.tr("Localizable", "Scene.Report.StepThree.Step3Of4") + } + public enum StepTwo { + /// I just don’t like it + public static let iJustDonTLikeIt = L10n.tr("Localizable", "Scene.Report.StepTwo.IJustDon’tLikeIt") + /// Select all that apply + public static let selectAllThatApply = L10n.tr("Localizable", "Scene.Report.StepTwo.SelectAllThatApply") + /// Step 2 of 4 + public static let step2Of4 = L10n.tr("Localizable", "Scene.Report.StepTwo.Step2Of4") + /// Which rules are being violated? + public static let whichRulesAreBeingViolated = L10n.tr("Localizable", "Scene.Report.StepTwo.WhichRulesAreBeingViolated") + } } public enum Search { /// Search @@ -947,6 +1033,8 @@ public enum L10n { public enum Input { /// Search servers public static let placeholder = L10n.tr("Localizable", "Scene.ServerPicker.Input.Placeholder") + /// Search communities or enter URL + public static let searchServersOrEnterUrl = L10n.tr("Localizable", "Scene.ServerPicker.Input.SearchServersOrEnterUrl") } public enum Label { /// CATEGORY diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings index 09ab59f7..c49b9f9d 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ar.lproj/Localizable.strings @@ -211,6 +211,8 @@ "Scene.Favorite.Title" = "مُفضَّلَتُك"; "Scene.Follower.Footer" = "لا يُمكِن عَرض المُتابِعين مِنَ الخوادم الأُخرى."; "Scene.Following.Footer" = "لا يُمكِن عَرض المُتابَعات مِنَ الخوادم الأُخرى."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "اُنقُر لِلتمريرِ لأعلى واُنقُر مَرّةً أُخرَى لِلذَّهابِ إلَى المَوقِعِ السَّابِق"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "ُّزِرُّ الشِّعار"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "إظهار منشورات جديدة"; "Scene.HomeTimeline.NavigationBarState.Offline" = "غَير مُتَّصِل"; "Scene.HomeTimeline.NavigationBarState.Published" = "تمَّ النَّشر!"; @@ -291,8 +293,39 @@ "Scene.Report.Reported" = "مُبْلَغٌ عَنه"; "Scene.Report.Send" = "إرسال البلاغ"; "Scene.Report.SkipToSend" = "إرسال بدون تعليق"; -"Scene.Report.Step1" = "الخطوة الأولى مِن أصل اثنتين"; -"Scene.Report.Step2" = "الخطوة الثانية والأخيرة"; +"Scene.Report.Step1" = "الخطوة 1 مِن أصل 2"; +"Scene.Report.Step2" = "الخطوة 2 مِن أصل 2"; +"Scene.Report.StepFinal.BlockUser" = "حَظرُ %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "ألَا تُريدُ رُؤيَةَ هَذَا؟"; +"Scene.Report.StepFinal.MuteUser" = "كَتمُ %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "لَن يَتمكَّنَ بَعدَ الآنِ مِن مُتابَعَةِ مَنشوراتِكَ أو رُؤيَتِها، وَلكِن يُمكِنَهُ مَعرِفَةُ مَا إذا حُظَرِت عَنه."; +"Scene.Report.StepFinal.Unfollow" = "إلغاءُ المُتابَعَة"; +"Scene.Report.StepFinal.UnfollowUser" = "إلغاءُ مُتابَعَةِ %@"; +"Scene.Report.StepFinal.Unfollowed" = "أُلغِيَت المُتابَعَة"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "عِندما تَرى شيئًا لَا يُعجِبُكَ عَلَى مَاستودُون، يُمكِنُكَ إزالَةُ الشَّخصِ مِن تَجرِبَتِك."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "لَن تَرى مُشارَكاتِهِ أو إعادَاتِ تَدوينَهِ فِي تغذيَتِكَ الرَّئيسَة. لَن يَعرِفَ أنَّهُ قَد كُتِمَ أيضًا."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "هَل هُناكَ شَيءٌ آخَرَ يَجِبُ أن نَعلَمَ بِه؟"; +"Scene.Report.StepFour.Step4Of4" = "الخطوة 4 مِن أصل 4"; +"Scene.Report.StepOne.IDontLikeIt" = "لا يُعجِبُني"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "إنَّهُ ليسَ شيئًا تُريدُ رُؤيَتَه"; +"Scene.Report.StepOne.ItViolatesServerRules" = "يَنتَهِكُ قَواعِدَ الخادِم"; +"Scene.Report.StepOne.ItsSomethingElse" = "إنَّهُ شَيءٌ آخَر"; +"Scene.Report.StepOne.ItsSpam" = "إنَّهُ غَيرٌ مَرغوبٍ فيه"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "رَوابِطٌ ضَارَّة، اِرتِباطاتٌ مُزيَّفَة أو رُدودٌ مُتَكَرِّرَة"; +"Scene.Report.StepOne.SelectTheBestMatch" = "اِختَر أفضلَ تَطابُق"; +"Scene.Report.StepOne.Step1Of4" = "الخطوة 1 مِن أصل 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "المُشكِلَةُ لَا تَتَناسَبُ مَعَ الفِئاتِ الأُخرَى"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "ما المُشكِلَةُ فِي هَذَا الحِساب؟"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "ما المُشكِلَةُ فِي هَذَا المَنشُور؟"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "ما المُشكِلَة مَعَ %@؟"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "أنتَ مُدِركٌ لِانتِهاكِهِ قَواعِدًا مُحَدَّدَة"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "هَل هُناكَ أيُّ مَنشُوراتٍ أُخرَى تَتَوافَقُ مَعَ هَذَا التَّقرير؟"; +"Scene.Report.StepThree.SelectAllThatApply" = "اِختَر كُلَّ ما يَنطَبِق"; +"Scene.Report.StepThree.Step3Of4" = "الخطوة 3 مِن أصل 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "أنا فَقَط لا يُعجِبُني"; +"Scene.Report.StepTwo.SelectAllThatApply" = "اِختَر كُلَّ ما يَنطَبِق"; +"Scene.Report.StepTwo.Step2Of4" = "الخطوة 2 مِن أصل 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "مَا هِيَ القَواعِدُ الَّتي تُنتَهَك؟"; "Scene.Report.TextPlaceholder" = "اكتب أو الصق تعليقات إضافيَّة"; "Scene.Report.Title" = "الإبلاغ عن %@"; "Scene.Report.TitleReport" = "إبلاغ"; @@ -333,6 +366,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "يجري إيجاد خوادم متوفِّرَة..."; "Scene.ServerPicker.EmptyState.NoResults" = "لا توجد نتائج"; "Scene.ServerPicker.Input.Placeholder" = "اِبحَث عن خادِم أو انضم إلى آخر خاص بك..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "اِبحث عَن مُجتَمَعَات أو أدخِل عُنوانَ URL"; "Scene.ServerPicker.Label.Category" = "الفئة"; "Scene.ServerPicker.Label.Language" = "اللُّغة"; "Scene.ServerPicker.Label.Users" = "مُستَخدِم"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings index 3c02a501..502b2672 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ca.lproj/Localizable.strings @@ -210,6 +210,8 @@ carregat a Mastodon."; "Scene.Favorite.Title" = "Els teus Favorits"; "Scene.Follower.Footer" = "Els seguidors d'altres servidors no son mostrats."; "Scene.Following.Footer" = "Els seguits d'altres servidors no son mostrats."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Toca per desplaçar-te cap a dalt i torna a toca de nou per tornar a la ubicació anterior"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Botó de logotip"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Veure noves publicacions"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Fora de línia"; "Scene.HomeTimeline.NavigationBarState.Published" = "Publicat!"; @@ -292,6 +294,37 @@ carregat a Mastodon."; "Scene.Report.SkipToSend" = "Envia sense comentaris"; "Scene.Report.Step1" = "Pas 1 de 2"; "Scene.Report.Step2" = "Pas 2 de 2"; +"Scene.Report.StepFinal.BlockUser" = "Bloca %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "No vols veure això?"; +"Scene.Report.StepFinal.MuteUser" = "Silencia %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "Ja no podran seguir ni veure les teves publicacions, però poden veure si han estat bloquejats."; +"Scene.Report.StepFinal.Unfollow" = "Deixa de seguir"; +"Scene.Report.StepFinal.UnfollowUser" = "Deixa de seguir %@"; +"Scene.Report.StepFinal.Unfollowed" = "S'ha deixat de seguir"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "Quan veus alguna cosa que no t'agrada a Mastodon, pots eliminar la persona de la vostra experiència."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "No veuràs les seves publicacions o impulsos a la teva línia de temps personal. No sabran que han estat silenciats."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Hi ha res més que hauríem de saber?"; +"Scene.Report.StepFour.Step4Of4" = "Pas 4 de 4"; +"Scene.Report.StepOne.IDontLikeIt" = "No m'agrada"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "No és una cosa que vulguis veure"; +"Scene.Report.StepOne.ItViolatesServerRules" = "Infringeix les normes del servidor"; +"Scene.Report.StepOne.ItsSomethingElse" = "És una altra cosa"; +"Scene.Report.StepOne.ItsSpam" = "És contingut brossa"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Enllaços maliciosos, compromís falç o respostes repetitives"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Selecciona la millor coincidència"; +"Scene.Report.StepOne.Step1Of4" = "Pas 1 de 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "El problema no encaixa en altres categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "Quin és el problema amb aquest compte?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "Quin és el problema amb aquesta publicació?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "Quin és el problema amb %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "Ets conscient que incompleix normes específiques"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Hi ha alguna publicació que recolzi aquest informe?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Selecciona tot el que correspongui"; +"Scene.Report.StepThree.Step3Of4" = "Pas 3 de 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "Simplement no m'agrada"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Selecciona tot el que correspongui"; +"Scene.Report.StepTwo.Step2Of4" = "Pas 2 de 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Quines normes s'estan infringint?"; "Scene.Report.TextPlaceholder" = "Escriu o enganxa comentaris addicionals"; "Scene.Report.Title" = "Informa sobre %@"; "Scene.Report.TitleReport" = "Informe"; @@ -332,6 +365,7 @@ carregat a Mastodon."; "Scene.ServerPicker.EmptyState.FindingServers" = "Cercant els servidors disponibles..."; "Scene.ServerPicker.EmptyState.NoResults" = "No hi ha resultats"; "Scene.ServerPicker.Input.Placeholder" = "Cerca servidors"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Cerca comunitats o introdueix l'URL"; "Scene.ServerPicker.Label.Category" = "CATEGORIA"; "Scene.ServerPicker.Label.Language" = "LLENGUATGE"; "Scene.ServerPicker.Label.Users" = "USUARIS"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ckb.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ckb.lproj/Localizable.strings index 1db4f793..89ba6315 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ckb.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ckb.lproj/Localizable.strings @@ -209,6 +209,8 @@ "Scene.Favorite.Title" = "بەدڵبووەکانت"; "Scene.Follower.Footer" = "شوێنکەوتووەکانی لە ڕاژەکارەکانی ترەوە نیشان نادرێت."; "Scene.Following.Footer" = "شوێنکەوتنەکانی بۆ هەژماری ڕاژەکارەکانی تر نیشان نادرێت."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "پۆستە نوێکان ببینە"; "Scene.HomeTimeline.NavigationBarState.Offline" = "دەرهێڵ"; "Scene.HomeTimeline.NavigationBarState.Published" = "بڵاوکرایەوە!"; @@ -291,6 +293,37 @@ "Scene.Report.SkipToSend" = "بەبێ لێدوان بینێرە"; "Scene.Report.Step1" = "هەنگاوی 1 لە 2"; "Scene.Report.Step2" = "هەنگاوی 2 لە 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "ڕوونکردنەوەی زۆرتر بدە"; "Scene.Report.Title" = "سکاڵا لە %@ بکە"; "Scene.Report.TitleReport" = "سکاڵای لێ بکە"; @@ -331,6 +364,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "ڕاژەکار دەدۆزرێتەوە..."; "Scene.ServerPicker.EmptyState.NoResults" = "ئەنجام نییە"; "Scene.ServerPicker.Input.Placeholder" = "بگەڕێ"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "بەش"; "Scene.ServerPicker.Label.Language" = "زمان"; "Scene.ServerPicker.Label.Users" = "بەکارهێنەر"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings index 7c3e16ec..7b3af462 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/de.lproj/Localizable.strings @@ -211,6 +211,8 @@ tippe darin auf den Link, um Dein Konto zu bestätigen."; "Scene.Favorite.Title" = "Deine Favoriten"; "Scene.Follower.Footer" = "Follower von anderen Servern werden nicht angezeigt."; "Scene.Following.Footer" = "Wem das Konto folgt wird von anderen Servern werden nicht angezeigt."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Neue Beiträge anzeigen"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Offline"; "Scene.HomeTimeline.NavigationBarState.Published" = "Veröffentlicht!"; @@ -293,6 +295,37 @@ tippe darin auf den Link, um Dein Konto zu bestätigen."; "Scene.Report.SkipToSend" = "Ohne Kommentar abschicken"; "Scene.Report.Step1" = "Schritt 1 von 2"; "Scene.Report.Step2" = "Schritt 2 von 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Zusätzliche Kommentare eingeben oder einfügen"; "Scene.Report.Title" = "%@ melden"; "Scene.Report.TitleReport" = "Melden"; @@ -333,6 +366,7 @@ tippe darin auf den Link, um Dein Konto zu bestätigen."; "Scene.ServerPicker.EmptyState.FindingServers" = "Verfügbare Server werden gesucht..."; "Scene.ServerPicker.EmptyState.NoResults" = "Keine Ergebnisse"; "Scene.ServerPicker.Input.Placeholder" = "Finde einen Server oder trete deinem eigenen bei..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "KATEGORIE"; "Scene.ServerPicker.Label.Language" = "SPRACHE"; "Scene.ServerPicker.Label.Users" = "BENUTZER"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/en.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/en.lproj/Localizable.strings index fe66593f..91ad3a0e 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/en.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/en.lproj/Localizable.strings @@ -210,6 +210,8 @@ uploaded to Mastodon."; "Scene.Favorite.Title" = "Your Favorites"; "Scene.Follower.Footer" = "Followers from other servers are not displayed."; "Scene.Following.Footer" = "Follows from other servers are not displayed."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "See new posts"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Offline"; "Scene.HomeTimeline.NavigationBarState.Published" = "Published!"; @@ -292,6 +294,37 @@ uploaded to Mastodon."; "Scene.Report.SkipToSend" = "Send without comment"; "Scene.Report.Step1" = "Step 1 of 2"; "Scene.Report.Step2" = "Step 2 of 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Type or paste additional comments"; "Scene.Report.Title" = "Report %@"; "Scene.Report.TitleReport" = "Report"; @@ -332,6 +365,7 @@ uploaded to Mastodon."; "Scene.ServerPicker.EmptyState.FindingServers" = "Finding available servers..."; "Scene.ServerPicker.EmptyState.NoResults" = "No results"; "Scene.ServerPicker.Input.Placeholder" = "Search servers"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "CATEGORY"; "Scene.ServerPicker.Label.Language" = "LANGUAGE"; "Scene.ServerPicker.Label.Users" = "USERS"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings index af5d453b..5b05b535 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/es-419.lproj/Localizable.strings @@ -211,6 +211,8 @@ pulsá en el enlace para confirmar tu cuenta."; "Scene.Favorite.Title" = "Tus favoritos"; "Scene.Follower.Footer" = "No se muestran los seguidores de otros servidores."; "Scene.Following.Footer" = "No se muestran las cuentas de otros servidores que seguís."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Ver nuevos mensajes"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Desconectado"; "Scene.HomeTimeline.NavigationBarState.Published" = "¡Enviado!"; @@ -293,6 +295,37 @@ pulsá en el enlace para confirmar tu cuenta."; "Scene.Report.SkipToSend" = "Enviar sin comentarios"; "Scene.Report.Step1" = "Paso 1 de 2"; "Scene.Report.Step2" = "Paso 2 de 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Escribí o pegá comentarios adicionales"; "Scene.Report.Title" = "Denunciar a %@"; "Scene.Report.TitleReport" = "Denunciar"; @@ -333,6 +366,7 @@ pulsá en el enlace para confirmar tu cuenta."; "Scene.ServerPicker.EmptyState.FindingServers" = "Buscando servidores disponibles…"; "Scene.ServerPicker.EmptyState.NoResults" = "No hay resultados"; "Scene.ServerPicker.Input.Placeholder" = "Encontrá un servidor o unite al tuyo…"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "CATEGORÍA"; "Scene.ServerPicker.Label.Language" = "IDIOMA"; "Scene.ServerPicker.Label.Users" = "CUENTAS"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/es.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/es.lproj/Localizable.strings index 09fba0b4..48b14608 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/es.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/es.lproj/Localizable.strings @@ -211,6 +211,8 @@ pulsa en el enlace para confirmar tu cuenta."; "Scene.Favorite.Title" = "Tus Favoritos"; "Scene.Follower.Footer" = "No se muestran los seguidores de otros servidores."; "Scene.Following.Footer" = "No se muestran los seguidos de otros servidores."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Ver nuevas publicaciones"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Sin Conexión"; "Scene.HomeTimeline.NavigationBarState.Published" = "¡Publicado!"; @@ -293,6 +295,37 @@ pulsa en el enlace para confirmar tu cuenta."; "Scene.Report.SkipToSend" = "Enviar sin comentarios"; "Scene.Report.Step1" = "Paso 1 de 2"; "Scene.Report.Step2" = "Paso 2 de 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Escribe o pega comentarios adicionales"; "Scene.Report.Title" = "Reportar %@"; "Scene.Report.TitleReport" = "Reportar"; @@ -333,6 +366,7 @@ pulsa en el enlace para confirmar tu cuenta."; "Scene.ServerPicker.EmptyState.FindingServers" = "Encontrando servidores disponibles..."; "Scene.ServerPicker.EmptyState.NoResults" = "Sin resultados"; "Scene.ServerPicker.Input.Placeholder" = "Encuentra un servidor o únete al tuyo propio..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "CATEGORÍA"; "Scene.ServerPicker.Label.Language" = "IDIOMA"; "Scene.ServerPicker.Label.Users" = "USUARIOS"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/eu-ES.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/eu-ES.lproj/Localizable.strings index e682977e..8f2055df 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/eu-ES.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/eu-ES.lproj/Localizable.strings @@ -211,6 +211,8 @@ sakatu kontua berresteko esteka."; "Scene.Favorite.Title" = "Zure gogokoak"; "Scene.Follower.Footer" = "Beste zerbitzarietako jarraitzaileak ez dira bistaratzen."; "Scene.Following.Footer" = "Beste zerbitzarietan jarraitutakoak ez dira bistaratzen."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Ikusi bidal. berriak"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Konexio gabe"; "Scene.HomeTimeline.NavigationBarState.Published" = "Argitaratua!"; @@ -293,6 +295,37 @@ sakatu kontua berresteko esteka."; "Scene.Report.SkipToSend" = "Bidali iruzkinik gabe"; "Scene.Report.Step1" = "1. urratsa 2tik"; "Scene.Report.Step2" = "2. urratsa 2tik"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Idatzi edo itsatsi iruzkin gehigarriak"; "Scene.Report.Title" = "Salatu %@"; "Scene.Report.TitleReport" = "Salatu"; @@ -333,6 +366,7 @@ sakatu kontua berresteko esteka."; "Scene.ServerPicker.EmptyState.FindingServers" = "Erabilgarri dauden zerbitzariak bilatzen..."; "Scene.ServerPicker.EmptyState.NoResults" = "Emaitzarik ez"; "Scene.ServerPicker.Input.Placeholder" = "Bilatu zerbitzari bat edo sortu zurea..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "KATEGORIA"; "Scene.ServerPicker.Label.Language" = "HIZKUNTZA"; "Scene.ServerPicker.Label.Users" = "ERABILTZAILEAK"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/fr.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/fr.lproj/Localizable.strings index 880612b2..f5c60fcb 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/fr.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/fr.lproj/Localizable.strings @@ -211,6 +211,8 @@ tapotez le lien pour confirmer votre compte."; "Scene.Favorite.Title" = "Vos favoris"; "Scene.Follower.Footer" = "Les abonné·e·s issus des autres serveurs ne sont pas affiché·e·s."; "Scene.Following.Footer" = "Les abonnés issus des autres serveurs ne sont pas affichés."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Voir les nouvelles publications"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Hors ligne"; "Scene.HomeTimeline.NavigationBarState.Published" = "Publié!"; @@ -293,6 +295,37 @@ tapotez le lien pour confirmer votre compte."; "Scene.Report.SkipToSend" = "Envoyer sans commentaire"; "Scene.Report.Step1" = "Étape 1 de 2"; "Scene.Report.Step2" = "Étape 2 de 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Tapez ou collez des informations supplémentaires"; "Scene.Report.Title" = "Signaler %@"; "Scene.Report.TitleReport" = "Signalement"; @@ -333,6 +366,7 @@ tapotez le lien pour confirmer votre compte."; "Scene.ServerPicker.EmptyState.FindingServers" = "Recherche des serveurs disponibles..."; "Scene.ServerPicker.EmptyState.NoResults" = "Aucun résultat"; "Scene.ServerPicker.Input.Placeholder" = "Trouvez un serveur ou rejoignez le vôtre..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "CATÉGORIE"; "Scene.ServerPicker.Label.Language" = "LANGUE"; "Scene.ServerPicker.Label.Users" = "UTILISATEUR·RICE·S"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings index d14d7acd..a1576bb9 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/gd-GB.lproj/Localizable.strings @@ -211,6 +211,8 @@ thoir gnogag air a’ chunntas a dhearbhadh a’ chunntais agad."; "Scene.Favorite.Title" = "Na h-annsachdan agad"; "Scene.Follower.Footer" = "Cha dèid luchd-leantainn o fhrithealaichean eile a shealltainn."; "Scene.Following.Footer" = "Cha dèid cò air a leanas tu air frithealaichean eile a shealltainn."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Seall na postaichean ùra"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Far loidhne"; "Scene.HomeTimeline.NavigationBarState.Published" = "Chaidh fhoillseachadh!"; @@ -293,6 +295,37 @@ thoir gnogag air a’ chunntas a dhearbhadh a’ chunntais agad."; "Scene.Report.SkipToSend" = "Cuir gun bheachd ris"; "Scene.Report.Step1" = "Ceum 1 à 2"; "Scene.Report.Step2" = "Ceum 2 à 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Sgrìobh no cuir ann beachdan a bharrachd"; "Scene.Report.Title" = "Dèan gearan mu %@"; "Scene.Report.TitleReport" = "Dèan gearan"; @@ -333,6 +366,7 @@ thoir gnogag air a’ chunntas a dhearbhadh a’ chunntais agad."; "Scene.ServerPicker.EmptyState.FindingServers" = "A’ lorg nam frithealaichean ri am faighinn…"; "Scene.ServerPicker.EmptyState.NoResults" = "Gun toradh"; "Scene.ServerPicker.Input.Placeholder" = "Lorg frithealaiche no gabh pàirt san fhear agad fhèin…"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "ROINN-SEÒRSA"; "Scene.ServerPicker.Label.Language" = "CÀNAN"; "Scene.ServerPicker.Label.Users" = "CLEACHDAICHEAN"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings index 35fe4066..9aa91893 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/gl.lproj/Localizable.strings @@ -210,6 +210,8 @@ ser subido a Mastodon."; "Scene.Favorite.Title" = "Publicacións Favoritas"; "Scene.Follower.Footer" = "Non se mostran seguidoras desde outros servidores."; "Scene.Following.Footer" = "Non se mostran os seguimentos desde outros servidores."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Novas publicacións"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Sen conexión"; "Scene.HomeTimeline.NavigationBarState.Published" = "Publicado!"; @@ -292,6 +294,37 @@ ser subido a Mastodon."; "Scene.Report.SkipToSend" = "Enviar sen comentarios"; "Scene.Report.Step1" = "Paso 1 de 2"; "Scene.Report.Step2" = "Paso 2 de 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Escribe ou pega comentarios adicionais"; "Scene.Report.Title" = "Denunciar a %@"; "Scene.Report.TitleReport" = "Denunciar"; @@ -332,6 +365,7 @@ ser subido a Mastodon."; "Scene.ServerPicker.EmptyState.FindingServers" = "Buscando servidores dispoñibles..."; "Scene.ServerPicker.EmptyState.NoResults" = "Sen resultados"; "Scene.ServerPicker.Input.Placeholder" = "Buscar comunidades"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "CATEGORÍA"; "Scene.ServerPicker.Label.Language" = "IDIOMA"; "Scene.ServerPicker.Label.Users" = "USUARIAS"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/it.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/it.lproj/Localizable.strings index 8a80b11d..38b0ed65 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/it.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/it.lproj/Localizable.strings @@ -210,6 +210,8 @@ caricato su Mastodon."; "Scene.Favorite.Title" = "I tuoi preferiti"; "Scene.Follower.Footer" = "I seguaci da altri server non vengono visualizzati."; "Scene.Following.Footer" = "I follow da altri server non vengono visualizzati."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tocca per scorrere verso l'alto e tocca di nuovo verso la posizione precedente"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Pulsante Logo"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Vedi nuovi post"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Non in linea"; "Scene.HomeTimeline.NavigationBarState.Published" = "Pubblicato!"; @@ -292,6 +294,37 @@ caricato su Mastodon."; "Scene.Report.SkipToSend" = "Invia senza commento"; "Scene.Report.Step1" = "Fase 1 di 2"; "Scene.Report.Step2" = "Fase 2 di 2"; +"Scene.Report.StepFinal.BlockUser" = "Blocca %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Non vuoi vedere questo?"; +"Scene.Report.StepFinal.MuteUser" = "Silenzia %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "Non saranno più in grado di seguire o vedere i tuoi post, ma possono vedere se sono stati bloccati."; +"Scene.Report.StepFinal.Unfollow" = "Smetti di seguire"; +"Scene.Report.StepFinal.UnfollowUser" = "Smetti di seguire %@"; +"Scene.Report.StepFinal.Unfollowed" = "Non seguito"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "Quando vedi qualcosa che non ti piace su Mastodon, puoi rimuovere la persona dalla tua esperienza."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "Non vedrai i loro post o le condivisioni nel tuo feed. Non sapranno di essere stati silenziati."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "C'è altro che dovremmo sapere?"; +"Scene.Report.StepFour.Step4Of4" = "Fase 4 di 4"; +"Scene.Report.StepOne.IDontLikeIt" = "Non mi piace"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "È qualcosa che non vuoi vedere"; +"Scene.Report.StepOne.ItViolatesServerRules" = "Viola le regole del server"; +"Scene.Report.StepOne.ItsSomethingElse" = "È qualcos'altro"; +"Scene.Report.StepOne.ItsSpam" = "È spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Collegamenti malevoli, false interazioni o risposte ripetitive"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Scegli la migliore corrispondenza"; +"Scene.Report.StepOne.Step1Of4" = "Fase 1 di 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "Il problema non rientra in altre categorie"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "Cosa c'è che non va con questo account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "Cosa c'è che non va con questo post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "Cosa c'è che non va con %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "Sei consapevole che violi regole specifiche"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Ci sono post a sostegno di questa segnalazione?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Seleziona tutte le risposte pertinenti"; +"Scene.Report.StepThree.Step3Of4" = "Fase 3 di 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "Non mi piace"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Seleziona tutte le risposte pertinenti"; +"Scene.Report.StepTwo.Step2Of4" = "Fase 2 di 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Quali regole vengono violate?"; "Scene.Report.TextPlaceholder" = "Digita o incolla commenti aggiuntivi"; "Scene.Report.Title" = "Segnala %@"; "Scene.Report.TitleReport" = "Segnala"; @@ -332,6 +365,7 @@ caricato su Mastodon."; "Scene.ServerPicker.EmptyState.FindingServers" = "Ricerca server disponibili..."; "Scene.ServerPicker.EmptyState.NoResults" = "Nessun risultato"; "Scene.ServerPicker.Input.Placeholder" = "Cerca comunità"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Cerca comunità o inserisci l'URL"; "Scene.ServerPicker.Label.Category" = "CATEGORIA"; "Scene.ServerPicker.Label.Language" = "LINGUA"; "Scene.ServerPicker.Label.Users" = "UTENTI"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings index 015a8855..d746c196 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ja.lproj/Localizable.strings @@ -205,6 +205,8 @@ "Scene.Favorite.Title" = "お気に入り"; "Scene.Follower.Footer" = "他のサーバーからのフォロワーは表示されません。"; "Scene.Following.Footer" = "他のサーバーにいるフォローは表示されません。"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "新しい投稿を見る"; "Scene.HomeTimeline.NavigationBarState.Offline" = "オフライン"; "Scene.HomeTimeline.NavigationBarState.Published" = "投稿しました!"; @@ -287,6 +289,37 @@ "Scene.Report.SkipToSend" = "コメントなしで送信"; "Scene.Report.Step1" = "ステップ 1/2"; "Scene.Report.Step2" = "ステップ 2/2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "追加コメントを入力"; "Scene.Report.Title" = "%@を通報"; "Scene.Report.TitleReport" = "報告する"; @@ -327,6 +360,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "利用可能なサーバーの検索..."; "Scene.ServerPicker.EmptyState.NoResults" = "なし"; "Scene.ServerPicker.Input.Placeholder" = "サーバーを探す"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "カテゴリー"; "Scene.ServerPicker.Label.Language" = "言語"; "Scene.ServerPicker.Label.Users" = "ユーザー"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/kab.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/kab.lproj/Localizable.strings index 3ea1700c..bbc9856c 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/kab.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/kab.lproj/Localizable.strings @@ -210,6 +210,8 @@ Ad d-yettwasali ɣef Mastodon."; "Scene.Favorite.Title" = "Ismenyifen-ik·im"; "Scene.Follower.Footer" = "Ineḍfaren seg yiqeddacen-nniḍen ur d-ttwaskanen ara."; "Scene.Following.Footer" = "Ineḍfaren seg yiqeddacen-nniḍen ur d-ttwaskanen ara."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Tissufaɣ timaynutin"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Beṛṛa n tuqqna"; "Scene.HomeTimeline.NavigationBarState.Published" = "Yettwasuffeɣ!"; @@ -292,6 +294,37 @@ Ad d-yettwasali ɣef Mastodon."; "Scene.Report.SkipToSend" = "Azen s war awennit"; "Scene.Report.Step1" = "Aḥric 1 seg 2"; "Scene.Report.Step2" = "Aḥric 2 seg 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Aru neɣ senteḍ iwenniten-nniḍen"; "Scene.Report.Title" = "Aneqqis %@"; "Scene.Report.TitleReport" = "Aneqqis"; @@ -332,6 +365,7 @@ Ad d-yettwasali ɣef Mastodon."; "Scene.ServerPicker.EmptyState.FindingServers" = "Tifin n yiqeddacen yellan..."; "Scene.ServerPicker.EmptyState.NoResults" = "Ulac igemmaḍ"; "Scene.ServerPicker.Input.Placeholder" = "Nadi timɣiwnin"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "TAGGAYT"; "Scene.ServerPicker.Label.Language" = "TUTLAYT"; "Scene.ServerPicker.Label.Users" = "ISEQDACEN"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings index f9c23777..6f46f990 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ku.lproj/Localizable.strings @@ -211,6 +211,8 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin."; "Scene.Favorite.Title" = "Bijarteyên te"; "Scene.Follower.Footer" = "Şopîner ji rajekerên din nayê dîtin."; "Scene.Following.Footer" = "Şopandin ji rajekerên din nayê dîtin."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Şandiyên nû bibîne"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Derhêl"; "Scene.HomeTimeline.NavigationBarState.Published" = "Hate weşandin!"; @@ -293,6 +295,37 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin."; "Scene.Report.SkipToSend" = "Bêyî şirove bişîne"; "Scene.Report.Step1" = "Gav 1 ji 2"; "Scene.Report.Step2" = "Gav 2 ji 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Şiroveyên daxwazkirê binivîsine an jî pê ve bike"; "Scene.Report.Title" = "%@ ragihîne"; "Scene.Report.TitleReport" = "Ragihandin"; @@ -333,6 +366,7 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin."; "Scene.ServerPicker.EmptyState.FindingServers" = "Peydakirina rajekarên berdest..."; "Scene.ServerPicker.EmptyState.NoResults" = "Encam tune"; "Scene.ServerPicker.Input.Placeholder" = "Li rajekaran bigere"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "BEŞ"; "Scene.ServerPicker.Label.Language" = "ZIMAN"; "Scene.ServerPicker.Label.Users" = "BIKARHÊNER"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/nl.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/nl.lproj/Localizable.strings index 63586def..f0b5eb42 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/nl.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/nl.lproj/Localizable.strings @@ -205,6 +205,8 @@ klik op de link om uw account te bevestigen."; "Scene.Favorite.Title" = "Uw favorieten"; "Scene.Follower.Footer" = "Volgers van andere servers worden niet weergegeven."; "Scene.Following.Footer" = "Volgers van andere servers worden niet weergegeven."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Bekijk nieuwe berichten"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Offline"; "Scene.HomeTimeline.NavigationBarState.Published" = "Gepubliceerd!"; @@ -287,6 +289,37 @@ klik op de link om uw account te bevestigen."; "Scene.Report.SkipToSend" = "Verstuur zonder opmerkingen"; "Scene.Report.Step1" = "Stap 1 van 2"; "Scene.Report.Step2" = "Stap 2 van 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Schrijf of plak aanvullende opmerkingen"; "Scene.Report.Title" = "Rapporteer %@"; "Scene.Report.TitleReport" = "Rapporteer"; @@ -327,6 +360,7 @@ klik op de link om uw account te bevestigen."; "Scene.ServerPicker.EmptyState.FindingServers" = "Beschikbare servers zoeken..."; "Scene.ServerPicker.EmptyState.NoResults" = "Geen resultaten"; "Scene.ServerPicker.Input.Placeholder" = "Zoek uw server of sluit u bij een nieuwe server aan..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "CATEGORIE"; "Scene.ServerPicker.Label.Language" = "TAAL"; "Scene.ServerPicker.Label.Users" = "GEBRUIKERS"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/ru.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/ru.lproj/Localizable.strings index 7353b620..ba32a979 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/ru.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/ru.lproj/Localizable.strings @@ -221,6 +221,8 @@ "Scene.Favorite.Title" = "Ваше избранное"; "Scene.Follower.Footer" = "Followers from other servers are not displayed."; "Scene.Following.Footer" = "Follows from other servers are not displayed."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Показать новые"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Не в сети"; "Scene.HomeTimeline.NavigationBarState.Published" = "Опубликовано!"; @@ -303,6 +305,37 @@ "Scene.Report.SkipToSend" = "Отправить без комментария"; "Scene.Report.Step1" = "Шаг 1 из 2"; "Scene.Report.Step2" = "Шаг 2 из 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Дополнительные комментарии"; "Scene.Report.Title" = "Пожаловаться на %@"; "Scene.Report.TitleReport" = "Жалоба"; @@ -343,6 +376,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "Ищем доступные сервера..."; "Scene.ServerPicker.EmptyState.NoResults" = "Нет результатов"; "Scene.ServerPicker.Input.Placeholder" = "Найдите сервер или присоединитесь к своему..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "КАТЕГОРИЯ"; "Scene.ServerPicker.Label.Language" = "ЯЗЫК"; "Scene.ServerPicker.Label.Users" = "ПОЛЬЗОВАТЕЛИ"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings index ef723027..20470032 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/th.lproj/Localizable.strings @@ -210,6 +210,8 @@ "Scene.Favorite.Title" = "รายการโปรดของคุณ"; "Scene.Follower.Footer" = "ไม่ได้แสดงผู้ติดตามจากเซิร์ฟเวอร์อื่น ๆ"; "Scene.Following.Footer" = "ไม่ได้แสดงการติดตามจากเซิร์ฟเวอร์อื่น ๆ"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "ดูโพสต์ใหม่"; "Scene.HomeTimeline.NavigationBarState.Offline" = "ออฟไลน์"; "Scene.HomeTimeline.NavigationBarState.Published" = "เผยแพร่แล้ว!"; @@ -292,6 +294,37 @@ "Scene.Report.SkipToSend" = "ส่งโดยไม่มีความคิดเห็น"; "Scene.Report.Step1" = "ขั้นตอนที่ 1 จาก 2"; "Scene.Report.Step2" = "ขั้นตอนที่ 2 จาก 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "พิมพ์หรือวางความคิดเห็นเพิ่มเติม"; "Scene.Report.Title" = "รายงาน %@"; "Scene.Report.TitleReport" = "รายงาน"; @@ -332,6 +365,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "กำลังค้นหาเซิร์ฟเวอร์ที่พร้อมใช้งาน..."; "Scene.ServerPicker.EmptyState.NoResults" = "ไม่มีผลลัพธ์"; "Scene.ServerPicker.Input.Placeholder" = "ค้นหาเซิร์ฟเวอร์"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "หมวดหมู่"; "Scene.ServerPicker.Label.Language" = "ภาษา"; "Scene.ServerPicker.Label.Users" = "ผู้ใช้"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings index 887fa064..9467072f 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/tr.lproj/Localizable.strings @@ -209,6 +209,8 @@ yüklenemiyor."; "Scene.Favorite.Title" = "Favorilerin"; "Scene.Follower.Footer" = "Diğer sunucudaki takipçiler gösterilemiyor."; "Scene.Following.Footer" = "Diğer sunucudaki takip edilenler gösterilemiyor."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Yeni gönderiler gör"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Çevrimdışı"; "Scene.HomeTimeline.NavigationBarState.Published" = "Yayınlandı!"; @@ -291,6 +293,37 @@ yüklenemiyor."; "Scene.Report.SkipToSend" = "Yorum yapmadan gönder"; "Scene.Report.Step1" = "Adım 1/2"; "Scene.Report.Step2" = "Adım 2/2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Bunu görmek istemiyor musunuz?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Takibi bırak"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Bilmemiz gereken başka bir şey var mı?"; +"Scene.Report.StepFour.Step4Of4" = "Adım 4/4"; +"Scene.Report.StepOne.IDontLikeIt" = "Beğenmedim"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "Görmek isteyeceğim bir şey değil"; +"Scene.Report.StepOne.ItViolatesServerRules" = "Sunucu kurallarını ihlal ediyor"; +"Scene.Report.StepOne.ItsSomethingElse" = "Başka bir şey"; +"Scene.Report.StepOne.ItsSpam" = "Spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "En iyi seçeneceği seçiniz"; +"Scene.Report.StepOne.Step1Of4" = "Adım 1/4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "Sorun bunlardan biri değil"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "Bu hesap ile ilgili sorun nedir?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "Bu gönderi ile ilgili sorun nedir?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "%@ kişisinin sorunu nedir?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Bu bildirimi destekleyecek herhangi bir gönderi var mı?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Geçerli olanların tümünü seçiniz"; +"Scene.Report.StepThree.Step3Of4" = "Adım 3/4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "Beğenmedim"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Geçerli olan tümünü seçiniz"; +"Scene.Report.StepTwo.Step2Of4" = "Adım 2/4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Hangi kurallar ihlal ediliyor?"; "Scene.Report.TextPlaceholder" = "Ek yorum yazın veya yapıştırın"; "Scene.Report.Title" = "%@ kişisini bildir"; "Scene.Report.TitleReport" = "Raporla"; @@ -331,6 +364,7 @@ yüklenemiyor."; "Scene.ServerPicker.EmptyState.FindingServers" = "Mevcut sunucular aranıyor..."; "Scene.ServerPicker.EmptyState.NoResults" = "Sonuç yok"; "Scene.ServerPicker.Input.Placeholder" = "Toplulukları ara"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "KATEGORİ"; "Scene.ServerPicker.Label.Language" = "DİL"; "Scene.ServerPicker.Label.Users" = "KULLANICILAR"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/vi.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/vi.lproj/Localizable.strings index d7853fa7..d93f0607 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/vi.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/vi.lproj/Localizable.strings @@ -210,6 +210,8 @@ tải lên Mastodon."; "Scene.Favorite.Title" = "Lượt thích"; "Scene.Follower.Footer" = "Không hiển thị người theo dõi từ máy chủ khác."; "Scene.Following.Footer" = "Không hiển thị người bạn theo dõi từ máy chủ khác."; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Đọc những tút mới"; "Scene.HomeTimeline.NavigationBarState.Offline" = "Ngoại tuyến"; "Scene.HomeTimeline.NavigationBarState.Published" = "Đã đăng!"; @@ -292,6 +294,37 @@ tải lên Mastodon."; "Scene.Report.SkipToSend" = "Gửi không ghi chú"; "Scene.Report.Step1" = "Bước 1 trong 2"; "Scene.Report.Step2" = "Bước 2 trong 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "Nhập hoặc bổ sung chú thích"; "Scene.Report.Title" = "Báo cáo %@"; "Scene.Report.TitleReport" = "Báo cáo"; @@ -332,6 +365,7 @@ tải lên Mastodon."; "Scene.ServerPicker.EmptyState.FindingServers" = "Đang tìm máy chủ hoạt động..."; "Scene.ServerPicker.EmptyState.NoResults" = "Không có kết quả"; "Scene.ServerPicker.Input.Placeholder" = "Tìm máy chủ"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "PHÂN LOẠI"; "Scene.ServerPicker.Label.Language" = "NGÔN NGỮ"; "Scene.ServerPicker.Label.Users" = "NGƯỜI DÙNG"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hans.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hans.lproj/Localizable.strings index 43874734..50e5b42b 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hans.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hans.lproj/Localizable.strings @@ -211,6 +211,8 @@ "Scene.Favorite.Title" = "你的喜欢"; "Scene.Follower.Footer" = "不会显示来自其它服务器的关注者"; "Scene.Following.Footer" = "不会显示来自其它服务器的关注"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "查看新帖子"; "Scene.HomeTimeline.NavigationBarState.Offline" = "离线"; "Scene.HomeTimeline.NavigationBarState.Published" = "已发送"; @@ -293,6 +295,37 @@ "Scene.Report.SkipToSend" = "直接发送"; "Scene.Report.Step1" = "步骤 1 / 2"; "Scene.Report.Step2" = "步骤 2 / 2"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "输入或粘贴额外的注释"; "Scene.Report.Title" = "举报 %@"; "Scene.Report.TitleReport" = "举报"; @@ -333,6 +366,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "正在查找可用的服务器..."; "Scene.ServerPicker.EmptyState.NoResults" = "无结果"; "Scene.ServerPicker.Input.Placeholder" = "查找或加入你自己的服务器..."; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "类别"; "Scene.ServerPicker.Label.Language" = "语言"; "Scene.ServerPicker.Label.Users" = "用户"; diff --git a/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hant.lproj/Localizable.strings b/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hant.lproj/Localizable.strings index e76396f1..0de6127e 100644 --- a/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hant.lproj/Localizable.strings +++ b/MastodonSDK/Sources/MastodonLocalization/Resources/zh-Hant.lproj/Localizable.strings @@ -205,6 +205,8 @@ "Scene.Favorite.Title" = "您的最愛"; "Scene.Follower.Footer" = "來自其他伺服器的跟隨者不會被顯示。"; "Scene.Following.Footer" = "來自其他伺服器的跟隨中不會被顯示。"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location"; +"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "檢視最新嘟文"; "Scene.HomeTimeline.NavigationBarState.Offline" = "離線"; "Scene.HomeTimeline.NavigationBarState.Published" = "嘟出去!"; @@ -287,6 +289,37 @@ "Scene.Report.SkipToSend" = "不加入備註並傳送"; "Scene.Report.Step1" = "兩個步驟中的第一步"; "Scene.Report.Step2" = "兩個步驟中的第二步"; +"Scene.Report.StepFinal.BlockUser" = "Block %@"; +"Scene.Report.StepFinal.DontWantToSeeThis" = "Don’t want to see this?"; +"Scene.Report.StepFinal.MuteUser" = "Mute %@"; +"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked."; +"Scene.Report.StepFinal.Unfollow" = "Unfollow"; +"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@"; +"Scene.Report.StepFinal.Unfollowed" = "Unfollowed"; +"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you don’t like on Mastodon, you can remove the person from your experience."; +"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted."; +"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?"; +"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4"; +"Scene.Report.StepOne.IDontLikeIt" = "I don’t like it"; +"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see"; +"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules"; +"Scene.Report.StepOne.ItsSomethingElse" = "It’s something else"; +"Scene.Report.StepOne.ItsSpam" = "It’s spam"; +"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies"; +"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match"; +"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4"; +"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories"; +"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?"; +"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?"; +"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?"; +"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules"; +"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?"; +"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4"; +"Scene.Report.StepTwo.IJustDon’tLikeIt" = "I just don’t like it"; +"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply"; +"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4"; +"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?"; "Scene.Report.TextPlaceholder" = "請輸入或貼上額外的備註"; "Scene.Report.Title" = "檢舉 %@"; "Scene.Report.TitleReport" = "檢舉"; @@ -327,6 +360,7 @@ "Scene.ServerPicker.EmptyState.FindingServers" = "尋找可用的伺服器..."; "Scene.ServerPicker.EmptyState.NoResults" = "沒有結果"; "Scene.ServerPicker.Input.Placeholder" = "搜尋伺服器"; +"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search communities or enter URL"; "Scene.ServerPicker.Label.Category" = "分類"; "Scene.ServerPicker.Label.Language" = "語言"; "Scene.ServerPicker.Label.Users" = "使用者"; From 70a6e11d30a8dedf442d48b5a593b57dd9766e07 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 21:10:10 +0800 Subject: [PATCH 100/102] chore: use i18n strings for report flow --- .../View/DiscoveryIntroBannerView.swift | 3 ++- .../Paging/ProfilePagingViewModel.swift | 2 +- .../Scene/Report/Report/ReportViewModel.swift | 8 ++++---- .../ReportReason/ReportReasonView.swift | 5 ++--- .../ReportReason/ReportReasonViewModel.swift | 19 ++++++++++--------- .../ReportResult/ReportResultView.swift | 15 +++++++-------- .../ReportResult/ReportResultViewModel.swift | 3 ++- .../ReportServerRulesView.swift | 7 +++---- .../ReportServerRulesViewModel.swift | 5 +++-- .../ReportStatusViewModel+Diffable.swift | 2 +- ...eportSupplementaryViewModel+Diffable.swift | 4 ++-- .../View/Control/ActionToolbarContainer.swift | 2 +- 12 files changed, 38 insertions(+), 37 deletions(-) diff --git a/Mastodon/Scene/Discovery/View/DiscoveryIntroBannerView.swift b/Mastodon/Scene/Discovery/View/DiscoveryIntroBannerView.swift index e3e1c454..afc2cb7d 100644 --- a/Mastodon/Scene/Discovery/View/DiscoveryIntroBannerView.swift +++ b/Mastodon/Scene/Discovery/View/DiscoveryIntroBannerView.swift @@ -9,6 +9,7 @@ import os.log import UIKit import Combine import MastodonAsset +import MastodonLocalization public protocol DiscoveryIntroBannerViewDelegate: AnyObject { func discoveryIntroBannerView(_ bannerView: DiscoveryIntroBannerView, closeButtonDidPressed button: UIButton) @@ -26,7 +27,7 @@ public final class DiscoveryIntroBannerView: UIView { let label = UILabel() label.font = UIFontMetrics(forTextStyle: .headline).scaledFont(for: .systemFont(ofSize: 16, weight: .regular)) label.textColor = Asset.Colors.Label.primary.color - label.text = "These are the posts gaining traction in your corner of Mastodon." // TODO: i18n + label.text = L10n.Scene.Discovery.intro label.numberOfLines = 0 return label }() diff --git a/Mastodon/Scene/Profile/Segmented/Paging/ProfilePagingViewModel.swift b/Mastodon/Scene/Profile/Segmented/Paging/ProfilePagingViewModel.swift index e5220ef7..67a0ca93 100644 --- a/Mastodon/Scene/Profile/Segmented/Paging/ProfilePagingViewModel.swift +++ b/Mastodon/Scene/Profile/Segmented/Paging/ProfilePagingViewModel.swift @@ -44,7 +44,7 @@ final class ProfilePagingViewModel: NSObject { let barItems: [TMBarItemable] = { let items = [ TMBarItem(title: L10n.Scene.Profile.SegmentedControl.posts), - TMBarItem(title: L10n.Scene.Profile.SegmentedControl.postsAndReplies), // TODO: i18n + TMBarItem(title: L10n.Scene.Profile.SegmentedControl.postsAndReplies), TMBarItem(title: L10n.Scene.Profile.SegmentedControl.media), TMBarItem(title: L10n.Scene.Profile.SegmentedControl.about), ] diff --git a/Mastodon/Scene/Report/Report/ReportViewModel.swift b/Mastodon/Scene/Report/Report/ReportViewModel.swift index 590aed87..f94a92d3 100644 --- a/Mastodon/Scene/Report/Report/ReportViewModel.swift +++ b/Mastodon/Scene/Report/Report/ReportViewModel.swift @@ -14,6 +14,7 @@ import MastodonSDK import OrderedCollections import os.log import UIKit +import MastodonLocalization class ReportViewModel { @@ -53,8 +54,7 @@ class ReportViewModel { // setup reason viewModel if status != nil { - // TODO: i18n - reportReasonViewModel.headline = "What’s wrong with post?" + reportReasonViewModel.headline = L10n.Scene.Report.StepOne.whatsWrongWithThisPost } else { Task { @MainActor in let managedObjectContext = context.managedObjectContext @@ -63,9 +63,9 @@ class ReportViewModel { return user?.acctWithDomain } if let username = _username { - reportReasonViewModel.headline = "What’s wrong with @\(username)?" + reportReasonViewModel.headline = L10n.Scene.Report.StepOne.whatsWrongWithThisUsername(username) } else { - reportReasonViewModel.headline = "What’s wrong with this account?" + reportReasonViewModel.headline = L10n.Scene.Report.StepOne.whatsWrongWithThisAccount } } // end Task } diff --git a/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift b/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift index 3a8b4579..67e94872 100644 --- a/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift +++ b/Mastodon/Scene/Report/ReportReason/ReportReasonView.swift @@ -15,18 +15,17 @@ struct ReportReasonView: View { @ObservedObject var viewModel: ReportReasonViewModel - // TODO: i18n var body: some View { ScrollView(.vertical) { HStack { VStack(alignment: .leading, spacing: 8) { - Text("Step 1 of 4") + Text(L10n.Scene.Report.StepOne.step1Of4) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) Text(viewModel.headline) .foregroundColor(Color(Asset.Colors.Label.primary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 28, weight: .bold)) as CTFont)) - Text("Select the best match") + Text(L10n.Scene.Report.StepOne.selectTheBestMatch) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) } diff --git a/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift b/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift index b156ea31..91715cba 100644 --- a/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift +++ b/Mastodon/Scene/Report/ReportReason/ReportReasonViewModel.swift @@ -9,6 +9,7 @@ import UIKit import SwiftUI import MastodonAsset import MastodonSDK +import MastodonLocalization final class ReportReasonViewModel: ObservableObject { @@ -17,7 +18,7 @@ final class ReportReasonViewModel: ObservableObject { // input let context: AppContext - @Published var headline = "What's wrong with this account?" + @Published var headline = L10n.Scene.Report.StepOne.whatsWrongWithThisAccount @Published var serverRules: [Mastodon.Entity.Instance.Rule]? @Published var bottomPaddingHeight: CGFloat = .zero @@ -43,26 +44,26 @@ extension ReportReasonViewModel { var title: String { switch self { case .dislike: - return "I don’t like it" + return L10n.Scene.Report.StepOne.iDontLikeIt case .spam: - return "It’s spam" + return L10n.Scene.Report.StepOne.itsSpam case .violateRule: - return "It violates server rules" + return L10n.Scene.Report.StepOne.itViolatesServerRules case .other: - return "It’s something else" + return L10n.Scene.Report.StepOne.itsSomethingElse } } var subtitle: String { switch self { case .dislike: - return "It is not something you want to see" + return L10n.Scene.Report.StepOne.itIsNotSomethingYouWantToSee case .spam: - return "Malicious links, fake engagement, or repetetive replies" + return L10n.Scene.Report.StepOne.maliciousLinksFakeEngagementOrRepetetiveReplies case .violateRule: - return "You are aware that it breaks specific rules" + return L10n.Scene.Report.StepOne.youAreAwareThatItBreaksSpecificRules case .other: - return "The issue does not fit into other categories" + return L10n.Scene.Report.StepOne.theIssueDoesNotFitIntoOtherCategories } } diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultView.swift b/Mastodon/Scene/Report/ReportResult/ReportResultView.swift index dff87e35..7931538f 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultView.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultView.swift @@ -7,10 +7,10 @@ import UIKit import SwiftUI -import MastodonLocalization import MastodonSDK import MastodonUI import MastodonAsset +import MastodonLocalization import CoreDataStack struct ReportResultView: View { @@ -42,7 +42,6 @@ struct ReportResultView: View { .padding() } - // TODO: i18n var body: some View { ScrollView(.vertical) { HStack { @@ -56,7 +55,7 @@ struct ReportResultView: View { .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) } else { - Text(verbatim: "When you see something you don’t like on Mastodon, you can remove the person from your experience.") + Text(verbatim: L10n.Scene.Report.StepFinal.whenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) } @@ -68,7 +67,7 @@ struct ReportResultView: View { VStack(spacing: 32) { // Follow VStack(alignment: .leading, spacing: 4) { - Text("Unfollow @\(viewModel.username)") + Text(L10n.Scene.Report.StepFinal.unfollowUser("@\(viewModel.username)")) .font(.headline) .foregroundColor(Color(Asset.Colors.Label.primary.color)) ReportActionButton( @@ -82,10 +81,10 @@ struct ReportResultView: View { // Mute VStack(alignment: .leading, spacing: 4) { - Text("Mute @\(viewModel.username)") + Text(L10n.Scene.Report.StepFinal.muteUser("@\(viewModel.username)")) .font(.headline) .foregroundColor(Color(Asset.Colors.Label.primary.color)) - Text(verbatim: "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.") + Text(verbatim: L10n.Scene.Report.StepFinal.youWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .subheadline).scaledFont(for: .systemFont(ofSize: 13, weight: .regular)) as CTFont)) ReportActionButton( @@ -99,10 +98,10 @@ struct ReportResultView: View { // Block VStack(alignment: .leading, spacing: 4) { - Text("Block @\(viewModel.username)") + Text(L10n.Scene.Report.StepFinal.blockUser("@\(viewModel.username)")) .font(.headline) .foregroundColor(Color(Asset.Colors.Label.primary.color)) - Text(verbatim: "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked.") + Text(verbatim: L10n.Scene.Report.StepFinal.theyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .subheadline).scaledFont(for: .systemFont(ofSize: 13, weight: .regular)) as CTFont)) ReportActionButton( diff --git a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift index ea949a90..67d7475d 100644 --- a/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift +++ b/Mastodon/Scene/Report/ReportResult/ReportResultViewModel.swift @@ -14,6 +14,7 @@ import os.log import UIKit import MastodonAsset import MastodonUI +import MastodonLocalization class ReportResultViewModel: ObservableObject { @@ -25,7 +26,7 @@ class ReportResultViewModel: ObservableObject { let isReported: Bool var headline: String { - isReported ? "Thanks for reporting, we’ll look into this." : "Don’t want to see this?" + isReported ? L10n.Scene.Report.reportSentTitle : L10n.Scene.Report.StepFinal.dontWantToSeeThis } @Published var bottomPaddingHeight: CGFloat = .zero @Published var backgroundColor: UIColor = Asset.Scene.Report.background.color diff --git a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift index e8dcfa88..57406402 100644 --- a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift +++ b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesView.swift @@ -15,18 +15,17 @@ struct ReportServerRulesView: View { @ObservedObject var viewModel: ReportServerRulesViewModel - // TODO: i18n var body: some View { ScrollView(.vertical) { HStack { VStack(alignment: .leading, spacing: 8) { - Text("Step 2 of 4") + Text(L10n.Scene.Report.StepTwo.step2Of4) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) Text(viewModel.headline) .foregroundColor(Color(Asset.Colors.Label.primary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 28, weight: .bold)) as CTFont)) - Text("Select all that apply") + Text(L10n.Scene.Report.StepTwo.selectAllThatApply) .foregroundColor(Color(Asset.Colors.Label.secondary.color)) .font(Font(UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)) as CTFont)) } @@ -49,7 +48,7 @@ struct ReportServerRulesView: View { } } ReportServerRulesRowView( - title: "I just don’t like it", + title: L10n.Scene.Report.StepTwo.iJustDonTLikeIt, isSelect: viewModel.isDislike ) .background( diff --git a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift index 1960899a..e0e21f30 100644 --- a/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift +++ b/Mastodon/Scene/Report/ReportServerRules/ReportServerRulesViewModel.swift @@ -9,6 +9,7 @@ import UIKit import SwiftUI import MastodonAsset import MastodonSDK +import MastodonLocalization final class ReportServerRulesViewModel: ObservableObject { @@ -16,8 +17,8 @@ final class ReportServerRulesViewModel: ObservableObject { // input let context: AppContext - - @Published var headline = "Which rules are being violated?" + + @Published var headline = L10n.Scene.Report.StepTwo.whichRulesAreBeingViolated @Published var serverRules: [Mastodon.Entity.Instance.Rule] = [] @Published var bottomPaddingHeight: CGFloat = .zero diff --git a/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift index 5bcc2f3d..4610a38d 100644 --- a/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift +++ b/Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+Diffable.swift @@ -16,7 +16,7 @@ extension ReportStatusViewModel { static let reportItemHeaderContext = ReportItem.HeaderContext( primaryLabelText: L10n.Scene.Report.content1, - secondaryLabelText: "Step 3 of 4" + secondaryLabelText: L10n.Scene.Report.StepThree.step3Of4 ) func setupDiffableDataSource( diff --git a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift index e59617c3..8cbc1624 100644 --- a/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift +++ b/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewModel+Diffable.swift @@ -15,8 +15,8 @@ import MastodonLocalization extension ReportSupplementaryViewModel { static let reportItemHeaderContext = ReportItem.HeaderContext( - primaryLabelText: "Is there anything else we should know?", - secondaryLabelText: "Step 4 of 4" + primaryLabelText: L10n.Scene.Report.StepFour.isThereAnythingElseWeShouldKnow, + secondaryLabelText: L10n.Scene.Report.StepFour.step4Of4 ) func setupDiffableDataSource( diff --git a/MastodonSDK/Sources/MastodonUI/View/Control/ActionToolbarContainer.swift b/MastodonSDK/Sources/MastodonUI/View/Control/ActionToolbarContainer.swift index c3a9b96f..4a5c4485 100644 --- a/MastodonSDK/Sources/MastodonUI/View/Control/ActionToolbarContainer.swift +++ b/MastodonSDK/Sources/MastodonUI/View/Control/ActionToolbarContainer.swift @@ -216,7 +216,7 @@ extension ActionToolbarContainer { public func configureReply(count: Int, isEnabled: Bool) { let title = ActionToolbarContainer.title(from: count) replyButton.setTitle(title, for: .normal) - replyButton.accessibilityLabel = "\(count) reply" // TODO: i18n + replyButton.accessibilityLabel = L10n.Plural.Count.reply(count) } public func configureReblog(count: Int, isEnabled: Bool, isHighlighted: Bool) { From 635b7a8d97563c60c474dd2e45a02ee344f5d649 Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 21:11:58 +0800 Subject: [PATCH 101/102] chore: add i18n words --- Localization/Localizable.stringsdict | 22 ++++++++++++++++++++++ Localization/app.json | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Localization/Localizable.stringsdict b/Localization/Localizable.stringsdict index 4b9a1276..0b9a6ff6 100644 --- a/Localization/Localizable.stringsdict +++ b/Localization/Localizable.stringsdict @@ -90,6 +90,28 @@ posts + plural.count.media + + NSStringLocalizedFormatKey + %#@media_count@ + media_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 media + one + 1 media + few + %ld media + many + %ld media + other + %ld media + + plural.count.post NSStringLocalizedFormatKey diff --git a/Localization/app.json b/Localization/app.json index 8de2dc0b..12dd1e03 100644 --- a/Localization/app.json +++ b/Localization/app.json @@ -641,7 +641,8 @@ "mute_user": "Mute %s", "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You won’t see their posts or reblogs in your home feed. They won’t know they’ve been muted.", "block_user": "Block %s", - "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked." + "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if they’ve been blocked.", + "while_we_review_this_you_can_take_action_against_user": "While we review this, you can take action against %s" } }, "preview": { From 971c8674b69837cbfef761435fbbccb29a2de7bd Mon Sep 17 00:00:00 2001 From: CMK Date: Wed, 11 May 2022 21:12:38 +0800 Subject: [PATCH 102/102] chore: update version to 1.4.2 (127) --- AppShared/Info.plist | 4 +- Mastodon.xcodeproj/project.pbxproj | 48 +++++++++---------- .../xcschemes/xcschememanagement.plist | 8 ++-- Mastodon/Info.plist | 4 +- MastodonIntent/Info.plist | 4 +- MastodonTests/Info.plist | 4 +- MastodonUITests/Info.plist | 4 +- NotificationService/Info.plist | 4 +- ShareActionExtension/Info.plist | 4 +- 9 files changed, 42 insertions(+), 42 deletions(-) diff --git a/AppShared/Info.plist b/AppShared/Info.plist index 92f44289..a187ca26 100644 --- a/AppShared/Info.plist +++ b/AppShared/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleVersion - 126 + 127 diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index 99f517dd..fb9e834c 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -4763,7 +4763,7 @@ CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -4793,7 +4793,7 @@ CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -4901,11 +4901,11 @@ APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5Z4GVSS33P; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 126; + DYLIB_CURRENT_VERSION = 127; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = AppShared/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -4932,11 +4932,11 @@ APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5Z4GVSS33P; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 126; + DYLIB_CURRENT_VERSION = 127; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = AppShared/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -5027,7 +5027,7 @@ CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -5095,11 +5095,11 @@ APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5Z4GVSS33P; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 126; + DYLIB_CURRENT_VERSION = 127; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = AppShared/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -5124,7 +5124,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5147,7 +5147,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5171,7 +5171,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5195,7 +5195,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5219,7 +5219,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5243,7 +5243,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5267,7 +5267,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5354,7 +5354,7 @@ CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -5421,11 +5421,11 @@ APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5Z4GVSS33P; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 126; + DYLIB_CURRENT_VERSION = 127; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = AppShared/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -5449,7 +5449,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5472,7 +5472,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5496,7 +5496,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5520,7 +5520,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5543,7 +5543,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 127; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index 8e16cec2..5041bc0b 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -24,7 +24,7 @@ Mastodon - RTL.xcscheme_^#shared#^_ orderHint - 7 + 8 Mastodon - Release.xcscheme_^#shared#^_ @@ -114,7 +114,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 20 + 31 MastodonIntents.xcscheme_^#shared#^_ @@ -129,12 +129,12 @@ NotificationService.xcscheme_^#shared#^_ orderHint - 21 + 30 ShareActionExtension.xcscheme_^#shared#^_ orderHint - 22 + 32 SuppressBuildableAutocreation diff --git a/Mastodon/Info.plist b/Mastodon/Info.plist index c93fd9a6..0c3dea8f 100644 --- a/Mastodon/Info.plist +++ b/Mastodon/Info.plist @@ -30,7 +30,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleURLTypes @@ -43,7 +43,7 @@ CFBundleVersion - 126 + 127 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/MastodonIntent/Info.plist b/MastodonIntent/Info.plist index 3f163094..f1f54a5e 100644 --- a/MastodonIntent/Info.plist +++ b/MastodonIntent/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleVersion - 126 + 127 NSExtension NSExtensionAttributes diff --git a/MastodonTests/Info.plist b/MastodonTests/Info.plist index 92f44289..a187ca26 100644 --- a/MastodonTests/Info.plist +++ b/MastodonTests/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleVersion - 126 + 127 diff --git a/MastodonUITests/Info.plist b/MastodonUITests/Info.plist index 92f44289..a187ca26 100644 --- a/MastodonUITests/Info.plist +++ b/MastodonUITests/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleVersion - 126 + 127 diff --git a/NotificationService/Info.plist b/NotificationService/Info.plist index f074db82..fa2356db 100644 --- a/NotificationService/Info.plist +++ b/NotificationService/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleVersion - 126 + 127 NSExtension NSExtensionPointIdentifier diff --git a/ShareActionExtension/Info.plist b/ShareActionExtension/Info.plist index 31c7447f..95cd141f 100644 --- a/ShareActionExtension/Info.plist +++ b/ShareActionExtension/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleVersion - 126 + 127 NSExtension NSExtensionAttributes