Merge pull request #428 from mastodon/feature-report-flow

Update report flow
This commit is contained in:
CMK 2022-05-13 11:09:00 +08:00 committed by GitHub
commit c98aab5efd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
112 changed files with 5168 additions and 1333 deletions

View File

@ -15,8 +15,8 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.4.1</string>
<string>1.4.2</string>
<key>CFBundleVersion</key>
<string>126</string>
<string>127</string>
</dict>
</plist>

View File

@ -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. ";

View File

@ -5,7 +5,7 @@
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<string>On %#@count_option@, joka/jotka vastaavat sisältöön ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -13,15 +13,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>1 option</string>
<string>1 vaihtoehto</string>
<key>other</key>
<string>%ld options</string>
<string>%ld vaihtoehtoa</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<string>On vaihtoehtoa %#@count_option@, joka/jotka vastaavat näkyvyyteen ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -29,9 +29,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>1 option</string>
<string>1 vaihtoehto</string>
<key>other</key>
<string>%ld options</string>
<string>%ld vaihtoehtoa</string>
</dict>
</dict>
</dict>

View File

@ -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. ";

View File

@ -5,7 +5,7 @@
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<string>Hai %#@count_option@ coincidencias con '${content}'.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -13,15 +13,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>1 option</string>
<string>1 opción</string>
<key>other</key>
<string>%ld options</string>
<string>%ld opcións</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<string>Hai %#@count_option@ coincidentes con '${visibility}'.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -29,9 +29,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>1 option</string>
<string>1 opción</string>
<key>other</key>
<string>%ld options</string>
<string>%ld opcións</string>
</dict>
</dict>
</dict>

View File

@ -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}";
@ -24,28 +24,28 @@
"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";
"dUyuGg" = "Publicera på Mastodon";
"dYQ5NN" = "Publikt";
"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 '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'?";
"rM6dvp" = "URL";
"ryJLwG" = "Inlägget har postats. ";
"ryJLwG" = "Inlägget har publicerats. ";

View File

@ -109,7 +109,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>لا منشور</string>
<string>لا مَنشورات</string>
<key>one</key>
<string>منشورٌ واحِد</string>
<key>two</key>
@ -447,13 +447,13 @@
<key>zero</key>
<string>تتبقى لَحظة</string>
<key>one</key>
<string>تتبقى ثانية</string>
<string>تتبقى ثانية واحِدة</string>
<key>two</key>
<string>تتبقى ثانيتين</string>
<string>تتبقى ثانيتان</string>
<key>few</key>
<string>تتبقى %ld ثوان</string>
<key>many</key>
<string>تتبقى %ld ثانيةً</string>
<string>تتبقى %ld ثانية</string>
<key>other</key>
<string>تتبقى %ld ثانية</string>
</dict>

View File

@ -71,7 +71,7 @@
"cancel": "إلغاء",
"discard": "تجاهُل",
"try_again": "المُحاولة مرة أُخرى",
"take_photo": "التقاط صورة",
"take_photo": "اِلتِقاطُ صُورَة",
"save_photo": "حفظ الصورة",
"copy_photo": "نسخ الصورة",
"sign_in": "تسجيل الدخول",
@ -240,7 +240,8 @@
"category": "الفئة"
},
"input": {
"placeholder": "اِبحَث عن خادِم أو انضم إلى آخر خاص بك..."
"placeholder": "اِبحَث عن خادِم أو انضم إلى آخر خاص بك...",
"search_servers_or_enter_url": "اِبحث عَن مُجتَمَعَات أو أدخِل عُنوانَ URL"
},
"empty_state": {
"finding_servers": "يجري إيجاد خوادم متوفِّرَة...",
@ -342,7 +343,11 @@
"offline": "غَير مُتَّصِل",
"new_posts": "إظهار منشورات جديدة",
"published": "تمَّ النَّشر!",
"Publishing": "يَجري نَشر المُشارَكَة..."
"Publishing": "يَجري نَشر المُشارَكَة...",
"accessibility": {
"logo_label": "ُّزِرُّ الشِّعار",
"logo_hint": "اُنقُر لِلتمريرِ لأعلى واُنقُر مَرّةً أُخرَى لِلذَّهابِ إلَى المَوقِعِ السَّابِق"
}
}
},
"suggestion_account": {
@ -355,11 +360,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": {
@ -588,15 +593,56 @@
"report": {
"title_report": "إبلاغ",
"title": "الإبلاغ عن %s",
"step1": "الخطوة الأولى مِن أصل اثنتين",
"step2": "الخطوة الثانية والأخيرة",
"step1": "الخطوة 1 مِن أصل 2",
"step2": "الخطوة 2 مِن أصل 2",
"content1": "هل ترغب في إضافة أي منشورات أُخرى إلى البلاغ؟",
"content2": "هل هناك أي شيء يجب أن يعرفه المُراقبين حول هذا البلاغ؟",
"report_sent_title": "شُكرًا لَكَ على الإبلاغ، سَوفَ نَنظُرُ فِي هَذَا الأمر.",
"send": "إرسال البلاغ",
"skip_to_send": "إرسال بدون تعليق",
"text_placeholder": "اكتب أو الصق تعليقات إضافيَّة",
"reported": "مُبْلَغٌ عَنه"
"reported": "مُبْلَغٌ عَنه",
"step_one": {
"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": "الخطوة 2 مِن أصل 4",
"which_rules_are_being_violated": "مَا هِيَ القَواعِدُ الَّتي تُنتَهَك؟",
"select_all_that_apply": "اِختَر كُلَّ ما يَنطَبِق",
"i_just_dont_like_it": "أنا فَقَط لا يُعجِبُني"
},
"step_three": {
"step_3_of_4": "الخطوة 3 مِن أصل 4",
"are_there_any_posts_that_back_up_this_report": "هَل هُناكَ أيُّ مَنشُوراتٍ أُخرَى تَتَوافَقُ مَعَ هَذَا التَّقرير؟",
"select_all_that_apply": "اِختَر كُلَّ ما يَنطَبِق"
},
"step_four": {
"step_4_of_4": "الخطوة 4 مِن أصل 4",
"is_there_anything_else_we_should_know": "هَل هُناكَ شَيءٌ آخَرَ يَجِبُ أن نَعلَمَ بِه؟"
},
"step_final": {
"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": "لَن يَتمكَّنَ بَعدَ الآنِ مِن مُتابَعَةِ مَنشوراتِكَ أو رُؤيَتِها، وَلكِن يُمكِنَهُ مَعرِفَةُ مَا إذا حُظَرِت عَنه."
}
},
"preview": {
"keyboard": {

View File

@ -240,16 +240,17 @@
"category": "CATEGORIA"
},
"input": {
"placeholder": "Troba un servidor o uneix-te al teu..."
"placeholder": "Cerca servidors",
"search_servers_or_enter_url": "Cerca comunitats o introdueix l'URL"
},
"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"
}
},
"register": {
"title": "Parla'ns de tu.",
"title": "Anem a configurar-te a %s",
"input": {
"avatar": {
"delete": "Suprimeix"
@ -309,7 +310,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",
@ -342,11 +343,15 @@
"offline": "Fora de línia",
"new_posts": "Veure noves publicacions",
"published": "Publicat!",
"Publishing": "S'està publicant..."
"Publishing": "S'està publicant...",
"accessibility": {
"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"
}
}
},
"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": {
@ -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": "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": "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_dont_like_it": "Simplement no m'agrada"
},
"step_three": {
"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": "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": "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": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -47,7 +47,7 @@
<key>many</key>
<string>%ld characters</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld nodau</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
@ -85,17 +85,17 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>posts</string>
<string>post</string>
<key>one</key>
<string>post</string>
<key>two</key>
<string>posts</string>
<string>postiau</string>
<key>few</key>
<string>posts</string>
<key>many</key>
<string>posts</string>
<key>other</key>
<string>posts</string>
<string>postiau</string>
</dict>
</dict>
<key>plural.count.post</key>

View File

@ -138,7 +138,7 @@
},
"actions": {
"reply": "Reply",
"reblog": "Reblog",
"reblog": "Hybwch",
"unreblog": "Undo reblog",
"favorite": "Favorite",
"unfavorite": "Unfavorite",
@ -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": {
@ -411,7 +416,7 @@
},
"profile": {
"dashboard": {
"posts": "posts",
"posts": "postiadau",
"following": "following",
"followers": "followers"
},
@ -423,9 +428,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 +489,7 @@
"all": "All",
"people": "People",
"hashtags": "Hashtags",
"posts": "Posts"
"posts": "Postiadau"
},
"empty_state": {
"no_results": "No results"
@ -495,7 +500,7 @@
},
"discovery": {
"tabs": {
"posts": "Posts",
"posts": "Postiadau",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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"
"NewPostShortcutItemTitle": "Post Newydd",
"SearchShortcutItemTitle": "Chwilio"
}

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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": {
@ -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": {
@ -501,7 +506,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"
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {
@ -612,7 +658,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"
}
}

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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": {
@ -498,7 +503,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."
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -13,15 +13,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 unread notification</string>
<string>1 lukematon ilmoitus</string>
<key>other</key>
<string>%ld unread notification</string>
<string>%ld lukematonta ilmoitusta</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit exceeds %#@character_count@</string>
<string>Syöterajoitus ylittyy %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -29,15 +29,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<string>1 merkki</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld merkkiä</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit remains %#@character_count@</string>
<string>Syöterajoitus ylittyy %#@character_count@ päästä</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -45,9 +45,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<string>1 merkki</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld merkkiä</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
@ -61,9 +61,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>post</string>
<string>julkaisu</string>
<key>other</key>
<string>posts</string>
<string>julkaisut</string>
</dict>
</dict>
<key>plural.count.post</key>
@ -77,9 +77,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 post</string>
<string>1 julkaisu</string>
<key>other</key>
<string>%ld posts</string>
<string>%ld julkaisua</string>
</dict>
</dict>
<key>plural.count.favorite</key>
@ -93,9 +93,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 favorite</string>
<string>1 suosikki</string>
<key>other</key>
<string>%ld favorites</string>
<string>%ld suosikkia</string>
</dict>
</dict>
<key>plural.count.reblog</key>
@ -109,9 +109,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reblog</string>
<string>1 edelleen jako</string>
<key>other</key>
<string>%ld reblogs</string>
<string>%ld edelleen jakoa</string>
</dict>
</dict>
<key>plural.count.reply</key>
@ -141,9 +141,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 vote</string>
<string>1 ääni</string>
<key>other</key>
<string>%ld votes</string>
<string>%ld ääntä</string>
</dict>
</dict>
<key>plural.count.voter</key>
@ -157,9 +157,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 voter</string>
<string>1 vastaaja</string>
<key>other</key>
<string>%ld voters</string>
<string>%ld vastaajaa</string>
</dict>
</dict>
<key>plural.people_talking</key>
@ -173,9 +173,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 people talking</string>
<string>1 ihminen puhuu</string>
<key>other</key>
<string>%ld people talking</string>
<string>%ld ihmistä puhuu</string>
</dict>
</dict>
<key>plural.count.following</key>
@ -189,9 +189,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 following</string>
<string>1 seurataan</string>
<key>other</key>
<string>%ld following</string>
<string>%ld seurataan</string>
</dict>
</dict>
<key>plural.count.follower</key>
@ -205,9 +205,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 follower</string>
<string>1 seuraaja</string>
<key>other</key>
<string>%ld followers</string>
<string>%ld seuraajaa</string>
</dict>
</dict>
<key>date.year.left</key>
@ -221,9 +221,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 year left</string>
<string>1 vuosi jäljellä</string>
<key>other</key>
<string>%ld years left</string>
<string>%ld vuotta jäljellä</string>
</dict>
</dict>
<key>date.month.left</key>
@ -237,9 +237,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 months left</string>
<string>1 kuukausi jäljellä</string>
<key>other</key>
<string>%ld months left</string>
<string>%ld kuukautta jäljellä</string>
</dict>
</dict>
<key>date.day.left</key>
@ -253,9 +253,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 day left</string>
<string>1 päivä jäljellä</string>
<key>other</key>
<string>%ld days left</string>
<string>%ld päivää jäljellä</string>
</dict>
</dict>
<key>date.hour.left</key>
@ -269,9 +269,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 hour left</string>
<string>1 tunti jäljellä</string>
<key>other</key>
<string>%ld hours left</string>
<string>%ld tuntia jäljellä</string>
</dict>
</dict>
<key>date.minute.left</key>
@ -285,9 +285,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 minute left</string>
<string>1 minuutti jäljellä</string>
<key>other</key>
<string>%ld minutes left</string>
<string>%ld minuuttia jäljellä</string>
</dict>
</dict>
<key>date.second.left</key>
@ -301,9 +301,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 second left</string>
<string>1 sekuntti</string>
<key>other</key>
<string>%ld seconds left</string>
<string>%ld sekunttia jäljellä</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
@ -317,9 +317,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1y ago</string>
<string>1v sitten</string>
<key>other</key>
<string>%ldy ago</string>
<string>%ldv sitten</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
@ -333,9 +333,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1M ago</string>
<string>1kk sitten</string>
<key>other</key>
<string>%ldM ago</string>
<string>%ldkk sitten</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
@ -349,9 +349,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1d ago</string>
<string>1pv sitten</string>
<key>other</key>
<string>%ldd ago</string>
<string>%ldpv sitten</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
@ -365,9 +365,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1h ago</string>
<string>1t sitten</string>
<key>other</key>
<string>%ldh ago</string>
<string>%ldt sitten</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
@ -381,9 +381,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1m ago</string>
<string>1min sitten</string>
<key>other</key>
<string>%ldm ago</string>
<string>%ldmin sitten</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
@ -397,9 +397,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1s ago</string>
<string>1s sitten</string>
<key>other</key>
<string>%lds ago</string>
<string>%lds sitten</string>
</dict>
</dict>
</dict>

View File

@ -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,271 @@
}
},
"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 cant view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.",
"user_blocking_warning": "You cant view %ss profile\nuntil you unblock them.\nYour profile looks like this to them.",
"blocked_warning": "You cant view this users profile\nuntil they unblock you.",
"user_blocked_warning": "You cant view %ss profile\nuntil they unblock you.",
"suspended_warning": "This user has been suspended.",
"user_suspended_warning": "%ss 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...",
"search_servers_or_enter_url": "Search communities or enter URL"
},
"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": "Lets 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 (cant 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, youre 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 havent.",
"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 havent.",
"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...",
"accessibility": {
"logo_label": "Logo Button",
"logo_hint": "Tap to scroll to top and tap again to previous location"
}
}
},
"suggestion_account": {
"title": "Find People to Follow",
"follow_explain": "When you follow someone, youll 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 whats 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 cant 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 +440,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 +460,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 +509,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 +525,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 +550,116 @@
"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 youd 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, well look into this.",
"send": "Send Report",
"skip_to_send": "Send without comment",
"text_placeholder": "Type or paste additional comments",
"reported": "REPORTED"
"send": "Lähetä ilmianto",
"skip_to_send": "Lähetä ilman kommentteja",
"text_placeholder": "Kirjoita tai liitä lisäkommentteja",
"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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"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"
}
}
}

View File

@ -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"
}

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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": {
@ -498,7 +503,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."
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -13,15 +13,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 unread notification</string>
<string>1 notificación non lida</string>
<key>other</key>
<string>%ld unread notification</string>
<string>%ld notificacións non lidas</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit exceeds %#@character_count@</string>
<string>O límite supera %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -29,15 +29,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<string>1 caracter</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld caracteres</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit remains %#@character_count@</string>
<string>O límite de entrada mantense en %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -45,9 +45,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<string>1 caracter</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld caracteres</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
@ -61,9 +61,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>post</string>
<string>publicación</string>
<key>other</key>
<string>posts</string>
<string>publicacións</string>
</dict>
</dict>
<key>plural.count.post</key>
@ -77,9 +77,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 post</string>
<string>1 publicación</string>
<key>other</key>
<string>%ld posts</string>
<string>%ld publicacións</string>
</dict>
</dict>
<key>plural.count.favorite</key>
@ -93,9 +93,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 favorite</string>
<string>1 favorito</string>
<key>other</key>
<string>%ld favorites</string>
<string>%ld favoritos</string>
</dict>
</dict>
<key>plural.count.reblog</key>
@ -109,9 +109,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reblog</string>
<string>1 promoción</string>
<key>other</key>
<string>%ld reblogs</string>
<string>%ld promocións</string>
</dict>
</dict>
<key>plural.count.reply</key>
@ -125,9 +125,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reply</string>
<string>1 resposta</string>
<key>other</key>
<string>%ld replies</string>
<string>%ld respostas</string>
</dict>
</dict>
<key>plural.count.vote</key>
@ -141,9 +141,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 vote</string>
<string>1 voto</string>
<key>other</key>
<string>%ld votes</string>
<string>%ld votos</string>
</dict>
</dict>
<key>plural.count.voter</key>
@ -157,9 +157,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 voter</string>
<string>1 votante</string>
<key>other</key>
<string>%ld voters</string>
<string>%ld votantes</string>
</dict>
</dict>
<key>plural.people_talking</key>
@ -173,9 +173,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 people talking</string>
<string>1 persoa comentando</string>
<key>other</key>
<string>%ld people talking</string>
<string>%ld persoas comentando</string>
</dict>
</dict>
<key>plural.count.following</key>
@ -189,9 +189,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 following</string>
<string>1 seguimento</string>
<key>other</key>
<string>%ld following</string>
<string>%ld seguimentos</string>
</dict>
</dict>
<key>plural.count.follower</key>
@ -205,9 +205,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 follower</string>
<string>1 seguidora</string>
<key>other</key>
<string>%ld followers</string>
<string>%ld seguidoras</string>
</dict>
</dict>
<key>date.year.left</key>
@ -221,9 +221,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 year left</string>
<string>Queda 1 ano</string>
<key>other</key>
<string>%ld years left</string>
<string>Quedan %ld anos</string>
</dict>
</dict>
<key>date.month.left</key>
@ -237,9 +237,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 months left</string>
<string>Queda 1 mes</string>
<key>other</key>
<string>%ld months left</string>
<string>Quedan %ld meses</string>
</dict>
</dict>
<key>date.day.left</key>
@ -253,9 +253,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 day left</string>
<string>Queda 1 día</string>
<key>other</key>
<string>%ld days left</string>
<string>Quedan %ld días</string>
</dict>
</dict>
<key>date.hour.left</key>
@ -269,9 +269,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 hour left</string>
<string>Queda 1 hora</string>
<key>other</key>
<string>%ld hours left</string>
<string>Quedan %ld horas</string>
</dict>
</dict>
<key>date.minute.left</key>
@ -285,9 +285,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 minute left</string>
<string>Queda 1 minuto</string>
<key>other</key>
<string>%ld minutes left</string>
<string>Quedan %ld minutos</string>
</dict>
</dict>
<key>date.second.left</key>
@ -301,9 +301,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 second left</string>
<string>Queda 1 segundo</string>
<key>other</key>
<string>%ld seconds left</string>
<string>Quedan %ld segundos</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
@ -317,9 +317,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1y ago</string>
<string>hai 1 ano</string>
<key>other</key>
<string>%ldy ago</string>
<string>hai %ld anos</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
@ -333,9 +333,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1M ago</string>
<string>hai 1 mes</string>
<key>other</key>
<string>%ldM ago</string>
<string>hai %ld meses</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
@ -349,9 +349,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1d ago</string>
<string>hai 1 día</string>
<key>other</key>
<string>%ldd ago</string>
<string>hai %ld días</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
@ -365,9 +365,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1h ago</string>
<string>fai 1 hora</string>
<key>other</key>
<string>%ldh ago</string>
<string>fai %ld horas</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
@ -381,9 +381,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1m ago</string>
<string>fai 1 minuto</string>
<key>other</key>
<string>%ldm ago</string>
<string>fai %ld minutos</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
@ -397,9 +397,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1s ago</string>
<string>fai 1 seg.</string>
<key>other</key>
<string>%lds ago</string>
<string>fai %ld seg.</string>
</dict>
</dict>
</dict>

View File

@ -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 cant view %ss profile\nuntil you unblock them.\nYour profile looks like this to them.",
"blocked_warning": "You cant view this users profile\nuntil they unblock you.",
"user_blocked_warning": "You cant view %ss profile\nuntil they unblock you.",
"suspended_warning": "This user has been suspended.",
"user_suspended_warning": "%ss 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"
},
@ -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...",
@ -301,79 +302,83 @@
},
"special": {
"username_invalid": "O nome de usuaria só pode ter caracteres alfanuméricos e trazos baixos",
"username_too_long": "Username is too long (cant 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.",
"subtitle": "These are set and enforced by the %s moderators.",
"prompt": "By continuing, youre subject to the terms of service and privacy policy for %s.",
"terms_of_service": "terms of service",
"privacy_policy": "privacy policy",
"title": "Algunhas regras básicas.",
"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 havent.",
"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 havent.",
"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...",
"accessibility": {
"logo_label": "Logo Button",
"logo_hint": "Tap to scroll to top and tap again to previous location"
}
}
},
"suggestion_account": {
"title": "Find People to Follow",
"follow_explain": "When you follow someone, youll 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 whats 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 cant 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",
@ -499,90 +504,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": {
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {
@ -606,14 +652,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"
}
}
}

View File

@ -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"
}

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -240,7 +240,8 @@
"category": "CATEGORIA"
},
"input": {
"placeholder": "Cerca comunità"
"placeholder": "Cerca comunità",
"search_servers_or_enter_url": "Cerca comunità o inserisci l'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": "Pulsante Logo",
"logo_hint": "Tocca per scorrere verso l'alto e tocca di nuovo verso la posizione precedente"
}
}
},
"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": "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": "Fase 2 di 4",
"which_rules_are_being_violated": "Quali regole vengono violate?",
"select_all_that_apply": "Seleziona tutte le risposte pertinenti",
"i_just_dont_like_it": "Non mi piace"
},
"step_three": {
"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": "Fase 4 di 4",
"is_there_anything_else_we_should_know": "C'è altro che dovremmo sapere?"
},
"step_final": {
"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": {
"keyboard": {

View File

@ -153,7 +153,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld people talking</string>
<string>%ld人が投稿</string>
</dict>
</dict>
<key>plural.count.following</key>

View File

@ -45,8 +45,8 @@
"message": "写真を保存するには、フォトライブラリへのアクセス許可を有効にしてください。"
},
"delete_post": {
"title": "この投稿を消去しますか?",
"message": "本当に削除しますか?"
"title": "投稿を削除",
"message": "本当にこの投稿を削除しますか?"
},
"clean_cache": {
"title": "キャッシュを消去",
@ -56,7 +56,7 @@
"controls": {
"actions": {
"back": "戻る",
"next": "次",
"next": "次",
"previous": "前",
"open": "開く",
"add": "追加",
@ -91,7 +91,7 @@
"block_domain": "%sをブロック",
"unblock_domain": "%sのブロックを解除",
"settings": "設定",
"delete": "消去"
"delete": "削除"
},
"tabs": {
"home": "ホーム",
@ -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"
},
@ -207,7 +207,7 @@
"scene": {
"welcome": {
"slogan": "ソーシャルネットワーキングを、あなたの手の中に.",
"get_started": "Get Started",
"get_started": "はじめる",
"log_in": "ログイン"
},
"server_picker": {
@ -240,7 +240,8 @@
"category": "カテゴリー"
},
"input": {
"placeholder": "サーバーを探す"
"placeholder": "サーバーを探す",
"search_servers_or_enter_url": "Search communities or enter URL"
},
"empty_state": {
"finding_servers": "利用可能なサーバーの検索...",
@ -252,7 +253,7 @@
"title": "あなたのことを教えてください",
"input": {
"avatar": {
"delete": "消去"
"delete": "削除"
},
"username": {
"placeholder": "ユーザー名",
@ -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": {
@ -498,10 +503,10 @@
"posts": "投稿",
"hashtags": "ハッシュタグ",
"news": "ニュース",
"community": "Community",
"for_you": "For You"
"community": "コミュニティ",
"for_you": "おすすめ"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."
"intro": "あなたのMastodonサーバーで注目を集めている投稿がここに表示されます。"
},
"favorite": {
"title": "お気に入り"
@ -512,12 +517,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 +543,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": "通知",
@ -564,7 +569,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": "アプリについて",
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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": {
@ -240,7 +240,8 @@
"category": "BEŞ"
},
"input": {
"placeholder": "Rajekarekî bibîne an jî beşdarî ya xwe bibe..."
"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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -157,7 +157,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld röst</string>
<string>%ld röstare</string>
<key>other</key>
<string>%ld röster</string>
</dict>
@ -317,7 +317,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ldå sedan</string>
<string>%ld år sedan</string>
<key>other</key>
<string>%ldå sedan</string>
</dict>
@ -333,7 +333,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ldmån sedan</string>
<string>%ld mån sedan</string>
<key>other</key>
<string>%ld mån sedan</string>
</dict>

View File

@ -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",
@ -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",
@ -240,7 +240,8 @@
"category": "KATEGORI"
},
"input": {
"placeholder": "Sök gemenskaper"
"placeholder": "Sök gemenskaper",
"search_servers_or_enter_url": "Sök gemenskaper eller ange URL"
},
"empty_state": {
"finding_servers": "Söker tillgängliga servrar...",
@ -321,7 +322,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": {
@ -340,9 +341,13 @@
"title": "Hem",
"navigation_bar_state": {
"offline": "Offline",
"new_posts": "Se nya inlägg",
"published": "Publicerad!",
"Publishing": "Publicerar inlägget..."
"new_posts": "Nya inlägg",
"published": "Publicerat!",
"Publishing": "Publicerar inlägget...",
"accessibility": {
"logo_label": "Logo-knapp",
"logo_hint": "Tryck för att bläddra till toppen och tryck igen för föregående plats"
}
}
},
"suggestion_account": {
@ -370,11 +375,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 +388,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 +406,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",
@ -498,7 +503,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."
@ -545,11 +550,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",
@ -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": "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": "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_dont_like_it": "Jag tycker bara inte om det"
},
"step_three": {
"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": "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": "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": {
"keyboard": {

View File

@ -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"
}

View File

@ -211,20 +211,20 @@
"log_in": "เข้าสู่ระบบ"
},
"server_picker": {
"title": "Mastodon ประกอบด้วยผู้ใช้ในชุมชนต่าง ๆ",
"subtitle": "เลือกชุมชนตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ",
"subtitle_extend": "เลือกชุมชนตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละชุมชนดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง",
"title": "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ",
"subtitle": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ",
"subtitle_extend": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง",
"button": {
"category": {
"all": "ทั้งหมด",
"all_accessiblity_description": "หมวดหมู่: ทั้งหมด",
"academia": "วิชาการ",
"academia": "สถาบันการศึกษา",
"activism": "กิจกรรมเพื่อการเปลี่ยนแปลง",
"food": "อาหาร",
"furry": "furry",
"furry": "สัตว์ขนยาว",
"games": "เกม",
"general": "ทั่วไป",
"journalism": "การเขียนข่าว",
"journalism": "วารสารศาสตร์",
"lgbt": "lgbt",
"regional": "ภูมิภาค",
"art": "ศิลปะ",
@ -240,7 +240,8 @@
"category": "หมวดหมู่"
},
"input": {
"placeholder": "ค้นหาชุมชน"
"placeholder": "ค้นหาเซิร์ฟเวอร์",
"search_servers_or_enter_url": "Search communities or enter URL"
},
"empty_state": {
"finding_servers": "กำลังค้นหาเซิร์ฟเวอร์ที่พร้อมใช้งาน...",
@ -266,13 +267,13 @@
},
"password": {
"placeholder": "รหัสผ่าน",
"require": "รหัสผ่านของคุณต้องมีอย่างน้อย:",
"require": "รหัสผ่านของคุณจำเป็นต้องมีอย่างน้อย:",
"character_limit": "8 ตัวอักษร",
"accessibility": {
"checked": "กาเครื่องหมายแล้ว",
"unchecked": "ไม่ได้กาเครื่องหมาย"
},
"hint": "รหัสผ่านของคุณต้องมีอย่างน้อยแปดตัวอักษร"
"hint": "รหัสผ่านของคุณจำเป็นต้องมีอย่างน้อยแปดตัวอักษร"
},
"invite": {
"registration_user_invite_request": "ทำไมคุณจึงต้องการเข้าร่วม?"
@ -293,7 +294,7 @@
"taken": "%s ถูกใช้งานแล้ว",
"reserved": "%s เป็นคำสงวน",
"accepted": "ต้องยอมรับ %s",
"blank": "ต้องมี %s",
"blank": "ต้องการ %s",
"invalid": "%s ไม่ถูกต้อง",
"too_long": "%s ยาวเกินไป",
"too_short": "%s สั้นเกินไป",
@ -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": {
@ -498,7 +503,7 @@
"posts": "โพสต์",
"hashtags": "แฮชแท็ก",
"news": "ข่าว",
"community": "Community",
"community": "ชุมชน",
"for_you": "สำหรับคุณ"
},
"intro": "นี่คือโพสต์ที่กำลังได้รับความสนใจในมุมของ Mastodon ของคุณ"
@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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": {
@ -498,7 +503,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 +543,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",
@ -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": "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": "Sunucu kurallarını ihlal ediyor",
"you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules",
"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": "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_dont_like_it": "Beğenmedim"
},
"step_three": {
"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": "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": "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 dont like on Mastodon, you can remove the person from your experience.",
"unfollow": "Takibi bırak",
"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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its 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": "Its 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_dont_like_it": "I just dont 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": "Dont 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 dont 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 wont see their posts or reblogs in your home feed. They wont know theyve 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 theyve been blocked."
}
},
"preview": {
"keyboard": {

View File

@ -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 */; };
@ -408,6 +408,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 */; };
@ -437,7 +438,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 */; };
@ -448,7 +449,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 */; };
@ -564,6 +564,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 */; };
@ -787,7 +795,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 = "<group>"; };
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 = "<group>"; };
5B24BBD7262DB14800A9381B /* ReportViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportViewModel.swift; sourceTree = "<group>"; };
5B24BBD8262DB14800A9381B /* ReportViewModel+Diffable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ReportViewModel+Diffable.swift"; sourceTree = "<group>"; };
5B24BBD8262DB14800A9381B /* ReportStatusViewModel+Diffable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ReportStatusViewModel+Diffable.swift"; sourceTree = "<group>"; };
5B24BBE1262DB19100A9381B /* APIService+Report.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "APIService+Report.swift"; sourceTree = "<group>"; };
5B90C456262599800002E742 /* SettingsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewModel.swift; sourceTree = "<group>"; };
5B90C459262599800002E742 /* SettingsToggleTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsToggleTableViewCell.swift; sourceTree = "<group>"; };
@ -808,7 +816,10 @@
5DDDF1A82617489F00311060 /* Mastodon+Entity+History.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Mastodon+Entity+History.swift"; sourceTree = "<group>"; };
5DF1056325F887CB00D6C0D4 /* AVPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AVPlayer.swift; sourceTree = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
@ -1158,6 +1169,7 @@
DB8190C52601FF0400020C08 /* AttachmentContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentContainerView.swift; sourceTree = "<group>"; };
DB8481142788121200BBEABA /* MastodonRegisterTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MastodonRegisterTextFieldTableViewCell.swift; sourceTree = "<group>"; };
DB84811627883C2600BBEABA /* MastodonRegisterPasswordHintTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MastodonRegisterPasswordHintTableViewCell.swift; sourceTree = "<group>"; };
DB848E32282B62A800A302CC /* ReportResultView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultView.swift; sourceTree = "<group>"; };
DB852D1826FAEB6B00FC9D81 /* SidebarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarViewController.swift; sourceTree = "<group>"; };
DB852D1B26FB021500FC9D81 /* RootSplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootSplitViewController.swift; sourceTree = "<group>"; };
DB852D1E26FB037800FC9D81 /* SidebarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarViewModel.swift; sourceTree = "<group>"; };
@ -1194,7 +1206,7 @@
DB98337025C9443200AD9700 /* APIService+Authentication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Authentication.swift"; sourceTree = "<group>"; };
DB98337E25C9452D00AD9700 /* APIService+APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "APIService+APIError.swift"; sourceTree = "<group>"; };
DB98339B25C96DE600AD9700 /* APIService+Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Account.swift"; sourceTree = "<group>"; };
DB98EB4627B0DFAA0082E365 /* ReportViewModel+State.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportViewModel+State.swift"; sourceTree = "<group>"; };
DB98EB4627B0DFAA0082E365 /* ReportStatusViewModel+State.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportStatusViewModel+State.swift"; sourceTree = "<group>"; };
DB98EB4827B0F0CD0082E365 /* ReportStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportStatusTableViewCell.swift; sourceTree = "<group>"; };
DB98EB4B27B0F2BC0082E365 /* ReportStatusTableViewCell+ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportStatusTableViewCell+ViewModel.swift"; sourceTree = "<group>"; };
DB98EB5227B0F9890082E365 /* ReportHeadlineTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportHeadlineTableViewCell.swift; sourceTree = "<group>"; };
@ -1205,7 +1217,6 @@
DB98EB5F27B10E150082E365 /* ReportCommentTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportCommentTableViewCell.swift; sourceTree = "<group>"; };
DB98EB6127B215EB0082E365 /* ReportResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultViewController.swift; sourceTree = "<group>"; };
DB98EB6427B216500082E365 /* ReportResultViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultViewModel.swift; sourceTree = "<group>"; };
DB98EB6627B216560082E365 /* ReportResultViewModel+Diffable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReportResultViewModel+Diffable.swift"; sourceTree = "<group>"; };
DB98EB6827B21A7C0082E365 /* ReportResultActionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportResultActionTableViewCell.swift; sourceTree = "<group>"; };
DB98EB6A27B243470082E365 /* SettingsAppearanceTableViewCell+ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SettingsAppearanceTableViewCell+ViewModel.swift"; sourceTree = "<group>"; };
DB9A486B26032AC1008B817C /* AttachmentContainerView+EmptyStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AttachmentContainerView+EmptyStateView.swift"; sourceTree = "<group>"; };
@ -1325,6 +1336,14 @@
DBEB19E927E4F37B00B0E80E /* ku */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ku; path = ku.lproj/Intents.strings; sourceTree = "<group>"; };
DBEB19EA27E4F37B00B0E80E /* ku */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ku; path = ku.lproj/InfoPlist.strings; sourceTree = "<group>"; };
DBEB19EB27E4F37B00B0E80E /* ku */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ku; path = ku.lproj/Intents.stringsdict; sourceTree = "<group>"; };
DBEFCD70282A12B200C0ABEA /* ReportReasonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportReasonViewController.swift; sourceTree = "<group>"; };
DBEFCD73282A130400C0ABEA /* ReportReasonViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportReasonViewModel.swift; sourceTree = "<group>"; };
DBEFCD75282A143F00C0ABEA /* ReportStatusViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportStatusViewController.swift; sourceTree = "<group>"; };
DBEFCD78282A147000C0ABEA /* ReportStatusViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportStatusViewModel.swift; sourceTree = "<group>"; };
DBEFCD7A282A162400C0ABEA /* ReportReasonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportReasonView.swift; sourceTree = "<group>"; };
DBEFCD7C282A2A3B00C0ABEA /* ReportServerRulesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportServerRulesViewController.swift; sourceTree = "<group>"; };
DBEFCD7F282A2AA900C0ABEA /* ReportServerRulesViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportServerRulesViewModel.swift; sourceTree = "<group>"; };
DBEFCD81282A2AB100C0ABEA /* ReportServerRulesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportServerRulesView.swift; sourceTree = "<group>"; };
DBF156DE2701B17600EC00B7 /* SidebarAddAccountCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarAddAccountCollectionViewCell.swift; sourceTree = "<group>"; };
DBF156E02702DA6800EC00B7 /* Mastodon-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Mastodon-Bridging-Header.h"; sourceTree = "<group>"; };
DBF156E12702DA6900EC00B7 /* UIStatusBarManager+HandleTapAction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIStatusBarManager+HandleTapAction.m"; sourceTree = "<group>"; };
@ -1365,6 +1384,7 @@
DBFEF07226A6913D006D7ED1 /* APIService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIService.swift; sourceTree = "<group>"; };
DBFEF07A26A6BCE8006D7ED1 /* APIService+Status+Publish.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Status+Publish.swift"; sourceTree = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
E9AABD3D26B64B8C00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Intents.strings; sourceTree = "<group>"; };
E9AABD4026B64B8D00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@ -1567,6 +1587,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 = "<group>";
@ -1836,6 +1860,9 @@
isa = PBXGroup;
children = (
DB98EB5727B0FF1F0082E365 /* Share */,
DBEFCD77282A144D00C0ABEA /* Report */,
DBEFCD72282A12B900C0ABEA /* ReportReason */,
DBEFCD7E282A2A3D00C0ABEA /* ReportServerRules */,
DB98EB4F27B0F9300082E365 /* ReportStatus */,
DB98EB5A27B109900082E365 /* ReportSupplementary */,
DB98EB6327B216490082E365 /* ReportResult */,
@ -2202,8 +2229,8 @@
DB427DD425BAA00100D1B89D /* Mastodon */ = {
isa = PBXGroup;
children = (
DB427DE325BAA00100D1B89D /* Info.plist */,
DB89BA1025C10FF5008580ED /* Mastodon.entitlements */,
DB427DE325BAA00100D1B89D /* Info.plist */,
2D76319C25C151DE00929FB9 /* Diffiable */,
DB8AF52A25C13561002E6C99 /* State */,
2D61335525C1886800CAE157 /* Service */,
@ -2844,10 +2871,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 = "<group>";
@ -2876,7 +2903,7 @@
children = (
DB98EB6127B215EB0082E365 /* ReportResultViewController.swift */,
DB98EB6427B216500082E365 /* ReportResultViewModel.swift */,
DB98EB6627B216560082E365 /* ReportResultViewModel+Diffable.swift */,
DB848E32282B62A800A302CC /* ReportResultView.swift */,
);
path = ReportResult;
sourceTree = "<group>";
@ -3171,6 +3198,35 @@
path = Favorite;
sourceTree = "<group>";
};
DBEFCD72282A12B900C0ABEA /* ReportReason */ = {
isa = PBXGroup;
children = (
DBEFCD70282A12B200C0ABEA /* ReportReasonViewController.swift */,
DBEFCD73282A130400C0ABEA /* ReportReasonViewModel.swift */,
DBEFCD7A282A162400C0ABEA /* ReportReasonView.swift */,
);
path = ReportReason;
sourceTree = "<group>";
};
DBEFCD77282A144D00C0ABEA /* Report */ = {
isa = PBXGroup;
children = (
5BB04FD4262E7AFF0043BFF6 /* ReportViewController.swift */,
5B24BBD7262DB14800A9381B /* ReportViewModel.swift */,
);
path = Report;
sourceTree = "<group>";
};
DBEFCD7E282A2A3D00C0ABEA /* ReportServerRules */ = {
isa = PBXGroup;
children = (
DBEFCD7C282A2A3B00C0ABEA /* ReportServerRulesViewController.swift */,
DBEFCD7F282A2AA900C0ABEA /* ReportServerRulesViewModel.swift */,
DBEFCD81282A2AB100C0ABEA /* ReportServerRulesView.swift */,
);
path = ReportServerRules;
sourceTree = "<group>";
};
DBF1D24F269DAF6100C1C08A /* SearchDetail */ = {
isa = PBXGroup;
children = (
@ -3867,6 +3923,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 */,
@ -3888,12 +3945,14 @@
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 */,
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 */,
@ -4024,7 +4083,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 */,
@ -4036,6 +4095,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 */,
@ -4061,7 +4121,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 */,
@ -4087,7 +4146,7 @@
DB336F28278D6EC70031E64B /* MastodonFieldContainer.swift in Sources */,
DBCA0EBC282BB38A0029E2B0 /* PageboyNavigateable.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 */,
@ -4145,6 +4204,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 */,
@ -4159,6 +4219,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 */,
@ -4195,6 +4256,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 */,
@ -4280,6 +4342,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 */,
@ -4290,6 +4353,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 */,
@ -4604,7 +4668,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;
@ -4699,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;
@ -4729,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;
@ -4837,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";
@ -4868,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";
@ -4891,12 +4955,247 @@
};
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 = 127;
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 = 127;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 127;
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 = 127;
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 = 127;
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 = 127;
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 = {
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 = (
@ -4920,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 = (
@ -4944,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 = (
@ -4968,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 = (
@ -5055,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;
@ -5122,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";
@ -5150,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 = (
@ -5173,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 = (
@ -5197,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 = (
@ -5221,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 = (
@ -5244,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 = (
@ -5269,6 +5568,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DB427DFA25BAA00100D1B89D /* Debug */,
DB848E2A282B5E6300A302CC /* Profile */,
DB427DFB25BAA00100D1B89D /* Release */,
DBEB19E127E4658E00B0E80E /* Release Snapshot */,
);
@ -5279,6 +5579,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DB427DFD25BAA00100D1B89D /* Debug */,
DB848E2B282B5E6300A302CC /* Profile */,
DB427DFE25BAA00100D1B89D /* Release */,
DBEB19E227E4658E00B0E80E /* Release Snapshot */,
);
@ -5289,6 +5590,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DB427E0025BAA00100D1B89D /* Debug */,
DB848E2C282B5E6300A302CC /* Profile */,
DB427E0125BAA00100D1B89D /* Release */,
DBEB19E327E4658E00B0E80E /* Release Snapshot */,
);
@ -5299,6 +5601,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DB427E0325BAA00100D1B89D /* Debug */,
DB848E2D282B5E6300A302CC /* Profile */,
DB427E0425BAA00100D1B89D /* Release */,
DBEB19E427E4658E00B0E80E /* Release Snapshot */,
);
@ -5309,6 +5612,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DB6804892637CD4C00430867 /* Debug */,
DB848E2E282B5E6300A302CC /* Profile */,
DB68048A2637CD4C00430867 /* Release */,
DBEB19E527E4658E00B0E80E /* Release Snapshot */,
);
@ -5319,6 +5623,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DB8FABD026AEC7B2008E5AF4 /* Debug */,
DB848E31282B5E6300A302CC /* Profile */,
DB8FABD326AEC7B2008E5AF4 /* Release */,
DBEB19E827E4658E00B0E80E /* Release Snapshot */,
);
@ -5329,6 +5634,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DBC6461D26A170AB00B0E31B /* Debug */,
DB848E30282B5E6300A302CC /* Profile */,
DBC6462026A170AB00B0E31B /* Release */,
DBEB19E727E4658E00B0E80E /* Release Snapshot */,
);
@ -5339,6 +5645,7 @@
isa = XCConfigurationList;
buildConfigurations = (
DBF8AE1C263293E400C9C23C /* Debug */,
DB848E2F282B5E6300A302CC /* Profile */,
DBF8AE1D263293E400C9C23C /* Release */,
DBEB19E627E4658E00B0E80E /* Release Snapshot */,
);

View File

@ -9,7 +9,7 @@
<key>isShown</key>
<true/>
<key>orderHint</key>
<integer>4</integer>
<integer>5</integer>
</dict>
<key>CoreDataStack.xcscheme_^#shared#^_</key>
<dict>
@ -19,27 +19,27 @@
<key>Mastodon - Profile.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>19</integer>
<integer>1</integer>
</dict>
<key>Mastodon - RTL.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>5</integer>
<integer>8</integer>
</dict>
<key>Mastodon - Release.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>2</integer>
</dict>
<key>Mastodon - Snapshot.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
<integer>3</integer>
</dict>
<key>Mastodon - ar.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
<integer>4</integer>
</dict>
<key>Mastodon - ar.xcscheme_^#shared#^_</key>
<dict>
@ -114,7 +114,7 @@
<key>MastodonIntent.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>21</integer>
<integer>31</integer>
</dict>
<key>MastodonIntents.xcscheme_^#shared#^_</key>
<dict>
@ -129,12 +129,12 @@
<key>NotificationService.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>20</integer>
<integer>30</integer>
</dict>
<key>ShareActionExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>22</integer>
<integer>32</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>

View File

@ -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

View File

@ -30,7 +30,7 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.4.1</string>
<string>1.4.2</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
@ -43,7 +43,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>126</string>
<string>127</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>

View File

@ -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
}()

View File

@ -229,6 +229,11 @@ extension MastodonConfirmEmailViewController {
}
}
// MARK: - PanPopableViewController
extension MastodonConfirmEmailViewController: PanPopableViewController {
var isPanPopable: Bool { false }
}
// MARK: - OnboardingViewControllerAppearance
extension MastodonConfirmEmailViewController: OnboardingViewControllerAppearance { }

View File

@ -197,9 +197,6 @@ struct MastodonRegisterView: View {
}
}
}
struct WidthKey: PreferenceKey {

View File

@ -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),
]

View File

@ -0,0 +1,206 @@
//
// 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<AnyCancellable>()
private var observations = Set<NSKeyValueObservation>()
weak var context: AppContext! { willSet { precondition(!isViewLoaded) } }
weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } }
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)
}
}
extension ReportViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupAppearance()
defer { setupNavigationBarBackgroundView() }
navigationItem.rightBarButtonItem = cancelBarButtonItem
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),
])
}
}
extension ReportViewController {
@objc private func cancelBarButtonItemDidPressed(_ sender: UIBarButtonItem) {
dismiss(animated: true, completion: nil)
}
}
// 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 .dislike:
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),
from: self,
transition: .show
)
case .spam, .other:
coordinator.present(
scene: .reportStatus(viewModel: viewModel.reportStatusViewModel),
from: self,
transition: .show
)
}
}
}
// MARK: - ReportServerRulesViewControllerDelegate
extension ReportViewController: ReportServerRulesViewControllerDelegate {
func reportServerRulesViewController(_ viewController: ReportServerRulesViewController, nextButtonPressed button: UIButton) {
if viewController.viewModel.isDislike {
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),
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,
isReported: true
)
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
}
}

View File

@ -0,0 +1,190 @@
//
// 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
import MastodonLocalization
class ReportViewModel {
var disposeBag = Set<AnyCancellable>()
let reportReasonViewModel: ReportReasonViewModel
let reportServerRulesViewModel: ReportServerRulesViewModel
let reportStatusViewModel: ReportStatusViewModel
let reportSupplementaryViewModel: ReportSupplementaryViewModel
// input
let context: AppContext
let user: ManagedObjectRecord<MastodonUser>
let status: ManagedObjectRecord<Status>?
// output
@Published var isReporting = false
@Published var isReportSuccess = false
init(
context: AppContext,
user: ManagedObjectRecord<MastodonUser>,
status: ManagedObjectRecord<Status>?
) {
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 {
reportReasonViewModel.headline = L10n.Scene.Report.StepOne.whatsWrongWithThisPost
} 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 = L10n.Scene.Report.StepOne.whatsWrongWithThisUsername(username)
} else {
reportReasonViewModel.headline = L10n.Scene.Report.StepOne.whatsWrongWithThisAccount
}
} // 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 }
// 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
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
}
}
}()
// 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:
suffixes.append(reason.rawValue)
case .violateRule:
suffixes.append(reason.rawValue)
if let rule = self.reportServerRulesViewModel.selectRule {
suffixes.append(rule.text)
} else {
assertionFailure("should select valid rule")
}
case .dislike:
assertionFailure("should not enter the report flow")
case .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
#if DEBUG
try await Task.sleep(nanoseconds: .second * 3)
#else
let _ = try await context.apiService.report(
query: query,
authenticationBox: authenticationBox
)
#endif
isReportSuccess = true
} catch {
isReporting = false
throw error
}
}
}

View File

@ -0,0 +1,112 @@
//
// 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
var body: some View {
ScrollView(.vertical) {
HStack {
VStack(alignment: .leading, spacing: 8) {
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(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))
}
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

View File

@ -0,0 +1,104 @@
//
// 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<AnyCancellable>()
private var observations = Set<NSKeyValueObservation>()
var viewModel: ReportReasonViewModel!
private(set) lazy var reportReasonView = ReportReasonView(viewModel: viewModel)
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() }
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 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)
}
}

View File

@ -0,0 +1,84 @@
//
// ReportReasonViewModel.swift
// Mastodon
//
// Created by MainasuK on 2022-5-10.
//
import UIKit
import SwiftUI
import MastodonAsset
import MastodonSDK
import MastodonLocalization
final class ReportReasonViewModel: ObservableObject {
weak var delegate: ReportReasonViewControllerDelegate?
// input
let context: AppContext
@Published var headline = L10n.Scene.Report.StepOne.whatsWrongWithThisAccount
@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 L10n.Scene.Report.StepOne.iDontLikeIt
case .spam:
return L10n.Scene.Report.StepOne.itsSpam
case .violateRule:
return L10n.Scene.Report.StepOne.itViolatesServerRules
case .other:
return L10n.Scene.Report.StepOne.itsSomethingElse
}
}
var subtitle: String {
switch self {
case .dislike:
return L10n.Scene.Report.StepOne.itIsNotSomethingYouWantToSee
case .spam:
return L10n.Scene.Report.StepOne.maliciousLinksFakeEngagementOrRepetetiveReplies
case .violateRule:
return L10n.Scene.Report.StepOne.youAreAwareThatItBreaksSpecificRules
case .other:
return L10n.Scene.Report.StepOne.theIssueDoesNotFitIntoOtherCategories
}
}
// do not i18n this
var rawValue: String {
switch self {
case .dislike:
return "I dont like it"
case .spam:
return "Its spam"
case .violateRule:
return "It violates server rules"
case .other:
return "Its something else"
}
}
}
}

View File

@ -0,0 +1,217 @@
//
// ReportResultView.swift
// Mastodon
//
// Created by MainasuK on 2022-5-11.
//
import UIKit
import SwiftUI
import MastodonSDK
import MastodonUI
import MastodonAsset
import MastodonLocalization
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()
}
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))
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: 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))
}
}
Spacer()
}
.padding()
VStack(spacing: 32) {
// Follow
VStack(alignment: .leading, spacing: 4) {
Text(L10n.Scene.Report.StepFinal.unfollowUser("@\(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(L10n.Scene.Report.StepFinal.muteUser("@\(viewModel.username)"))
.font(.headline)
.foregroundColor(Color(Asset.Colors.Label.primary.color))
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(
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(L10n.Scene.Report.StepFinal.blockUser("@\(viewModel.username)"))
.font(.headline)
.foregroundColor(Color(Asset.Colors.Label.primary.color))
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(
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 func viewModel(isReported: Bool) -> 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),
isReported: isReported
)
}
static var previews: some View {
Group {
NavigationView {
ReportResultView(viewModel: viewModel(isReported: true))
.navigationBarTitle(Text(""))
.navigationBarTitleDisplayMode(.inline)
}
NavigationView {
ReportResultView(viewModel: viewModel(isReported: false))
.navigationBarTitle(Text(""))
.navigationBarTitleDisplayMode(.inline)
}
NavigationView {
ReportResultView(viewModel: viewModel(isReported: true))
.navigationBarTitle(Text(""))
.navigationBarTitleDisplayMode(.inline)
}
.preferredColorScheme(.dark)
}
}
}
#endif

View File

@ -7,6 +7,7 @@
import os.log
import UIKit
import SwiftUI
import Combine
import MastodonAsset
import MastodonLocalization
@ -20,22 +21,13 @@ final class ReportResultViewController: UIViewController, NeedsDependency, Repor
weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } }
var viewModel: ReportResultViewModel!
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
}()
private(set) lazy var reportResultView = ReportResultView(viewModel: viewModel)
lazy var doneBarButtonItem = UIBarButtonItem(
barButtonSystemItem: .done,
target: self,
action: #selector(ReportResultViewController.doneBarButtonItemDidPressed(_:))
)
let navigationActionView: NavigationActionView = {
let navigationActionView = NavigationActionView()
@ -60,21 +52,20 @@ extension ReportResultViewController {
defer { setupNavigationBarBackgroundView() }
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 {
@ -90,18 +81,93 @@ 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)
}
}
extension ReportResultViewController {
@objc func doneBarButtonItemDidPressed(_ sender: UIButton) {
dismiss(animated: true, completion: nil)
}
@objc func nextButtonDidPressed(_ sender: UIButton) {
dismiss(animated: true, completion: nil)
@ -109,5 +175,7 @@ extension ReportResultViewController {
}
// MARK: - UITableViewDelegate
extension ReportResultViewController: UITableViewDelegate { }
// MARK: - PanPopableViewController
extension ReportResultViewController: PanPopableViewController {
var isPanPopable: Bool { false }
}

View File

@ -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, well look into this.",
secondaryLabelText: ""
)
func setupDiffableDataSource(
tableView: UITableView
) {
diffableDataSource = ReportSection.diffableDataSource(
tableView: tableView,
context: context,
configuration: ReportSection.Configuration()
)
var snapshot = NSDiffableDataSourceSnapshot<ReportSection, ReportItem>()
snapshot.appendSections([.main])
snapshot.appendItems([.header(context: ReportResultViewModel.reportItemHeaderContext)], toSection: .main)
snapshot.appendItems([.result(record: user)], toSection: .main)
diffableDataSource?.apply(snapshot)
}
}

View File

@ -12,25 +12,60 @@ import Foundation
import MastodonSDK
import os.log
import UIKit
import MastodonAsset
import MastodonUI
import MastodonLocalization
class ReportResultViewModel {
class ReportResultViewModel: ObservableObject {
var disposeBag = Set<AnyCancellable>()
// input
let context: AppContext
let user: ManagedObjectRecord<MastodonUser>
let isReported: Bool
var headline: String {
isReported ? L10n.Scene.Report.reportSentTitle : L10n.Scene.Report.StepFinal.dontWantToSeeThis
}
@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<ReportSection, ReportItem>?
@Published var avatarURL: URL?
@Published var username: String = ""
let relationshipViewModel = RelationshipViewModel()
let muteActionPublisher = PassthroughSubject<Void, Never>()
let followActionPublisher = PassthroughSubject<Void, Never>()
let blockActionPublisher = PassthroughSubject<Void, Never>()
init(
context: AppContext,
user: ManagedObjectRecord<MastodonUser>
user: ManagedObjectRecord<MastodonUser>,
isReported: Bool
) {
self.context = context
self.user = user
self.isReported = isReported
// 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
}
}

View File

@ -0,0 +1,115 @@
//
// 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
var body: some View {
ScrollView(.vertical) {
HStack {
VStack(alignment: .leading, spacing: 8) {
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(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))
}
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: L10n.Scene.Report.StepTwo.iJustDonTLikeIt,
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

View File

@ -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<AnyCancellable>()
private var observations = Set<NSKeyValueObservation>()
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)
}
}

View File

@ -0,0 +1,36 @@
//
// ReportServerRulesViewModel.swift
// Mastodon
//
// Created by MainasuK on 2022-5-10.
//
import UIKit
import SwiftUI
import MastodonAsset
import MastodonSDK
import MastodonLocalization
final class ReportServerRulesViewModel: ObservableObject {
weak var delegate: ReportServerRulesViewControllerDelegate?
// input
let context: AppContext
@Published var headline = L10n.Scene.Report.StepTwo.whichRulesAreBeingViolated
@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
}
}

View File

@ -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<AnyCancellable>()
private var observations = Set<NSKeyValueObservation>()
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<Status>] = []
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
}

View File

@ -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: L10n.Scene.Report.StepThree.step3Of4
)
func setupDiffableDataSource(
@ -41,7 +41,7 @@ extension ReportViewModel {
var snapshot = NSDiffableDataSourceSnapshot<ReportSection, ReportItem>()
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)

View File

@ -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 ?? "<nil>")")
}
@ -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
}

View File

@ -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<AnyCancellable>()
weak var delegate: ReportStatusViewControllerDelegate?
// input
let context: AppContext
let user: ManagedObjectRecord<MastodonUser>
@ -26,6 +28,7 @@ class ReportViewModel {
let statusFetchedResultsController: StatusFetchedResultsController
let listBatchFetchViewModel = ListBatchFetchViewModel()
@Published var isSkip = false
@Published var selectStatuses = OrderedSet<ManagedObjectRecord<Status>>()
// output

View File

@ -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<AnyCancellable>()
private var observations = Set<NSKeyValueObservation>()
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,16 @@ 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
self.navigationItem.hidesBackButton = isBusy
self.navigationActionView.backButton.isUserInteractionEnabled = !isBusy
}
.store(in: &disposeBag)
tableView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(tableView)
NSLayoutConstraint.activate([
@ -130,49 +135,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)
}
}

View File

@ -15,8 +15,8 @@ import MastodonLocalization
extension ReportSupplementaryViewModel {
static let reportItemHeaderContext = ReportItem.HeaderContext(
primaryLabelText: L10n.Scene.Report.content2,
secondaryLabelText: L10n.Scene.Report.step2
primaryLabelText: L10n.Scene.Report.StepFour.isThereAnythingElseWeShouldKnow,
secondaryLabelText: L10n.Scene.Report.StepFour.step4Of4
)
func setupDiffableDataSource(

View File

@ -12,71 +12,37 @@ import MastodonSDK
class ReportSupplementaryViewModel {
weak var delegate: ReportSupplementaryViewControllerDelegate?
// Input
var context: AppContext
let user: ManagedObjectRecord<MastodonUser>
let selectStatuses: [ManagedObjectRecord<Status>]
let commentContext = ReportItem.CommentContext()
@Published var isSkip = false
@Published var isBusy = false
// output
var diffableDataSource: UITableViewDiffableDataSource<ReportSection, ReportItem>?
@Published var isNextButtonEnabled = false
@Published var isReporting = false
@Published var isReportSuccess = false
init(
context: AppContext,
user: ManagedObjectRecord<MastodonUser>,
selectStatuses: [ManagedObjectRecord<Status>]
user: ManagedObjectRecord<MastodonUser>
) {
self.context = context
self.user = user
self.selectStatuses = selectStatuses
// 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)
}
}
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
}
}
}

View File

@ -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
]
)
}
}

View File

@ -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()

View File

@ -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 }
}

View File

@ -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
}

View File

@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.4.1</string>
<string>1.4.2</string>
<key>CFBundleVersion</key>
<string>126</string>
<string>127</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>

View File

@ -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. ";

View File

@ -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))
}
/// Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.
public static let whenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience = L10n.tr("Localizable", "Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience.")
/// You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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")
/// Its something else
public static let itsSomethingElse = L10n.tr("Localizable", "Scene.Report.StepOne.ItsSomethingElse")
/// Its 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 dont like it
public static let iJustDonTLikeIt = L10n.tr("Localizable", "Scene.Report.StepTwo.IJustDontLikeIt")
/// 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

View File

@ -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" = "ساعةٌ واحدة";
@ -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.IJustDontLikeIt" = "أنا فَقَط لا يُعجِبُني";
"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" = "مُستَخدِم";

View File

@ -109,7 +109,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>لا منشور</string>
<string>لا مَنشورات</string>
<key>one</key>
<string>منشورٌ واحِد</string>
<key>two</key>
@ -447,13 +447,13 @@
<key>zero</key>
<string>تتبقى لَحظة</string>
<key>one</key>
<string>تتبقى ثانية</string>
<string>تتبقى ثانية واحِدة</string>
<key>two</key>
<string>تتبقى ثانيتين</string>
<string>تتبقى ثانيتان</string>
<key>few</key>
<string>تتبقى %ld ثوان</string>
<key>many</key>
<string>تتبقى %ld ثانيةً</string>
<string>تتبقى %ld ثانية</string>
<key>other</key>
<string>تتبقى %ld ثانية</string>
</dict>

View File

@ -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!";
@ -283,7 +285,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.";
@ -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.IJustDontLikeIt" = "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";
@ -328,10 +361,11 @@ 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.Input.SearchServersOrEnterUrl" = "Cerca comunitats o introdueix l'URL";
"Scene.ServerPicker.Label.Category" = "CATEGORIA";
"Scene.ServerPicker.Label.Language" = "LLENGUATGE";
"Scene.ServerPicker.Label.Users" = "USUARIS";
@ -341,7 +375,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 +414,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";

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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" = "بەکارهێنەر";

View File

@ -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";
@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";
@ -389,5 +423,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";

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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";
@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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";
@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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 cant view this users 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 cant view %@s profile
until they unblock you.";
"Common.Controls.Timeline.Header.UserBlockingWarning" = "You cant 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 cant 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 whats 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,61 @@ 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 havent.";
"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 havent.";
"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.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!";
"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 +269,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 (cant 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";
@ -292,6 +294,37 @@ uploaded to 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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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,61 +365,62 @@ uploaded to 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";
"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, youre 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, youll 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";
"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";

View File

@ -13,15 +13,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 unread notification</string>
<string>1 notificación non lida</string>
<key>other</key>
<string>%ld unread notification</string>
<string>%ld notificacións non lidas</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit exceeds %#@character_count@</string>
<string>O límite supera %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -29,15 +29,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<string>1 caracter</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld caracteres</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit remains %#@character_count@</string>
<string>O límite de entrada mantense en %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -45,9 +45,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<string>1 caracter</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld caracteres</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
@ -61,9 +61,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>post</string>
<string>publicación</string>
<key>other</key>
<string>posts</string>
<string>publicacións</string>
</dict>
</dict>
<key>plural.count.post</key>
@ -77,9 +77,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 post</string>
<string>1 publicación</string>
<key>other</key>
<string>%ld posts</string>
<string>%ld publicacións</string>
</dict>
</dict>
<key>plural.count.favorite</key>
@ -93,9 +93,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 favorite</string>
<string>1 favorito</string>
<key>other</key>
<string>%ld favorites</string>
<string>%ld favoritos</string>
</dict>
</dict>
<key>plural.count.reblog</key>
@ -109,9 +109,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reblog</string>
<string>1 promoción</string>
<key>other</key>
<string>%ld reblogs</string>
<string>%ld promocións</string>
</dict>
</dict>
<key>plural.count.reply</key>
@ -125,9 +125,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reply</string>
<string>1 resposta</string>
<key>other</key>
<string>%ld replies</string>
<string>%ld respostas</string>
</dict>
</dict>
<key>plural.count.vote</key>
@ -141,9 +141,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 vote</string>
<string>1 voto</string>
<key>other</key>
<string>%ld votes</string>
<string>%ld votos</string>
</dict>
</dict>
<key>plural.count.voter</key>
@ -157,9 +157,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 voter</string>
<string>1 votante</string>
<key>other</key>
<string>%ld voters</string>
<string>%ld votantes</string>
</dict>
</dict>
<key>plural.people_talking</key>
@ -173,9 +173,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 people talking</string>
<string>1 persoa comentando</string>
<key>other</key>
<string>%ld people talking</string>
<string>%ld persoas comentando</string>
</dict>
</dict>
<key>plural.count.following</key>
@ -189,9 +189,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 following</string>
<string>1 seguimento</string>
<key>other</key>
<string>%ld following</string>
<string>%ld seguimentos</string>
</dict>
</dict>
<key>plural.count.follower</key>
@ -205,9 +205,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 follower</string>
<string>1 seguidora</string>
<key>other</key>
<string>%ld followers</string>
<string>%ld seguidoras</string>
</dict>
</dict>
<key>date.year.left</key>
@ -221,9 +221,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 year left</string>
<string>Queda 1 ano</string>
<key>other</key>
<string>%ld years left</string>
<string>Quedan %ld anos</string>
</dict>
</dict>
<key>date.month.left</key>
@ -237,9 +237,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 months left</string>
<string>Queda 1 mes</string>
<key>other</key>
<string>%ld months left</string>
<string>Quedan %ld meses</string>
</dict>
</dict>
<key>date.day.left</key>
@ -253,9 +253,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 day left</string>
<string>Queda 1 día</string>
<key>other</key>
<string>%ld days left</string>
<string>Quedan %ld días</string>
</dict>
</dict>
<key>date.hour.left</key>
@ -269,9 +269,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 hour left</string>
<string>Queda 1 hora</string>
<key>other</key>
<string>%ld hours left</string>
<string>Quedan %ld horas</string>
</dict>
</dict>
<key>date.minute.left</key>
@ -285,9 +285,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 minute left</string>
<string>Queda 1 minuto</string>
<key>other</key>
<string>%ld minutes left</string>
<string>Quedan %ld minutos</string>
</dict>
</dict>
<key>date.second.left</key>
@ -301,9 +301,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 second left</string>
<string>Queda 1 segundo</string>
<key>other</key>
<string>%ld seconds left</string>
<string>Quedan %ld segundos</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
@ -317,9 +317,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1y ago</string>
<string>hai 1 ano</string>
<key>other</key>
<string>%ldy ago</string>
<string>hai %ld anos</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
@ -333,9 +333,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1M ago</string>
<string>hai 1 mes</string>
<key>other</key>
<string>%ldM ago</string>
<string>hai %ld meses</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
@ -349,9 +349,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1d ago</string>
<string>hai 1 día</string>
<key>other</key>
<string>%ldd ago</string>
<string>hai %ld días</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
@ -365,9 +365,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1h ago</string>
<string>fai 1 hora</string>
<key>other</key>
<string>%ldh ago</string>
<string>fai %ld horas</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
@ -381,9 +381,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1m ago</string>
<string>fai 1 minuto</string>
<key>other</key>
<string>%ldm ago</string>
<string>fai %ld minutos</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
@ -397,9 +397,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1s ago</string>
<string>fai 1 seg.</string>
<key>other</key>
<string>%lds ago</string>
<string>fai %ld seg.</string>
</dict>
</dict>
</dict>

View File

@ -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.IJustDontLikeIt" = "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";

View File

@ -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,15 +196,17 @@
"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" = "投稿";
"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" = "投稿しました!";
@ -212,12 +214,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 +268,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" = "なぜ参加したいと思ったのですか?";
@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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" = "ユーザー";
@ -349,11 +383,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 +400,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 +412,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" = "チュートリアルを閉じるには、ダブルタップしてください";

View File

@ -153,7 +153,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld people talking</string>
<string>%ld人が投稿</string>
</dict>
</dict>
<key>plural.count.following</key>

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";

View File

@ -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" = "Dont 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 theyve 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 dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve 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 dont 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" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its 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.IJustDontLikeIt" = "I just dont 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";
@ -332,14 +365,14 @@ 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.Input.SearchServersOrEnterUrl" = "Search communities or enter URL";
"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î.";

Some files were not shown because too many files have changed in this diff Show More