Merge pull request #403 from mastodon/release-1.4.0

Release v1.4.0
This commit is contained in:
CMK 2022-04-30 11:02:22 +08:00 committed by GitHub
commit ed30085f87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
130 changed files with 8511 additions and 1029 deletions

View File

@ -10,10 +10,7 @@ import Foundation
import CryptoKit
import KeychainAccess
import Keys
enum AppName {
public static let groupID = "group.org.joinmastodon.app"
}
import MastodonCommon
public final class AppSecret {

View File

@ -15,8 +15,8 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.3.3</string>
<string>1.4.0</string>
<key>CFBundleVersion</key>
<string>117</string>
<string>121</string>
</dict>
</plist>

View File

@ -0,0 +1,51 @@
"16wxgf" = "پۆستێک بکە";
"751xkl" = "نووسین";
"CsR7G2" = "پۆستێک بکە";
"HZSGTr" = "چی پۆست بکرێت؟";
"HdGikU" = "پۆستکردنەکە سەرکەوتوو نەبوو";
"KDNTJ4" = "هۆکاری سەرنەکەوتن";
"RHxKOw" = "پۆست بە نووسینەوە بکە";
"RxSqsb" = "پۆست";
"WCIR3D" = "${content} لە ماستۆدۆن پۆست بکە";
"ZKJSNu" = "پۆست";
"ZS1XaK" = "${content}";
"ZbSjzC" = "دەرکەوتن";
"Zo4jgJ" = "دەرکەوتنی پۆست";
"apSxMG-dYQ5NN" = "${count} بژاردە بۆ 'گشتی' هەن.";
"apSxMG-ehFLjY" = "${count} بژاردە بۆ 'تەنیا شوێنکەوتووەکان' هەن.";
"ayoYEb-dYQ5NN" = "${content}، گشتی";
"ayoYEb-ehFLjY" = "${content}، تەنیا شوێنکەوتووەکان";
"dUyuGg" = "پۆستێک بکە";
"dYQ5NN" = "گشتی";
"ehFLjY" = "تەنیا شوێنکەوتووەکان";
"gfePDu" = "پۆستکردنەکە سەرکەوتوو نەبوو. ${failureReason}";
"k7dbKQ" = "پۆستەکە کرا.";
"oGiqmY-dYQ5NN" = "دڵنیایت لە هەڵبژاردنی 'گشتی'؟";
"oGiqmY-ehFLjY" = "دڵنیایت لە هەڵبژاردنی 'تەنیا شوێنکەوتووەکان'؟";
"rM6dvp" = "بەستەر";
"ryJLwG" = "پۆستەکە کرا. ";

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_option@ بژاردە بۆ '${content}' هەن.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>%ld بژاردە</string>
<key>other</key>
<string>%ld بژاردە</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_option@ بژاردە بۆ '${visibility}' هەن.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>%ld بژاردە</string>
<key>other</key>
<string>%ld بژاردە</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,51 @@
"16wxgf" = "Post on Mastodon";
"751xkl" = "Text Content";
"CsR7G2" = "Post on Mastodon";
"HZSGTr" = "What content to post?";
"HdGikU" = "Posting failed";
"KDNTJ4" = "Failure Reason";
"RHxKOw" = "Send Post with text content";
"RxSqsb" = "Post";
"WCIR3D" = "Post ${content} on Mastodon";
"ZKJSNu" = "Post";
"ZS1XaK" = "${content}";
"ZbSjzC" = "Visibility";
"Zo4jgJ" = "Post Visibility";
"apSxMG-dYQ5NN" = "There are ${count} options matching Public.";
"apSxMG-ehFLjY" = "There are ${count} options matching Followers Only.";
"ayoYEb-dYQ5NN" = "${content}, Public";
"ayoYEb-ehFLjY" = "${content}, Followers Only";
"dUyuGg" = "Post on Mastodon";
"dYQ5NN" = "Public";
"ehFLjY" = "Followers Only";
"gfePDu" = "Posting failed. ${failureReason}";
"k7dbKQ" = "Post was sent successfully.";
"oGiqmY-dYQ5NN" = "Just to confirm, you wanted Public?";
"oGiqmY-ehFLjY" = "Just to confirm, you wanted Followers Only?";
"rM6dvp" = "URL";
"ryJLwG" = "Post was sent successfully. ";

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>1 option</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>one</key>
<string>1 option</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -1,51 +1,51 @@
"16wxgf" = "Post on Mastodon";
"16wxgf" = "於 Mastodon 上發嘟文";
"751xkl" = "Text Content";
"751xkl" = "文字內容";
"CsR7G2" = "Post on Mastodon";
"CsR7G2" = "於 Mastodon 上發嘟文";
"HZSGTr" = "What content to post?";
"HZSGTr" = "要發什麼嘟呢?";
"HdGikU" = "Posting failed";
"HdGikU" = "嘟文失敗";
"KDNTJ4" = "Failure Reason";
"KDNTJ4" = "失敗原因";
"RHxKOw" = "Send Post with text content";
"RHxKOw" = "發送文字內容嘟文";
"RxSqsb" = "Post";
"RxSqsb" = "嘟文";
"WCIR3D" = "Post ${content} on Mastodon";
"WCIR3D" = "將 ${content} 於 Mastodon 上發嘟";
"ZKJSNu" = "Post";
"ZKJSNu" = "嘟文";
"ZS1XaK" = "${content}";
"ZbSjzC" = "Visibility";
"ZbSjzC" = "可見性";
"Zo4jgJ" = "Post Visibility";
"Zo4jgJ" = "嘟文可見性";
"apSxMG-dYQ5NN" = "There are ${count} options matching Public.";
"apSxMG-dYQ5NN" = "有 ${count} 個選項符合「公開」。";
"apSxMG-ehFLjY" = "There are ${count} options matching Followers Only.";
"apSxMG-ehFLjY" = "有 ${count} 個選項符合「僅限跟隨者」。";
"ayoYEb-dYQ5NN" = "${content}, Public";
"ayoYEb-dYQ5NN" = "${content},公開";
"ayoYEb-ehFLjY" = "${content}, Followers Only";
"ayoYEb-ehFLjY" = "${content},僅限跟隨者";
"dUyuGg" = "Post on Mastodon";
"dUyuGg" = "於 Mastodon 上發嘟文";
"dYQ5NN" = "Public";
"dYQ5NN" = "公開";
"ehFLjY" = "Followers Only";
"ehFLjY" = "僅限跟隨者";
"gfePDu" = "Posting failed. ${failureReason}";
"gfePDu" = "發嘟失敗。${failureReason}";
"k7dbKQ" = "Post was sent successfully.";
"k7dbKQ" = "成功發出嘟文。";
"oGiqmY-dYQ5NN" = "Just to confirm, you wanted Public?";
"oGiqmY-dYQ5NN" = "再確認一次,您想要「公開」?";
"oGiqmY-ehFLjY" = "Just to confirm, you wanted Followers Only?";
"oGiqmY-ehFLjY" = "再確認一次,您想要「僅限跟隨者」?";
"rM6dvp" = "URL";
"rM6dvp" = "網址";
"ryJLwG" = "Post was sent successfully. ";
"ryJLwG" = "成功發出嘟文。 ";

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>有 %#@count_option@ 符合「 ${content} 」。</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -13,13 +13,13 @@
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>other</key>
<string>%ld options</string>
<string>%ld 個選項</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<string>有 %#@count_option@ 符合「 ${visibility} 」。</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -27,7 +27,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>other</key>
<string>%ld options</string>
<string>%ld 個選項</string>
</dict>
</dict>
</dict>

View File

@ -51,20 +51,25 @@ private func map(language: String) -> String? {
case "eu_ES": return "eu-ES" // Basque
case "ca_ES": return "ca" // Catalan
case "zh_CN": return "zh-Hans" // Chinese Simplified
case "zh_TW": return "zh-Hant" // Chinese Traditional
case "nl_NL": return "nl" // Dutch
case "en_US": return "en"
case "fr_FR": return "fr" // French
case "gl_ES": return "gl" // Galician
case "de_DE": return "de" // German
case "it_IT": return "it" // Italian
case "ja_JP": return "ja" // Japanese
case "kab_KAB": return "kab" // Kabyle
case "kmr_TR": return "ku" // Kurmanji (Kurdish)
case "ru_RU": return "ru" // Russian
case "gd_GB": return "gd-GB" // Scottish Gaelic
case "ckb_IR": return "ckb" // Sorani (Kurdish)
case "es_ES": return "es" // Spanish
case "es_AR": return "es-419" // Spanish, Argentina
case "sv-SE": return "sv" // Swedish
case "sv_FI": return "sv_FI" // Swedish, Finland
case "th_TH": return "th" // Thai
case "tr_TR": return "tr" // Turkish
case "vi_VN": return "vi" // Vietnamese
default: return nil
}

View File

@ -97,7 +97,7 @@
"home": "الرَّئِيسَة",
"search": "البَحث",
"notification": "الإشعارات",
"profile": "الملف التعريفي"
"profile": "المِلَفُّ التَّعريفِيّ"
},
"keyboard": {
"common": {
@ -495,9 +495,10 @@
},
"discovery": {
"tabs": {
"posts": "المنشورات",
"hashtags": "الوسوم",
"news": "الأخبار",
"posts": "مَنشُورات",
"hashtags": "وُسُوم",
"news": "أخبار",
"community": "المُجتَمَع",
"for_you": "لَك"
},
"intro": "هَذِهِ هِيَ المَنشُوراتُ الَّتي تَكْتَسِبُ شَعبِيَّةً فِي الرُّكنِ الخاصِّ بِكَ مِن مَاستُودون."

View File

@ -498,6 +498,7 @@
"posts": "Publicacions",
"hashtags": "Etiquetes",
"news": "Notícies",
"community": "Comunitat",
"for_you": "Per a tu"
},
"intro": "Aquestes son les publicacions que criden l'atenció en el teu racó de Mastodon."

View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>a11y.plural.count.unread.notification</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@notification_count_unread_notification@</string>
<key>notification_count_unread_notification</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ئاگاداریی نەبینراو</string>
<key>other</key>
<string>%ld ئاگاداریی نەبینراو</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>سنووری نووسین %#@character_count@ دەرباز دەکات</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld نووسە</string>
<key>other</key>
<string>%ld نووسە</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>سنووری نووسین %#@character_count@ دەمێنێتەوە</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld نووسە</string>
<key>other</key>
<string>%ld نووسە</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%@%#@post_count@</string>
<key>post_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>پۆست</string>
<key>other</key>
<string>پۆست</string>
</dict>
</dict>
<key>plural.count.post</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@post_count@</string>
<key>post_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld پۆست</string>
<key>other</key>
<string>%ld پۆست</string>
</dict>
</dict>
<key>plural.count.favorite</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@favorite_count@</string>
<key>favorite_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld بەدڵبوو</string>
<key>other</key>
<string>%ld بەدڵبوو</string>
</dict>
</dict>
<key>plural.count.reblog</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@reblog_count@</string>
<key>reblog_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld پۆستکردنەوە</string>
<key>other</key>
<string>%ld پۆستکردنەوە</string>
</dict>
</dict>
<key>plural.count.reply</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@reply_count@</string>
<key>reply_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld وەڵام</string>
<key>other</key>
<string>%ld وەڵام</string>
</dict>
</dict>
<key>plural.count.vote</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@vote_count@</string>
<key>vote_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld دەنگ</string>
<key>other</key>
<string>%ld دەنگ</string>
</dict>
</dict>
<key>plural.count.voter</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@voter_count@</string>
<key>voter_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld دەنگدەر</string>
<key>other</key>
<string>%ld دەنگدەر</string>
</dict>
</dict>
<key>plural.people_talking</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_people_talking@</string>
<key>count_people_talking</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld کەس باسی دەکات</string>
<key>other</key>
<string>%ld کەس باسی دەکەن</string>
</dict>
</dict>
<key>plural.count.following</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_following@</string>
<key>count_following</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld شوێنکەوتن</string>
<key>other</key>
<string>%ld شوێنکەوتن</string>
</dict>
</dict>
<key>plural.count.follower</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_follower@</string>
<key>count_follower</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld شوێنکەوتوو</string>
<key>other</key>
<string>%ld شوێنکەوتوو</string>
</dict>
</dict>
<key>date.year.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_year_left@</string>
<key>count_year_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ساڵی ماوە</string>
<key>other</key>
<string>%ld ساڵی ماوە</string>
</dict>
</dict>
<key>date.month.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_month_left@</string>
<key>count_month_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld مانگی ماوە</string>
<key>other</key>
<string>%ld مانگی ماوە</string>
</dict>
</dict>
<key>date.day.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_day_left@</string>
<key>count_day_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ڕۆژی ماوە</string>
<key>other</key>
<string>%ld ڕۆژی ماوە</string>
</dict>
</dict>
<key>date.hour.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_hour_left@</string>
<key>count_hour_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld کاتژمێری ماوە</string>
<key>other</key>
<string>%ld کاتژمێری ماوە</string>
</dict>
</dict>
<key>date.minute.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_minute_left@</string>
<key>count_minute_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld خولەکی ماوە</string>
<key>other</key>
<string>%ld خولەکی ماوە</string>
</dict>
</dict>
<key>date.second.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_second_left@</string>
<key>count_second_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld چرکەی ماوە</string>
<key>other</key>
<string>%ld چرکەی ماوە</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_year_ago_abbr@</string>
<key>count_year_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ساڵ لەمەوبەر</string>
<key>other</key>
<string>%ld ساڵ لەمەوبەر</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_month_ago_abbr@</string>
<key>count_month_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld مانگ لەمەوبەر</string>
<key>other</key>
<string>%ld مانگ لەمەوبەر</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_day_ago_abbr@</string>
<key>count_day_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ڕۆژ لەمەوبەر</string>
<key>other</key>
<string>%ld ڕۆژ لەمەوبەر</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_hour_ago_abbr@</string>
<key>count_hour_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld کاتژمێر لەمەوبەر</string>
<key>other</key>
<string>%ld کاتژمێر لەمەوبەر</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_minute_ago_abbr@</string>
<key>count_minute_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld خولەک لەمەوبەر</string>
<key>other</key>
<string>%ld خولەک لەمەوبەر</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_second_ago_abbr@</string>
<key>count_second_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld چرکە لەمەوبەر</string>
<key>other</key>
<string>%ld چرکە لەمەوبەر</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,619 @@
{
"common": {
"alerts": {
"common": {
"please_try_again": "تکایە دووبارە هەوڵ بدەوە.",
"please_try_again_later": "تکایە دواتر هەوڵ بدەوە."
},
"sign_up_failure": {
"title": "تۆمارکردنەکە سەرکەوتوو نەبوو"
},
"server_error": {
"title": "هەڵەی ڕاژەکار"
},
"vote_failure": {
"title": "نەتوانرا دەنگ بدرێت",
"poll_ended": "دەنگدانەکە کۆتایی هاتووە"
},
"discard_post_content": {
"title": "ڕەشنووس هەڵمەگرە",
"message": "دڵنیا ببەوە بۆ وازهێنان لە ناوەڕۆکەت."
},
"publish_post_failure": {
"title": "نەتوانرا پۆستەکە بکرێت",
"message": "نەتوانرا پۆستەکە بکرێت.\nتکایە لە بەردەستبوونی هێڵی ئینتەرنێت دڵنیا بە.",
"attachments_message": {
"video_attach_with_photo": "ناتوانیت ڤیدیۆ بۆ پۆستێک زیاد بکەیت کە وێنەی تێدایە.",
"more_than_one_video": "ناتوانیت زیاتر لە یەک ڤیدیۆی پێوە بلکێنیت."
}
},
"edit_profile_failure": {
"title": "نەتوانرا دەستکاریی پرۆفایل بکرێت",
"message": "ناتوانرێت دەستکاریی پرۆفایل بکرێت. تکایە دووبارە هەوڵ بدەوە."
},
"sign_out": {
"title": "دەربچۆ",
"message": "دڵنیایت دەتەوێت دەربچیت؟",
"confirm": "دەربچۆ"
},
"block_domain": {
"title": "دڵنیایت دەتەوێت تەواوی %s ئاستەنگ بکەیت؟ لە زۆر بارەکاندا ئاستەنگکردنی بچووک باشترە. ئەگەر وا بکەیت، لەو ڕاژەکارەوە هیچ شتێک نابینیت و هەموو شوێنکەوتووەکانت لەوێوە لادەبرێن.",
"block_entire_domain": "هەموو ڕاژەکارەکە ئاستەنگ بکە"
},
"save_photo_failure": {
"title": "نەتوانرا وێنەکە هەڵبگیرێت",
"message": "تکایە ڕێ بە ماستۆدۆن بدە تاوەکو بتوانێت وێنەکە هەڵبگرێت."
},
"delete_post": {
"title": "بیسڕەوە",
"message": "دڵنیایت دەتەوێت ئەم پۆستە بسڕیتەوە؟"
},
"clean_cache": {
"title": "بیرگە پاک بکەوە",
"message": "سەرکەوتووانە بیرگەی %s پاک کرایەوە."
}
},
"controls": {
"actions": {
"back": "بگەڕێوە",
"next": "دواتر",
"previous": "پێشتر",
"open": "بیکەوە",
"add": "زیادی بکە",
"remove": "لایبە",
"edit": "دەستکاری",
"save": "هەڵی بگرە",
"ok": "باشە",
"done": "تەواو",
"confirm": "پشتڕاستی بکەوە",
"continue": "بەردەوام بە",
"compose": "پۆست بکە",
"cancel": "هەڵوەشاندنەوه",
"discard": "وازی لێ بێنە",
"try_again": "هەوڵ بدەوە",
"take_photo": "وێنە بگرە",
"save_photo": "هەڵی بگرە",
"copy_photo": "لەبەری بگرەوە",
"sign_in": "بچۆ ژوورەوە",
"sign_up": "خۆت تۆمار بکە",
"see_more": "زیاتر ببینە",
"preview": "پێشبینین",
"share": "هاوبەشی بکە",
"share_user": "%s هاوبەش بکە",
"share_post": "هاوبەشی بکە",
"open_in_safari": "لە Safari بیکەوە",
"open_in_browser": "لە وێبگەڕ بیکەوە",
"find_people": "خەڵک بدۆزەوە",
"manually_search": "خۆت بگەڕێ",
"skip": "بیپەڕێنە",
"reply": "وەڵامی بدەوە",
"report_user": "سکاڵا لە %s بکە",
"block_domain": "%s ئاستەنگ بکە",
"unblock_domain": "%s ئاستەنگ مەکە",
"settings": "رێکخستنەکان",
"delete": "بیسڕەوە"
},
"tabs": {
"home": "ماڵەوە",
"search": "بگەڕێ",
"notification": "ئاگادارکردنەوەکان",
"profile": "پرۆفایل"
},
"keyboard": {
"common": {
"switch_to_tab": "بڕۆ بۆ %s",
"compose_new_post": "پۆستێکی نوێ بکە",
"show_favorites": "بەدڵبووەکان ببینە",
"open_settings": "ڕێکخستنەکان بکەوە"
},
"timeline": {
"previous_status": "پۆستی پێشتر",
"next_status": "پۆستی دواتر",
"open_status": "بیکەوە",
"open_author_profile": "پرۆفایلەکەی بکەوە",
"open_reblogger_profile": "پرۆفایلەکەی بکەوە",
"reply_status": "وەڵامی بدەوە",
"toggle_reblog": "پۆستکردنەوەی پۆست",
"toggle_favorite": "بەدڵبوونی پۆست",
"toggle_content_warning": "ئاگاداریی ناوەڕۆک نیشان بدە",
"preview_image": "بیبینە"
},
"segmented_control": {
"previous_section": "بەشی پێشتر",
"next_section": "دەستنیشانکراوی دواتر"
}
},
"status": {
"user_reblogged": "%s پۆست کرایەوە",
"user_replied_to": "لە وەڵامدا بۆ %s",
"show_post": "پۆستەکە نیشان بدە",
"show_user_profile": "پرۆفایلەکەی نیشان بدە",
"content_warning": "ئاگاداریی ناوەڕۆک",
"sensitive_content": "ناوەڕۆکی هەستیار",
"media_content_warning": "دەستی پیا بنێ بۆ نیشاندانی",
"tap_to_reveal": "دەستی پیا بنێ بۆ نیشاندانی",
"poll": {
"vote": "دەنگ بدە",
"closed": "داخراوە"
},
"actions": {
"reply": "وەڵامی بدەوە",
"reblog": "پۆستی بکەوە",
"unreblog": "پۆستکردنەکە بگەڕێنەوە",
"favorite": "بەدڵمە",
"unfavorite": "بەدڵبوونەکە بگەڕێنەوە",
"menu": "پێڕست",
"hide": "بیشارەوە",
"show_image": "وێنەکە نیشان بدە",
"show_gif": "گیفەکە نیشان بدە",
"show_video_player": "ڤیدیۆکە لێ بدە",
"tap_then_hold_to_show_menu": "دەستی پیا بنێ و بیگرە بۆ نیشاندانی پێڕستەکە"
},
"tag": {
"url": "بەستەر",
"mention": "ئاماژە",
"link": "بەستەر",
"hashtag": "هاشتاگ",
"email": "ئیمێڵ",
"emoji": "ئیمۆجی"
},
"visibility": {
"unlisted": "هەرکەسێک دەتوانێت ئەم پۆستە ببینێت بەڵام ناچێتە بەردەمیان.",
"private": "تەنیا شوێنکەوتووەکانی دەتوانن ئەم پۆستە ببینن.",
"private_from_me": "تەنیا شوێنکەوتووەکانم دەتوانن ئەم پۆستە ببینن.",
"direct": "تەنیا بەکارهێنەرە ئاماژە پێکراوەکە دەتوانێت ئەم پۆستە ببینێت."
}
},
"friendship": {
"follow": "شوێنی بکەوە",
"following": "شوێنی دەکەویت",
"request": "داوای لێ بکە",
"pending": "داوات کردووە",
"block": "ئاستەنگی بکە",
"block_user": "%s ئاستەنگ بکە",
"block_domain": "%s ئاستەنگ بکە",
"unblock": "ئاستەنگی مەکە",
"unblock_user": "%s ئاستەنگ مەکە",
"blocked": "ئاستەنگ کراوە",
"mute": "بێدەنگی بکە",
"mute_user": "%s بێدەنگە",
"unmute": "بێدەنگی مەکە",
"unmute_user": "%s بێدەنگ مەکە",
"muted": "بێدەنگ کراوە",
"edit_info": "دەستکاری"
},
"timeline": {
"filtered": "پاڵێوراو",
"timestamp": {
"now": "ئێستا"
},
"loader": {
"load_missing_posts": "پۆستە ماوەکان بار بکە",
"loading_missing_posts": "پۆستە ماوەکان بار دەکرێن...",
"show_more_replies": "وەڵامی زیاتر نیشان بدە"
},
"header": {
"no_status_found": "هیچ پۆستێک نەدۆزرایەوە",
"blocking_warning": "ناتوانیت پرۆفایلی ئەم بەکارهێنەرە ببینیت\nهەتا ئاستەنگەکەیان لادەبەیت.\nپرۆفایلەکەت ئاوها لایان دەردەکەوێت.",
"user_blocking_warning": "ناتوانیت پرۆفایلی %s ببینیت\nهەتا ئاستەنگەکەیان لادەبەیت.\nپرۆفایلەکەت ئاوها لایان دەردەکەوێت.",
"blocked_warning": "ناتوانیت پرۆفایلی ئەم بەکارهێنەرە ببینیت\nتا ئەو کاتەی ئاستەنگەکەت لادەبات.",
"user_blocked_warning": "ناتوانیت پرۆفایلی %s ببینیت\nتا ئەو کاتەی ئاستەنگەکەت لادەبات.",
"suspended_warning": "ئەم بەکارهێنەرە ڕاگیراوە.",
"user_suspended_warning": "هەژماری %s ڕاگیراوە."
}
}
}
},
"scene": {
"welcome": {
"slogan": "تۆڕی کۆمەڵایەتی\nلەژێر دەستەکانت.",
"get_started": "دەست پێ بکە",
"log_in": "بچۆ ژوورەوە"
},
"server_picker": {
"title": "ماستۆدۆن لە چەندان بەکارهێنەر پێک دێت کە لە ڕاژەکاری جیاواز دان.",
"subtitle": "ڕاژەکارێکێکی گشتی یان دانەیەک لەسەر بنەمای حەزەکانت و هەرێمەکەت هەڵبژێرە.",
"subtitle_extend": "ڕاژەکارێکێکی گشتی یان دانەیەک لەسەر بنەمای حەزەکانت و هەرێمەکەت هەڵبژێرە. هەر ڕاژەکارێک لەلایەن ڕێکخراوێک یان تاکەکەسێک بەڕێوە دەبرێت.",
"button": {
"category": {
"all": "هەموو",
"all_accessiblity_description": "بەش: هەموو",
"academia": "ئەکادیمیا",
"activism": "چالاکی",
"food": "خواردن",
"furry": "furry",
"games": "یاری",
"general": "گشتی",
"journalism": "ڕۆژنامەوانی",
"lgbt": "lgbt",
"regional": "هەرێمی",
"art": "هونەر",
"music": "موزیک",
"tech": "تەکنۆلۆژیا"
},
"see_less": "کەمتر ببینە",
"see_more": "زیاتر ببینە"
},
"label": {
"language": "زمان",
"users": "بەکارهێنەر",
"category": "بەش"
},
"input": {
"placeholder": "بگەڕێ"
},
"empty_state": {
"finding_servers": "ڕاژەکار دەدۆزرێتەوە...",
"bad_network": "هەڵەیەک ڕوویدا لە کاتی بارکردن. لە هەبوونی هێڵی ئینتەرنێت دڵنیا بە.",
"no_results": "ئەنجام نییە"
}
},
"register": {
"title": "خۆت تۆمار بکە لە %s",
"input": {
"avatar": {
"delete": "بیسڕەوە"
},
"username": {
"placeholder": "ناوی بەکارهێنەر",
"duplicate_prompt": "ئەم ناوە گیراوە."
},
"display_name": {
"placeholder": "ناوی نیشاندان"
},
"email": {
"placeholder": "ئیمێڵ"
},
"password": {
"placeholder": "تێپەڕوشە",
"require": "تێپەڕوشەکەت لایەنی کەم پێویستیی هەیە بە:",
"character_limit": "8 پیت",
"accessibility": {
"checked": "هەڵبژێردراو",
"unchecked": "هەڵنەبژێردراو"
},
"hint": "دەبێت تێپەڕوشەکەت لایەنی کەم هەشت نووسە بێت"
},
"invite": {
"registration_user_invite_request": "بۆچی دەتەوێت بەشدار بیت؟"
}
},
"error": {
"item": {
"username": "ناوی بەکارهێنەر",
"email": "ئیمێڵ",
"password": "تێپەڕوشە",
"agreement": "ڕێککەوتن",
"locale": "زمان",
"reason": "هۆکار"
},
"reason": {
"blocked": "%s خزمەتگوزارییەکی ئیمێڵی ڕێپێنەدراو بەکار دەهێنێت",
"unreachable": "%s بوونی نییە",
"taken": "%s بەکار هێنراوە لەلایەن یەکێکی تر",
"reserved": "%s وشەیەکی گیراوە",
"accepted": "%s دەبێت قبووڵ بکرێت",
"blank": "%s پێویستە",
"invalid": "%s نادروستە",
"too_long": "%s زۆر درێژە",
"too_short": "%s زۆر کورتە",
"inclusion": "%s پشتگیرینەکراوە"
},
"special": {
"username_invalid": "ناوی بەکارهێنەر دەبێت تەنیا پیت، ژمارە و هێڵی ژێرەوەی تێدا بێت",
"username_too_long": "ناوی بەکارهێنەرەکە زۆر درێژە (ناکرێت لە 30 نووسە زیاتر بێت)",
"email_invalid": "ئەم ئیمێڵە دروست نییە",
"password_too_short": "تێپەڕوشەکە زۆر کورتە (نابێت لە 8 نووسە کەمتر بێت)"
}
}
},
"server_rules": {
"title": "یاساکانی ڕاژەکار",
"subtitle": "ئەمانە لەلایەن چاودێرەکانی %s دانراون و ناچار دەکرێن.",
"prompt": "بەردەوامبوونت واتای ڕازیبوونتە بە مەرجەکانی خزمەتگوزاری و سیاسەتی تایبەتێتیی %s.",
"terms_of_service": "مەرجەکانی بەکارهێنان",
"privacy_policy": "سیاسەتی تایبەتێتی",
"button": {
"confirm": "ڕازیم"
}
},
"confirm_email": {
"title": "کۆتا شت.",
"subtitle": "بۆ پشتڕاستکردنەوەی هەژمارەکەت ئەو بەستەرە بکەوە کە بە ئیمێڵ بۆمان ناردوویت.",
"button": {
"open_email_app": "بەرنامەی ئیمێڵەکەت بکەوە",
"resend": "بینێرەوە"
},
"dont_receive_email": {
"title": "ئیمێڵەکەت ببینە",
"description": "دڵنیا بە لەوەی ئیمێڵەکەت دروستە و هەموو بوخچەکانت بگەڕێ.",
"resend_email": "ئیمێڵەکە بنێرەوە"
},
"open_email_app": {
"title": "ئیمێڵەکانت ببینە.",
"description": "ئیمێڵێکمان بۆ ناردیت. هەموو بوخچەکانت ببینە.",
"mail": "Mail",
"open_email_client": "بەرنامەی ئیمێڵەکەت بکەوە"
}
},
"home_timeline": {
"title": "ماڵەوە",
"navigation_bar_state": {
"offline": "دەرهێڵ",
"new_posts": "پۆستە نوێکان ببینە",
"published": "بڵاوکرایەوە!",
"Publishing": "پۆستەکە بڵاو دەکرێتەوە..."
}
},
"suggestion_account": {
"title": "خەڵک بدۆزەوە",
"follow_explain": "کاتێک شوێنی یەکێک دەکەویت، پۆستەکانی دێتە بەردەمت."
},
"compose": {
"title": {
"new_post": "پۆستی نوێ",
"new_reply": "وەڵامی نوێ"
},
"media_selection": {
"camera": "وێنە بگرە",
"photo_library": "وێنەکان",
"browse": "بگەڕێ"
},
"content_input_placeholder": "دەتەوێت چی پۆست بکەیت؟",
"compose_action": "بڵاوی بکەوە",
"replying_to_user": "لە وەڵامدا بۆ %s",
"attachment": {
"photo": "وێنە",
"video": "ڤیدیۆ",
"attachment_broken": "ئەم %sـە تێک چووە و ناتوانیت بەرزی بکەیتەوە.",
"description_photo": "وێنەکەت بۆ نابیناکان باس بکە...",
"description_video": "ڤیدیۆکەت بۆ نابیناکان باس بکە..."
},
"poll": {
"duration_time": "کات: %s",
"thirty_minutes": "30 خولەک",
"one_hour": "1 کاتژمێر",
"six_hours": "6 کاتژمێر",
"one_day": "1 ڕۆژ",
"three_days": "3 ڕۆژ",
"seven_days": "7 ڕۆژ",
"option_number": "بژاردەی %ld"
},
"content_warning": {
"placeholder": "ئاگادارییەکەت لێرە بنووسە..."
},
"visibility": {
"public": "گشتی",
"unlisted": "پێشنیارنەکراو",
"private": "تەنیا شوێنکەوتووان",
"direct": "ئەوانەی ئاماژەیان پێ دەکەم"
},
"auto_complete": {
"space_to_add": "بۆشایی دابنێ بۆ زیادکردن"
},
"accessibility": {
"append_attachment": "پێوەکراوی پێوە بکە",
"append_poll": "دەنگدان زیاد بکە",
"remove_poll": "دانگدانەکە لابە",
"custom_emoji_picker": "هەڵبژێری ئیمۆجی",
"enable_content_warning": "ئاگاداریی ناوەڕۆک چالاک بکە",
"disable_content_warning": "ئاگاداریی ناوەڕۆک ناچالاک بکە",
"post_visibility_menu": "پێڕستی شێوازی دەرکەوتنی پۆست"
},
"keyboard": {
"discard_post": "پۆستەکە هەڵوەشێنەوە",
"publish_post": "پۆستە بڵاو بکەوە",
"toggle_poll": "دەنگدانەکە نیشان بدە",
"toggle_content_warning": "ئاگاداریی ناوەڕۆک نیشان بدە",
"append_attachment_entry": "پێوەکراوی پێوە بکە - %s",
"select_visibility_entry": "شێوازی دەرکەوتن هەڵبژێرە - %s"
}
},
"profile": {
"dashboard": {
"posts": "پۆستەکان",
"following": "شوێنکەوتن",
"followers": "شوێنکەوتوو"
},
"fields": {
"add_row": "ڕیز زیاد بکە",
"placeholder": {
"label": "ناونیشان",
"content": "ناوەڕۆک"
}
},
"segmented_control": {
"posts": "پۆستەکان",
"replies": "وەڵامەکان",
"posts_and_replies": "پۆست و وەڵامەکان",
"media": "میدیا",
"about": "دەربارە"
},
"relationship_action_alert": {
"confirm_mute_user": {
"title": "بێدەنگی بکە",
"message": "دڵیا ببەوە بۆ بێدەنگکردنی %s"
},
"confirm_unmute_user": {
"title": "بێدەنگی مەکە",
"message": "دڵنیا ببەوە بۆ بێدەنگنەکردنی %s"
},
"confirm_block_user": {
"title": "ئاستەنگی بکە",
"message": "دڵنیا ببەوە بۆ ئاستەنگکردنی %s"
},
"confirm_unblock_user": {
"title": "ئاستەنگی مەکە",
"message": "دڵنیا ببەوە بۆ لابردنی ئاستەنگی %s"
}
},
"accessibility": {
"show_avatar_image": "وێنەکە نیشان بدە",
"edit_avatar_image": "دەستکاریی وێنەکە بکە",
"show_banner_image": "وێنەکەی پشتەوە نیشان بدە",
"double_tap_to_open_the_list": "دوو جار دەستی پیا بنێ بۆ کردنەوەی لیستەکە"
}
},
"follower": {
"footer": "شوێنکەوتووەکانی لە ڕاژەکارەکانی ترەوە نیشان نادرێت."
},
"following": {
"footer": "شوێنکەوتنەکانی بۆ هەژماری ڕاژەکارەکانی تر نیشان نادرێت."
},
"search": {
"title": "بگەڕێ",
"search_bar": {
"placeholder": "بۆ هاشتاگ و بەکارهێنەر بگەڕێ",
"cancel": "بگەڕێوە"
},
"recommend": {
"button_text": "هەمووی ببینە",
"hash_tag": {
"title": "ڕۆژەڤ",
"description": "ئەو هاشتاگانەی سەرنجی زۆریان لەسەرە",
"people_talking": "%s کەس باسی دەکەن"
},
"accounts": {
"title": "لەوانەیە حەزت لەمانە بێت",
"description": "لەوانەیە بتەوێت شوێنی ئەم هەژمارانە بکەویت",
"follow": "شوێنی بکەوە"
}
},
"searching": {
"segment": {
"all": "هەمووی",
"people": "خەڵک",
"hashtags": "هاشتاگ",
"posts": "پۆست"
},
"empty_state": {
"no_results": "هیچ ئەنجامێک نەدۆزرایەوە"
},
"recent_search": "گەڕانەکانی پێشترت",
"clear": "بیانسڕەوە"
}
},
"discovery": {
"tabs": {
"posts": "پۆستەکان",
"hashtags": "هاشتاگەکان",
"news": "هەواڵەکان",
"community": "Community",
"for_you": "بۆ تۆ"
},
"intro": "پۆست هەیە سەرنجیان لەسەرە لە گۆشەکەی تۆ."
},
"favorite": {
"title": "بەدڵبووەکانت"
},
"notification": {
"title": {
"Everything": "هەمووی",
"Mentions": "ئاماژەکان"
},
"notification_description": {
"followed_you": "شوێنت کەوت",
"favorited_your_post": "پۆستەکەتی بەدڵ بوو",
"reblogged_your_post": "پۆستەکەتی پۆست کردەوە",
"mentioned_you": "ئاماژەی پێت کرد",
"request_to_follow_you": "داواکاری بۆ شوێنکەوتنت",
"poll_has_ended": "دەنگدانەکە کۆتایی هات"
},
"keyobard": {
"show_everything": "هەموو شتێک نیشان بدە",
"show_mentions": "ئاماژەکان نیشان بدە"
}
},
"thread": {
"back_title": "پۆستەکە",
"title": "پۆستی %s"
},
"settings": {
"title": "رێکخستنەکان",
"section": {
"appearance": {
"title": "ڕووخسار",
"automatic": "خۆکار",
"light": "ڕووناک",
"dark": "تاریک"
},
"look_and_feel": {
"title": "ڕووخسار و هەست",
"use_system": "سیستەم",
"really_dark": "زۆر تاریک",
"sorta_dark": "کەم تاریک",
"light": "ڕووناک"
},
"notifications": {
"title": "ئاماژەکان نیشان بدە",
"favorites": "پۆستەکەمی بەدڵ دەبێت",
"follows": "شوێنم دەکەوێت",
"boosts": "پۆستەکەم پۆست دەکاتەوە",
"mentions": "ئاماژەم پێ دەکات",
"trigger": {
"anyone": "هەرکەسێک",
"follower": "شوێنکەوتووێکم",
"follow": "هەرکەسێک شوێنی دەکەوم",
"noone": "هیچکەس",
"title": "ئاگادارم بکەوە کاتێک"
}
},
"preference": {
"title": "پەسەندەکان",
"true_black_dark_mode": "دۆخی ڕەش",
"disable_avatar_animation": "وێنە جووڵاوەکان ناچالاک بکە",
"disable_emoji_animation": "ئیمۆجییە جووڵاوەکان ناچالاک بکە",
"using_default_browser": "وێبگەڕی بنەڕەت بەکار بهێنە بۆ کردنەوەی بەستەرەکان",
"open_links_in_mastodon": "بەستەرەکان لەناو ماستۆدۆن بکەوە"
},
"boring_zone": {
"title": "ناوچە بێنازەکە",
"account_settings": "ڕێکخستنەکانی هەژمار",
"terms": "مەرجەکانی بەکارهێنان",
"privacy": "سیاسەتی تایبەتێتی"
},
"spicy_zone": {
"title": "ناوچەی گەرم",
"clear": "بیرگە پاک بکەوە",
"signout": "دەربچۆ"
}
},
"footer": {
"mastodon_description": "ماستۆدۆن پڕۆژەیەکی سەرچاوەکراوەیە. دەتوانیت لە گیتهەب لە کێشەکان ئاگادارمان بکەیتەوە: %s (%s)"
},
"keyboard": {
"close_settings_window": "ڕێخستنەکان دابخە"
}
},
"report": {
"title_report": "سکاڵای لێ بکە",
"title": "سکاڵا لە %s بکە",
"step1": "هەنگاوی 1 لە 2",
"step2": "هەنگاوی 2 لە 2",
"content1": "پۆستی تر هەیە بتەوێت سکاڵایان لێ بکەیت؟",
"content2": "هیچ شتێکی هەیە بە چاودێرەکان بیزانن دەربارەی ئەم سکاڵایە؟",
"report_sent_title": "سپاس بۆ سکاڵاکات، پێیدا دەچینەوە.",
"send": "سکاڵاکە بنێرە",
"skip_to_send": "بەبێ لێدوان بینێرە",
"text_placeholder": "ڕوونکردنەوەی زۆرتر بدە",
"reported": "سکاڵای لێ کرا"
},
"preview": {
"keyboard": {
"close_preview": "پێشبینینەکە دابخە",
"show_next": "هی دواتر نیشان بدە",
"show_previous": "هی پێشتر نیشان بدە"
}
},
"account_list": {
"tab_bar_hint": "هەژماری ئێستا: %s. دوو جا دەستی پیا بنێ بۆ کردنەوەی پێڕستی هەژمارەکان.",
"dismiss_account_switcher": "پێڕستی هەژمارەکان دابخە",
"add_account": "هەژمارێک زیاد بکە"
},
"wizard": {
"new_in_mastodon": "نوێ",
"multiple_account_switch_intro_description": "هەژمارەکەت بگۆڕە بە دەستڕاگرتن لەسەر دوگمەی پرۆفایلەکە.",
"accessibility_hint": "دوو جار دەستی پیا بنێ بۆ داخستنی"
}
}
}

View File

@ -0,0 +1,6 @@
{
"NSCameraUsageDescription": "بەکار دێت بۆ گرتنی وێنەیەک بۆ پۆستەکە",
"NSPhotoLibraryAddUsageDescription": "بەکار دێت بۆ هەڵگرتنی وێنە",
"NewPostShortcutItemTitle": "پۆستی نوێ",
"SearchShortcutItemTitle": "بگەڕێ"
}

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Beiträge",
"hashtags": "Hashtags",
"news": "Nachrichten",
"community": "Community",
"for_you": "Für dich"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Mensajes",
"hashtags": "Etiquetas",
"news": "Novedades",
"community": "Community",
"for_you": "Para vos"
},
"intro": "Estos son los mensajes que están ganando tracción en tu rincón de Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Publicaciones",
"hashtags": "Etiquetas",
"news": "Noticias",
"community": "Community",
"for_you": "Para Ti"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Argitalpenak",
"hashtags": "Traolak",
"news": "Albisteak",
"community": "Community",
"for_you": "Zuretzat"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>a11y.plural.count.unread.notification</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@notification_count_unread_notification@</string>
<key>notification_count_unread_notification</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 unread notification</string>
<key>other</key>
<string>%ld unread notification</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit exceeds %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<key>other</key>
<string>%ld characters</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit remains %#@character_count@</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 character</string>
<key>other</key>
<string>%ld characters</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%@ %#@post_count@</string>
<key>post_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>post</string>
<key>other</key>
<string>posts</string>
</dict>
</dict>
<key>plural.count.post</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@post_count@</string>
<key>post_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 post</string>
<key>other</key>
<string>%ld posts</string>
</dict>
</dict>
<key>plural.count.favorite</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@favorite_count@</string>
<key>favorite_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 favorite</string>
<key>other</key>
<string>%ld favorites</string>
</dict>
</dict>
<key>plural.count.reblog</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@reblog_count@</string>
<key>reblog_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reblog</string>
<key>other</key>
<string>%ld reblogs</string>
</dict>
</dict>
<key>plural.count.reply</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@reply_count@</string>
<key>reply_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reply</string>
<key>other</key>
<string>%ld replies</string>
</dict>
</dict>
<key>plural.count.vote</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@vote_count@</string>
<key>vote_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 vote</string>
<key>other</key>
<string>%ld votes</string>
</dict>
</dict>
<key>plural.count.voter</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@voter_count@</string>
<key>voter_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 voter</string>
<key>other</key>
<string>%ld voters</string>
</dict>
</dict>
<key>plural.people_talking</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_people_talking@</string>
<key>count_people_talking</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 people talking</string>
<key>other</key>
<string>%ld people talking</string>
</dict>
</dict>
<key>plural.count.following</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_following@</string>
<key>count_following</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 following</string>
<key>other</key>
<string>%ld following</string>
</dict>
</dict>
<key>plural.count.follower</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_follower@</string>
<key>count_follower</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 follower</string>
<key>other</key>
<string>%ld followers</string>
</dict>
</dict>
<key>date.year.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_year_left@</string>
<key>count_year_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 year left</string>
<key>other</key>
<string>%ld years left</string>
</dict>
</dict>
<key>date.month.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_month_left@</string>
<key>count_month_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 months left</string>
<key>other</key>
<string>%ld months left</string>
</dict>
</dict>
<key>date.day.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_day_left@</string>
<key>count_day_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 day left</string>
<key>other</key>
<string>%ld days left</string>
</dict>
</dict>
<key>date.hour.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_hour_left@</string>
<key>count_hour_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 hour left</string>
<key>other</key>
<string>%ld hours left</string>
</dict>
</dict>
<key>date.minute.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_minute_left@</string>
<key>count_minute_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 minute left</string>
<key>other</key>
<string>%ld minutes left</string>
</dict>
</dict>
<key>date.second.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_second_left@</string>
<key>count_second_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 second left</string>
<key>other</key>
<string>%ld seconds left</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_year_ago_abbr@</string>
<key>count_year_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1y ago</string>
<key>other</key>
<string>%ldy ago</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_month_ago_abbr@</string>
<key>count_month_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1M ago</string>
<key>other</key>
<string>%ldM ago</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_day_ago_abbr@</string>
<key>count_day_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1d ago</string>
<key>other</key>
<string>%ldd ago</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_hour_ago_abbr@</string>
<key>count_hour_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1h ago</string>
<key>other</key>
<string>%ldh ago</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_minute_ago_abbr@</string>
<key>count_minute_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1m ago</string>
<key>other</key>
<string>%ldm ago</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_second_ago_abbr@</string>
<key>count_second_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1s ago</string>
<key>other</key>
<string>%lds ago</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,619 @@
{
"common": {
"alerts": {
"common": {
"please_try_again": "Please try again.",
"please_try_again_later": "Please try again later."
},
"sign_up_failure": {
"title": "Sign Up Failure"
},
"server_error": {
"title": "Server Error"
},
"vote_failure": {
"title": "Vote Failure",
"poll_ended": "The poll has ended"
},
"discard_post_content": {
"title": "Discard Draft",
"message": "Confirm to discard composed post content."
},
"publish_post_failure": {
"title": "Publish Failure",
"message": "Failed to publish the post.\nPlease check your internet connection.",
"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."
}
},
"edit_profile_failure": {
"title": "Edit Profile Error",
"message": "Cannot edit profile. Please try again."
},
"sign_out": {
"title": "Sign Out",
"message": "Are you sure you want to sign out?",
"confirm": "Sign Out"
},
"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"
},
"save_photo_failure": {
"title": "Save Photo Failure",
"message": "Please enable the photo library access permission to save the photo."
},
"delete_post": {
"title": "Delete Post",
"message": "Are you sure you want to delete this post?"
},
"clean_cache": {
"title": "Clean Cache",
"message": "Successfully cleaned %s cache."
}
},
"controls": {
"actions": {
"back": "Back",
"next": "Next",
"previous": "Previous",
"open": "Open",
"add": "Add",
"remove": "Remove",
"edit": "Edit",
"save": "Save",
"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",
"open_in_browser": "Open in Browser",
"find_people": "Find people to follow",
"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"
},
"tabs": {
"home": "Home",
"search": "Search",
"notification": "Notification",
"profile": "Profile"
},
"keyboard": {
"common": {
"switch_to_tab": "Switch to %s",
"compose_new_post": "Compose New Post",
"show_favorites": "Show Favorites",
"open_settings": "Open Settings"
},
"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",
"toggle_reblog": "Toggle Reblog on Post",
"toggle_favorite": "Toggle Favorite on Post",
"toggle_content_warning": "Toggle Content Warning",
"preview_image": "Preview Image"
},
"segmented_control": {
"previous_section": "Previous Section",
"next_section": "Next Section"
}
},
"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",
"sensitive_content": "Sensitive Content",
"media_content_warning": "Tap anywhere to reveal",
"tap_to_reveal": "Tap to reveal",
"poll": {
"vote": "Vote",
"closed": "Closed"
},
"actions": {
"reply": "Reply",
"reblog": "Reblog",
"unreblog": "Undo reblog",
"favorite": "Favorite",
"unfavorite": "Unfavorite",
"menu": "Menu",
"hide": "Hide",
"show_image": "Show image",
"show_gif": "Show GIF",
"show_video_player": "Show video player",
"tap_then_hold_to_show_menu": "Tap then hold to show menu"
},
"tag": {
"url": "URL",
"mention": "Mention",
"link": "Link",
"hashtag": "Hashtag",
"email": "Email",
"emoji": "Emoji"
},
"visibility": {
"unlisted": "Everyone can see this post but not display in the public timeline.",
"private": "Only their followers can see this post.",
"private_from_me": "Only my followers can see this post.",
"direct": "Only mentioned user can see this post."
}
},
"friendship": {
"follow": "Follow",
"following": "Following",
"request": "Request",
"pending": "Pending",
"block": "Block",
"block_user": "Block %s",
"block_domain": "Block %s",
"unblock": "Unblock",
"unblock_user": "Unblock %s",
"blocked": "Blocked",
"mute": "Mute",
"mute_user": "Mute %s",
"unmute": "Unmute",
"unmute_user": "Unmute %s",
"muted": "Muted",
"edit_info": "Edit Info"
},
"timeline": {
"filtered": "Filtered",
"timestamp": {
"now": "Now"
},
"loader": {
"load_missing_posts": "Load missing posts",
"loading_missing_posts": "Loading missing posts...",
"show_more_replies": "Show more replies"
},
"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."
}
}
}
},
"scene": {
"welcome": {
"slogan": "Social networking\nback in your hands.",
"get_started": "Get Started",
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different servers.",
"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"
},
"see_less": "See Less",
"see_more": "See More"
},
"label": {
"language": "LANGUAGE",
"users": "USERS",
"category": "CATEGORY"
},
"input": {
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
"bad_network": "Something went wrong while loading the data. Check your internet connection.",
"no_results": "No results"
}
},
"register": {
"title": "Lets get you set up on %s",
"input": {
"avatar": {
"delete": "Delete"
},
"username": {
"placeholder": "username",
"duplicate_prompt": "This username is taken."
},
"display_name": {
"placeholder": "display name"
},
"email": {
"placeholder": "email"
},
"password": {
"placeholder": "password",
"require": "Your password needs at least:",
"character_limit": "8 characters",
"accessibility": {
"checked": "checked",
"unchecked": "unchecked"
},
"hint": "Your password needs at least eight characters"
},
"invite": {
"registration_user_invite_request": "Why do you want to join?"
}
},
"error": {
"item": {
"username": "Username",
"email": "Email",
"password": "Password",
"agreement": "Agreement",
"locale": "Locale",
"reason": "Reason"
},
"reason": {
"blocked": "%s contains a disallowed email provider",
"unreachable": "%s does not seem to exist",
"taken": "%s is already in use",
"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"
},
"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)"
}
}
},
"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",
"button": {
"confirm": "I Agree"
}
},
"confirm_email": {
"title": "One last thing.",
"subtitle": "Tap the link we emailed to you to verify your account.",
"button": {
"open_email_app": "Open Email App",
"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"
},
"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"
}
},
"home_timeline": {
"title": "Home",
"navigation_bar_state": {
"offline": "Offline",
"new_posts": "See new posts",
"published": "Published!",
"Publishing": "Publishing post..."
}
},
"suggestion_account": {
"title": "Find People to Follow",
"follow_explain": "When you follow someone, youll see their posts in your home feed."
},
"compose": {
"title": {
"new_post": "New Post",
"new_reply": "New Reply"
},
"media_selection": {
"camera": "Take Photo",
"photo_library": "Photo Library",
"browse": "Browse"
},
"content_input_placeholder": "Type or paste whats on your mind",
"compose_action": "Publish",
"replying_to_user": "replying to %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..."
},
"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"
},
"content_warning": {
"placeholder": "Write an accurate warning here..."
},
"visibility": {
"public": "Public",
"unlisted": "Unlisted",
"private": "Followers only",
"direct": "Only people I mention"
},
"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"
},
"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"
}
},
"profile": {
"dashboard": {
"posts": "posts",
"following": "following",
"followers": "followers"
},
"fields": {
"add_row": "Add Row",
"placeholder": {
"label": "Label",
"content": "Content"
}
},
"segmented_control": {
"posts": "Posts",
"replies": "Replies",
"posts_and_replies": "Posts and Replies",
"media": "Media",
"about": "About"
},
"relationship_action_alert": {
"confirm_mute_user": {
"title": "Mute Account",
"message": "Confirm to mute %s"
},
"confirm_unmute_user": {
"title": "Unmute Account",
"message": "Confirm to unmute %s"
},
"confirm_block_user": {
"title": "Block Account",
"message": "Confirm to block %s"
},
"confirm_unblock_user": {
"title": "Unblock Account",
"message": "Confirm to unblock %s"
}
},
"accessibility": {
"show_avatar_image": "Show avatar image",
"edit_avatar_image": "Edit avatar image",
"show_banner_image": "Show banner image",
"double_tap_to_open_the_list": "Double tap to open the list"
}
},
"follower": {
"footer": "Followers from other servers are not displayed."
},
"following": {
"footer": "Follows from other servers are not displayed."
},
"search": {
"title": "Search",
"search_bar": {
"placeholder": "Search hashtags and users",
"cancel": "Cancel"
},
"recommend": {
"button_text": "See All",
"hash_tag": {
"title": "Trending on Mastodon",
"description": "Hashtags that are getting quite a bit of attention",
"people_talking": "%s people are talking"
},
"accounts": {
"title": "Accounts you might like",
"description": "You may like to follow these accounts",
"follow": "Follow"
}
},
"searching": {
"segment": {
"all": "All",
"people": "People",
"hashtags": "Hashtags",
"posts": "Posts"
},
"empty_state": {
"no_results": "No results"
},
"recent_search": "Recent searches",
"clear": "Clear"
}
},
"discovery": {
"tabs": {
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."
},
"favorite": {
"title": "Your Favorites"
},
"notification": {
"title": {
"Everything": "Everything",
"Mentions": "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"
},
"keyobard": {
"show_everything": "Show Everything",
"show_mentions": "Show Mentions"
}
},
"thread": {
"back_title": "Post",
"title": "Post from %s"
},
"settings": {
"title": "Settings",
"section": {
"appearance": {
"title": "Appearance",
"automatic": "Automatic",
"light": "Always Light",
"dark": "Always Dark"
},
"look_and_feel": {
"title": "Look and Feel",
"use_system": "Use System",
"really_dark": "Really Dark",
"sorta_dark": "Sorta Dark",
"light": "Light"
},
"notifications": {
"title": "Notifications",
"favorites": "Favorites my post",
"follows": "Follows me",
"boosts": "Reblogs my post",
"mentions": "Mentions me",
"trigger": {
"anyone": "anyone",
"follower": "a follower",
"follow": "anyone I follow",
"noone": "no one",
"title": "Notify me when"
}
},
"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"
},
"boring_zone": {
"title": "The Boring Zone",
"account_settings": "Account Settings",
"terms": "Terms of Service",
"privacy": "Privacy Policy"
},
"spicy_zone": {
"title": "The Spicy Zone",
"clear": "Clear Media Cache",
"signout": "Sign Out"
}
},
"footer": {
"mastodon_description": "Mastodon is open source software. You can report issues on GitHub at %s (%s)"
},
"keyboard": {
"close_settings_window": "Close Settings Window"
}
},
"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?",
"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"
},
"preview": {
"keyboard": {
"close_preview": "Close Preview",
"show_next": "Show Next",
"show_previous": "Show Previous"
}
},
"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"
},
"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"
}
}
}

View File

@ -0,0 +1,6 @@
{
"NSCameraUsageDescription": "Used to take photo for post status",
"NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library",
"NewPostShortcutItemTitle": "New Post",
"SearchShortcutItemTitle": "Search"
}

View File

@ -498,6 +498,7 @@
"posts": "Messages",
"hashtags": "Hashtags",
"news": "Actualité",
"community": "Community",
"for_you": "Pour vous"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Postaichean",
"hashtags": "Tagaichean hais",
"news": "Naidheachdan",
"community": "Community",
"for_you": "Dhut-sa"
},
"intro": "Seo na postaichean fèillmhor nad cheàrnaidh de Mhastodon."

View File

@ -145,56 +145,56 @@
"menu": "Menú",
"hide": "Agochar",
"show_image": "Mostrar a imaxe",
"show_gif": "Show GIF",
"show_video_player": "Show video player",
"tap_then_hold_to_show_menu": "Tap then hold to show menu"
"show_gif": "Mostrar GIF",
"show_video_player": "Mostrar reprodutor de vídeo",
"tap_then_hold_to_show_menu": "Toca e mantén preso para menú"
},
"tag": {
"url": "URL",
"mention": "Mention",
"link": "Link",
"hashtag": "Hashtag",
"mention": "Mención",
"link": "Ligazón",
"hashtag": "Cancelo",
"email": "Email",
"emoji": "Emoji"
"emoji": "Emoticona"
},
"visibility": {
"unlisted": "Everyone can see this post but not display in the public timeline.",
"private": "Only their followers can see this post.",
"private_from_me": "Only my followers can see this post.",
"direct": "Only mentioned user can see this post."
"unlisted": "A publicación é visible para calquera pero non aparece na cronoloxía pública.",
"private": "Só as seguidoras poden ver a publicación.",
"private_from_me": "Só as miñas seguidoras poden ver esta publicación.",
"direct": "Só a usuaria mencionada pode ver a publicación."
}
},
"friendship": {
"follow": "Follow",
"following": "Following",
"request": "Request",
"pending": "Pending",
"block": "Block",
"block_user": "Block %s",
"block_domain": "Block %s",
"unblock": "Unblock",
"unblock_user": "Unblock %s",
"blocked": "Blocked",
"mute": "Mute",
"mute_user": "Mute %s",
"unmute": "Unmute",
"unmute_user": "Unmute %s",
"muted": "Muted",
"edit_info": "Edit Info"
"follow": "Seguir",
"following": "Seguindo",
"request": "Solicitar",
"pending": "Pendente",
"block": "Bloquear",
"block_user": "Bloquear a %s",
"block_domain": "Bloquear a %s",
"unblock": "Desbloquear",
"unblock_user": "Desbloquear a %s",
"blocked": "Bloqueada",
"mute": "Acalar",
"mute_user": "Acalar a %s",
"unmute": "Non Acalar",
"unmute_user": "Deixar de acalar a @%s",
"muted": "Acalada",
"edit_info": "Editar info"
},
"timeline": {
"filtered": "Filtered",
"filtered": "Filtrado",
"timestamp": {
"now": "Now"
"now": "Agora"
},
"loader": {
"load_missing_posts": "Load missing posts",
"loading_missing_posts": "Loading missing posts...",
"show_more_replies": "Show more replies"
"load_missing_posts": "Cargar publicacións que faltan",
"loading_missing_posts": "Cargando as publicacións que faltan...",
"show_more_replies": "Mostrar máis respostas"
},
"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.",
"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.",
@ -207,17 +207,17 @@
"scene": {
"welcome": {
"slogan": "Social networking\nback in your hands.",
"get_started": "Get Started",
"log_in": "Log In"
"get_started": "Comezar",
"log_in": "Acceder"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon fórmano as persoas das diferentes comunidades.",
"subtitle": "Elixe unha comunidade en función dos teus intereses, rexión ou unha de propósito xeral.",
"subtitle_extend": "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.",
"button": {
"category": {
"all": "All",
"all_accessiblity_description": "Category: All",
"all": "Todo",
"all_accessiblity_description": "Categoría: Todo",
"academia": "academia",
"activism": "activismo",
"food": "comida",
@ -374,16 +374,16 @@
"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"
"one_day": "1 Día",
"three_days": "3 Días",
"seven_days": "7 Días",
"option_number": "Opción %ld"
},
"content_warning": {
"placeholder": "Write an accurate warning here..."
"placeholder": "Escribe o teu aviso aquí..."
},
"visibility": {
"public": "Public",
"public": "Público",
"unlisted": "Non listado",
"private": "Só para seguidoras",
"direct": "Só para persoas mencionadas"
@ -412,92 +412,93 @@
"profile": {
"dashboard": {
"posts": "publicacións",
"following": "following",
"followers": "followers"
"following": "seguindo",
"followers": "seguidoras"
},
"fields": {
"add_row": "Add Row",
"add_row": "Engadir fila",
"placeholder": {
"label": "Label",
"content": "Content"
"label": "Etiqueta",
"content": "Contido"
}
},
"segmented_control": {
"posts": "Posts",
"replies": "Replies",
"posts_and_replies": "Posts and Replies",
"media": "Media",
"about": "About"
"posts": "Publicacións",
"replies": "Respostas",
"posts_and_replies": "Publicacións e respostas",
"media": "Multimedia",
"about": "Acerca de"
},
"relationship_action_alert": {
"confirm_mute_user": {
"title": "Mute Account",
"message": "Confirm to mute %s"
"title": "Acalar conta",
"message": "Confirma Acalar a %s"
},
"confirm_unmute_user": {
"title": "Unmute Account",
"message": "Confirm to unmute %s"
"title": "Retirar acalado da Conta",
"message": "Confirma restablecer a %s"
},
"confirm_block_user": {
"title": "Block Account",
"message": "Confirm to block %s"
"title": "Bloquear Conta",
"message": "Confirma o bloqueo de %s"
},
"confirm_unblock_user": {
"title": "Unblock Account",
"message": "Confirm to unblock %s"
"title": "Desbloquear Conta",
"message": "Confirma o desbloqueo de %s"
}
},
"accessibility": {
"show_avatar_image": "Show avatar image",
"edit_avatar_image": "Edit avatar image",
"show_banner_image": "Show banner image",
"double_tap_to_open_the_list": "Double tap to open the list"
"show_avatar_image": "Mostrar imaxe de avatar",
"edit_avatar_image": "Editar imaxe de avatar",
"show_banner_image": "Mostrar imaxe de cabeceira",
"double_tap_to_open_the_list": "Dous toques para abrir a lista"
}
},
"follower": {
"footer": "Followers from other servers are not displayed."
"footer": "Non se mostran seguidoras desde outros servidores."
},
"following": {
"footer": "Follows from other servers are not displayed."
"footer": "Non se mostran os seguimentos desde outros servidores."
},
"search": {
"title": "Search",
"title": "Procurar",
"search_bar": {
"placeholder": "Search hashtags and users",
"cancel": "Cancel"
"placeholder": "Buscar cancelos e usuarias",
"cancel": "Cancelar"
},
"recommend": {
"button_text": "See All",
"button_text": "Ver todo",
"hash_tag": {
"title": "Trending on Mastodon",
"description": "Hashtags that are getting quite a bit of attention",
"people_talking": "%s people are talking"
"title": "En voga en Mastodon",
"description": "Cancelos que están recibindo moita atención",
"people_talking": "%s persoas están comentando"
},
"accounts": {
"title": "Accounts you might like",
"description": "You may like to follow these accounts",
"follow": "Follow"
"title": "Contas que poderían gustarche",
"description": "Mira se che interesan estas contas",
"follow": "Seguir"
}
},
"searching": {
"segment": {
"all": "All",
"people": "People",
"hashtags": "Hashtags",
"posts": "Posts"
"all": "Todo",
"people": "Persoas",
"hashtags": "Cancelos",
"posts": "Publicacións"
},
"empty_state": {
"no_results": "No results"
"no_results": "Sen resultados"
},
"recent_search": "Recent searches",
"clear": "Clear"
"recent_search": "Buscas recentes",
"clear": "Limpar"
}
},
"discovery": {
"tabs": {
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"posts": "Publicacións",
"hashtags": "Cancelos",
"news": "Novas",
"community": "Comunidade",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."
@ -585,23 +586,23 @@
}
},
"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?",
"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"
"title_report": "Denunciar",
"title": "Denunciar a %s",
"step1": "Paso 1 de 2",
"step2": "Paso 2 de 2",
"content1": "Hai outras publicacións que desexes engadir á denuncia?",
"content2": "Hai algo que a moderación deba saber acerca desta denuncia?",
"report_sent_title": "Grazas pola denuncia, investigarémola.",
"send": "Enviar Denuncia",
"skip_to_send": "Enviar sen comentarios",
"text_placeholder": "Escribe ou pega comentarios adicionais",
"reported": "DENUNCIADO"
},
"preview": {
"keyboard": {
"close_preview": "Close Preview",
"show_next": "Show Next",
"show_previous": "Show Previous"
"close_preview": "Pechar vista previa",
"show_next": "Mostrar Seguinte",
"show_previous": "Mostar Anterior"
}
},
"account_list": {

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -212,8 +212,8 @@
},
"server_picker": {
"title": "Pilih sebuah server,\nserver manapun.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"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": "Semua",
@ -240,7 +240,7 @@
"category": "KATEGORI"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Mencari server yang tersedia...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Post",
"hashtags": "Hashtag",
"news": "Notizie",
"community": "Comunità",
"for_you": "Per Te"
},
"intro": "Questi sono i post che stanno guadagnando popolarità nel tuo angolo di Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "投稿",
"hashtags": "ハッシュタグ",
"news": "ニュース",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Tisuffaɣ",
"hashtags": "Ihacṭagen",
"news": "Isallen",
"community": "Community",
"for_you": "I kečč·kem"
},
"intro": "Tigi d tisuffaɣ i d-ijebbden s waṭas deg tama-inek•inem n Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Şandî",
"hashtags": "Hashtag",
"news": "Nûçe",
"community": "Civak",
"for_you": "Ji bo te"
},
"intro": "Ev şandiyên ku di quncika Mastodon balê dikişîne."

View File

@ -212,8 +212,8 @@
},
"server_picker": {
"title": "서버를 고르세요,\n아무 서버나 좋습니다.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"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": "모두",
@ -240,7 +240,7 @@
"category": "분류"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "Berichten",
"hashtags": "Hashtags",
"news": "Nieuws",
"community": "Community",
"for_you": "Voor jou"
},
"intro": "Dit zijn de berichten die populair zijn in jouw Mastodon-kringen."

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -211,9 +211,9 @@
"log_in": "Log In"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon is made of users in different servers.",
"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",
@ -240,7 +240,7 @@
"category": "CATEGORY"
},
"input": {
"placeholder": "Search communities"
"placeholder": "Search servers"
},
"empty_state": {
"finding_servers": "Finding available servers...",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -213,7 +213,7 @@
"server_picker": {
"title": "Выберите сервер,\nлюбой сервер.",
"subtitle": "Выберите сообщество на основе своих интересов, региона или общей тематики.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"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": "Все",
@ -498,6 +498,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Сообщество",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

View File

@ -125,9 +125,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>1 reply</string>
<string>1 svar</string>
<key>other</key>
<string>%ld replies</string>
<string>%ld svar</string>
</dict>
</dict>
<key>plural.count.vote</key>

View File

@ -12,18 +12,18 @@
"title": "Palvelinvirhe"
},
"vote_failure": {
"title": "Vote Failure",
"title": "Röstning misslyckades",
"poll_ended": "Kysely on päättynyt"
},
"discard_post_content": {
"title": "Hylkää luonnos",
"message": "Confirm to discard composed post content."
"message": "Bekräfta för att slänga inläggsutkast."
},
"publish_post_failure": {
"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.",
"video_attach_with_photo": "Det går inte att bifoga en video till en status som redan innehåller bilder.",
"more_than_one_video": "Ei voi liittä yhtä videota enempää."
}
},
@ -37,16 +37,16 @@
"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.",
"title": "Är du verkligen, verkligen säker på att du vill blockera hela %s? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen och dina följare från den domänen kommer att tas bort.",
"block_entire_domain": "Estä verkkotunnus"
},
"save_photo_failure": {
"title": "Kuvan tallentaminen epäonnistui",
"message": "Please enable the photo library access permission to save the photo."
"message": "Aktivera åtkomst till Bilder för att spara bilden."
},
"delete_post": {
"title": "Haluatko varmasti poistaa tämän julkaisun?",
"message": "Are you sure you want to delete this post?"
"message": "Är du säker på att du vill radera detta inlägg?"
},
"clean_cache": {
"title": "Puhdista välimuisti",
@ -82,9 +82,9 @@
"share_user": "Jaa %s",
"share_post": "Jaa julkaisu",
"open_in_safari": "Avaa Safarissa",
"open_in_browser": "Open in Browser",
"open_in_browser": "Öppna i webbläsare",
"find_people": "Löydä tilejä seurattavaksi",
"manually_search": "Manually search instead",
"manually_search": "Sök manuellt istället",
"skip": "Ohita",
"reply": "Vastaa",
"report_user": "Ilmianna %s",
@ -113,13 +113,13 @@
"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_reblog": "Växla ompostning på inlägg",
"toggle_favorite": "Växla favorit på inlägg",
"toggle_content_warning": "Vaihda sisältövaroitus",
"preview_image": "Preview Image"
"preview_image": "Förhandsgranska bild"
},
"segmented_control": {
"previous_section": "Previous Section",
"previous_section": "Föregående avsnitt",
"next_section": "Seuraava lohko"
}
},
@ -129,39 +129,39 @@
"show_post": "Näytä julkaisu",
"show_user_profile": "Näytä tili",
"content_warning": "Sisältövaroitus",
"sensitive_content": "Sensitive Content",
"sensitive_content": "Känsligt innehåll",
"media_content_warning": "Napauta mistä tahansa paljastaaksesi",
"tap_to_reveal": "Tap to reveal",
"tap_to_reveal": "Tryck för att visa",
"poll": {
"vote": "Vote",
"vote": "Rösta",
"closed": "Suljettu"
},
"actions": {
"reply": "Vastaa",
"reblog": "Jaa edelleen",
"unreblog": "Peru edelleen jako",
"favorite": "Favorite",
"unfavorite": "Unfavorite",
"favorite": "Favorit",
"unfavorite": "Ta bort favorit",
"menu": "Valikko",
"hide": "Dölj",
"show_image": "Show image",
"show_gif": "Show GIF",
"show_video_player": "Show video player",
"tap_then_hold_to_show_menu": "Tap then hold to show menu"
"show_image": "Visa bild",
"show_gif": "Visa GIF",
"show_video_player": "Visa videospelare",
"tap_then_hold_to_show_menu": "Tryck och håll ned för att visa menyn"
},
"tag": {
"url": "URL",
"mention": "Mention",
"mention": "Nämn",
"link": "Linkki",
"hashtag": "Hashtagi",
"email": "Sähköposti",
"emoji": "Emoji"
},
"visibility": {
"unlisted": "Everyone can see this post but not display in the public timeline.",
"private": "Only their followers can see this post.",
"private_from_me": "Only my followers can see this post.",
"direct": "Only mentioned user can see this post."
"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."
}
},
"friendship": {
@ -173,7 +173,7 @@
"block_user": "Estä %s",
"block_domain": "Estä %s",
"unblock": "Poista esto",
"unblock_user": "Unblock %s",
"unblock_user": "Avblockera %s",
"blocked": "Estetty",
"mute": "Mykistä",
"mute_user": "Mykistä %s",
@ -212,8 +212,8 @@
},
"server_picker": {
"title": "Valitse palvelin,\nmikä tahansa palvelin.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"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.",
"button": {
"category": {
"all": "Kaikki",
@ -266,11 +266,11 @@
},
"password": {
"placeholder": "salasana",
"require": "Your password needs at least:",
"character_limit": "8 characters",
"require": "Ditt lösenord behöver minst:",
"character_limit": "8 tecken",
"accessibility": {
"checked": "checked",
"unchecked": "unchecked"
"checked": "markerad",
"unchecked": "avmarkerad"
},
"hint": "Salasanassasi on oltava vähintään kahdeksan merkkiä"
},
@ -284,14 +284,14 @@
"email": "Sähköposti",
"password": "Salasana",
"agreement": "Hyväksy",
"locale": "Locale",
"locale": "Språk",
"reason": "Syy"
},
"reason": {
"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",
"reserved": "%s är ett reserverat nyckelord",
"accepted": "%s täytyy hyväksyä",
"blank": "%s vaaditaan",
"invalid": "%s on virheellinen",
@ -322,7 +322,7 @@
"subtitle": "Lähetimme juuri sähköpostin osoitteeseen %s, napauta siinä olevaa linkkiä vahvistaaksesi tilisi.",
"button": {
"open_email_app": "Avaa sähköpostisovellus",
"resend": "Resend"
"resend": "Skicka igen"
},
"dont_receive_email": {
"title": "Tarkista sähköpostisi",
@ -365,7 +365,7 @@
"attachment": {
"photo": "kuva",
"video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"attachment_broken": "Denna %s är trasig och kan inte\nladdas upp till Mastodon.",
"description_photo": "Kuvaile kuva näkövammaisille...",
"description_video": "Kuvaile video näkövammaisille..."
},
@ -389,7 +389,7 @@
"direct": "Vain mainitsemani tilit"
},
"auto_complete": {
"space_to_add": "Space to add"
"space_to_add": "Mellanslag att lägga till"
},
"accessibility": {
"append_attachment": "Lisää liite",
@ -425,33 +425,33 @@
"segmented_control": {
"posts": "Julkaisut",
"replies": "Vastaukset",
"posts_and_replies": "Posts and Replies",
"posts_and_replies": "Inlägg och svar",
"media": "Media",
"about": "Om"
},
"relationship_action_alert": {
"confirm_mute_user": {
"title": "Mute Account",
"message": "Confirm to mute %s"
"title": "Tysta konto",
"message": "Bekräfta för att tysta %s"
},
"confirm_unmute_user": {
"title": "Poista tilin mykistys",
"message": "Vahvista, että haluat poistaa mykistyksen tililtä %s"
},
"confirm_block_user": {
"title": "Block Account",
"message": "Confirm to block %s"
"title": "Blockera konto",
"message": "Bekräfta för att blockera %s"
},
"confirm_unblock_user": {
"title": "Unblock Account",
"message": "Confirm to unblock %s"
"title": "Avblockera konto",
"message": "Bekräfta för att avblockera %s"
}
},
"accessibility": {
"show_avatar_image": "Show avatar image",
"edit_avatar_image": "Edit avatar image",
"show_banner_image": "Show banner image",
"double_tap_to_open_the_list": "Double tap to open the list"
"show_avatar_image": "Visa profilbild",
"edit_avatar_image": "Redigera profilbild",
"show_banner_image": "Visa banner",
"double_tap_to_open_the_list": "Dubbeltryck för att öppna listan"
}
},
"follower": {
@ -495,12 +495,13 @@
},
"discovery": {
"tabs": {
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"for_you": "For You"
"posts": "Inlägg",
"hashtags": "Hashtaggar",
"news": "Nyheter",
"community": "Community",
"for_you": "För dig"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."
"intro": "Detta är de inlägg som engagerar i ditt hörn av Mastodon."
},
"favorite": {
"title": "Omat suosikit"
@ -511,12 +512,12 @@
"Mentions": "Maininnat"
},
"notification_description": {
"followed_you": "followed you",
"favorited_your_post": "favorited your post",
"reblogged_your_post": "reblogged your post",
"followed_you": "följde dig",
"favorited_your_post": "favoriserade ditt inlägg",
"reblogged_your_post": "ompostade ditt inlägg",
"mentioned_you": "nämnde dig",
"request_to_follow_you": "request to follow you",
"poll_has_ended": "poll has ended"
"request_to_follow_you": "begär att följa dig",
"poll_has_ended": "omröstningen har avslutats"
},
"keyobard": {
"show_everything": "Näytä kaikki",
@ -537,15 +538,15 @@
"dark": "Tumma"
},
"look_and_feel": {
"title": "Look and Feel",
"use_system": "Use System",
"really_dark": "Really Dark",
"sorta_dark": "Sorta Dark",
"title": "Utseende och känsla",
"use_system": "Följ systeminställningarna",
"really_dark": "Verkligen mörk",
"sorta_dark": "Ganska mörk",
"light": "Ljust"
},
"notifications": {
"title": "Ilmoitukset",
"favorites": "Favorites my post",
"favorites": "Favoriserar mitt inlägg",
"follows": "Seuraa minua",
"boosts": "Omien julkaisujen edelleen jaot",
"mentions": "Mainitsee minut",
@ -563,7 +564,7 @@
"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"
"open_links_in_mastodon": "Öppna länkar i Mastodon"
},
"boring_zone": {
"title": "Tylsä alue",
@ -585,17 +586,17 @@
}
},
"report": {
"title_report": "Report",
"title_report": "Rapportera",
"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.",
"report_sent_title": "Tack för din rapport, vi ska titta på det.",
"send": "Lähetä ilmianto",
"skip_to_send": "Lähetä ilman kommentteja",
"text_placeholder": "Kirjoita tai liitä lisäkommentteja",
"reported": "REPORTED"
"reported": "RAPPORTERAD"
},
"preview": {
"keyboard": {

View File

@ -498,6 +498,7 @@
"posts": "Inlägg",
"hashtags": "Hashtaggar",
"news": "Nyheter",
"community": "Gemenskap",
"for_you": "För dig"
},
"intro": "Detta är de inlägg som engagerar i ditt hörn av Mastodon."

View File

@ -498,6 +498,7 @@
"posts": "โพสต์",
"hashtags": "แฮชแท็ก",
"news": "ข่าว",
"community": "Community",
"for_you": "สำหรับคุณ"
},
"intro": "นี่คือโพสต์ที่กำลังได้รับความสนใจในมุมของ Mastodon ของคุณ"

View File

@ -498,6 +498,7 @@
"posts": "Gönderiler",
"hashtags": "Etiketler",
"news": "Haberler",
"community": "Community",
"for_you": "Senin İçin"
},
"intro": "Bunlar, Mastodon'un köşesinde ilgi çeken gönderilerdir."

View File

@ -125,7 +125,7 @@
},
"status": {
"user_reblogged": "%s đăng lại",
"user_replied_to": "Trả lời %s",
"user_replied_to": "Trả lời đến %s",
"show_post": "Xem tút",
"show_user_profile": "Xem trang hồ sơ",
"content_warning": "Nội dung ẩn",
@ -211,9 +211,9 @@
"log_in": "Đăng nhập"
},
"server_picker": {
"title": "Mastodon gồm nhiều cộng đồng với nhiều thành viên khác nhau.",
"subtitle": "Chọn một cộng đồng dựa theo sở thích, tôn giáo, hoặc ý muốn của bạn.",
"subtitle_extend": "Chọn một cộng đồng dựa theo sở thích, tôn giáo, hoặc ý muốn của bạn. Mỗi cộng đồng có thể được vận hành bởi một tổ chức độc lập hoặc một cá nhân.",
"title": "Mastodon gồm nhiều máy chủ với thành viên riêng.",
"subtitle": "Chọn một máy chủ dựa theo sở thích, tôn giáo, hoặc ý muốn của bạn.",
"subtitle_extend": "Chọn một máy chủ dựa theo sở thích, tôn giáo, hoặc ý muốn của bạn. Mỗi máy chủ có thể được vận hành bởi một cá nhân hoặc một tổ chức.",
"button": {
"category": {
"all": "Toàn bộ",
@ -240,7 +240,7 @@
"category": "PHÂN LOẠI"
},
"input": {
"placeholder": "Tìm cộng đồng"
"placeholder": "Tìm máy chủ"
},
"empty_state": {
"finding_servers": "Đang tìm máy chủ hoạt động...",
@ -498,6 +498,7 @@
"posts": "Tút",
"hashtags": "Hashtag",
"news": "Tin tức",
"community": "Máy chủ",
"for_you": "Dành cho bạn"
},
"intro": "Đây là những tút thu hút được sự chú ý trong góc Mastodon của bạn."

View File

@ -498,6 +498,7 @@
"posts": "嘟文",
"hashtags": "话题标签",
"news": "最新消息",
"community": "社区",
"for_you": "为你推荐"
},
"intro": "这些嘟文在你的长毛象小宇宙中备受关注。"

View File

@ -13,13 +13,13 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld unread notification</string>
<string>%ld 則未讀通知</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit exceeds %#@character_count@</string>
<string>輸入字數限制超過 %#@character_count@ 字</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -27,13 +27,13 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld 個字元</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Input limit remains %#@character_count@</string>
<string>輸入字數限制剩餘 %#@character_count@ 字</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@ -41,7 +41,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld characters</string>
<string>%ld 個字</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
@ -55,7 +55,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>posts</string>
<string>嘟文</string>
</dict>
</dict>
<key>plural.count.post</key>
@ -69,7 +69,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld posts</string>
<string>%ld 則嘟文</string>
</dict>
</dict>
<key>plural.count.favorite</key>
@ -83,7 +83,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld favorites</string>
<string>%ld 個最愛</string>
</dict>
</dict>
<key>plural.count.reblog</key>
@ -97,7 +97,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld reblogs</string>
<string>%ld 個轉嘟</string>
</dict>
</dict>
<key>plural.count.reply</key>
@ -111,7 +111,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld replies</string>
<string>%ld 個回覆</string>
</dict>
</dict>
<key>plural.count.vote</key>
@ -125,7 +125,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld votes</string>
<string>%ld </string>
</dict>
</dict>
<key>plural.count.voter</key>
@ -139,7 +139,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld voters</string>
<string>%ld 位投票者</string>
</dict>
</dict>
<key>plural.people_talking</key>
@ -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>
@ -167,7 +167,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld following</string>
<string>%ld 個跟隨中</string>
</dict>
</dict>
<key>plural.count.follower</key>
@ -181,7 +181,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld followers</string>
<string>%ld 個跟隨者</string>
</dict>
</dict>
<key>date.year.left</key>
@ -195,7 +195,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld years left</string>
<string>還有 %ld 年</string>
</dict>
</dict>
<key>date.month.left</key>
@ -209,7 +209,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld months left</string>
<string>還有 %ld 個月</string>
</dict>
</dict>
<key>date.day.left</key>
@ -223,7 +223,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld days left</string>
<string>還有 %ld 天</string>
</dict>
</dict>
<key>date.hour.left</key>
@ -237,7 +237,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld hours left</string>
<string>還有 %ld 小時</string>
</dict>
</dict>
<key>date.minute.left</key>
@ -251,7 +251,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld minutes left</string>
<string>還有 %ld 分鐘</string>
</dict>
</dict>
<key>date.second.left</key>
@ -265,7 +265,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ld seconds left</string>
<string>還有 %ld 秒</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
@ -279,7 +279,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ldy ago</string>
<string>%ld 年前</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
@ -293,7 +293,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ldM ago</string>
<string>%ld 個月前</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
@ -307,7 +307,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ldd ago</string>
<string>%ld 天前</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
@ -321,7 +321,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ldh ago</string>
<string>%ld 小時前</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
@ -335,7 +335,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%ldm ago</string>
<string>%ld 分鐘前</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
@ -349,7 +349,7 @@
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string>%lds ago</string>
<string>%ld 秒前</string>
</dict>
</dict>
</dict>

View File

@ -12,82 +12,82 @@
"title": "伺服器錯誤"
},
"vote_failure": {
"title": "Vote Failure",
"poll_ended": "The poll has ended"
"title": "投票失敗",
"poll_ended": "投票已結束"
},
"discard_post_content": {
"title": "捨棄草稿",
"message": "Confirm to discard composed post content."
"message": "確認放棄編寫中的嘟文內容。"
},
"publish_post_failure": {
"title": "Publish Failure",
"message": "Failed to publish the post.\nPlease check your internet connection.",
"title": "發表嘟文失敗",
"message": "發表嘟文失敗。\n請檢查您的網路連線。",
"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."
"video_attach_with_photo": "無法在已有圖片的嘟文上附加影片。",
"more_than_one_video": "無法附加一個以上影片。"
}
},
"edit_profile_failure": {
"title": "Edit Profile Error",
"message": "Cannot edit profile. Please try again."
"title": "編輯個人檔案錯誤",
"message": "無法編輯個人檔案。請重試。"
},
"sign_out": {
"title": "登出",
"message": "Are you sure you want to sign out?",
"message": "您確定要登出嗎?",
"confirm": "登出"
},
"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"
"title": "真的非常確定封鎖整個 %s 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳帳戶能滿足需求了。您將不能看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
"block_entire_domain": "封鎖網域"
},
"save_photo_failure": {
"title": "Save Photo Failure",
"message": "Please enable the photo library access permission to save the photo."
"title": "儲存照片失敗",
"message": "請開啟圖片庫存取權限以儲存照片。"
},
"delete_post": {
"title": "Delete Post",
"message": "Are you sure you want to delete this post?"
"title": "刪除嘟文",
"message": "是否確定要刪除此嘟文?"
},
"clean_cache": {
"title": "Clean Cache",
"message": "Successfully cleaned %s cache."
"title": "清除快取",
"message": "成功清除 %s 快取。"
}
},
"controls": {
"actions": {
"back": "Back",
"next": "Next",
"previous": "Previous",
"open": "Open",
"add": "Add",
"remove": "Remove",
"back": "上一頁",
"next": "下一頁",
"previous": "上一步",
"open": "開啟",
"add": "新增",
"remove": "刪除",
"edit": "編輯",
"save": "Save",
"save": "儲存",
"ok": "OK",
"done": "完成",
"confirm": "Confirm",
"confirm": "確認",
"continue": "繼續",
"compose": "Compose",
"compose": "撰寫",
"cancel": "取消",
"discard": "Discard",
"try_again": "Try Again",
"take_photo": "Take Photo",
"discard": "捨棄",
"try_again": "再試一次",
"take_photo": "拍攝照片",
"save_photo": "儲存照片",
"copy_photo": "Copy Photo",
"copy_photo": "複製照片",
"sign_in": "登入",
"sign_up": "註冊",
"see_more": "See More",
"preview": "Preview",
"see_more": "檢視更多",
"preview": "預覽",
"share": "分享",
"share_user": "Share %s",
"share_post": "Share Post",
"open_in_safari": "Open in Safari",
"open_in_browser": "Open in Browser",
"find_people": "Find people to follow",
"manually_search": "Manually search instead",
"share_user": "分享 %s",
"share_post": "分享嘟文",
"open_in_safari": "在 Safari 中開啟",
"open_in_browser": "在瀏覽器中開啟",
"find_people": "尋找一些人來跟隨",
"manually_search": "手動搜尋",
"skip": "跳過",
"reply": "回覆",
"report_user": "Report %s",
"report_user": "檢舉 %s",
"block_domain": "封鎖 %s",
"unblock_domain": "解除封鎖 %s",
"settings": "設定",
@ -102,517 +102,518 @@
"keyboard": {
"common": {
"switch_to_tab": "切換至 %s",
"compose_new_post": "發佈貼文",
"show_favorites": "Show Favorites",
"open_settings": "Open Settings"
"compose_new_post": "撰寫新嘟文",
"show_favorites": "顯示最愛",
"open_settings": "開啟設定"
},
"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",
"toggle_reblog": "Toggle Reblog on Post",
"toggle_favorite": "Toggle Favorite on Post",
"toggle_content_warning": "Toggle Content Warning",
"preview_image": "Preview Image"
"previous_status": "先前的嘟文",
"next_status": "下一則嘟文",
"open_status": "開啟嘟文",
"open_author_profile": "開啟作者的個人檔案頁面",
"open_reblogger_profile": "開啟轉嘟者的個人檔案頁面",
"reply_status": "回覆嘟文",
"toggle_reblog": "切換轉發嘟文",
"toggle_favorite": "切換最愛嘟文",
"toggle_content_warning": "切換內容警告",
"preview_image": "預覽圖片"
},
"segmented_control": {
"previous_section": "Previous Section",
"next_section": "Next Section"
"previous_section": "上一個區塊",
"next_section": "下一個區塊"
}
},
"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",
"sensitive_content": "Sensitive Content",
"media_content_warning": "Tap anywhere to reveal",
"tap_to_reveal": "Tap to reveal",
"user_reblogged": "%s 已轉嘟",
"user_replied_to": "回覆給 %s",
"show_post": "顯示嘟文",
"show_user_profile": "顯示使用者個人檔案頁面",
"content_warning": "內容警告",
"sensitive_content": "敏感內容",
"media_content_warning": "輕觸任何地方以顯示",
"tap_to_reveal": "輕觸以顯示",
"poll": {
"vote": "投票",
"closed": "Closed"
"closed": "已關閉"
},
"actions": {
"reply": "回覆",
"reblog": "Reblog",
"unreblog": "Undo reblog",
"favorite": "Favorite",
"unfavorite": "Unfavorite",
"menu": "Menu",
"hide": "Hide",
"show_image": "Show image",
"show_gif": "Show GIF",
"show_video_player": "Show video player",
"tap_then_hold_to_show_menu": "Tap then hold to show menu"
"reblog": "轉嘟",
"unreblog": "取消轉嘟",
"favorite": "最愛",
"unfavorite": "取消最愛",
"menu": "選單",
"hide": "隱藏",
"show_image": "顯示圖片",
"show_gif": "顯示 GIF",
"show_video_player": "顯示影片播放器",
"tap_then_hold_to_show_menu": "輕觸然後按住以顯示選單"
},
"tag": {
"url": "URL",
"mention": "Mention",
"link": "Link",
"hashtag": "Hashtag",
"url": "網址",
"mention": "提及",
"link": "連結",
"hashtag": "主題標籤",
"email": "電子郵件",
"emoji": "Emoji"
"emoji": "emoji"
},
"visibility": {
"unlisted": "Everyone can see this post but not display in the public timeline.",
"private": "Only their followers can see this post.",
"private_from_me": "Only my followers can see this post.",
"direct": "Only mentioned user can see this post."
"unlisted": "任何人都能看到此嘟文,但是不會顯示於公開時間軸上。",
"private": "只有他們的跟隨者能看到此嘟文。",
"private_from_me": "只有我的跟隨者能看到此嘟文。",
"direct": "只有被提及的使用者能看到此嘟文。"
}
},
"friendship": {
"follow": "追蹤",
"following": "Following",
"request": "Request",
"pending": "Pending",
"block": "Block",
"follow": "跟隨",
"following": "跟隨中",
"request": "請求",
"pending": "等待中",
"block": "封鎖",
"block_user": "封鎖 %s",
"block_domain": "封鎖 %s",
"unblock": "解除封鎖",
"unblock_user": "解除封鎖 %s",
"blocked": "已封鎖",
"mute": "Mute",
"mute_user": "Mute %s",
"unmute": "Unmute",
"unmute_user": "Unmute %s",
"muted": "Muted",
"edit_info": "Edit Info"
"mute": "靜音",
"mute_user": "靜音 %s",
"unmute": "取消靜音",
"unmute_user": "取消靜音 %s",
"muted": "已靜音",
"edit_info": "編輯"
},
"timeline": {
"filtered": "Filtered",
"filtered": "已過濾",
"timestamp": {
"now": "Now"
"now": "剛剛"
},
"loader": {
"load_missing_posts": "Load missing posts",
"loading_missing_posts": "Loading missing posts...",
"show_more_replies": "Show more replies"
"load_missing_posts": "讀取錯過的嘟文",
"loading_missing_posts": "正在讀取錯過的嘟文...",
"show_more_replies": "顯示更多回覆"
},
"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": "沒有任何嘟文",
"blocking_warning": "您無法瀏覽該使用者的個人檔案,除非您取消封鎖。\n您的個人檔案看起來像是這樣。",
"user_blocking_warning": "您無法瀏覽 %s 的個人檔案,除非您取消封鎖。\n您的個人檔案看起來像是這樣。",
"blocked_warning": "您無法瀏覽該使用者的個人檔案,除非他們取消封鎖您。",
"user_blocked_warning": "您無法瀏覽 %s 的個人檔案,除非他們取消封鎖您。",
"suspended_warning": "此使用者已被停權。",
"user_suspended_warning": "%s 的帳號已經被停權。"
}
}
}
},
"scene": {
"welcome": {
"slogan": "Social networking\nback in your hands.",
"get_started": "Get Started",
"slogan": "社群網路\n還權於您。",
"get_started": "新手上路",
"log_in": "登入"
},
"server_picker": {
"title": "Mastodon is made of users in different communities.",
"subtitle": "Pick a community based on your interests, region, or a general purpose one.",
"subtitle_extend": "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.",
"title": "Mastodon 由不同伺服器的使用者組成。",
"subtitle": "基於您的興趣、地區、或一般用途選定一個伺服器。",
"subtitle_extend": "基於您的興趣、地區、或一般用途選定一個伺服器。每個伺服器是由完全獨立的組織或個人營運。",
"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": "全部",
"all_accessiblity_description": "分類:全部",
"academia": "學術",
"activism": "社會運動",
"food": "食物",
"furry": "毛茸茸",
"games": "遊戲",
"general": "一般",
"journalism": "新聞記者",
"lgbt": "LGBT",
"regional": "區域性",
"art": "藝術",
"music": "音樂",
"tech": "科技"
},
"see_less": "See Less",
"see_more": "See More"
"see_less": "顯示較少",
"see_more": "檢視更多"
},
"label": {
"language": "LANGUAGE",
"users": "USERS",
"category": "CATEGORY"
"language": "語言",
"users": "使用者",
"category": "分類"
},
"input": {
"placeholder": "Search communities"
"placeholder": "搜尋伺服器"
},
"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": "尋找可用的伺服器...",
"bad_network": "讀取資料時發生錯誤。請檢查您的網路連線。",
"no_results": "沒有結果"
}
},
"register": {
"title": "Lets get you set up on %s",
"title": "讓我們一起設定 %s 吧!",
"input": {
"avatar": {
"delete": "刪除"
},
"username": {
"placeholder": "username",
"duplicate_prompt": "This username is taken."
"placeholder": "使用者名稱",
"duplicate_prompt": "此使用者名稱已被佔用。"
},
"display_name": {
"placeholder": "display name"
"placeholder": "顯示名稱"
},
"email": {
"placeholder": "email"
"placeholder": "電子郵件"
},
"password": {
"placeholder": "密碼",
"require": "Your password needs at least:",
"require": "您的密碼必須是至少:",
"character_limit": "8 個字元",
"accessibility": {
"checked": "checked",
"unchecked": "unchecked"
"checked": "已選擇",
"unchecked": "取消勾選"
},
"hint": "Your password needs at least eight characters"
"hint": "您的密碼必須至少為八個字元"
},
"invite": {
"registration_user_invite_request": "Why do you want to join?"
"registration_user_invite_request": "為什麼想要加入呢?"
}
},
"error": {
"item": {
"username": "Username",
"username": "使用者名稱",
"email": "電子郵件",
"password": "密碼",
"agreement": "Agreement",
"locale": "Locale",
"reason": "Reason"
"agreement": "條款",
"locale": "地區",
"reason": "原因"
},
"reason": {
"blocked": "%s contains a disallowed email provider",
"unreachable": "%s does not seem to exist",
"taken": "%s is already in use",
"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"
"blocked": "%s 包含不被允許的電子郵件供應商",
"unreachable": "%s 似乎並不存在",
"taken": "%s 已被使用",
"reserved": "%s 是一個保留的關鍵字",
"accepted": "請先閱讀並同意 %s",
"blank": "%s 為必填選項",
"invalid": "%s 是無效的",
"too_long": "%s 太長了",
"too_short": "%s 太短了",
"inclusion": "%s 是不被支援的值"
},
"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": "使用者名稱僅能包含英文字母數字以及底線",
"username_too_long": "使用者名稱太長了(不能超過 30 個字元)",
"email_invalid": "這不是一個有效的電子郵件地址",
"password_too_short": "密碼太短了(至少需要八個字元)"
}
}
},
"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": "一些基本守則。",
"subtitle": "這些被 %s 的管管們制定以及實施。",
"prompt": "繼續的話,代表您將遵守 %s 的服務條款和隱私權政策。",
"terms_of_service": "服務條款",
"privacy_policy": "隱私權政策",
"button": {
"confirm": "I Agree"
"confirm": "我已閱讀並同意"
}
},
"confirm_email": {
"title": "One last thing.",
"subtitle": "Tap the link we emailed to you to verify your account.",
"title": "最後一步。",
"subtitle": "點擊我們寄送給您的帳號驗證連結。",
"button": {
"open_email_app": "Open Email App",
"resend": "Resend"
"open_email_app": "開啟電子郵件 App",
"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": "請檢查您的電子郵件",
"description": "請檢查您的電子郵件地址是否正確,以及您的垃圾信件夾。",
"resend_email": "重新發送電子郵件"
},
"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": "請檢查您的收件夾。",
"description": "我們剛寄送您一封電子郵件。請檢查您的垃圾信件夾。",
"mail": "電子郵件",
"open_email_client": "請開啟電子郵件程式"
}
},
"home_timeline": {
"title": "Home",
"title": "首頁",
"navigation_bar_state": {
"offline": "Offline",
"new_posts": "See new posts",
"published": "Published!",
"Publishing": "Publishing post..."
"offline": "離線",
"new_posts": "檢視最新嘟文",
"published": "嘟出去!",
"Publishing": "發表嘟文..."
}
},
"suggestion_account": {
"title": "Find People to Follow",
"follow_explain": "When you follow someone, youll see their posts in your home feed."
"title": "尋找一些人來跟隨",
"follow_explain": "當您跟隨這些人時,將會看到他們的嘟文出現在您的首頁時間軸上。"
},
"compose": {
"title": {
"new_post": "New Post",
"new_reply": "New Reply"
"new_post": "新增嘟文",
"new_reply": "新增回覆"
},
"media_selection": {
"camera": "Take Photo",
"photo_library": "Photo Library",
"browse": "Browse"
"camera": "拍攝照片",
"photo_library": "圖片庫",
"browse": "瀏覽"
},
"content_input_placeholder": "Type or paste whats on your mind",
"compose_action": "Publish",
"replying_to_user": "replying to %s",
"content_input_placeholder": "正在想些什麼嗎?",
"compose_action": "嘟出去",
"replying_to_user": "正在回覆 %s",
"attachment": {
"photo": "photo",
"photo": "照片",
"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..."
"attachment_broken": "此 %s 已損毀,並無法被上傳至 Mastodon。",
"description_photo": "為視障人士提供圖片說明...",
"description_video": "為視障人士提供影片說明..."
},
"poll": {
"duration_time": "Duration: %s",
"duration_time": "持續時間:%s",
"thirty_minutes": "30 分鐘",
"one_hour": "1 Hour",
"six_hours": "6 Hours",
"one_day": "1 Day",
"three_days": "3 Days",
"seven_days": "7 Days",
"option_number": "Option %ld"
"one_hour": "一小時",
"six_hours": "六小時",
"one_day": "一天",
"three_days": "三天",
"seven_days": "七天",
"option_number": "選項 %ld"
},
"content_warning": {
"placeholder": "Write an accurate warning here..."
"placeholder": "請於此處寫下精準的警告..."
},
"visibility": {
"public": "Public",
"unlisted": "Unlisted",
"private": "Followers only",
"direct": "Only people I mention"
"public": "公開",
"unlisted": "不公開",
"private": "僅限跟隨者",
"direct": "僅限於我提及的人"
},
"auto_complete": {
"space_to_add": "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": "新增附件",
"append_poll": "新增投票",
"remove_poll": "移除投票",
"custom_emoji_picker": "自訂 emoji 選擇器",
"enable_content_warning": "啟用內容警告",
"disable_content_warning": "停用內容警告",
"post_visibility_menu": "嘟文可見性選單"
},
"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": "捨棄嘟文",
"publish_post": "發表嘟文",
"toggle_poll": "切換投票",
"toggle_content_warning": "切換內容警告",
"append_attachment_entry": "新增附件 - %s",
"select_visibility_entry": "選擇可見性 - %s"
}
},
"profile": {
"dashboard": {
"posts": "posts",
"following": "following",
"followers": "followers"
"posts": "嘟文",
"following": "跟隨中",
"followers": "跟隨者"
},
"fields": {
"add_row": "Add Row",
"add_row": "新增列",
"placeholder": {
"label": "Label",
"content": "Content"
"label": "標籤",
"content": "內容"
}
},
"segmented_control": {
"posts": "文",
"replies": "Replies",
"posts_and_replies": "Posts and Replies",
"media": "Media",
"about": "About"
"posts": "文",
"replies": "回覆",
"posts_and_replies": "嘟文及回覆",
"media": "媒體",
"about": "關於"
},
"relationship_action_alert": {
"confirm_mute_user": {
"title": "Mute Account",
"message": "Confirm to mute %s"
"title": "靜音",
"message": "確認將 %s 靜音"
},
"confirm_unmute_user": {
"title": "Unmute Account",
"message": "Confirm to unmute %s"
"title": "取消靜音",
"message": "確認將 %s 取消靜音"
},
"confirm_block_user": {
"title": "Block Account",
"message": "Confirm to block %s"
"title": "封鎖",
"message": "確認將 %s 封鎖"
},
"confirm_unblock_user": {
"title": "Unblock Account",
"message": "Confirm to unblock %s"
"title": "取消封鎖",
"message": "確認將 %s 取消封鎖"
}
},
"accessibility": {
"show_avatar_image": "Show avatar image",
"edit_avatar_image": "Edit avatar image",
"show_banner_image": "Show banner image",
"double_tap_to_open_the_list": "Double tap to open the list"
"show_avatar_image": "顯示大頭貼",
"edit_avatar_image": "編輯大頭貼",
"show_banner_image": "顯示橫幅圖片",
"double_tap_to_open_the_list": "點兩下以開啟列表"
}
},
"follower": {
"footer": "Followers from other servers are not displayed."
"footer": "來自其他伺服器的跟隨者不會被顯示。"
},
"following": {
"footer": "Follows from other servers are not displayed."
"footer": "來自其他伺服器的跟隨中不會被顯示。"
},
"search": {
"title": "搜尋",
"search_bar": {
"placeholder": "Search hashtags and users",
"placeholder": "搜尋主題標籤及使用者",
"cancel": "取消"
},
"recommend": {
"button_text": "See All",
"button_text": "檢視全部",
"hash_tag": {
"title": "Trending on Mastodon",
"description": "Hashtags that are getting quite a bit of attention",
"people_talking": "%s people are talking"
"title": "Mastodon 上的熱門討論",
"description": "發燒中的主題標籤",
"people_talking": "%s 人正在討論"
},
"accounts": {
"title": "Accounts you might like",
"description": "You may like to follow these accounts",
"follow": "追蹤"
"title": "您可能會喜歡的帳號",
"description": "您也許想跟隨這些帳號",
"follow": "跟隨"
}
},
"searching": {
"segment": {
"all": "All",
"people": "People",
"hashtags": "Hashtags",
"posts": "文"
"all": "全部",
"people": "使用者",
"hashtags": "主題標籤",
"posts": "文"
},
"empty_state": {
"no_results": "No results"
"no_results": "沒有任何結果"
},
"recent_search": "Recent searches",
"clear": "Clear"
"recent_search": "最近的搜尋",
"clear": "清除"
}
},
"discovery": {
"tabs": {
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"for_you": "For You"
"posts": "嘟文",
"hashtags": "主題標籤",
"news": "最新消息",
"community": "社群",
"for_you": "為您推薦"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."
"intro": "這些嘟文正在您 Mastodon 的角落受到注目。"
},
"favorite": {
"title": "Your Favorites"
"title": "您的最愛"
},
"notification": {
"title": {
"Everything": "Everything",
"Mentions": "Mentions"
"Everything": "全部",
"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": "Show Everything",
"show_mentions": "Show Mentions"
"show_everything": "顯示全部",
"show_mentions": "顯示提及"
}
},
"thread": {
"back_title": "Post",
"title": "Post from %s"
"back_title": "嘟文",
"title": "來自 %s 的嘟文"
},
"settings": {
"title": "設定",
"section": {
"appearance": {
"title": "Appearance",
"title": "外觀設定",
"automatic": "自動",
"light": "Always Light",
"dark": "Always Dark"
"light": "亮色佈景主題",
"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": "Notifications",
"favorites": "Favorites my post",
"follows": "Follows me",
"boosts": "Reblogs my post",
"mentions": "Mentions me",
"title": "通知",
"favorites": "將我的嘟文加到最愛",
"follows": "跟隨著我",
"boosts": "將我的嘟文轉嘟",
"mentions": "提到了我",
"trigger": {
"anyone": "anyone",
"follower": "a follower",
"follow": "anyone I follow",
"noone": "no one",
"title": "Notify me when"
"anyone": "任何人",
"follower": "跟隨者",
"follow": "任何我跟隨的人",
"noone": "沒有人",
"title": "以下狀況請通知我"
}
},
"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": "偏好設定",
"true_black_dark_mode": "真☆闇黑模式",
"disable_avatar_animation": "停用動畫大頭貼",
"disable_emoji_animation": "停用動畫 emoji",
"using_default_browser": "使用預設瀏覽器開啟連結",
"open_links_in_mastodon": "在 Mastodon 中開啟連結"
},
"boring_zone": {
"title": "The Boring Zone",
"account_settings": "Account Settings",
"terms": "Terms of Service",
"privacy": "Privacy Policy"
"title": "無聊的這些",
"account_settings": "帳號設定",
"terms": "服務條款",
"privacy": "隱私權政策"
},
"spicy_zone": {
"title": "The Spicy Zone",
"clear": "Clear Media Cache",
"title": "危險地帶",
"clear": "清除媒體快取",
"signout": "登出"
}
},
"footer": {
"mastodon_description": "Mastodon is open source software. You can report issues on GitHub at %s (%s)"
"mastodon_description": "Mastodon 是開源軟體。您可以在 GitHub %s (%s) 上回報問題。"
},
"keyboard": {
"close_settings_window": "Close Settings Window"
"close_settings_window": "關閉設定視窗"
}
},
"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?",
"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"
"title_report": "檢舉",
"title": "檢舉 %s",
"step1": "兩個步驟中的第一步",
"step2": "兩個步驟中的第二步",
"content1": "還有其他您想加入這份檢舉報告的嘟文嗎?",
"content2": "有其他管管們需要知道關於這份檢舉報告的嗎?",
"report_sent_title": "感謝您的檢舉,我們將著手處理。",
"send": "傳送檢舉報告",
"skip_to_send": "不加入備註並傳送",
"text_placeholder": "請輸入或貼上額外的備註",
"reported": "已檢舉"
},
"preview": {
"keyboard": {
"close_preview": "Close Preview",
"show_next": "Show Next",
"show_previous": "Show Previous"
"close_preview": "關閉預覽",
"show_next": "顯示下一筆",
"show_previous": "顯示上一筆"
}
},
"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": "目前已選擇的個人檔案:%s。點兩下然後按住以顯示帳號切換器",
"dismiss_account_switcher": "關閉帳號切換器",
"add_account": "新增帳號"
},
"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": "Mastodon 新功能",
"multiple_account_switch_intro_description": "按住個人檔案按鈕以於多個帳號間切換。",
"accessibility_hint": "點兩下以關閉此設定精靈"
}
}
}

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": "用來拍照發嘟文",
"NSPhotoLibraryAddUsageDescription": "用來儲存照片到圖片庫",
"NewPostShortcutItemTitle": "新增嘟文",
"SearchShortcutItemTitle": "搜尋"
}

View File

@ -342,8 +342,12 @@
"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": {
"title": "Find People to Follow",
@ -498,6 +502,7 @@
"posts": "Posts",
"hashtags": "Hashtags",
"news": "News",
"community": "Community",
"for_you": "For You"
},
"intro": "These are the posts gaining traction in your corner of Mastodon."

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1250"
LastUpgradeVersion = "1330"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1250"
LastUpgradeVersion = "1330"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1250"
LastUpgradeVersion = "1330"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"

View File

@ -19,7 +19,7 @@
<key>Mastodon - RTL.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>19</integer>
<integer>6</integer>
</dict>
<key>Mastodon - Release.xcscheme_^#shared#^_</key>
<dict>
@ -109,7 +109,7 @@
<key>MastodonIntent.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>24</integer>
<integer>28</integer>
</dict>
<key>MastodonIntents.xcscheme_^#shared#^_</key>
<dict>
@ -124,12 +124,12 @@
<key>NotificationService.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>22</integer>
<integer>27</integer>
</dict>
<key>ShareActionExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>23</integer>
<integer>22</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>

View File

@ -105,8 +105,8 @@
"repositoryURL": "https://github.com/TwidereProject/MetaTextKit.git",
"state": {
"branch": null,
"revision": "8074400b3819ef0395550082e6e8e960ef22e1f3",
"version": "2.2.2"
"revision": "2b9556a78b2986b8c0b04adc6da8ec206b448a0c",
"version": "2.2.3"
}
},
{
@ -114,8 +114,8 @@
"repositoryURL": "https://github.com/kean/Nuke.git",
"state": {
"branch": null,
"revision": "78fa963b8491fc520791d8c2a509f1b8593d8aae",
"version": "10.7.1"
"revision": "0ea7545b5c918285aacc044dc75048625c8257cc",
"version": "10.8.0"
}
},
{

View File

@ -1,14 +1,7 @@
// Generated using Sourcery 1.6.1 https://github.com/krzysztofzablocki/Sourcery
// DO NOT EDIT
// sourcery:inline:UserTimelineViewController.AutoGenerateTableViewDelegate
// sourcery:inline:DiscoveryCommunityViewController.AutoGenerateTableViewDelegate
// Generated using Sourcery
// DO NOT EDIT
@ -33,3 +26,13 @@ func tableView(_ tableView: UITableView, willPerformPreviewActionForMenuWith con
}
// sourcery:end

View File

@ -30,7 +30,7 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.3.3</string>
<string>1.4.0</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
@ -43,7 +43,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>117</string>
<string>121</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>

View File

@ -0,0 +1,4 @@
"NSCameraUsageDescription" = "Used to take photo for post status";
"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library";
"NewPostShortcutItemTitle" = "New Post";
"SearchShortcutItemTitle" = "Search";

View File

@ -0,0 +1,4 @@
"NSCameraUsageDescription" = "Used to take photo for post status";
"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library";
"NewPostShortcutItemTitle" = "New Post";
"SearchShortcutItemTitle" = "Search";

View File

@ -0,0 +1,4 @@
"NSCameraUsageDescription" = "Used to take photo for post status";
"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library";
"NewPostShortcutItemTitle" = "New Post";
"SearchShortcutItemTitle" = "Search";

View File

@ -0,0 +1,4 @@
"NSCameraUsageDescription" = "Used to take photo for post status";
"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library";
"NewPostShortcutItemTitle" = "New Post";
"SearchShortcutItemTitle" = "Search";

View File

@ -0,0 +1,4 @@
"NSCameraUsageDescription" = "Used to take photo for post status";
"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library";
"NewPostShortcutItemTitle" = "New Post";
"SearchShortcutItemTitle" = "Search";

View File

@ -0,0 +1,64 @@
//
// DiscoveryCommunityViewViewModel.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import os.log
import UIKit
import Combine
import GameplayKit
import CoreData
import CoreDataStack
import MastodonSDK
final class DiscoveryCommunityViewViewModel {
let logger = Logger(subsystem: "DiscoveryCommunityViewViewModel", category: "ViewModel")
var disposeBag = Set<AnyCancellable>()
// input
let context: AppContext
let viewDidAppeared = PassthroughSubject<Void, Never>()
let statusFetchedResultsController: StatusFetchedResultsController
// output
var diffableDataSource: UITableViewDiffableDataSource<StatusSection, StatusItem>?
private(set) lazy var stateMachine: GKStateMachine = {
let stateMachine = GKStateMachine(states: [
State.Initial(viewModel: self),
State.Reloading(viewModel: self),
State.Fail(viewModel: self),
State.Idle(viewModel: self),
State.Loading(viewModel: self),
State.NoMore(viewModel: self),
])
stateMachine.enter(State.Initial.self)
return stateMachine
}()
let didLoadLatest = PassthroughSubject<Void, Never>()
init(context: AppContext) {
self.context = context
self.statusFetchedResultsController = StatusFetchedResultsController(
managedObjectContext: context.managedObjectContext,
domain: nil,
additionalTweetPredicate: nil
)
// end init
context.authenticationService.activeMastodonAuthentication
.map { $0?.domain }
.assign(to: \.value, on: statusFetchedResultsController.domain)
.store(in: &disposeBag)
}
deinit {
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
}
}

View File

@ -0,0 +1,34 @@
//
// DiscoveryCommunityViewController+DataSourceProvider.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import UIKit
extension DiscoveryCommunityViewController: DataSourceProvider {
func item(from source: DataSourceItem.Source) async -> DataSourceItem? {
var _indexPath = source.indexPath
if _indexPath == nil, let cell = source.tableViewCell {
_indexPath = await self.indexPath(for: cell)
}
guard let indexPath = _indexPath else { return nil }
guard let item = viewModel.diffableDataSource?.itemIdentifier(for: indexPath) else {
return nil
}
switch item {
case .status(let record):
return .status(record: record)
default:
return nil
}
}
@MainActor
private func indexPath(for cell: UITableViewCell) async -> IndexPath? {
return tableView.indexPath(for: cell)
}
}

View File

@ -0,0 +1,154 @@
//
// DiscoveryCommunityViewController.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import os.log
import UIKit
import Combine
import MastodonUI
// Local Timeline
final class DiscoveryCommunityViewController: UIViewController, NeedsDependency, MediaPreviewableViewController {
let logger = Logger(subsystem: "DiscoveryCommunityViewController", category: "ViewController")
weak var context: AppContext! { willSet { precondition(!isViewLoaded) } }
weak var coordinator: SceneCoordinator! { willSet { precondition(!isViewLoaded) } }
var disposeBag = Set<AnyCancellable>()
var viewModel: DiscoveryCommunityViewModel!
let mediaPreviewTransitionController = MediaPreviewTransitionController()
lazy var tableView: UITableView = {
let tableView = UITableView()
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 100
tableView.separatorStyle = .none
tableView.backgroundColor = .clear
return tableView
}()
let refreshControl = UIRefreshControl()
deinit {
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
}
}
extension DiscoveryCommunityViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = ThemeService.shared.currentTheme.value.secondarySystemBackgroundColor
ThemeService.shared.currentTheme
.receive(on: DispatchQueue.main)
.sink { [weak self] theme in
guard let self = self else { return }
self.view.backgroundColor = theme.secondarySystemBackgroundColor
}
.store(in: &disposeBag)
tableView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(tableView)
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),
])
tableView.refreshControl = refreshControl
refreshControl.addTarget(self, action: #selector(DiscoveryCommunityViewController.refreshControlValueChanged(_:)), for: .valueChanged)
viewModel.didLoadLatest
.receive(on: DispatchQueue.main)
.sink { [weak self] _ in
guard let self = self else { return }
self.refreshControl.endRefreshing()
}
.store(in: &disposeBag)
tableView.delegate = self
viewModel.setupDiffableDataSource(
tableView: tableView,
statusTableViewCellDelegate: self
)
// setup batch fetch
viewModel.listBatchFetchViewModel.setup(scrollView: tableView)
viewModel.listBatchFetchViewModel.shouldFetch
.receive(on: DispatchQueue.main)
.sink { [weak self] _ in
guard let self = self else { return }
guard self.view.window != nil else { return }
self.viewModel.stateMachine.enter(DiscoveryCommunityViewModel.State.Loading.self)
}
.store(in: &disposeBag)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
tableView.deselectRow(with: transitionCoordinator, animated: animated)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
viewModel.viewDidAppeared.send()
}
}
extension DiscoveryCommunityViewController {
@objc private func refreshControlValueChanged(_ sender: UIRefreshControl) {
if !viewModel.stateMachine.enter(DiscoveryCommunityViewModel.State.Reloading.self) {
refreshControl.endRefreshing()
}
}
}
// MARK: - UITableViewDelegate
extension DiscoveryCommunityViewController: UITableViewDelegate, AutoGenerateTableViewDelegate {
// sourcery:inline:CommunityViewController.AutoGenerateTableViewDelegate
// Generated using Sourcery
// DO NOT EDIT
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
aspectTableView(tableView, didSelectRowAt: indexPath)
}
func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
return aspectTableView(tableView, contextMenuConfigurationForRowAt: indexPath, point: point)
}
func tableView(_ tableView: UITableView, previewForHighlightingContextMenuWithConfiguration configuration: UIContextMenuConfiguration) -> UITargetedPreview? {
return aspectTableView(tableView, previewForHighlightingContextMenuWithConfiguration: configuration)
}
func tableView(_ tableView: UITableView, previewForDismissingContextMenuWithConfiguration configuration: UIContextMenuConfiguration) -> UITargetedPreview? {
return aspectTableView(tableView, previewForDismissingContextMenuWithConfiguration: configuration)
}
func tableView(_ tableView: UITableView, willPerformPreviewActionForMenuWith configuration: UIContextMenuConfiguration, animator: UIContextMenuInteractionCommitAnimating) {
aspectTableView(tableView, willPerformPreviewActionForMenuWith: configuration, animator: animator)
}
// sourcery:end
}
// MARK: - StatusTableViewCellDelegate
extension DiscoveryCommunityViewController: StatusTableViewCellDelegate { }
// MARK: ScrollViewContainer
extension DiscoveryCommunityViewController: ScrollViewContainer {
var scrollView: UIScrollView? {
tableView
}
}

View File

@ -0,0 +1,65 @@
//
// DiscoveryCommunityViewModel+Diffable.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import UIKit
import Combine
extension DiscoveryCommunityViewModel {
func setupDiffableDataSource(
tableView: UITableView,
statusTableViewCellDelegate: StatusTableViewCellDelegate
) {
diffableDataSource = StatusSection.diffableDataSource(
tableView: tableView,
context: context,
configuration: StatusSection.Configuration(
statusTableViewCellDelegate: statusTableViewCellDelegate,
timelineMiddleLoaderTableViewCellDelegate: nil,
filterContext: .none,
activeFilters: nil
)
)
stateMachine.enter(State.Reloading.self)
statusFetchedResultsController.$records
.receive(on: DispatchQueue.main)
.sink { [weak self] records in
guard let self = self else { return }
guard let diffableDataSource = self.diffableDataSource else { return }
var snapshot = NSDiffableDataSourceSnapshot<StatusSection, StatusItem>()
snapshot.appendSections([.main])
let items = records.map { StatusItem.status(record: $0) }
snapshot.appendItems(items, toSection: .main)
if let currentState = self.stateMachine.currentState {
switch currentState {
case is State.Initial,
is State.Reloading,
is State.Loading,
is State.Idle,
is State.Fail:
if !items.isEmpty {
snapshot.appendItems([.bottomLoader], toSection: .main)
}
case is State.NoMore:
break
default:
assertionFailure()
break
}
}
diffableDataSource.applySnapshot(snapshot, animated: false)
}
.store(in: &disposeBag)
}
}

View File

@ -0,0 +1,206 @@
//
// DiscoveryCommunityViewModel+State.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import os.log
import Foundation
import GameplayKit
import MastodonSDK
extension DiscoveryCommunityViewModel {
class State: GKState, NamingState {
let logger = Logger(subsystem: "DiscoveryCommunityViewModel.State", category: "StateMachine")
let id = UUID()
var name: String {
String(describing: Self.self)
}
weak var viewModel: DiscoveryCommunityViewModel?
init(viewModel: DiscoveryCommunityViewModel) {
self.viewModel = viewModel
}
override func didEnter(from previousState: GKState?) {
super.didEnter(from: previousState)
let previousState = previousState as? DiscoveryCommunityViewModel.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>")")
}
@MainActor
func enter(state: State.Type) {
stateMachine?.enter(state)
}
deinit {
logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): [\(self.id.uuidString)] \(self.name)")
}
}
}
extension DiscoveryCommunityViewModel.State {
class Initial: DiscoveryCommunityViewModel.State {
override func isValidNextState(_ stateClass: AnyClass) -> Bool {
switch stateClass {
case is Reloading.Type:
return true
default:
return false
}
}
}
class Reloading: DiscoveryCommunityViewModel.State {
override func isValidNextState(_ stateClass: AnyClass) -> Bool {
switch stateClass {
case is Loading.Type:
return true
default:
return false
}
}
override func didEnter(from previousState: GKState?) {
super.didEnter(from: previousState)
guard let _ = viewModel, let stateMachine = stateMachine else { return }
stateMachine.enter(Loading.self)
}
}
class Fail: DiscoveryCommunityViewModel.State {
override func isValidNextState(_ stateClass: AnyClass) -> Bool {
switch stateClass {
case is Loading.Type:
return true
default:
return false
}
}
override func didEnter(from previousState: GKState?) {
super.didEnter(from: previousState)
guard let _ = viewModel, let stateMachine = stateMachine else { return }
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s: retry loading 3s later…", ((#file as NSString).lastPathComponent), #line, #function)
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s: retry loading", ((#file as NSString).lastPathComponent), #line, #function)
stateMachine.enter(Loading.self)
}
}
}
class Idle: DiscoveryCommunityViewModel.State {
override func isValidNextState(_ stateClass: AnyClass) -> Bool {
switch stateClass {
case is Reloading.Type, is Loading.Type:
return true
default:
return false
}
}
}
class Loading: DiscoveryCommunityViewModel.State {
var maxID: String?
override func isValidNextState(_ stateClass: AnyClass) -> Bool {
switch stateClass {
case is Fail.Type:
return true
case is Idle.Type:
return true
case is NoMore.Type:
return true
default:
return false
}
}
override func didEnter(from previousState: GKState?) {
super.didEnter(from: previousState)
guard let viewModel = viewModel, let stateMachine = stateMachine else { return }
switch previousState {
case is Reloading:
maxID = nil
default:
break
}
guard let authenticationBox = viewModel.context.authenticationService.activeMastodonAuthenticationBox.value else {
stateMachine.enter(Fail.self)
return
}
let maxID = self.maxID
let isReloading = maxID == nil
Task {
do {
let response = try await viewModel.context.apiService.publicTimeline(
query: .init(
local: true,
remote: nil,
onlyMedia: nil,
maxID: maxID,
sinceID: nil,
minID: nil,
limit: 20
),
authenticationBox: authenticationBox
)
let newMaxID = response.link?.maxID
let hasMore = newMaxID != nil
self.maxID = newMaxID
var hasNewStatusesAppend = false
var statusIDs = isReloading ? [] : viewModel.statusFetchedResultsController.statusIDs.value
for status in response.value {
guard !statusIDs.contains(status.id) else { continue }
statusIDs.append(status.id)
hasNewStatusesAppend = true
}
if hasNewStatusesAppend, hasMore {
self.maxID = response.link?.maxID
await enter(state: Idle.self)
} else {
await enter(state: NoMore.self)
}
viewModel.statusFetchedResultsController.statusIDs.value = statusIDs
viewModel.didLoadLatest.send()
} catch {
logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): fetch user timeline fail: \(error.localizedDescription)")
await enter(state: Fail.self)
}
} // end Task
} // end func
}
class NoMore: DiscoveryCommunityViewModel.State {
override func isValidNextState(_ stateClass: AnyClass) -> Bool {
switch stateClass {
case is Reloading.Type:
return true
default:
return false
}
}
override func didEnter(from previousState: GKState?) {
super.didEnter(from: previousState)
}
}
}

View File

@ -0,0 +1,65 @@
//
// DiscoveryCommunityViewModel.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import os.log
import UIKit
import Combine
import GameplayKit
import CoreData
import CoreDataStack
import MastodonSDK
final class DiscoveryCommunityViewModel {
let logger = Logger(subsystem: "DiscoveryCommunityViewModel", category: "ViewModel")
var disposeBag = Set<AnyCancellable>()
// input
let context: AppContext
let viewDidAppeared = PassthroughSubject<Void, Never>()
let statusFetchedResultsController: StatusFetchedResultsController
let listBatchFetchViewModel = ListBatchFetchViewModel()
// output
var diffableDataSource: UITableViewDiffableDataSource<StatusSection, StatusItem>?
private(set) lazy var stateMachine: GKStateMachine = {
let stateMachine = GKStateMachine(states: [
State.Initial(viewModel: self),
State.Reloading(viewModel: self),
State.Fail(viewModel: self),
State.Idle(viewModel: self),
State.Loading(viewModel: self),
State.NoMore(viewModel: self),
])
stateMachine.enter(State.Initial.self)
return stateMachine
}()
let didLoadLatest = PassthroughSubject<Void, Never>()
init(context: AppContext) {
self.context = context
self.statusFetchedResultsController = StatusFetchedResultsController(
managedObjectContext: context.managedObjectContext,
domain: nil,
additionalTweetPredicate: nil
)
// end init
context.authenticationService.activeMastodonAuthentication
.map { $0?.domain }
.assign(to: \.value, on: statusFetchedResultsController.domain)
.store(in: &disposeBag)
}
deinit {
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
}
}

View File

@ -0,0 +1,64 @@
//
// DiscoveryCommunityViewModel.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import os.log
import UIKit
import Combine
import GameplayKit
import CoreData
import CoreDataStack
import MastodonSDK
final class DiscoveryCommunityViewModel {
let logger = Logger(subsystem: "DiscoveryCommunityViewModel", category: "ViewModel")
var disposeBag = Set<AnyCancellable>()
// input
let context: AppContext
let viewDidAppeared = PassthroughSubject<Void, Never>()
let statusFetchedResultsController: StatusFetchedResultsController
// output
var diffableDataSource: UITableViewDiffableDataSource<StatusSection, StatusItem>?
private(set) lazy var stateMachine: GKStateMachine = {
let stateMachine = GKStateMachine(states: [
State.Initial(viewModel: self),
State.Reloading(viewModel: self),
State.Fail(viewModel: self),
State.Idle(viewModel: self),
State.Loading(viewModel: self),
State.NoMore(viewModel: self),
])
stateMachine.enter(State.Initial.self)
return stateMachine
}()
let didLoadLatest = PassthroughSubject<Void, Never>()
init(context: AppContext) {
self.context = context
self.statusFetchedResultsController = StatusFetchedResultsController(
managedObjectContext: context.managedObjectContext,
domain: nil,
additionalTweetPredicate: nil
)
// end init
context.authenticationService.activeMastodonAuthentication
.map { $0?.domain }
.assign(to: \.value, on: statusFetchedResultsController.domain)
.store(in: &disposeBag)
}
deinit {
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
}
}

View File

@ -9,6 +9,7 @@ import UIKit
import Combine
import Tabman
import Pageboy
import MastodonLocalization
final class DiscoveryViewModel {
@ -19,6 +20,7 @@ final class DiscoveryViewModel {
let discoveryPostsViewController: DiscoveryPostsViewController
let discoveryHashtagsViewController: DiscoveryHashtagsViewController
let discoveryNewsViewController: DiscoveryNewsViewController
let discoveryCommunityViewController: DiscoveryCommunityViewController
let discoveryForYouViewController: DiscoveryForYouViewController
@Published var viewControllers: [ScrollViewContainer & PageViewController]
@ -48,6 +50,12 @@ final class DiscoveryViewModel {
viewController.viewModel = DiscoveryNewsViewModel(context: context)
return viewController
}()
discoveryCommunityViewController = {
let viewController = DiscoveryCommunityViewController()
setupDependency(viewController)
viewController.viewModel = DiscoveryCommunityViewModel(context: context)
return viewController
}()
discoveryForYouViewController = {
let viewController = DiscoveryForYouViewController()
setupDependency(viewController)
@ -58,6 +66,7 @@ final class DiscoveryViewModel {
discoveryPostsViewController,
discoveryHashtagsViewController,
discoveryNewsViewController,
discoveryCommunityViewController,
discoveryForYouViewController,
]
// end init
@ -123,7 +132,7 @@ protocol PageViewController: UIViewController {
// MARK: - PageViewController
extension DiscoveryPostsViewController: PageViewController {
var tabItemTitle: String { "Posts" }
var tabItemTitle: String { L10n.Scene.Discovery.Tabs.posts }
var tabItem: TMBarItemable {
return TMBarItem(title: tabItemTitle)
}
@ -132,7 +141,7 @@ extension DiscoveryPostsViewController: PageViewController {
// MARK: - PageViewController
extension DiscoveryHashtagsViewController: PageViewController {
var tabItemTitle: String { "Hashtags" }
var tabItemTitle: String { L10n.Scene.Discovery.Tabs.hashtags }
var tabItem: TMBarItemable {
return TMBarItem(title: tabItemTitle)
@ -141,7 +150,15 @@ extension DiscoveryHashtagsViewController: PageViewController {
// MARK: - PageViewController
extension DiscoveryNewsViewController: PageViewController {
var tabItemTitle: String { "News" }
var tabItemTitle: String { L10n.Scene.Discovery.Tabs.news }
var tabItem: TMBarItemable {
return TMBarItem(title: tabItemTitle)
}
}
// MARK: - PageViewController
extension DiscoveryCommunityViewController: PageViewController {
var tabItemTitle: String { L10n.Scene.Discovery.Tabs.community }
var tabItem: TMBarItemable {
return TMBarItem(title: tabItemTitle)
}
@ -149,7 +166,7 @@ extension DiscoveryNewsViewController: PageViewController {
// MARK: - PageViewController
extension DiscoveryForYouViewController: PageViewController {
var tabItemTitle: String { "For You" }
var tabItemTitle: String { L10n.Scene.Discovery.Tabs.forYou }
var tabItem: TMBarItemable {
return TMBarItem(title: tabItemTitle)
}

View File

@ -73,4 +73,5 @@ extension DiscoveryHashtagsViewModel {
hashtags = response.value.filter { !$0.name.isEmpty }
logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): fetch tags: \(response.value.count)")
}
}

View File

@ -180,7 +180,7 @@ extension DiscoveryPostsViewModel.State {
}
viewModel.statusFetchedResultsController.statusIDs.value = statusIDs
viewModel.didLoadLatest.send()
// } catch let error as?
} catch {
logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): fetch posts fail: \(error.localizedDescription)")
if let error = error as? Mastodon.API.Error, error.httpResponseStatus.code == 404 {

View File

@ -108,6 +108,8 @@ extension HomeTimelineNavigationBarTitleView {
logoButton.setImage(Asset.Asset.mastodonTextLogo.image.withRenderingMode(.alwaysTemplate), for: .normal)
logoButton.contentMode = .center
logoButton.isHidden = false
logoButton.accessibilityLabel = "Logo Button" // TODO :i18n
logoButton.accessibilityHint = "Tap to scroll to top and tap again to previous location"
case .newPostButton:
configureButton(
title: L10n.Scene.HomeTimeline.NavigationBarState.newPosts,
@ -115,6 +117,7 @@ extension HomeTimelineNavigationBarTitleView {
backgroundColor: Asset.Colors.brandBlue.color
)
button.isHidden = false
button.accessibilityLabel = L10n.Scene.HomeTimeline.NavigationBarState.newPosts
case .offlineButton:
configureButton(
title: L10n.Scene.HomeTimeline.NavigationBarState.offline,
@ -122,12 +125,14 @@ extension HomeTimelineNavigationBarTitleView {
backgroundColor: Asset.Colors.danger.color
)
button.isHidden = false
button.accessibilityLabel = L10n.Scene.HomeTimeline.NavigationBarState.offline
case .publishingPostLabel:
label.font = .systemFont(ofSize: 17, weight: .semibold)
label.textColor = Asset.Colors.Label.primary.color
label.text = L10n.Scene.HomeTimeline.NavigationBarState.publishing
label.textAlignment = .center
label.isHidden = false
button.accessibilityLabel = L10n.Scene.HomeTimeline.NavigationBarState.publishing
case .publishedButton:
blockingState = state
configureButton(
@ -136,6 +141,7 @@ extension HomeTimelineNavigationBarTitleView {
backgroundColor: Asset.Colors.successGreen.color
)
button.isHidden = false
button.accessibilityLabel = L10n.Scene.HomeTimeline.NavigationBarState.published
let presentDuration: TimeInterval = 0.33
let scaleAnimator = UIViewPropertyAnimator(duration: presentDuration, timingParameters: UISpringTimingParameters())

View File

@ -115,8 +115,11 @@ extension MastodonPickServerViewModel {
if self.mode == .signUp {
indexedServers = indexedServers.filter { !$0.approvalRequired }
}
// Note:
// sort by calculate last week users count
// and make medium size (~800) server to top
// group by language user preferred language first. Then sort by `totalUsers`
// group by language user preferred language first
var languageToServersMapping = OrderedDictionary<String, [Mastodon.Entity.Server]>()
for language in Locale.preferredLanguages {
let local = Locale(identifier: language)
@ -126,14 +129,22 @@ extension MastodonPickServerViewModel {
// append to dict
languageToServersMapping[languageCode] = indexedServers
.filter { $0.language.lowercased() == languageCode.lowercased() }
.sorted(by: { $0.totalUsers > $1.totalUsers })
.sorted(by: { lh, rh in
let lhValue = abs(log2(800.0) - log2(Double(lh.lastWeekUsers)))
let rhValue = abs(log2(800.0) - log2(Double(rh.lastWeekUsers)))
return lhValue < rhValue
})
}
// sort remains servers by `totalUsers`
// sort remains servers
let remainsServers = indexedServers
.filter { server in
return !languageToServersMapping.contains { _, servers in servers.contains(server) }
}
.sorted(by: { $0.totalUsers > $1.totalUsers })
.sorted(by: { lh, rh in
let lhValue = abs(log2(800.0) - log2(Double(lh.lastWeekUsers)))
let rhValue = abs(log2(800.0) - log2(Double(rh.lastWeekUsers)))
return lhValue < rhValue
})
var _indexedServers: [Mastodon.Entity.Server] = []
for key in languageToServersMapping.keys {

View File

@ -195,6 +195,12 @@ extension UserTimelineViewModel.State {
// trigger data source update. otherwise, spinner always display
viewModel.isSuspended.value = viewModel.isSuspended.value
// remove bottom loader
guard let diffableDataSource = viewModel.diffableDataSource else { return }
var snapshot = diffableDataSource.snapshot()
snapshot.deleteItems([.bottomLoader])
diffableDataSource.apply(snapshot)
}
}
}

View File

@ -106,6 +106,10 @@ class MainTabBarController: UITabBarController {
var _viewControllers: [UIViewController] = []
private(set) var isReadyForWizardAvatarButton = false
// output
var avatarURLObserver: AnyCancellable?
@Published var avatarURL: URL?
init(context: AppContext, coordinator: SceneCoordinator) {
self.context = context
@ -226,17 +230,34 @@ extension MainTabBarController {
.store(in: &disposeBag)
layoutAvatarButton()
$avatarURL
.receive(on: DispatchQueue.main)
.sink { [weak self] avatarURL in
guard let self = self else { return }
self.avatarButton.avatarImageView.setImage(
url: avatarURL,
placeholder: .placeholder(color: .systemFill),
scaleToSize: MainTabBarController.avatarButtonSize
)
}
.store(in: &disposeBag)
context.authenticationService.activeMastodonAuthentication
.receive(on: DispatchQueue.main)
.sink { [weak self] activeMastodonAuthentication in
guard let self = self else { return }
let avatarImageURL = activeMastodonAuthentication?.user.avatarImageURL()
self.avatarButton.avatarImageView.setImage(
url: avatarImageURL,
placeholder: .placeholder(color: .systemFill),
scaleToSize: MainTabBarController.avatarButtonSize
)
if let user = activeMastodonAuthentication?.user {
self.avatarURLObserver = user.publisher(for: \.avatar)
.sink { [weak self, weak user] _ in
guard let self = self else { return }
guard let user = user else { return }
guard user.managedObjectContext != nil else { return }
self.avatarURL = user.avatarImageURL()
}
} else {
self.avatarURLObserver = nil
}
// a11y
let _profileTabItem = self.tabBar.items?.first { item in item.tag == Tab.me.tag }

View File

@ -0,0 +1,52 @@
//
// APIService+PublicTimeline.swift
// Mastodon
//
// Created by MainasuK on 2022-4-29.
//
import Foundation
import Combine
import CoreData
import CoreDataStack
import CommonOSLog
import MastodonSDK
extension APIService {
func publicTimeline(
query: Mastodon.API.Timeline.PublicTimelineQuery,
authenticationBox: MastodonAuthenticationBox
) async throws -> Mastodon.Response.Content<[Mastodon.Entity.Status]> {
let domain = authenticationBox.domain
let authorization = authenticationBox.userAuthorization
let response = try await Mastodon.API.Timeline.public(
session: session,
domain: domain,
query: query,
authorization: authorization
).singleOutput()
let managedObjectContext = self.backgroundManagedObjectContext
try await managedObjectContext.performChanges {
let me = authenticationBox.authenticationRecord.object(in: managedObjectContext)?.user
for entity in response.value {
_ = Persistence.Status.createOrMerge(
in: managedObjectContext,
context: Persistence.Status.PersistContext(
domain: domain,
entity: entity,
me: me,
statusCache: nil,
userCache: nil,
networkDate: response.networkDate
)
)
}
}
return response
} // end func
}

View File

@ -48,7 +48,7 @@ extension APIService {
try await managedObjectContext.performChanges {
let me = authenticationBox.authenticationRecord.object(in: managedObjectContext)?.user
for entity in response.value {
Persistence.Status.createOrMerge(
_ = Persistence.Status.createOrMerge(
in: managedObjectContext,
context: Persistence.Status.PersistContext(
domain: domain,

View File

@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.3.3</string>
<string>1.4.0</string>
<key>CFBundleVersion</key>
<string>117</string>
<string>121</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>

View File

@ -0,0 +1,51 @@
"16wxgf" = "پۆستێک بکە";
"751xkl" = "نووسین";
"CsR7G2" = "پۆستێک بکە";
"HZSGTr" = "چی پۆست بکرێت؟";
"HdGikU" = "پۆستکردنەکە سەرکەوتوو نەبوو";
"KDNTJ4" = "هۆکاری سەرنەکەوتن";
"RHxKOw" = "پۆست بە نووسینەوە بکە";
"RxSqsb" = "پۆست";
"WCIR3D" = "${content} لە ماستۆدۆن پۆست بکە";
"ZKJSNu" = "پۆست";
"ZS1XaK" = "${content}";
"ZbSjzC" = "دەرکەوتن";
"Zo4jgJ" = "دەرکەوتنی پۆست";
"apSxMG-dYQ5NN" = "${count} بژاردە بۆ 'گشتی' هەن.";
"apSxMG-ehFLjY" = "${count} بژاردە بۆ 'تەنیا شوێنکەوتووەکان' هەن.";
"ayoYEb-dYQ5NN" = "${content}، گشتی";
"ayoYEb-ehFLjY" = "${content}، تەنیا شوێنکەوتووەکان";
"dUyuGg" = "پۆستێک بکە";
"dYQ5NN" = "گشتی";
"ehFLjY" = "تەنیا شوێنکەوتووەکان";
"gfePDu" = "پۆستکردنەکە سەرکەوتوو نەبوو. ${failureReason}";
"k7dbKQ" = "پۆستەکە کرا.";
"oGiqmY-dYQ5NN" = "دڵنیایت لە هەڵبژاردنی 'گشتی'؟";
"oGiqmY-ehFLjY" = "دڵنیایت لە هەڵبژاردنی 'تەنیا شوێنکەوتووەکان'؟";
"rM6dvp" = "بەستەر";
"ryJLwG" = "پۆستەکە کرا. ";

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,51 @@
"16wxgf" = "Post on Mastodon";
"751xkl" = "Text Content";
"CsR7G2" = "Post on Mastodon";
"HZSGTr" = "What content to post?";
"HdGikU" = "Posting failed";
"KDNTJ4" = "Failure Reason";
"RHxKOw" = "Send Post with text content";
"RxSqsb" = "Post";
"WCIR3D" = "Post ${content} on Mastodon";
"ZKJSNu" = "Post";
"ZS1XaK" = "${content}";
"ZbSjzC" = "Visibility";
"Zo4jgJ" = "Post Visibility";
"apSxMG-dYQ5NN" = "There are ${count} options matching Public.";
"apSxMG-ehFLjY" = "There are ${count} options matching Followers Only.";
"ayoYEb-dYQ5NN" = "${content}, Public";
"ayoYEb-ehFLjY" = "${content}, Followers Only";
"dUyuGg" = "Post on Mastodon";
"dYQ5NN" = "Public";
"ehFLjY" = "Followers Only";
"gfePDu" = "Posting failed. ${failureReason}";
"k7dbKQ" = "Post was sent successfully.";
"oGiqmY-dYQ5NN" = "Just to confirm, you wanted Public?";
"oGiqmY-ehFLjY" = "Just to confirm, you wanted Followers Only?";
"rM6dvp" = "URL";
"ryJLwG" = "Post was sent successfully. ";

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,51 @@
"16wxgf" = "Pubblica su Mastodon";
"751xkl" = "Contenuto testuale";
"CsR7G2" = "Pubblica su Mastodon";
"HZSGTr" = "Quale contenuto postare?";
"HdGikU" = "Pubblicazione non riuscita";
"KDNTJ4" = "Motivo del fallimento";
"RHxKOw" = "Invia post con contenuto testuale";
"RxSqsb" = "Pubblica";
"WCIR3D" = "Pubblica ${content} su Mastodon";
"ZKJSNu" = "Pubblica";
"ZS1XaK" = "${content}";
"ZbSjzC" = "Visibilità";
"Zo4jgJ" = "Visibilità del post";
"apSxMG-dYQ5NN" = "Ci sono ${count} opzioni corrispondenti a 'Pubblico'.";
"apSxMG-ehFLjY" = "Ci sono ${count} opzioni corrispondenti a Solo Seguaci.";
"ayoYEb-dYQ5NN" = "${content}, Pubblico";
"ayoYEb-ehFLjY" = "${content}, Solo seguaci";
"dUyuGg" = "Pubblica su Mastodon";
"dYQ5NN" = "Pubblico";
"ehFLjY" = "Solo i seguaci";
"gfePDu" = "Pubblicazione fallita. ${failureReason}";
"k7dbKQ" = "Post inviato con successo.";
"oGiqmY-dYQ5NN" = "Solo per confermare, volevi Pubblico?";
"oGiqmY-ehFLjY" = "Solo per confermare, volevi 'Solo seguaci'?";
"rM6dvp" = "URL";
"ryJLwG" = "Post inviato con successo. ";

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,51 @@
"16wxgf" = "Mastodon'da paylaş";
"751xkl" = "Metin içeriği";
"CsR7G2" = "Mastodon'da paylaş";
"HZSGTr" = "Ne içeriği paylaşılacak?";
"HdGikU" = "Gönderi paylaşılamadı";
"KDNTJ4" = "Hata Sebebi";
"RHxKOw" = "Metin içeriği ile gönderiyi paylaş";
"RxSqsb" = "Gönderi";
"WCIR3D" = "${content} içeriğini Mastodon'da paylaş";
"ZKJSNu" = "Gönderi";
"ZS1XaK" = "${content}";
"ZbSjzC" = "Gizlilik";
"Zo4jgJ" = "Gönderi Gizliliği";
"apSxMG-dYQ5NN" = "\"Herkese açık\" ile eşleşen ${count} seçenek var.";
"apSxMG-ehFLjY" = "\"Sadece takipçiler\" ile eşleşen ${count} seçenek var.";
"ayoYEb-dYQ5NN" = "${content}, Herkese açık";
"ayoYEb-ehFLjY" = "${content}, Sadece takipçiler";
"dUyuGg" = "Mastodon'da paylaş";
"dYQ5NN" = "Herkese açık";
"ehFLjY" = "Sadece takipçiler";
"gfePDu" = "Gönderi paylaşılamadı. ${failureReason}";
"k7dbKQ" = "Gönderi başarıyla paylaşıldı.";
"oGiqmY-dYQ5NN" = "\"Herkese açık\" paylaşmak istediğinize emin misiniz?";
"oGiqmY-ehFLjY" = "\"Sadece takipçiler\" için paylaşmak istediğinize emin misiniz?";
"rM6dvp" = "Bağlantı";
"ryJLwG" = "Gönderi başarıyla paylaşıldı. ";

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,51 @@
"16wxgf" = "於 Mastodon 上發嘟文";
"751xkl" = "文字內容";
"CsR7G2" = "於 Mastodon 上發嘟文";
"HZSGTr" = "要發什麼嘟呢?";
"HdGikU" = "嘟文失敗";
"KDNTJ4" = "失敗原因";
"RHxKOw" = "發送文字內容嘟文";
"RxSqsb" = "嘟文";
"WCIR3D" = "將 ${content} 於 Mastodon 上發嘟";
"ZKJSNu" = "嘟文";
"ZS1XaK" = "${content}";
"ZbSjzC" = "可見性";
"Zo4jgJ" = "嘟文可見性";
"apSxMG-dYQ5NN" = "有 ${count} 個選項符合「公開」。";
"apSxMG-ehFLjY" = "有 ${count} 個選項符合「僅限跟隨者」。";
"ayoYEb-dYQ5NN" = "${content},公開";
"ayoYEb-ehFLjY" = "${content},僅限跟隨者";
"dUyuGg" = "於 Mastodon 上發嘟文";
"dYQ5NN" = "公開";
"ehFLjY" = "僅限跟隨者";
"gfePDu" = "發嘟失敗。${failureReason}";
"k7dbKQ" = "成功發出嘟文。";
"oGiqmY-dYQ5NN" = "再確認一次,您想要「公開」?";
"oGiqmY-ehFLjY" = "再確認一次,您想要「僅限跟隨者」?";
"rM6dvp" = "網址";
"ryJLwG" = "成功發出嘟文。 ";

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>There are ${count} options matching ${content}. - 2</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
<key>There are ${count} options matching ${visibility}.</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string>
<key>count_option</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>%ld</string>
<key>zero</key>
<string>0 options</string>
<key>one</key>
<string>1 option</string>
<key>two</key>
<string>2 options</string>
<key>few</key>
<string>%ld options</string>
<key>many</key>
<string>%ld options</string>
<key>other</key>
<string>%ld options</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -20,19 +20,14 @@ let package = Package(
"MastodonLocalization",
"MastodonSDK",
"MastodonUI",
]),
.library(
name: "MastodonCommon",
targets: [
"MastodonCommon",
]),
])
],
dependencies: [
.package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "5.0.0"),
.package(url: "https://github.com/apple/swift-nio.git", from: "1.0.0"),
.package(url: "https://github.com/kean/Nuke.git", from: "10.3.1"),
.package(url: "https://github.com/Flipboard/FLAnimatedImage.git", from: "1.0.0"),
.package(url: "https://github.com/TwidereProject/MetaTextKit.git", .exact("2.2.2")),
.package(url: "https://github.com/TwidereProject/MetaTextKit.git", .exact("2.2.3")),
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.4.0"),
.package(url: "https://github.com/Alamofire/AlamofireImage.git", from: "4.1.0"),
.package(name: "NukeFLAnimatedImagePlugin", url: "https://github.com/kean/Nuke-FLAnimatedImage-Plugin.git", from: "8.0.0"),
@ -88,15 +83,15 @@ let package = Package(
"MastodonExtension",
"MastodonAsset",
"MastodonLocalization",
"Nuke",
"NukeFLAnimatedImagePlugin",
"UITextView+Placeholder",
"Introspect",
.product(name: "Alamofire", package: "Alamofire"),
.product(name: "AlamofireImage", package: "AlamofireImage"),
.product(name: "MetaTextKit", package: "MetaTextKit"),
.product(name: "FLAnimatedImage", package: "FLAnimatedImage"),
.product(name: "FaviconFinder", package: "FaviconFinder"),
.product(name: "MetaTextKit", package: "MetaTextKit"),
.product(name: "Nuke", package: "Nuke"),
.product(name: "NukeFLAnimatedImagePlugin", package: "NukeFLAnimatedImagePlugin"),
.product(name: "Introspect", package: "Introspect"),
.product(name: "UITextView+Placeholder", package: "UITextView+Placeholder"),
]
),
.testTarget(

View File

@ -1,14 +1,12 @@
//
// UserDefaults.swift
// AppShared
//
//
// Created by MainasuK Cirno on 2021-4-27.
// Created by MainasuK on 2022-4-29.
//
import UIKit
import MastodonCommon
import Foundation
extension UserDefaults {
public static let shared = UserDefaults(suiteName: AppName.groupID)!
}

View File

@ -549,6 +549,8 @@ public enum L10n {
/// These are the posts gaining traction in your corner of Mastodon.
public static let intro = L10n.tr("Localizable", "Scene.Discovery.Intro")
public enum Tabs {
/// Community
public static let community = L10n.tr("Localizable", "Scene.Discovery.Tabs.Community")
/// For You
public static let forYou = L10n.tr("Localizable", "Scene.Discovery.Tabs.ForYou")
/// Hashtags
@ -892,11 +894,11 @@ public enum L10n {
}
}
public enum ServerPicker {
/// Pick a community based on your interests, region, or a general purpose one.
/// Pick a server based on your interests, region, or a general purpose one.
public static let subtitle = L10n.tr("Localizable", "Scene.ServerPicker.Subtitle")
/// Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.
/// Pick a server based on your interests, region, or a general purpose one. Each server is operated by an entirely independent organization or individual.
public static let subtitleExtend = L10n.tr("Localizable", "Scene.ServerPicker.SubtitleExtend")
/// Mastodon is made of users in different communities.
/// Mastodon is made of users in different servers.
public static let title = L10n.tr("Localizable", "Scene.ServerPicker.Title")
public enum Button {
/// See Less
@ -943,7 +945,7 @@ public enum L10n {
public static let noResults = L10n.tr("Localizable", "Scene.ServerPicker.EmptyState.NoResults")
}
public enum Input {
/// Search communities
/// Search servers
public static let placeholder = L10n.tr("Localizable", "Scene.ServerPicker.Input.Placeholder")
}
public enum Label {

View File

@ -126,7 +126,7 @@
"Common.Controls.Status.Visibility.Unlisted" = "يُمكِنُ لِلجَميعِ رُؤيَةُ هَذَا المَنشورِ وَلكِنَّهُ لَا يُعرَضُ فِي الخَطِّ الزَمنيّ العام.";
"Common.Controls.Tabs.Home" = "الرَّئِيسَة";
"Common.Controls.Tabs.Notification" = "الإشعارات";
"Common.Controls.Tabs.Profile" = "الملف التعريفي";
"Common.Controls.Tabs.Profile" = "المِلَفُّ التَّعريفِيّ";
"Common.Controls.Tabs.Search" = "البَحث";
"Common.Controls.Timeline.Filtered" = "مُصفَّى";
"Common.Controls.Timeline.Header.BlockedWarning" = "لا يُمكِنُكَ عَرض الملف التَعريفي لهذا المُستخدِم
@ -203,10 +203,11 @@
انقر على الرابط لتأكيد حسابك.";
"Scene.ConfirmEmail.Title" = "شيءٌ أخير.";
"Scene.Discovery.Intro" = "هَذِهِ هِيَ المَنشُوراتُ الَّتي تَكْتَسِبُ شَعبِيَّةً فِي الرُّكنِ الخاصِّ بِكَ مِن مَاستُودون.";
"Scene.Discovery.Tabs.Community" = "المُجتَمَع";
"Scene.Discovery.Tabs.ForYou" = "لَك";
"Scene.Discovery.Tabs.Hashtags" = "الوسوم";
"Scene.Discovery.Tabs.News" = "الأخبار";
"Scene.Discovery.Tabs.Posts" = "المنشورات";
"Scene.Discovery.Tabs.Hashtags" = "وُسُوم";
"Scene.Discovery.Tabs.News" = "أخبار";
"Scene.Discovery.Tabs.Posts" = "مَنشُورات";
"Scene.Favorite.Title" = "مُفضَّلَتُك";
"Scene.Follower.Footer" = "لا يُمكِن عَرض المُتابِعين مِنَ الخوادم الأُخرى.";
"Scene.Following.Footer" = "لا يُمكِن عَرض المُتابَعات مِنَ الخوادم الأُخرى.";

View File

@ -202,6 +202,7 @@ carregat a Mastodon.";
"Scene.ConfirmEmail.Subtitle" = "Toca l'enllaç del correu electrònic que t'hem enviat per a confirmar el teu compte.";
"Scene.ConfirmEmail.Title" = "Una última cosa.";
"Scene.Discovery.Intro" = "Aquestes son les publicacions que criden l'atenció en el teu racó de Mastodon.";
"Scene.Discovery.Tabs.Community" = "Comunitat";
"Scene.Discovery.Tabs.ForYou" = "Per a tu";
"Scene.Discovery.Tabs.Hashtags" = "Etiquetes";
"Scene.Discovery.Tabs.News" = "Notícies";

View File

@ -0,0 +1,391 @@
"Common.Alerts.BlockDomain.BlockEntireDomain" = "هەموو ڕاژەکارەکە ئاستەنگ بکە";
"Common.Alerts.BlockDomain.Title" = "دڵنیایت دەتەوێت تەواوی %@ ئاستەنگ بکەیت؟ لە زۆر بارەکاندا ئاستەنگکردنی بچووک باشترە. ئەگەر وا بکەیت، لەو ڕاژەکارەوە هیچ شتێک نابینیت و هەموو شوێنکەوتووەکانت لەوێوە لادەبرێن.";
"Common.Alerts.CleanCache.Message" = "سەرکەوتووانە بیرگەی %@ پاک کرایەوە.";
"Common.Alerts.CleanCache.Title" = "بیرگە پاک بکەوە";
"Common.Alerts.Common.PleaseTryAgain" = "تکایە دووبارە هەوڵ بدەوە.";
"Common.Alerts.Common.PleaseTryAgainLater" = "تکایە دواتر هەوڵ بدەوە.";
"Common.Alerts.DeletePost.Message" = "دڵنیایت دەتەوێت ئەم پۆستە بسڕیتەوە؟";
"Common.Alerts.DeletePost.Title" = "بیسڕەوە";
"Common.Alerts.DiscardPostContent.Message" = "دڵنیا ببەوە بۆ وازهێنان لە ناوەڕۆکەت.";
"Common.Alerts.DiscardPostContent.Title" = "ڕەشنووس هەڵمەگرە";
"Common.Alerts.EditProfileFailure.Message" = "ناتوانرێت دەستکاریی پرۆفایل بکرێت. تکایە دووبارە هەوڵ بدەوە.";
"Common.Alerts.EditProfileFailure.Title" = "نەتوانرا دەستکاریی پرۆفایل بکرێت";
"Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "ناتوانیت زیاتر لە یەک ڤیدیۆی پێوە بلکێنیت.";
"Common.Alerts.PublishPostFailure.AttachmentsMessage.VideoAttachWithPhoto" = "ناتوانیت ڤیدیۆ بۆ پۆستێک زیاد بکەیت کە وێنەی تێدایە.";
"Common.Alerts.PublishPostFailure.Message" = "نەتوانرا پۆستەکە بکرێت.
تکایە لە بەردەستبوونی هێڵی ئینتەرنێت دڵنیا بە.";
"Common.Alerts.PublishPostFailure.Title" = "نەتوانرا پۆستەکە بکرێت";
"Common.Alerts.SavePhotoFailure.Message" = "تکایە ڕێ بە ماستۆدۆن بدە تاوەکو بتوانێت وێنەکە هەڵبگرێت.";
"Common.Alerts.SavePhotoFailure.Title" = "نەتوانرا وێنەکە هەڵبگیرێت";
"Common.Alerts.ServerError.Title" = "هەڵەی ڕاژەکار";
"Common.Alerts.SignOut.Confirm" = "دەربچۆ";
"Common.Alerts.SignOut.Message" = "دڵنیایت دەتەوێت دەربچیت؟";
"Common.Alerts.SignOut.Title" = "دەربچۆ";
"Common.Alerts.SignUpFailure.Title" = "تۆمارکردنەکە سەرکەوتوو نەبوو";
"Common.Alerts.VoteFailure.PollEnded" = "دەنگدانەکە کۆتایی هاتووە";
"Common.Alerts.VoteFailure.Title" = "نەتوانرا دەنگ بدرێت";
"Common.Controls.Actions.Add" = "زیادی بکە";
"Common.Controls.Actions.Back" = "بگەڕێوە";
"Common.Controls.Actions.BlockDomain" = "%@ ئاستەنگ بکە";
"Common.Controls.Actions.Cancel" = "هەڵوەشاندنەوه";
"Common.Controls.Actions.Compose" = "پۆست بکە";
"Common.Controls.Actions.Confirm" = "پشتڕاستی بکەوە";
"Common.Controls.Actions.Continue" = "بەردەوام بە";
"Common.Controls.Actions.CopyPhoto" = "لەبەری بگرەوە";
"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.Ok" = "باشە";
"Common.Controls.Actions.Open" = "بیکەوە";
"Common.Controls.Actions.OpenInBrowser" = "لە وێبگەڕ بیکەوە";
"Common.Controls.Actions.OpenInSafari" = "لە Safari بیکەوە";
"Common.Controls.Actions.Preview" = "پێشبینین";
"Common.Controls.Actions.Previous" = "پێشتر";
"Common.Controls.Actions.Remove" = "لایبە";
"Common.Controls.Actions.Reply" = "وەڵامی بدەوە";
"Common.Controls.Actions.ReportUser" = "سکاڵا لە %@ بکە";
"Common.Controls.Actions.Save" = "هەڵی بگرە";
"Common.Controls.Actions.SavePhoto" = "هەڵی بگرە";
"Common.Controls.Actions.SeeMore" = "زیاتر ببینە";
"Common.Controls.Actions.Settings" = "رێکخستنەکان";
"Common.Controls.Actions.Share" = "هاوبەشی بکە";
"Common.Controls.Actions.SharePost" = "هاوبەشی بکە";
"Common.Controls.Actions.ShareUser" = "%@ هاوبەش بکە";
"Common.Controls.Actions.SignIn" = "بچۆ ژوورەوە";
"Common.Controls.Actions.SignUp" = "خۆت تۆمار بکە";
"Common.Controls.Actions.Skip" = "بیپەڕێنە";
"Common.Controls.Actions.TakePhoto" = "وێنە بگرە";
"Common.Controls.Actions.TryAgain" = "هەوڵ بدەوە";
"Common.Controls.Actions.UnblockDomain" = "%@ ئاستەنگ مەکە";
"Common.Controls.Friendship.Block" = "ئاستەنگی بکە";
"Common.Controls.Friendship.BlockDomain" = "%@ ئاستەنگ بکە";
"Common.Controls.Friendship.BlockUser" = "%@ ئاستەنگ بکە";
"Common.Controls.Friendship.Blocked" = "ئاستەنگ کراوە";
"Common.Controls.Friendship.EditInfo" = "دەستکاری";
"Common.Controls.Friendship.Follow" = "شوێنی بکەوە";
"Common.Controls.Friendship.Following" = "شوێنی دەکەویت";
"Common.Controls.Friendship.Mute" = "بێدەنگی بکە";
"Common.Controls.Friendship.MuteUser" = "%@ بێدەنگە";
"Common.Controls.Friendship.Muted" = "بێدەنگ کراوە";
"Common.Controls.Friendship.Pending" = "داوات کردووە";
"Common.Controls.Friendship.Request" = "داوای لێ بکە";
"Common.Controls.Friendship.Unblock" = "ئاستەنگی مەکە";
"Common.Controls.Friendship.UnblockUser" = "%@ ئاستەنگ مەکە";
"Common.Controls.Friendship.Unmute" = "بێدەنگی مەکە";
"Common.Controls.Friendship.UnmuteUser" = "%@ بێدەنگ مەکە";
"Common.Controls.Keyboard.Common.ComposeNewPost" = "پۆستێکی نوێ بکە";
"Common.Controls.Keyboard.Common.OpenSettings" = "ڕێکخستنەکان بکەوە";
"Common.Controls.Keyboard.Common.ShowFavorites" = "بەدڵبووەکان ببینە";
"Common.Controls.Keyboard.Common.SwitchToTab" = "بڕۆ بۆ %@";
"Common.Controls.Keyboard.SegmentedControl.NextSection" = "دەستنیشانکراوی دواتر";
"Common.Controls.Keyboard.SegmentedControl.PreviousSection" = "بەشی پێشتر";
"Common.Controls.Keyboard.Timeline.NextStatus" = "پۆستی دواتر";
"Common.Controls.Keyboard.Timeline.OpenAuthorProfile" = "پرۆفایلەکەی بکەوە";
"Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "پرۆفایلەکەی بکەوە";
"Common.Controls.Keyboard.Timeline.OpenStatus" = "بیکەوە";
"Common.Controls.Keyboard.Timeline.PreviewImage" = "بیبینە";
"Common.Controls.Keyboard.Timeline.PreviousStatus" = "پۆستی پێشتر";
"Common.Controls.Keyboard.Timeline.ReplyStatus" = "وەڵامی بدەوە";
"Common.Controls.Keyboard.Timeline.ToggleContentWarning" = "ئاگاداریی ناوەڕۆک نیشان بدە";
"Common.Controls.Keyboard.Timeline.ToggleFavorite" = "بەدڵبوونی پۆست";
"Common.Controls.Keyboard.Timeline.ToggleReblog" = "پۆستکردنەوەی پۆست";
"Common.Controls.Status.Actions.Favorite" = "بەدڵمە";
"Common.Controls.Status.Actions.Hide" = "بیشارەوە";
"Common.Controls.Status.Actions.Menu" = "پێڕست";
"Common.Controls.Status.Actions.Reblog" = "پۆستی بکەوە";
"Common.Controls.Status.Actions.Reply" = "وەڵامی بدەوە";
"Common.Controls.Status.Actions.ShowGif" = "گیفەکە نیشان بدە";
"Common.Controls.Status.Actions.ShowImage" = "وێنەکە نیشان بدە";
"Common.Controls.Status.Actions.ShowVideoPlayer" = "ڤیدیۆکە لێ بدە";
"Common.Controls.Status.Actions.TapThenHoldToShowMenu" = "دەستی پیا بنێ و بیگرە بۆ نیشاندانی پێڕستەکە";
"Common.Controls.Status.Actions.Unfavorite" = "بەدڵبوونەکە بگەڕێنەوە";
"Common.Controls.Status.Actions.Unreblog" = "پۆستکردنەکە بگەڕێنەوە";
"Common.Controls.Status.ContentWarning" = "ئاگاداریی ناوەڕۆک";
"Common.Controls.Status.MediaContentWarning" = "دەستی پیا بنێ بۆ نیشاندانی";
"Common.Controls.Status.Poll.Closed" = "داخراوە";
"Common.Controls.Status.Poll.Vote" = "دەنگ بدە";
"Common.Controls.Status.SensitiveContent" = "ناوەڕۆکی هەستیار";
"Common.Controls.Status.ShowPost" = "پۆستەکە نیشان بدە";
"Common.Controls.Status.ShowUserProfile" = "پرۆفایلەکەی نیشان بدە";
"Common.Controls.Status.Tag.Email" = "ئیمێڵ";
"Common.Controls.Status.Tag.Emoji" = "ئیمۆجی";
"Common.Controls.Status.Tag.Hashtag" = "هاشتاگ";
"Common.Controls.Status.Tag.Link" = "بەستەر";
"Common.Controls.Status.Tag.Mention" = "ئاماژە";
"Common.Controls.Status.Tag.Url" = "بەستەر";
"Common.Controls.Status.TapToReveal" = "دەستی پیا بنێ بۆ نیشاندانی";
"Common.Controls.Status.UserReblogged" = "%@ پۆست کرایەوە";
"Common.Controls.Status.UserRepliedTo" = "لە وەڵامدا بۆ %@";
"Common.Controls.Status.Visibility.Direct" = "تەنیا بەکارهێنەرە ئاماژە پێکراوەکە دەتوانێت ئەم پۆستە ببینێت.";
"Common.Controls.Status.Visibility.Private" = "تەنیا شوێنکەوتووەکانی دەتوانن ئەم پۆستە ببینن.";
"Common.Controls.Status.Visibility.PrivateFromMe" = "تەنیا شوێنکەوتووەکانم دەتوانن ئەم پۆستە ببینن.";
"Common.Controls.Status.Visibility.Unlisted" = "هەرکەسێک دەتوانێت ئەم پۆستە ببینێت بەڵام ناچێتە بەردەمیان.";
"Common.Controls.Tabs.Home" = "ماڵەوە";
"Common.Controls.Tabs.Notification" = "ئاگادارکردنەوەکان";
"Common.Controls.Tabs.Profile" = "پرۆفایل";
"Common.Controls.Tabs.Search" = "بگەڕێ";
"Common.Controls.Timeline.Filtered" = "پاڵێوراو";
"Common.Controls.Timeline.Header.BlockedWarning" = "ناتوانیت پرۆفایلی ئەم بەکارهێنەرە ببینیت
تا ئەو کاتەی ئاستەنگەکەت لادەبات.";
"Common.Controls.Timeline.Header.BlockingWarning" = "ناتوانیت پرۆفایلی ئەم بەکارهێنەرە ببینیت
هەتا ئاستەنگەکەیان لادەبەیت.
پرۆفایلەکەت ئاوها لایان دەردەکەوێت.";
"Common.Controls.Timeline.Header.NoStatusFound" = "هیچ پۆستێک نەدۆزرایەوە";
"Common.Controls.Timeline.Header.SuspendedWarning" = "ئەم بەکارهێنەرە ڕاگیراوە.";
"Common.Controls.Timeline.Header.UserBlockedWarning" = "ناتوانیت پرۆفایلی %@ ببینیت
تا ئەو کاتەی ئاستەنگەکەت لادەبات.";
"Common.Controls.Timeline.Header.UserBlockingWarning" = "ناتوانیت پرۆفایلی %@ ببینیت
هەتا ئاستەنگەکەیان لادەبەیت.
پرۆفایلەکەت ئاوها لایان دەردەکەوێت.";
"Common.Controls.Timeline.Header.UserSuspendedWarning" = "هەژماری %@ ڕاگیراوە.";
"Common.Controls.Timeline.Loader.LoadMissingPosts" = "پۆستە ماوەکان بار بکە";
"Common.Controls.Timeline.Loader.LoadingMissingPosts" = "پۆستە ماوەکان بار دەکرێن...";
"Common.Controls.Timeline.Loader.ShowMoreReplies" = "وەڵامی زیاتر نیشان بدە";
"Common.Controls.Timeline.Timestamp.Now" = "ئێستا";
"Scene.AccountList.AddAccount" = "هەژمارێک زیاد بکە";
"Scene.AccountList.DismissAccountSwitcher" = "پێڕستی هەژمارەکان دابخە";
"Scene.AccountList.TabBarHint" = "هەژماری ئێستا: %@. دوو جا دەستی پیا بنێ بۆ کردنەوەی پێڕستی هەژمارەکان.";
"Scene.Compose.Accessibility.AppendAttachment" = "پێوەکراوی پێوە بکە";
"Scene.Compose.Accessibility.AppendPoll" = "دەنگدان زیاد بکە";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "هەڵبژێری ئیمۆجی";
"Scene.Compose.Accessibility.DisableContentWarning" = "ئاگاداریی ناوەڕۆک ناچالاک بکە";
"Scene.Compose.Accessibility.EnableContentWarning" = "ئاگاداریی ناوەڕۆک چالاک بکە";
"Scene.Compose.Accessibility.PostVisibilityMenu" = "پێڕستی شێوازی دەرکەوتنی پۆست";
"Scene.Compose.Accessibility.RemovePoll" = "دانگدانەکە لابە";
"Scene.Compose.Attachment.AttachmentBroken" = "ئەم %@ـە تێک چووە و ناتوانیت بەرزی بکەیتەوە.";
"Scene.Compose.Attachment.DescriptionPhoto" = "وێنەکەت بۆ نابیناکان باس بکە...";
"Scene.Compose.Attachment.DescriptionVideo" = "ڤیدیۆکەت بۆ نابیناکان باس بکە...";
"Scene.Compose.Attachment.Photo" = "وێنە";
"Scene.Compose.Attachment.Video" = "ڤیدیۆ";
"Scene.Compose.AutoComplete.SpaceToAdd" = "بۆشایی دابنێ بۆ زیادکردن";
"Scene.Compose.ComposeAction" = "بڵاوی بکەوە";
"Scene.Compose.ContentInputPlaceholder" = "دەتەوێت چی پۆست بکەیت؟";
"Scene.Compose.ContentWarning.Placeholder" = "ئاگادارییەکەت لێرە بنووسە...";
"Scene.Compose.Keyboard.AppendAttachmentEntry" = "پێوەکراوی پێوە بکە - %@";
"Scene.Compose.Keyboard.DiscardPost" = "پۆستەکە هەڵوەشێنەوە";
"Scene.Compose.Keyboard.PublishPost" = "پۆستە بڵاو بکەوە";
"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.Poll.DurationTime" = "کات: %@";
"Scene.Compose.Poll.OneDay" = "1 ڕۆژ";
"Scene.Compose.Poll.OneHour" = "1 کاتژمێر";
"Scene.Compose.Poll.OptionNumber" = "بژاردەی %ld";
"Scene.Compose.Poll.SevenDays" = "7 ڕۆژ";
"Scene.Compose.Poll.SixHours" = "6 کاتژمێر";
"Scene.Compose.Poll.ThirtyMinutes" = "30 خولەک";
"Scene.Compose.Poll.ThreeDays" = "3 ڕۆژ";
"Scene.Compose.ReplyingToUser" = "لە وەڵامدا بۆ %@";
"Scene.Compose.Title.NewPost" = "پۆستی نوێ";
"Scene.Compose.Title.NewReply" = "وەڵامی نوێ";
"Scene.Compose.Visibility.Direct" = "ئەوانەی ئاماژەیان پێ دەکەم";
"Scene.Compose.Visibility.Private" = "تەنیا شوێنکەوتووان";
"Scene.Compose.Visibility.Public" = "گشتی";
"Scene.Compose.Visibility.Unlisted" = "پێشنیارنەکراو";
"Scene.ConfirmEmail.Button.OpenEmailApp" = "بەرنامەی ئیمێڵەکەت بکەوە";
"Scene.ConfirmEmail.Button.Resend" = "بینێرەوە";
"Scene.ConfirmEmail.DontReceiveEmail.Description" = "دڵنیا بە لەوەی ئیمێڵەکەت دروستە و هەموو بوخچەکانت بگەڕێ.";
"Scene.ConfirmEmail.DontReceiveEmail.ResendEmail" = "ئیمێڵەکە بنێرەوە";
"Scene.ConfirmEmail.DontReceiveEmail.Title" = "ئیمێڵەکەت ببینە";
"Scene.ConfirmEmail.OpenEmailApp.Description" = "ئیمێڵێکمان بۆ ناردیت. هەموو بوخچەکانت ببینە.";
"Scene.ConfirmEmail.OpenEmailApp.Mail" = "Mail";
"Scene.ConfirmEmail.OpenEmailApp.OpenEmailClient" = "بەرنامەی ئیمێڵەکەت بکەوە";
"Scene.ConfirmEmail.OpenEmailApp.Title" = "ئیمێڵەکانت ببینە.";
"Scene.ConfirmEmail.Subtitle" = "بۆ پشتڕاستکردنەوەی هەژمارەکەت ئەو بەستەرە بکەوە کە بە ئیمێڵ بۆمان ناردوویت.";
"Scene.ConfirmEmail.Title" = "کۆتا شت.";
"Scene.Discovery.Intro" = "پۆست هەیە سەرنجیان لەسەرە لە گۆشەکەی تۆ.";
"Scene.Discovery.Tabs.Community" = "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.NewPosts" = "پۆستە نوێکان ببینە";
"Scene.HomeTimeline.NavigationBarState.Offline" = "دەرهێڵ";
"Scene.HomeTimeline.NavigationBarState.Published" = "بڵاوکرایەوە!";
"Scene.HomeTimeline.NavigationBarState.Publishing" = "پۆستەکە بڵاو دەکرێتەوە...";
"Scene.HomeTimeline.Title" = "ماڵەوە";
"Scene.Notification.Keyobard.ShowEverything" = "هەموو شتێک نیشان بدە";
"Scene.Notification.Keyobard.ShowMentions" = "ئاماژەکان نیشان بدە";
"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" = "پێشبینینەکە دابخە";
"Scene.Preview.Keyboard.ShowNext" = "هی دواتر نیشان بدە";
"Scene.Preview.Keyboard.ShowPrevious" = "هی پێشتر نیشان بدە";
"Scene.Profile.Accessibility.DoubleTapToOpenTheList" = "دوو جار دەستی پیا بنێ بۆ کردنەوەی لیستەکە";
"Scene.Profile.Accessibility.EditAvatarImage" = "دەستکاریی وێنەکە بکە";
"Scene.Profile.Accessibility.ShowAvatarImage" = "وێنەکە نیشان بدە";
"Scene.Profile.Accessibility.ShowBannerImage" = "وێنەکەی پشتەوە نیشان بدە";
"Scene.Profile.Dashboard.Followers" = "شوێنکەوتوو";
"Scene.Profile.Dashboard.Following" = "شوێنکەوتن";
"Scene.Profile.Dashboard.Posts" = "پۆستەکان";
"Scene.Profile.Fields.AddRow" = "ڕیز زیاد بکە";
"Scene.Profile.Fields.Placeholder.Content" = "ناوەڕۆک";
"Scene.Profile.Fields.Placeholder.Label" = "ناونیشان";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "دڵنیا ببەوە بۆ ئاستەنگکردنی %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "ئاستەنگی بکە";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "دڵیا ببەوە بۆ بێدەنگکردنی %@";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "بێدەنگی بکە";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "دڵنیا ببەوە بۆ لابردنی ئاستەنگی %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "ئاستەنگی مەکە";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "دڵنیا ببەوە بۆ بێدەنگنەکردنی %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Title" = "بێدەنگی مەکە";
"Scene.Profile.SegmentedControl.About" = "دەربارە";
"Scene.Profile.SegmentedControl.Media" = "میدیا";
"Scene.Profile.SegmentedControl.Posts" = "پۆستەکان";
"Scene.Profile.SegmentedControl.PostsAndReplies" = "پۆست و وەڵامەکان";
"Scene.Profile.SegmentedControl.Replies" = "وەڵامەکان";
"Scene.Register.Error.Item.Agreement" = "ڕێککەوتن";
"Scene.Register.Error.Item.Email" = "ئیمێڵ";
"Scene.Register.Error.Item.Locale" = "زمان";
"Scene.Register.Error.Item.Password" = "تێپەڕوشە";
"Scene.Register.Error.Item.Reason" = "هۆکار";
"Scene.Register.Error.Item.Username" = "ناوی بەکارهێنەر";
"Scene.Register.Error.Reason.Accepted" = "%@ دەبێت قبووڵ بکرێت";
"Scene.Register.Error.Reason.Blank" = "%@ پێویستە";
"Scene.Register.Error.Reason.Blocked" = "%@ خزمەتگوزارییەکی ئیمێڵی ڕێپێنەدراو بەکار دەهێنێت";
"Scene.Register.Error.Reason.Inclusion" = "%@ پشتگیرینەکراوە";
"Scene.Register.Error.Reason.Invalid" = "%@ نادروستە";
"Scene.Register.Error.Reason.Reserved" = "%@ وشەیەکی گیراوە";
"Scene.Register.Error.Reason.Taken" = "%@ بەکار هێنراوە لەلایەن یەکێکی تر";
"Scene.Register.Error.Reason.TooLong" = "%@ زۆر درێژە";
"Scene.Register.Error.Reason.TooShort" = "%@ زۆر کورتە";
"Scene.Register.Error.Reason.Unreachable" = "%@ بوونی نییە";
"Scene.Register.Error.Special.EmailInvalid" = "ئەم ئیمێڵە دروست نییە";
"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.DisplayName.Placeholder" = "ناوی نیشاندان";
"Scene.Register.Input.Email.Placeholder" = "ئیمێڵ";
"Scene.Register.Input.Invite.RegistrationUserInviteRequest" = "بۆچی دەتەوێت بەشدار بیت؟";
"Scene.Register.Input.Password.Accessibility.Checked" = "هەڵبژێردراو";
"Scene.Register.Input.Password.Accessibility.Unchecked" = "هەڵنەبژێردراو";
"Scene.Register.Input.Password.CharacterLimit" = "8 پیت";
"Scene.Register.Input.Password.Hint" = "دەبێت تێپەڕوشەکەت لایەنی کەم هەشت نووسە بێت";
"Scene.Register.Input.Password.Placeholder" = "تێپەڕوشە";
"Scene.Register.Input.Password.Require" = "تێپەڕوشەکەت لایەنی کەم پێویستیی هەیە بە:";
"Scene.Register.Input.Username.DuplicatePrompt" = "ئەم ناوە گیراوە.";
"Scene.Register.Input.Username.Placeholder" = "ناوی بەکارهێنەر";
"Scene.Register.Title" = "خۆت تۆمار بکە لە %@";
"Scene.Report.Content1" = "پۆستی تر هەیە بتەوێت سکاڵایان لێ بکەیت؟";
"Scene.Report.Content2" = "هیچ شتێکی هەیە بە چاودێرەکان بیزانن دەربارەی ئەم سکاڵایە؟";
"Scene.Report.ReportSentTitle" = "سپاس بۆ سکاڵاکات، پێیدا دەچینەوە.";
"Scene.Report.Reported" = "سکاڵای لێ کرا";
"Scene.Report.Send" = "سکاڵاکە بنێرە";
"Scene.Report.SkipToSend" = "بەبێ لێدوان بینێرە";
"Scene.Report.Step1" = "هەنگاوی 1 لە 2";
"Scene.Report.Step2" = "هەنگاوی 2 لە 2";
"Scene.Report.TextPlaceholder" = "ڕوونکردنەوەی زۆرتر بدە";
"Scene.Report.Title" = "سکاڵا لە %@ بکە";
"Scene.Report.TitleReport" = "سکاڵای لێ بکە";
"Scene.Search.Recommend.Accounts.Description" = "لەوانەیە بتەوێت شوێنی ئەم هەژمارانە بکەویت";
"Scene.Search.Recommend.Accounts.Follow" = "شوێنی بکەوە";
"Scene.Search.Recommend.Accounts.Title" = "لەوانەیە حەزت لەمانە بێت";
"Scene.Search.Recommend.ButtonText" = "هەمووی ببینە";
"Scene.Search.Recommend.HashTag.Description" = "ئەو هاشتاگانەی سەرنجی زۆریان لەسەرە";
"Scene.Search.Recommend.HashTag.PeopleTalking" = "%@ کەس باسی دەکەن";
"Scene.Search.Recommend.HashTag.Title" = "ڕۆژەڤ";
"Scene.Search.SearchBar.Cancel" = "بگەڕێوە";
"Scene.Search.SearchBar.Placeholder" = "بۆ هاشتاگ و بەکارهێنەر بگەڕێ";
"Scene.Search.Searching.Clear" = "بیانسڕەوە";
"Scene.Search.Searching.EmptyState.NoResults" = "هیچ ئەنجامێک نەدۆزرایەوە";
"Scene.Search.Searching.RecentSearch" = "گەڕانەکانی پێشترت";
"Scene.Search.Searching.Segment.All" = "هەمووی";
"Scene.Search.Searching.Segment.Hashtags" = "هاشتاگ";
"Scene.Search.Searching.Segment.People" = "خەڵک";
"Scene.Search.Searching.Segment.Posts" = "پۆست";
"Scene.Search.Title" = "بگەڕێ";
"Scene.ServerPicker.Button.Category.Academia" = "ئەکادیمیا";
"Scene.ServerPicker.Button.Category.Activism" = "چالاکی";
"Scene.ServerPicker.Button.Category.All" = "هەموو";
"Scene.ServerPicker.Button.Category.AllAccessiblityDescription" = "بەش: هەموو";
"Scene.ServerPicker.Button.Category.Art" = "هونەر";
"Scene.ServerPicker.Button.Category.Food" = "خواردن";
"Scene.ServerPicker.Button.Category.Furry" = "furry";
"Scene.ServerPicker.Button.Category.Games" = "یاری";
"Scene.ServerPicker.Button.Category.General" = "گشتی";
"Scene.ServerPicker.Button.Category.Journalism" = "ڕۆژنامەوانی";
"Scene.ServerPicker.Button.Category.Lgbt" = "lgbt";
"Scene.ServerPicker.Button.Category.Music" = "موزیک";
"Scene.ServerPicker.Button.Category.Regional" = "هەرێمی";
"Scene.ServerPicker.Button.Category.Tech" = "تەکنۆلۆژیا";
"Scene.ServerPicker.Button.SeeLess" = "کەمتر ببینە";
"Scene.ServerPicker.Button.SeeMore" = "زیاتر ببینە";
"Scene.ServerPicker.EmptyState.BadNetwork" = "هەڵەیەک ڕوویدا لە کاتی بارکردن. لە هەبوونی هێڵی ئینتەرنێت دڵنیا بە.";
"Scene.ServerPicker.EmptyState.FindingServers" = "ڕاژەکار دەدۆزرێتەوە...";
"Scene.ServerPicker.EmptyState.NoResults" = "ئەنجام نییە";
"Scene.ServerPicker.Input.Placeholder" = "بگەڕێ";
"Scene.ServerPicker.Label.Category" = "بەش";
"Scene.ServerPicker.Label.Language" = "زمان";
"Scene.ServerPicker.Label.Users" = "بەکارهێنەر";
"Scene.ServerPicker.Subtitle" = "ڕاژەکارێکێکی گشتی یان دانەیەک لەسەر بنەمای حەزەکانت و هەرێمەکەت هەڵبژێرە.";
"Scene.ServerPicker.SubtitleExtend" = "ڕاژەکارێکێکی گشتی یان دانەیەک لەسەر بنەمای حەزەکانت و هەرێمەکەت هەڵبژێرە. هەر ڕاژەکارێک لەلایەن ڕێکخراوێک یان تاکەکەسێک بەڕێوە دەبرێت.";
"Scene.ServerPicker.Title" = "ماستۆدۆن لە چەندان بەکارهێنەر پێک دێت کە لە ڕاژەکاری جیاواز دان.";
"Scene.ServerRules.Button.Confirm" = "ڕازیم";
"Scene.ServerRules.PrivacyPolicy" = "سیاسەتی تایبەتێتی";
"Scene.ServerRules.Prompt" = "بەردەوامبوونت واتای ڕازیبوونتە بە مەرجەکانی خزمەتگوزاری و سیاسەتی تایبەتێتیی %@.";
"Scene.ServerRules.Subtitle" = "ئەمانە لەلایەن چاودێرەکانی %@ دانراون و ناچار دەکرێن.";
"Scene.ServerRules.TermsOfService" = "مەرجەکانی بەکارهێنان";
"Scene.ServerRules.Title" = "یاساکانی ڕاژەکار";
"Scene.Settings.Footer.MastodonDescription" = "ماستۆدۆن پڕۆژەیەکی سەرچاوەکراوەیە. دەتوانیت لە گیتهەب لە کێشەکان ئاگادارمان بکەیتەوە: %@ (%@)";
"Scene.Settings.Keyboard.CloseSettingsWindow" = "ڕێخستنەکان دابخە";
"Scene.Settings.Section.Appearance.Automatic" = "خۆکار";
"Scene.Settings.Section.Appearance.Dark" = "تاریک";
"Scene.Settings.Section.Appearance.Light" = "ڕووناک";
"Scene.Settings.Section.Appearance.Title" = "ڕووخسار";
"Scene.Settings.Section.BoringZone.AccountSettings" = "ڕێکخستنەکانی هەژمار";
"Scene.Settings.Section.BoringZone.Privacy" = "سیاسەتی تایبەتێتی";
"Scene.Settings.Section.BoringZone.Terms" = "مەرجەکانی بەکارهێنان";
"Scene.Settings.Section.BoringZone.Title" = "ناوچە بێنازەکە";
"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" = "شوێنم دەکەوێت";
"Scene.Settings.Section.Notifications.Mentions" = "ئاماژەم پێ دەکات";
"Scene.Settings.Section.Notifications.Title" = "ئاماژەکان نیشان بدە";
"Scene.Settings.Section.Notifications.Trigger.Anyone" = "هەرکەسێک";
"Scene.Settings.Section.Notifications.Trigger.Follow" = "هەرکەسێک شوێنی دەکەوم";
"Scene.Settings.Section.Notifications.Trigger.Follower" = "شوێنکەوتووێکم";
"Scene.Settings.Section.Notifications.Trigger.Noone" = "هیچکەس";
"Scene.Settings.Section.Notifications.Trigger.Title" = "ئاگادارم بکەوە کاتێک";
"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "وێنە جووڵاوەکان ناچالاک بکە";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "ئیمۆجییە جووڵاوەکان ناچالاک بکە";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "بەستەرەکان لەناو ماستۆدۆن بکەوە";
"Scene.Settings.Section.Preference.Title" = "پەسەندەکان";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "دۆخی ڕەش";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "وێبگەڕی بنەڕەت بەکار بهێنە بۆ کردنەوەی بەستەرەکان";
"Scene.Settings.Section.SpicyZone.Clear" = "بیرگە پاک بکەوە";
"Scene.Settings.Section.SpicyZone.Signout" = "دەربچۆ";
"Scene.Settings.Section.SpicyZone.Title" = "ناوچەی گەرم";
"Scene.Settings.Title" = "رێکخستنەکان";
"Scene.SuggestionAccount.FollowExplain" = "کاتێک شوێنی یەکێک دەکەویت، پۆستەکانی دێتە بەردەمت.";
"Scene.SuggestionAccount.Title" = "خەڵک بدۆزەوە";
"Scene.Thread.BackTitle" = "پۆستەکە";
"Scene.Thread.Title" = "پۆستی %@";
"Scene.Welcome.GetStarted" = "دەست پێ بکە";
"Scene.Welcome.LogIn" = "بچۆ ژوورەوە";
"Scene.Welcome.Slogan" = "تۆڕی کۆمەڵایەتی
لەژێر دەستەکانت.";
"Scene.Wizard.AccessibilityHint" = "دوو جار دەستی پیا بنێ بۆ داخستنی";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "هەژمارەکەت بگۆڕە بە دەستڕاگرتن لەسەر دوگمەی پرۆفایلەکە.";
"Scene.Wizard.NewInMastodon" = "نوێ";

View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>a11y.plural.count.unread.notification</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@notification_count_unread_notification@</string>
<key>notification_count_unread_notification</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ئاگاداریی نەبینراو</string>
<key>other</key>
<string>%ld ئاگاداریی نەبینراو</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_exceeds</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>سنووری نووسین %#@character_count@ دەرباز دەکات</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld نووسە</string>
<key>other</key>
<string>%ld نووسە</string>
</dict>
</dict>
<key>a11y.plural.count.input_limit_remains</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>سنووری نووسین %#@character_count@ دەمێنێتەوە</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld نووسە</string>
<key>other</key>
<string>%ld نووسە</string>
</dict>
</dict>
<key>plural.count.metric_formatted.post</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%@%#@post_count@</string>
<key>post_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>پۆست</string>
<key>other</key>
<string>پۆست</string>
</dict>
</dict>
<key>plural.count.post</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@post_count@</string>
<key>post_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld پۆست</string>
<key>other</key>
<string>%ld پۆست</string>
</dict>
</dict>
<key>plural.count.favorite</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@favorite_count@</string>
<key>favorite_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld بەدڵبوو</string>
<key>other</key>
<string>%ld بەدڵبوو</string>
</dict>
</dict>
<key>plural.count.reblog</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@reblog_count@</string>
<key>reblog_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld پۆستکردنەوە</string>
<key>other</key>
<string>%ld پۆستکردنەوە</string>
</dict>
</dict>
<key>plural.count.reply</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@reply_count@</string>
<key>reply_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld وەڵام</string>
<key>other</key>
<string>%ld وەڵام</string>
</dict>
</dict>
<key>plural.count.vote</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@vote_count@</string>
<key>vote_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld دەنگ</string>
<key>other</key>
<string>%ld دەنگ</string>
</dict>
</dict>
<key>plural.count.voter</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@voter_count@</string>
<key>voter_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld دەنگدەر</string>
<key>other</key>
<string>%ld دەنگدەر</string>
</dict>
</dict>
<key>plural.people_talking</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_people_talking@</string>
<key>count_people_talking</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld کەس باسی دەکات</string>
<key>other</key>
<string>%ld کەس باسی دەکەن</string>
</dict>
</dict>
<key>plural.count.following</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_following@</string>
<key>count_following</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld شوێنکەوتن</string>
<key>other</key>
<string>%ld شوێنکەوتن</string>
</dict>
</dict>
<key>plural.count.follower</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_follower@</string>
<key>count_follower</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld شوێنکەوتوو</string>
<key>other</key>
<string>%ld شوێنکەوتوو</string>
</dict>
</dict>
<key>date.year.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_year_left@</string>
<key>count_year_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ساڵی ماوە</string>
<key>other</key>
<string>%ld ساڵی ماوە</string>
</dict>
</dict>
<key>date.month.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_month_left@</string>
<key>count_month_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld مانگی ماوە</string>
<key>other</key>
<string>%ld مانگی ماوە</string>
</dict>
</dict>
<key>date.day.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_day_left@</string>
<key>count_day_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ڕۆژی ماوە</string>
<key>other</key>
<string>%ld ڕۆژی ماوە</string>
</dict>
</dict>
<key>date.hour.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_hour_left@</string>
<key>count_hour_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld کاتژمێری ماوە</string>
<key>other</key>
<string>%ld کاتژمێری ماوە</string>
</dict>
</dict>
<key>date.minute.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_minute_left@</string>
<key>count_minute_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld خولەکی ماوە</string>
<key>other</key>
<string>%ld خولەکی ماوە</string>
</dict>
</dict>
<key>date.second.left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_second_left@</string>
<key>count_second_left</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld چرکەی ماوە</string>
<key>other</key>
<string>%ld چرکەی ماوە</string>
</dict>
</dict>
<key>date.year.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_year_ago_abbr@</string>
<key>count_year_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ساڵ لەمەوبەر</string>
<key>other</key>
<string>%ld ساڵ لەمەوبەر</string>
</dict>
</dict>
<key>date.month.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_month_ago_abbr@</string>
<key>count_month_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld مانگ لەمەوبەر</string>
<key>other</key>
<string>%ld مانگ لەمەوبەر</string>
</dict>
</dict>
<key>date.day.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_day_ago_abbr@</string>
<key>count_day_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld ڕۆژ لەمەوبەر</string>
<key>other</key>
<string>%ld ڕۆژ لەمەوبەر</string>
</dict>
</dict>
<key>date.hour.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_hour_ago_abbr@</string>
<key>count_hour_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld کاتژمێر لەمەوبەر</string>
<key>other</key>
<string>%ld کاتژمێر لەمەوبەر</string>
</dict>
</dict>
<key>date.minute.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_minute_ago_abbr@</string>
<key>count_minute_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld خولەک لەمەوبەر</string>
<key>other</key>
<string>%ld خولەک لەمەوبەر</string>
</dict>
</dict>
<key>date.second.ago.abbr</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count_second_ago_abbr@</string>
<key>count_second_ago_abbr</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>%ld چرکە لەمەوبەر</string>
<key>other</key>
<string>%ld چرکە لەمەوبەر</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -203,6 +203,7 @@ kann nicht auf Mastodon hochgeladen werden.";
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.Tabs.Community" = "Community";
"Scene.Discovery.Tabs.ForYou" = "Für dich";
"Scene.Discovery.Tabs.Hashtags" = "Hashtags";
"Scene.Discovery.Tabs.News" = "Nachrichten";

View File

@ -202,6 +202,7 @@ uploaded to Mastodon.";
"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.Discovery.Tabs.Community" = "Community";
"Scene.Discovery.Tabs.ForYou" = "For You";
"Scene.Discovery.Tabs.Hashtags" = "Hashtags";
"Scene.Discovery.Tabs.News" = "News";
@ -330,13 +331,13 @@ uploaded to Mastodon.";
"Scene.ServerPicker.EmptyState.BadNetwork" = "Something went wrong while loading the data. Check your internet connection.";
"Scene.ServerPicker.EmptyState.FindingServers" = "Finding available servers...";
"Scene.ServerPicker.EmptyState.NoResults" = "No results";
"Scene.ServerPicker.Input.Placeholder" = "Search communities";
"Scene.ServerPicker.Input.Placeholder" = "Search servers";
"Scene.ServerPicker.Label.Category" = "CATEGORY";
"Scene.ServerPicker.Label.Language" = "LANGUAGE";
"Scene.ServerPicker.Label.Users" = "USERS";
"Scene.ServerPicker.Subtitle" = "Pick a community based on your interests, region, or a general purpose one.";
"Scene.ServerPicker.SubtitleExtend" = "Pick a community based on your interests, region, or a general purpose one. Each community is operated by an entirely independent organization or individual.";
"Scene.ServerPicker.Title" = "Mastodon is made of users in different communities.";
"Scene.ServerPicker.Subtitle" = "Pick a server based on your interests, region, or a general purpose one.";
"Scene.ServerPicker.SubtitleExtend" = "Pick a server based on your interests, region, or a general purpose one. Each server is operated by an entirely independent organization or individual.";
"Scene.ServerPicker.Title" = "Mastodon is made of users in different servers.";
"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 %@.";

View File

@ -203,6 +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.ForYou" = "Para vos";
"Scene.Discovery.Tabs.Hashtags" = "Etiquetas";
"Scene.Discovery.Tabs.News" = "Novedades";

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