Merge remote-tracking branch 'upstream/develop' into multiline-content-warning

This commit is contained in:
Jed Fox 2022-11-14 14:07:53 -05:00
commit 66a08e5a4e
No known key found for this signature in database
GPG Key ID: 0B61D18EA54B47E1
102 changed files with 4780 additions and 1405 deletions

View File

@ -1,51 +1,51 @@
"16wxgf" = "Post on Mastodon"; "16wxgf" = "Příspěvek na Mastodon";
"751xkl" = "Text Content"; "751xkl" = "Textový obsah";
"CsR7G2" = "Post on Mastodon"; "CsR7G2" = "Příspěvek na Mastodon";
"HZSGTr" = "What content to post?"; "HZSGTr" = "Jaký obsah se má přidat?";
"HdGikU" = "Posting failed"; "HdGikU" = "Odeslání se nezdařilo";
"KDNTJ4" = "Failure Reason"; "KDNTJ4" = "Důvod selhání";
"RHxKOw" = "Send Post with text content"; "RHxKOw" = "Odeslat příspěvek s textovým obsahem";
"RxSqsb" = "Post"; "RxSqsb" = "Příspěvek";
"WCIR3D" = "Post ${content} on Mastodon"; "WCIR3D" = "Zveřejnit ${content} na Mastodon";
"ZKJSNu" = "Post"; "ZKJSNu" = "Příspěvek";
"ZS1XaK" = "${content}"; "ZS1XaK" = "${content}";
"ZbSjzC" = "Visibility"; "ZbSjzC" = "Viditelnost";
"Zo4jgJ" = "Post Visibility"; "Zo4jgJ" = "Viditelnost příspěvku";
"apSxMG-dYQ5NN" = "There are ${count} options matching Public."; "apSxMG-dYQ5NN" = "Existuje ${count} možností odpovídajících 'Veřejný'.";
"apSxMG-ehFLjY" = "There are ${count} options matching Followers Only."; "apSxMG-ehFLjY" = "Existuje ${count} možností, které odpovídají „jen sledujícím“.";
"ayoYEb-dYQ5NN" = "${content}, Public"; "ayoYEb-dYQ5NN" = "${content}, veřejné";
"ayoYEb-ehFLjY" = "${content}, Followers Only"; "ayoYEb-ehFLjY" = "${content}, pouze sledující";
"dUyuGg" = "Post on Mastodon"; "dUyuGg" = "Příspěvek na Mastodon";
"dYQ5NN" = "Public"; "dYQ5NN" = "Veřejný";
"ehFLjY" = "Followers Only"; "ehFLjY" = "Pouze sledující";
"gfePDu" = "Posting failed. ${failureReason}"; "gfePDu" = "Odeslání se nezdařilo. ${failureReason}";
"k7dbKQ" = "Post was sent successfully."; "k7dbKQ" = "Příspěvek byl úspěšně odeslán.";
"oGiqmY-dYQ5NN" = "Just to confirm, you wanted Public?"; "oGiqmY-dYQ5NN" = "Jen pro kontrolu, chtěli jste „Veřejný“?";
"oGiqmY-ehFLjY" = "Just to confirm, you wanted Followers Only?"; "oGiqmY-ehFLjY" = "Jen pro kontrolu, chtěli jste „Pouze sledující“?";
"rM6dvp" = "URL"; "rM6dvp" = "URL";
"ryJLwG" = "Post was sent successfully. "; "ryJLwG" = "Příspěvek byl úspěšně odeslán. ";

View File

@ -5,7 +5,7 @@
<key>There are ${count} options matching ${content}. - 2</key> <key>There are ${count} options matching ${content}. - 2</key>
<dict> <dict>
<key>NSStringLocalizedFormatKey</key> <key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string> <string>Existuje %#@count_option@ odpovídající „${content}“.</string>
<key>count_option</key> <key>count_option</key>
<dict> <dict>
<key>NSStringFormatSpecTypeKey</key> <key>NSStringFormatSpecTypeKey</key>

View File

@ -1,26 +1,26 @@
"16wxgf" = "Post on Mastodon"; "16wxgf" = "Postar no Mastodon";
"751xkl" = "Text Content"; "751xkl" = "Conteúdo do texto";
"CsR7G2" = "Post on Mastodon"; "CsR7G2" = "Postar no Mastodon";
"HZSGTr" = "What content to post?"; "HZSGTr" = "What content to post?";
"HdGikU" = "Posting failed"; "HdGikU" = "Posting failed";
"KDNTJ4" = "Failure Reason"; "KDNTJ4" = "Motivo da falha";
"RHxKOw" = "Send Post with text content"; "RHxKOw" = "Enviar postagem com conteúdo de texto";
"RxSqsb" = "Post"; "RxSqsb" = "Postagem";
"WCIR3D" = "Post ${content} on Mastodon"; "WCIR3D" = "Postar ${content} no Mastodon";
"ZKJSNu" = "Post"; "ZKJSNu" = "Postar";
"ZS1XaK" = "${content}"; "ZS1XaK" = "${content}";
"ZbSjzC" = "Visibility"; "ZbSjzC" = "Visibilidade";
"Zo4jgJ" = "Post Visibility"; "Zo4jgJ" = "Post Visibility";

View File

@ -5,7 +5,7 @@
<key>There are ${count} options matching ${content}. - 2</key> <key>There are ${count} options matching ${content}. - 2</key>
<dict> <dict>
<key>NSStringLocalizedFormatKey</key> <key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${content}.</string> <string>Existem %#@count_option@ opções correspondentes a ${content}.</string>
<key>count_option</key> <key>count_option</key>
<dict> <dict>
<key>NSStringFormatSpecTypeKey</key> <key>NSStringFormatSpecTypeKey</key>
@ -13,15 +13,15 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>%ld</string> <string>%ld</string>
<key>one</key> <key>one</key>
<string>1 option</string> <string>1 opção</string>
<key>other</key> <key>other</key>
<string>%ld options</string> <string>%ld opções</string>
</dict> </dict>
</dict> </dict>
<key>There are ${count} options matching ${visibility}.</key> <key>There are ${count} options matching ${visibility}.</key>
<dict> <dict>
<key>NSStringLocalizedFormatKey</key> <key>NSStringLocalizedFormatKey</key>
<string>There are %#@count_option@ matching ${visibility}.</string> <string>Existem %#@count_option@ opções correspondentes a ${visibility}.</string>
<key>count_option</key> <key>count_option</key>
<dict> <dict>
<key>NSStringFormatSpecTypeKey</key> <key>NSStringFormatSpecTypeKey</key>
@ -29,9 +29,9 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>%ld</string> <string>%ld</string>
<key>one</key> <key>one</key>
<string>1 option</string> <string>1 opção</string>
<key>other</key> <key>other</key>
<string>%ld options</string> <string>%ld opções</string>
</dict> </dict>
</dict> </dict>
</dict> </dict>

View File

@ -47,6 +47,7 @@ private func convert(from inputDirectoryURL: URL, to outputDirectory: URL) {
private func map(language: String) -> String? { private func map(language: String) -> String? {
switch language { switch language {
case "Base.lproj": return "Base"
case "ar.lproj": return "ar" // Arabic case "ar.lproj": return "ar" // Arabic
case "eu.lproj": return "eu" // Basque case "eu.lproj": return "eu" // Basque
case "ca.lproj": return "ca" // Catalan case "ca.lproj": return "ca" // Catalan

View File

@ -0,0 +1,631 @@
<?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>zero</key>
<string>no unread notification</string>
<key>one</key>
<string>1 unread notification</string>
<key>few</key>
<string>%ld unread notifications</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 characters</string>
<key>one</key>
<string>1 character</string>
<key>few</key>
<string>%ld characters</string>
<key>many</key>
<string>%ld characters</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>zero</key>
<string>0 characters</string>
<key>one</key>
<string>1 character</string>
<key>few</key>
<string>%ld characters</string>
<key>many</key>
<string>%ld characters</string>
<key>other</key>
<string>%ld characters</string>
</dict>
</dict>
<key>a11y.plural.count.characters_left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@character_count@ left</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>no characters</string>
<key>one</key>
<string>1 character</string>
<key>few</key>
<string>%ld characters</string>
<key>many</key>
<string>%ld characters</string>
<key>other</key>
<string>%ld characters</string>
</dict>
</dict>
<key>plural.count.followed_by_and_mutual</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@names@%#@count_mutual@</string>
<key>names</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string></string>
</dict>
<key>count_mutual</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>Followed by %1$@</string>
<key>one</key>
<string>Followed by %1$@, and another mutual</string>
<key>few</key>
<string>Followed by %1$@, and %ld mutuals</string>
<key>many</key>
<string>Followed by %1$@, and %ld mutuals</string>
<key>other</key>
<string>Followed by %1$@, and %ld mutuals</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>zero</key>
<string>posts</string>
<key>one</key>
<string>post</string>
<key>few</key>
<string>posts</string>
<key>many</key>
<string>posts</string>
<key>other</key>
<string>posts</string>
</dict>
</dict>
<key>plural.count.media</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@media_count@</string>
<key>media_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>0 media</string>
<key>one</key>
<string>1 media</string>
<key>few</key>
<string>%ld media</string>
<key>many</key>
<string>%ld media</string>
<key>other</key>
<string>%ld media</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>zero</key>
<string>0 posts</string>
<key>one</key>
<string>1 post</string>
<key>few</key>
<string>%ld posts</string>
<key>many</key>
<string>%ld posts</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>zero</key>
<string>0 favorites</string>
<key>one</key>
<string>1 favorite</string>
<key>few</key>
<string>%ld favorites</string>
<key>many</key>
<string>%ld favorites</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>zero</key>
<string>0 reblogs</string>
<key>one</key>
<string>1 reblog</string>
<key>few</key>
<string>%ld reblogs</string>
<key>many</key>
<string>%ld reblogs</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>zero</key>
<string>0 replies</string>
<key>one</key>
<string>1 reply</string>
<key>few</key>
<string>%ld replies</string>
<key>many</key>
<string>%ld replies</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>zero</key>
<string>0 votes</string>
<key>one</key>
<string>1 vote</string>
<key>few</key>
<string>%ld votes</string>
<key>many</key>
<string>%ld votes</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>zero</key>
<string>0 voters</string>
<key>one</key>
<string>1 voter</string>
<key>few</key>
<string>%ld voters</string>
<key>many</key>
<string>%ld voters</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>zero</key>
<string>0 people talking</string>
<key>one</key>
<string>1 people talking</string>
<key>few</key>
<string>%ld people talking</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 following</string>
<key>one</key>
<string>1 following</string>
<key>few</key>
<string>%ld following</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 followers</string>
<key>one</key>
<string>1 follower</string>
<key>few</key>
<string>%ld followers</string>
<key>many</key>
<string>%ld followers</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>zero</key>
<string>0 years left</string>
<key>one</key>
<string>1 year left</string>
<key>few</key>
<string>%ld years left</string>
<key>many</key>
<string>%ld years 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>zero</key>
<string>0 months left</string>
<key>one</key>
<string>1 months left</string>
<key>few</key>
<string>%ld months left</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 days left</string>
<key>one</key>
<string>1 day left</string>
<key>few</key>
<string>%ld days left</string>
<key>many</key>
<string>%ld days 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>zero</key>
<string>0 hours left</string>
<key>one</key>
<string>1 hour left</string>
<key>few</key>
<string>%ld hours left</string>
<key>many</key>
<string>%ld hours 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>zero</key>
<string>0 minutes left</string>
<key>one</key>
<string>1 minute left</string>
<key>few</key>
<string>%ld minutes left</string>
<key>many</key>
<string>%ld minutes 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>zero</key>
<string>0 seconds left</string>
<key>one</key>
<string>1 second left</string>
<key>few</key>
<string>%ld seconds left</string>
<key>many</key>
<string>%ld seconds 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>zero</key>
<string>0y ago</string>
<key>one</key>
<string>1y ago</string>
<key>few</key>
<string>%ldy ago</string>
<key>many</key>
<string>%ldy 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>zero</key>
<string>0M ago</string>
<key>one</key>
<string>1M ago</string>
<key>few</key>
<string>%ldM ago</string>
<key>many</key>
<string>%ldM 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>zero</key>
<string>0d ago</string>
<key>one</key>
<string>1d ago</string>
<key>few</key>
<string>%ldd ago</string>
<key>many</key>
<string>%ldd 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>zero</key>
<string>0h ago</string>
<key>one</key>
<string>1h ago</string>
<key>few</key>
<string>%ldh ago</string>
<key>many</key>
<string>%ldh 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>zero</key>
<string>0m ago</string>
<key>one</key>
<string>1m ago</string>
<key>few</key>
<string>%ldm ago</string>
<key>many</key>
<string>%ldm 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>zero</key>
<string>0s ago</string>
<key>one</key>
<string>1s ago</string>
<key>few</key>
<string>%lds ago</string>
<key>many</key>
<string>%lds ago</string>
<key>other</key>
<string>%lds ago</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,718 @@
{
"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"
},
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"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",
"show_reblogs": "Show Reblogs",
"hide_reblogs": "Hide Reblogs"
},
"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",
"search_servers_or_enter_url": "Search servers or enter URL"
},
"empty_state": {
"finding_servers": "Finding available servers...",
"bad_network": "Something went wrong while loading the data. Check your internet connection.",
"no_results": "No results"
}
},
"register": {
"title": "Lets get you set up on %s",
"lets_get_you_set_up_on_domain": "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.",
"tap_the_link_we_emailed_to_you_to_verify_your_account": "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...",
"accessibility": {
"logo_label": "Logo Button",
"logo_hint": "Tap to scroll to top and tap again to previous location"
}
}
},
"suggestion_account": {
"title": "Find People to Follow",
"follow_explain": "When you follow someone, youll see their posts in your home feed."
},
"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...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not recognize this media attachment",
"attachment_too_large": "Attachment too large",
"compressing_state": "Compressing...",
"server_processing_state": "Server Processing..."
},
"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",
"the_poll_is_invalid": "The poll is invalid",
"the_poll_has_empty_option": "The poll has empty option"
},
"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",
"post_options": "Post Options",
"posting_as": "Posting as %s"
},
"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": {
"header": {
"follows_you": "Follows You"
},
"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"
},
"confirm_show_reblogs": {
"title": "Show Reblogs",
"message": "Confirm to show reblogs"
},
"confirm_hide_reblogs": {
"title": "Hide Reblogs",
"message": "Confirm to hide reblogs"
}
},
"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": {
"title": "follower",
"footer": "Followers from other servers are not displayed."
},
"following": {
"title": "following",
"footer": "Follows from other servers are not displayed."
},
"familiarFollowers": {
"title": "Followers you familiar",
"followed_by_names": "Followed by %s"
},
"favorited_by": {
"title": "Favorited By"
},
"reblogged_by": {
"title": "Reblogged By"
},
"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"
},
"follow_request": {
"accept": "Accept",
"accepted": "Accepted",
"reject": "reject",
"rejected": "Rejected"
}
},
"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",
"step_one": {
"step_1_of_4": "Step 1 of 4",
"whats_wrong_with_this_post": "What's wrong with this post?",
"whats_wrong_with_this_account": "What's wrong with this account?",
"whats_wrong_with_this_username": "What's wrong with %s?",
"select_the_best_match": "Select the best match",
"i_dont_like_it": "I dont like it",
"it_is_not_something_you_want_to_see": "It is not something you want to see",
"its_spam": "Its spam",
"malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies",
"it_violates_server_rules": "It violates server rules",
"you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules",
"its_something_else": "Its something else",
"the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories"
},
"step_two": {
"step_2_of_4": "Step 2 of 4",
"which_rules_are_being_violated": "Which rules are being violated?",
"select_all_that_apply": "Select all that apply",
"i_just_dont_like_it": "I just dont like it"
},
"step_three": {
"step_3_of_4": "Step 3 of 4",
"are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?",
"select_all_that_apply": "Select all that apply"
},
"step_four": {
"step_4_of_4": "Step 4 of 4",
"is_there_anything_else_we_should_know": "Is there anything else we should know?"
},
"step_final": {
"dont_want_to_see_this": "Dont want to see this?",
"when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you dont like on Mastodon, you can remove the person from your experience.",
"unfollow": "Unfollow",
"unfollowed": "Unfollowed",
"unfollow_user": "Unfollow %s",
"mute_user": "Mute %s",
"you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You wont see their posts or reblogs in your home feed. They wont know theyve been muted.",
"block_user": "Block %s",
"they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if theyve been blocked.",
"while_we_review_this_you_can_take_action_against_user": "While we review this, you can take action against %s"
}
},
"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"
},
"bookmark": {
"title": "Bookmarks"
}
}
}

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

@ -136,6 +136,12 @@
"vote": "صَوِّت", "vote": "صَوِّت",
"closed": "انتهى" "closed": "انتهى"
}, },
"meta_entity": {
"url": "رابِط: %s",
"hashtag": "وَسْم: %s",
"mention": "إظهار المِلف التعريفي: %s",
"email": "عُنوان البريد الإلكتُروني: %s"
},
"actions": { "actions": {
"reply": "الرَّد", "reply": "الرَّد",
"reblog": "إعادة النشر", "reblog": "إعادة النشر",
@ -181,8 +187,8 @@
"unmute_user": "رفع الكتم عن %s", "unmute_user": "رفع الكتم عن %s",
"muted": "مكتوم", "muted": "مكتوم",
"edit_info": "تَحريرُ المَعلُومات", "edit_info": "تَحريرُ المَعلُومات",
"show_reblogs": "Show Reblogs", "show_reblogs": "إظهار إعادات التدوين",
"hide_reblogs": "Hide Reblogs" "hide_reblogs": "إخفاء إعادات التدوين"
}, },
"timeline": { "timeline": {
"filtered": "مُصفَّى", "filtered": "مُصفَّى",
@ -376,7 +382,11 @@
"video": "مقطع مرئي", "video": "مقطع مرئي",
"attachment_broken": "هذا ال%s مُعطَّل\nويتعذَّرُ رفعُه إلى ماستودون.", "attachment_broken": "هذا ال%s مُعطَّل\nويتعذَّرُ رفعُه إلى ماستودون.",
"description_photo": "صِف الصورة للمَكفوفين...", "description_photo": "صِف الصورة للمَكفوفين...",
"description_video": "صِف المقطع المرئي للمَكفوفين..." "description_video": "صِف المقطع المرئي للمَكفوفين...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "المُدَّة: %s", "duration_time": "المُدَّة: %s",
@ -459,12 +469,12 @@
"message": "تأكيدُ رَفع الحَظرِ عَن %s" "message": "تأكيدُ رَفع الحَظرِ عَن %s"
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Show Reblogs", "title": "إظهار إعادات التدوين",
"message": "Confirm to show reblogs" "message": "التأكيد لِإظهار إعادات التدوين"
}, },
"confirm_hide_reblogs": { "confirm_hide_reblogs": {
"title": "Hide Reblogs", "title": "إخفاء إعادات التدوين",
"message": "Confirm to hide reblogs" "message": "التأكيد لِإخفاء إعادات التدوين"
} }
}, },
"accessibility": { "accessibility": {
@ -696,7 +706,7 @@
"accessibility_hint": "انقر نقرًا مزدوجًا لتجاهُل النافذة المنبثقة" "accessibility_hint": "انقر نقرًا مزدوجًا لتجاهُل النافذة المنبثقة"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "العَلاماتُ المَرجعيَّة"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "Vota", "vote": "Vota",
"closed": "Finalitzada" "closed": "Finalitzada"
}, },
"meta_entity": {
"url": "Enllaç: %s",
"hashtag": "Etiqueta %s",
"mention": "Mostra el Perfil: %s",
"email": "Correu electrònic: %s"
},
"actions": { "actions": {
"reply": "Respon", "reply": "Respon",
"reblog": "Impuls", "reblog": "Impuls",
@ -376,7 +382,11 @@
"video": "vídeo", "video": "vídeo",
"attachment_broken": "Aquest %s està trencat i no pot ser\ncarregat a Mastodon.", "attachment_broken": "Aquest %s està trencat i no pot ser\ncarregat a Mastodon.",
"description_photo": "Descriu la foto per als disminuïts visuals...", "description_photo": "Descriu la foto per als disminuïts visuals...",
"description_video": "Descriu el vídeo per als disminuïts visuals..." "description_video": "Descriu el vídeo per als disminuïts visuals...",
"load_failed": "Ha fallat la càrrega",
"upload_failed": "Pujada fallida",
"can_not_recognize_this_media_attachment": "No es pot reconèixer l'adjunt multimèdia",
"attachment_too_large": "El fitxer adjunt és massa gran"
}, },
"poll": { "poll": {
"duration_time": "Durada: %s", "duration_time": "Durada: %s",
@ -696,7 +706,7 @@
"accessibility_hint": "Toca dues vegades per descartar l'assistent" "accessibility_hint": "Toca dues vegades per descartar l'assistent"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Marcadors"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "دەنگ بدە", "vote": "دەنگ بدە",
"closed": "داخراوە" "closed": "داخراوە"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "وەڵامی بدەوە", "reply": "وەڵامی بدەوە",
"reblog": "پۆستی بکەوە", "reblog": "پۆستی بکەوە",
@ -376,7 +382,11 @@
"video": "ڤیدیۆ", "video": "ڤیدیۆ",
"attachment_broken": "ئەم %sـە تێک چووە و ناتوانیت بەرزی بکەیتەوە.", "attachment_broken": "ئەم %sـە تێک چووە و ناتوانیت بەرزی بکەیتەوە.",
"description_photo": "وێنەکەت بۆ نابیناکان باس بکە...", "description_photo": "وێنەکەت بۆ نابیناکان باس بکە...",
"description_video": "ڤیدیۆکەت بۆ نابیناکان باس بکە..." "description_video": "ڤیدیۆکەت بۆ نابیناکان باس بکە...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "کات: %s", "duration_time": "کات: %s",

View File

@ -13,19 +13,19 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 unread notification</string> <string>1 nepřečtené oznámení</string>
<key>few</key> <key>few</key>
<string>%ld unread notification</string> <string>%ld nepřečtené oznámení</string>
<key>many</key> <key>many</key>
<string>%ld unread notification</string> <string>%ld nepřečtených oznámení</string>
<key>other</key> <key>other</key>
<string>%ld unread notification</string> <string>%ld nepřečtených oznámení</string>
</dict> </dict>
</dict> </dict>
<key>a11y.plural.count.input_limit_exceeds</key> <key>a11y.plural.count.input_limit_exceeds</key>
<dict> <dict>
<key>NSStringLocalizedFormatKey</key> <key>NSStringLocalizedFormatKey</key>
<string>Input limit exceeds %#@character_count@</string> <string>Vstupní limit přesahuje %#@character_count@</string>
<key>character_count</key> <key>character_count</key>
<dict> <dict>
<key>NSStringFormatSpecTypeKey</key> <key>NSStringFormatSpecTypeKey</key>
@ -33,19 +33,19 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 character</string> <string>1 znak</string>
<key>few</key> <key>few</key>
<string>%ld characters</string> <string>%ld znaky</string>
<key>many</key> <key>many</key>
<string>%ld characters</string> <string>%ld znaků</string>
<key>other</key> <key>other</key>
<string>%ld characters</string> <string>%ld znaků</string>
</dict> </dict>
</dict> </dict>
<key>a11y.plural.count.input_limit_remains</key> <key>a11y.plural.count.input_limit_remains</key>
<dict> <dict>
<key>NSStringLocalizedFormatKey</key> <key>NSStringLocalizedFormatKey</key>
<string>Input limit remains %#@character_count@</string> <string>Vstupní limit zůstává %#@character_count@</string>
<key>character_count</key> <key>character_count</key>
<dict> <dict>
<key>NSStringFormatSpecTypeKey</key> <key>NSStringFormatSpecTypeKey</key>
@ -53,13 +53,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 character</string> <string>1 znak</string>
<key>few</key> <key>few</key>
<string>%ld characters</string> <string>%ld znaky</string>
<key>many</key> <key>many</key>
<string>%ld characters</string> <string>%ld znaků</string>
<key>other</key> <key>other</key>
<string>%ld characters</string> <string>%ld znaků</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.followed_by_and_mutual</key> <key>plural.count.followed_by_and_mutual</key>
@ -108,13 +108,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>post</string> <string>příspěvek</string>
<key>few</key> <key>few</key>
<string>posts</string> <string>příspěvky</string>
<key>many</key> <key>many</key>
<string>posts</string> <string>příspěvků</string>
<key>other</key> <key>other</key>
<string>posts</string> <string>příspěvků</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.media</key> <key>plural.count.media</key>
@ -128,13 +128,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 media</string> <string>1 médium</string>
<key>few</key> <key>few</key>
<string>%ld media</string> <string>%ld média</string>
<key>many</key> <key>many</key>
<string>%ld media</string> <string>%ld médií</string>
<key>other</key> <key>other</key>
<string>%ld media</string> <string>%ld médií</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.post</key> <key>plural.count.post</key>
@ -148,13 +148,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 post</string> <string>1 příspěvek</string>
<key>few</key> <key>few</key>
<string>%ld posts</string> <string>%ld příspěvky</string>
<key>many</key> <key>many</key>
<string>%ld posts</string> <string>%ld příspěvků</string>
<key>other</key> <key>other</key>
<string>%ld posts</string> <string>%ld příspěvků</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.favorite</key> <key>plural.count.favorite</key>
@ -168,7 +168,7 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 favorite</string> <string>1 oblíbený</string>
<key>few</key> <key>few</key>
<string>%ld favorites</string> <string>%ld favorites</string>
<key>many</key> <key>many</key>
@ -208,13 +208,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 reply</string> <string>1 odpověď</string>
<key>few</key> <key>few</key>
<string>%ld replies</string> <string>%ld odpovědi</string>
<key>many</key> <key>many</key>
<string>%ld replies</string> <string>%ld odpovědí</string>
<key>other</key> <key>other</key>
<string>%ld replies</string> <string>%ld odpovědí</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.vote</key> <key>plural.count.vote</key>
@ -228,13 +228,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 vote</string> <string>1 hlas</string>
<key>few</key> <key>few</key>
<string>%ld votes</string> <string>%ld hlasy</string>
<key>many</key> <key>many</key>
<string>%ld votes</string> <string>%ld hlasů</string>
<key>other</key> <key>other</key>
<string>%ld votes</string> <string>%ld hlasů</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.voter</key> <key>plural.count.voter</key>
@ -248,13 +248,13 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 voter</string> <string>1 hlasující</string>
<key>few</key> <key>few</key>
<string>%ld voters</string> <string>%ld hlasující</string>
<key>many</key> <key>many</key>
<string>%ld voters</string> <string>%ld hlasujících</string>
<key>other</key> <key>other</key>
<string>%ld voters</string> <string>%ld hlasujících</string>
</dict> </dict>
</dict> </dict>
<key>plural.people_talking</key> <key>plural.people_talking</key>

View File

@ -37,12 +37,12 @@
"confirm": "Odhlásit se" "confirm": "Odhlásit se"
}, },
"block_domain": { "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": "Opravdu chcete blokovat celou doménu %s? Ve většině případů stačí zablokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
"block_entire_domain": "Blokovat doménu" "block_entire_domain": "Blokovat doménu"
}, },
"save_photo_failure": { "save_photo_failure": {
"title": "Uložení fotografie se nezdařilo", "title": "Uložení fotografie se nezdařilo",
"message": "Please enable the photo library access permission to save the photo." "message": "Pro uložení fotografie povolte přístup k knihovně fotografií."
}, },
"delete_post": { "delete_post": {
"title": "Odstranit příspěvek", "title": "Odstranit příspěvek",
@ -79,7 +79,7 @@
"see_more": "Zobrazit více", "see_more": "Zobrazit více",
"preview": "Náhled", "preview": "Náhled",
"share": "Sdílet", "share": "Sdílet",
"share_user": "Share %s", "share_user": "Sdílet %s",
"share_post": "Sdílet příspěvek", "share_post": "Sdílet příspěvek",
"open_in_safari": "Otevřít v Safari", "open_in_safari": "Otevřít v Safari",
"open_in_browser": "Otevřít v prohlížeči", "open_in_browser": "Otevřít v prohlížeči",
@ -125,7 +125,7 @@
}, },
"status": { "status": {
"user_reblogged": "%s reblogged", "user_reblogged": "%s reblogged",
"user_replied_to": "Replied to %s", "user_replied_to": "Odpověděl %s",
"show_post": "Zobrazit příspěvek", "show_post": "Zobrazit příspěvek",
"show_user_profile": "Zobrazit profil uživatele", "show_user_profile": "Zobrazit profil uživatele",
"content_warning": "Varování o obsahu", "content_warning": "Varování o obsahu",
@ -136,18 +136,24 @@
"vote": "Hlasovat", "vote": "Hlasovat",
"closed": "Uzavřeno" "closed": "Uzavřeno"
}, },
"meta_entity": {
"url": "Odkaz: %s",
"hashtag": "Hashtag: %s",
"mention": "Zobrazit profil: %s",
"email": "E-mailová adresa: %s"
},
"actions": { "actions": {
"reply": "Odpovědět", "reply": "Odpovědět",
"reblog": "Boostnout", "reblog": "Boostnout",
"unreblog": "Undo reblog", "unreblog": "Undo reblog",
"favorite": "Favorite", "favorite": "Oblíbit",
"unfavorite": "Odebrat z oblízených", "unfavorite": "Odebrat z oblízených",
"menu": "Nabídka", "menu": "Nabídka",
"hide": "Skrýt", "hide": "Skrýt",
"show_image": "Zobrazit obrázek", "show_image": "Zobrazit obrázek",
"show_gif": "Zobrazit GIF", "show_gif": "Zobrazit GIF",
"show_video_player": "Zobrazit video přehrávač", "show_video_player": "Zobrazit video přehrávač",
"tap_then_hold_to_show_menu": "Tap then hold to show menu" "tap_then_hold_to_show_menu": "Klepnutím podržte pro zobrazení nabídky"
}, },
"tag": { "tag": {
"url": "URL", "url": "URL",
@ -159,22 +165,22 @@
}, },
"visibility": { "visibility": {
"unlisted": "Každý může vidět tento příspěvek, ale nezobrazovat ve veřejné časové ose.", "unlisted": "Každý může vidět tento příspěvek, ale nezobrazovat ve veřejné časové ose.",
"private": "Only their followers can see this post.", "private": "Pouze jejich sledující mohou vidět tento příspěvek.",
"private_from_me": "Only my followers can see this post.", "private_from_me": "Pouze moji sledující mohou vidět tento příspěvek.",
"direct": "Only mentioned user can see this post." "direct": "Pouze zmíněný uživatel může vidět tento příspěvek."
} }
}, },
"friendship": { "friendship": {
"follow": "Sledovat", "follow": "Sledovat",
"following": "Following", "following": "Sleduji",
"request": "Request", "request": "Požadavek",
"pending": "Čekající", "pending": "Čekající",
"block": "Blokovat", "block": "Blokovat",
"block_user": "Blokovat %s", "block_user": "Blokovat %s",
"block_domain": "Blokovat %s", "block_domain": "Blokovat %s",
"unblock": "Odblokovat", "unblock": "Odblokovat",
"unblock_user": "Odblokovat %s", "unblock_user": "Odblokovat %s",
"blocked": "Blocked", "blocked": "Blokovaný",
"mute": "Skrýt", "mute": "Skrýt",
"mute_user": "Skrýt %s", "mute_user": "Skrýt %s",
"unmute": "Odkrýt", "unmute": "Odkrýt",
@ -185,7 +191,7 @@
"hide_reblogs": "Hide Reblogs" "hide_reblogs": "Hide Reblogs"
}, },
"timeline": { "timeline": {
"filtered": "Filtered", "filtered": "Filtrováno",
"timestamp": { "timestamp": {
"now": "Nyní" "now": "Nyní"
}, },
@ -196,26 +202,26 @@
}, },
"header": { "header": {
"no_status_found": "Nebyl nalezen žádný příspěvek", "no_status_found": "Nebyl nalezen žádný příspěvek",
"blocking_warning": "You cant view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", "blocking_warning": "Nemůžete zobrazit profil tohoto uživatele, dokud ho neodblokujete.\nVáš profil pro něj vypadá takto.",
"user_blocking_warning": "You cant view %ss profile\nuntil you unblock them.\nYour profile looks like this to them.", "user_blocking_warning": "Nemůžete zobrazit profil %s, dokud ho neodblokujete.\nVáš profil pro něj vypadá takto.",
"blocked_warning": "You cant view this users profile\nuntil they unblock you.", "blocked_warning": "Nemůžeš zobrazit profil tohoto uživatele, dokud tě neodblokují.",
"user_blocked_warning": "You cant view %ss profile\nuntil they unblock you.", "user_blocked_warning": "Nemůžete zobrazit profil %s, dokud vás neodblokuje.",
"suspended_warning": "This user has been suspended.", "suspended_warning": "Tento uživatel byl pozastaven.",
"user_suspended_warning": "%ss account has been suspended." "user_suspended_warning": "Účet %s byl pozastaven."
} }
} }
} }
}, },
"scene": { "scene": {
"welcome": { "welcome": {
"slogan": "Social networking\nback in your hands.", "slogan": "Sociální sítě opět ve vašich rukou.",
"get_started": "Začínáme", "get_started": "Začínáme",
"log_in": "Přihlásit se" "log_in": "Přihlásit se"
}, },
"server_picker": { "server_picker": {
"title": "Mastodon tvoří uživatelé z různých serverů.", "title": "Mastodon tvoří uživatelé z různých serverů.",
"subtitle": "Pick a server based on your interests, region, or a general purpose one.", "subtitle": "Vyberte server založený na vašich zájmech, regionu nebo obecném účelu.",
"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.", "subtitle_extend": "Vyberte server založený na vašich zájmech, regionu nebo obecném účelu. Každý server je provozován zcela nezávislou organizací nebo jednotlivcem.",
"button": { "button": {
"category": { "category": {
"all": "Vše", "all": "Vše",
@ -224,7 +230,7 @@
"activism": "aktivismus", "activism": "aktivismus",
"food": "jídlo", "food": "jídlo",
"furry": "furry", "furry": "furry",
"games": "games", "games": "hry",
"general": "obecné", "general": "obecné",
"journalism": "žurnalistika", "journalism": "žurnalistika",
"lgbt": "lgbt", "lgbt": "lgbt",
@ -252,8 +258,8 @@
} }
}, },
"register": { "register": {
"title": "Lets get you set up on %s", "title": "Pojďme si nastavit %s",
"lets_get_you_set_up_on_domain": "Lets get you set up on %s", "lets_get_you_set_up_on_domain": "Pojďme si nastavit %s",
"input": { "input": {
"avatar": { "avatar": {
"delete": "Smazat" "delete": "Smazat"
@ -292,51 +298,51 @@
"reason": "Důvod" "reason": "Důvod"
}, },
"reason": { "reason": {
"blocked": "%s contains a disallowed email provider", "blocked": "%s používá zakázanou e-mailovou službu",
"unreachable": "%s does not seem to exist", "unreachable": "%s pravděpodobně neexistuje",
"taken": "%s se již používá", "taken": "%s se již používá",
"reserved": "%s je rezervované klíčové slovo", "reserved": "%s je rezervované klíčové slovo",
"accepted": "%s musí být přijato", "accepted": "%s musí být přijato",
"blank": "%s je vyžadováno", "blank": "%s je vyžadováno",
"invalid": "%s is invalid", "invalid": "%s je neplatné",
"too_long": "%s is too long", "too_long": "%s je příliš dlouhé",
"too_short": "%s is too short", "too_short": "%s je příliš krátké",
"inclusion": "%s is not a supported value" "inclusion": "%s není podporovaná hodnota"
}, },
"special": { "special": {
"username_invalid": "Username must only contain alphanumeric characters and underscores", "username_invalid": "Uživatelské jméno musí obsahovat pouze alfanumerické znaky a podtržítka",
"username_too_long": "Username is too long (cant be longer than 30 characters)", "username_too_long": "Uživatelské jméno je příliš dlouhé (nemůže být delší než 30 znaků)",
"email_invalid": "Toto není platná e-mailová adresa", "email_invalid": "Toto není platná e-mailová adresa",
"password_too_short": "Password is too short (must be at least 8 characters)" "password_too_short": "Heslo je příliš krátké (musí mít alespoň 8 znaků)"
} }
} }
}, },
"server_rules": { "server_rules": {
"title": "Some ground rules.", "title": "Některá základní pravidla.",
"subtitle": "These are set and enforced by the %s moderators.", "subtitle": "Ty nastavují a prosazují moderátoři %s.",
"prompt": "By continuing, youre subject to the terms of service and privacy policy for %s.", "prompt": "Pokračováním budete podléhat podmínkám služby a zásad ochrany osobních údajů pro uživatele %s.",
"terms_of_service": "terms of service", "terms_of_service": "podmínky služby",
"privacy_policy": "privacy policy", "privacy_policy": "zásady ochrany osobních údajů",
"button": { "button": {
"confirm": "I Agree" "confirm": "Souhlasím"
} }
}, },
"confirm_email": { "confirm_email": {
"title": "One last thing.", "title": "Ještě jedna věc.",
"subtitle": "Tap the link we emailed to you to verify your account.", "subtitle": "Klepněte na odkaz, který jsme vám poslali e-mailem, abyste ověřili Váš účet.",
"tap_the_link_we_emailed_to_you_to_verify_your_account": "Tap the link we emailed to you to verify your account", "tap_the_link_we_emailed_to_you_to_verify_your_account": "Klepněte na odkaz, který jsme vám poslali e-mailem, abyste ověřili Váš účet",
"button": { "button": {
"open_email_app": "Open Email App", "open_email_app": "Otevřít e-mailovou aplikaci",
"resend": "Resend" "resend": "Poslat znovu"
}, },
"dont_receive_email": { "dont_receive_email": {
"title": "Check your email", "title": "Zkontrolujte svůj e-mail",
"description": "Check if your email address is correct as well as your junk folder if you havent.", "description": "Zkontrolujte, zda je vaše e-mailová adresa správná, stejně jako složka nevyžádané pošty, pokud ji máte.",
"resend_email": "Resend Email" "resend_email": "Znovu odeslat e-mail"
}, },
"open_email_app": { "open_email_app": {
"title": "Check your inbox.", "title": "Zkontrolujte doručenou poštu.",
"description": "We just sent you an email. Check your junk folder if you havent.", "description": "Právě jsme vám poslali e-mail. Zkontrolujte složku nevyžádané zprávy, pokud ji máte.",
"mail": "Pošta", "mail": "Pošta",
"open_email_client": "Otevřít e-mailového klienta" "open_email_client": "Otevřít e-mailového klienta"
} }
@ -349,37 +355,41 @@
"published": "Publikováno!", "published": "Publikováno!",
"Publishing": "Publikování příspěvku...", "Publishing": "Publikování příspěvku...",
"accessibility": { "accessibility": {
"logo_label": "Logo Button", "logo_label": "Tlačítko s logem",
"logo_hint": "Tap to scroll to top and tap again to previous location" "logo_hint": "Klepnutím přejdete nahoru a znovu klepněte na předchozí místo"
} }
} }
}, },
"suggestion_account": { "suggestion_account": {
"title": "Find People to Follow", "title": "Najít lidi pro sledování",
"follow_explain": "When you follow someone, youll see their posts in your home feed." "follow_explain": "Když někoho sledujete, uvidíte jejich příspěvky ve vašem domovském kanálu."
}, },
"compose": { "compose": {
"title": { "title": {
"new_post": "Nový příspěvek", "new_post": "Nový příspěvek",
"new_reply": "New Reply" "new_reply": "Nová odpověď"
}, },
"media_selection": { "media_selection": {
"camera": "Take Photo", "camera": "Vyfotit",
"photo_library": "Photo Library", "photo_library": "Knihovna fotografií",
"browse": "Browse" "browse": "Procházet"
}, },
"content_input_placeholder": "Type or paste whats on your mind", "content_input_placeholder": "Napište nebo vložte, co je na mysli",
"compose_action": "Publish", "compose_action": "Zveřejnit",
"replying_to_user": "replying to %s", "replying_to_user": "odpovídá na %s",
"attachment": { "attachment": {
"photo": "photo", "photo": "fotka",
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "Tento %s je poškozený a nemůže být\nnahrán do Mastodonu.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Popište fotografii pro zrakově postižené osoby...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Popište video pro zrakově postižené...",
"load_failed": "Načtení se nezdařilo",
"upload_failed": "Nahrání selhalo",
"can_not_recognize_this_media_attachment": "Nelze rozpoznat toto medium přílohy",
"attachment_too_large": "Příloha je příliš velká"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Doba trvání: %s",
"thirty_minutes": "30 minut", "thirty_minutes": "30 minut",
"one_hour": "1 hodina", "one_hour": "1 hodina",
"six_hours": "6 hodin", "six_hours": "6 hodin",
@ -389,7 +399,7 @@
"option_number": "Možnost %ld" "option_number": "Možnost %ld"
}, },
"content_warning": { "content_warning": {
"placeholder": "Write an accurate warning here..." "placeholder": "Zde napište přesné varování..."
}, },
"visibility": { "visibility": {
"public": "Veřejný", "public": "Veřejný",
@ -398,7 +408,7 @@
"direct": "Pouze lidé, které zmíním" "direct": "Pouze lidé, které zmíním"
}, },
"auto_complete": { "auto_complete": {
"space_to_add": "Space to add" "space_to_add": "Mezera k přidání"
}, },
"accessibility": { "accessibility": {
"append_attachment": "Přidat přílohu", "append_attachment": "Přidat přílohu",
@ -413,7 +423,7 @@
"discard_post": "Zahodit příspěvek", "discard_post": "Zahodit příspěvek",
"publish_post": "Publikovat příspěvek", "publish_post": "Publikovat příspěvek",
"toggle_poll": "Přepnout anketu", "toggle_poll": "Přepnout anketu",
"toggle_content_warning": "Toggle Content Warning", "toggle_content_warning": "Přepnout varování obsahu",
"append_attachment_entry": "Přidat přílohu - %s", "append_attachment_entry": "Přidat přílohu - %s",
"select_visibility_entry": "Vyberte viditelnost - %s" "select_visibility_entry": "Vyberte viditelnost - %s"
} }
@ -424,13 +434,13 @@
}, },
"dashboard": { "dashboard": {
"posts": "příspěvky", "posts": "příspěvky",
"following": "following", "following": "sledování",
"followers": "sledující" "followers": "sledující"
}, },
"fields": { "fields": {
"add_row": "Přidat řádek", "add_row": "Přidat řádek",
"placeholder": { "placeholder": {
"label": "Label", "label": "Označení",
"content": "Obsah" "content": "Obsah"
} }
}, },
@ -439,7 +449,7 @@
"replies": "Odpovědí", "replies": "Odpovědí",
"posts_and_replies": "Příspěvky a odpovědi", "posts_and_replies": "Příspěvky a odpovědi",
"media": "Média", "media": "Média",
"about": "About" "about": "O uživateli"
}, },
"relationship_action_alert": { "relationship_action_alert": {
"confirm_mute_user": { "confirm_mute_user": {
@ -448,7 +458,7 @@
}, },
"confirm_unmute_user": { "confirm_unmute_user": {
"title": "Zrušit skrytí účtu", "title": "Zrušit skrytí účtu",
"message": "Confirm to unmute %s" "message": "Potvrďte zrušení ztlumení %s"
}, },
"confirm_block_user": { "confirm_block_user": {
"title": "Blokovat účet", "title": "Blokovat účet",
@ -456,7 +466,7 @@
}, },
"confirm_unblock_user": { "confirm_unblock_user": {
"title": "Odblokovat účet", "title": "Odblokovat účet",
"message": "Confirm to unblock %s" "message": "Potvrďte odblokování %s"
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Show Reblogs", "title": "Show Reblogs",
@ -468,235 +478,235 @@
} }
}, },
"accessibility": { "accessibility": {
"show_avatar_image": "Show avatar image", "show_avatar_image": "Zobrazit obrázek avataru",
"edit_avatar_image": "Edit avatar image", "edit_avatar_image": "Upravit obrázek avataru",
"show_banner_image": "Show banner image", "show_banner_image": "Zobrazit obrázek banneru",
"double_tap_to_open_the_list": "Double tap to open the list" "double_tap_to_open_the_list": "Dvojitým poklepáním otevřete seznam"
} }
}, },
"follower": { "follower": {
"title": "follower", "title": "sledující",
"footer": "Followers from other servers are not displayed." "footer": "Sledující z jiných serverů nejsou zobrazeni."
}, },
"following": { "following": {
"title": "following", "title": "sledování",
"footer": "Follows from other servers are not displayed." "footer": "Sledování z jiných serverů není zobrazeno."
}, },
"familiarFollowers": { "familiarFollowers": {
"title": "Followers you familiar", "title": "Sledující, které znáte",
"followed_by_names": "Followed by %s" "followed_by_names": "Sledován od %s"
}, },
"favorited_by": { "favorited_by": {
"title": "Favorited By" "title": "Oblíben"
}, },
"reblogged_by": { "reblogged_by": {
"title": "Reblogged By" "title": "Reblogged By"
}, },
"search": { "search": {
"title": "Search", "title": "Hledat",
"search_bar": { "search_bar": {
"placeholder": "Search hashtags and users", "placeholder": "Hledat hashtagy a uživatele",
"cancel": "Cancel" "cancel": "Zrušit"
}, },
"recommend": { "recommend": {
"button_text": "See All", "button_text": "Zobrazit vše",
"hash_tag": { "hash_tag": {
"title": "Trending on Mastodon", "title": "Populární na Mastodonu",
"description": "Hashtags that are getting quite a bit of attention", "description": "Hashtagy, kterým se dostává dosti pozornosti",
"people_talking": "%s people are talking" "people_talking": "%s lidí mluví"
}, },
"accounts": { "accounts": {
"title": "Accounts you might like", "title": "Účty, které by se vám mohly líbit",
"description": "You may like to follow these accounts", "description": "Možná budete chtít sledovat tyto účty",
"follow": "Follow" "follow": "Sledovat"
} }
}, },
"searching": { "searching": {
"segment": { "segment": {
"all": "All", "all": "Vše",
"people": "People", "people": "Lidé",
"hashtags": "Hashtags", "hashtags": "Hashtagy",
"posts": "Posts" "posts": "Příspěvky"
}, },
"empty_state": { "empty_state": {
"no_results": "No results" "no_results": "Žádné výsledky"
}, },
"recent_search": "Recent searches", "recent_search": "Nedávná hledání",
"clear": "Clear" "clear": "Vymazat"
} }
}, },
"discovery": { "discovery": {
"tabs": { "tabs": {
"posts": "Posts", "posts": "Příspěvky",
"hashtags": "Hashtags", "hashtags": "Hashtagy",
"news": "News", "news": "Zprávy",
"community": "Community", "community": "Komunita",
"for_you": "For You" "for_you": "Pro vás"
}, },
"intro": "These are the posts gaining traction in your corner of Mastodon." "intro": "Toto jsou příspěvky, které získávají pozornost ve vašem koutu Mastodonu."
}, },
"favorite": { "favorite": {
"title": "Your Favorites" "title": "Vaše oblíbené"
}, },
"notification": { "notification": {
"title": { "title": {
"Everything": "Everything", "Everything": "Všechno",
"Mentions": "Mentions" "Mentions": "Zmínky"
}, },
"notification_description": { "notification_description": {
"followed_you": "followed you", "followed_you": "vás sleduje",
"favorited_your_post": "favorited your post", "favorited_your_post": "si oblíbil váš příspěvek",
"reblogged_your_post": "reblogged your post", "reblogged_your_post": "boostnul váš příspěvek",
"mentioned_you": "mentioned you", "mentioned_you": "vás zmínil/a",
"request_to_follow_you": "request to follow you", "request_to_follow_you": "požádat vás o sledování",
"poll_has_ended": "poll has ended" "poll_has_ended": "anketa skončila"
}, },
"keyobard": { "keyobard": {
"show_everything": "Show Everything", "show_everything": "Zobrazit vše",
"show_mentions": "Show Mentions" "show_mentions": "Zobrazit zmínky"
}, },
"follow_request": { "follow_request": {
"accept": "Accept", "accept": "Přijmout",
"accepted": "Accepted", "accepted": "Přijato",
"reject": "reject", "reject": "odmítnout",
"rejected": "Rejected" "rejected": "Zamítnuto"
} }
}, },
"thread": { "thread": {
"back_title": "Post", "back_title": "Příspěvek",
"title": "Post from %s" "title": "Příspěvek od %s"
}, },
"settings": { "settings": {
"title": "Settings", "title": "Nastavení",
"section": { "section": {
"appearance": { "appearance": {
"title": "Appearance", "title": "Vzhled",
"automatic": "Automatic", "automatic": "Automaticky",
"light": "Always Light", "light": "Vždy světlý",
"dark": "Always Dark" "dark": "Vždy tmavý"
}, },
"look_and_feel": { "look_and_feel": {
"title": "Look and Feel", "title": "Vzhled a chování",
"use_system": "Use System", "use_system": "Použít systém",
"really_dark": "Really Dark", "really_dark": "Skutečně tmavý",
"sorta_dark": "Sorta Dark", "sorta_dark": "Sorta Dark",
"light": "Light" "light": "Světlý"
}, },
"notifications": { "notifications": {
"title": "Notifications", "title": "Upozornění",
"favorites": "Favorites my post", "favorites": "Oblíbil si můj příspěvek",
"follows": "Follows me", "follows": "Sleduje mě",
"boosts": "Reblogs my post", "boosts": "Boostnul můj příspěvek",
"mentions": "Mentions me", "mentions": "Zmiňuje mě",
"trigger": { "trigger": {
"anyone": "anyone", "anyone": "kdokoliv",
"follower": "a follower", "follower": "sledující",
"follow": "anyone I follow", "follow": "kdokoli, koho sleduji",
"noone": "no one", "noone": "nikdo",
"title": "Notify me when" "title": "Upozornit, když"
} }
}, },
"preference": { "preference": {
"title": "Preferences", "title": "Předvolby",
"true_black_dark_mode": "True black dark mode", "true_black_dark_mode": "Skutečný černý tmavý režim",
"disable_avatar_animation": "Disable animated avatars", "disable_avatar_animation": "Zakázat animované avatary",
"disable_emoji_animation": "Disable animated emojis", "disable_emoji_animation": "Zakázat animované emoji",
"using_default_browser": "Use default browser to open links", "using_default_browser": "Použít výchozí prohlížeč pro otevírání odkazů",
"open_links_in_mastodon": "Open links in Mastodon" "open_links_in_mastodon": "Otevřít odkazy v Mastodonu"
}, },
"boring_zone": { "boring_zone": {
"title": "The Boring Zone", "title": "Nudná část",
"account_settings": "Account Settings", "account_settings": "Nastavení účtu",
"terms": "Terms of Service", "terms": "Podmínky služby",
"privacy": "Privacy Policy" "privacy": "Zásady ochrany osobních údajů"
}, },
"spicy_zone": { "spicy_zone": {
"title": "The Spicy Zone", "title": "Ostrá část",
"clear": "Clear Media Cache", "clear": "Vymazat mezipaměť médií",
"signout": "Sign Out" "signout": "Odhlásit se"
} }
}, },
"footer": { "footer": {
"mastodon_description": "Mastodon is open source software. You can report issues on GitHub at %s (%s)" "mastodon_description": "Mastodon je open source software. Na GitHub můžete nahlásit problémy na %s (%s)"
}, },
"keyboard": { "keyboard": {
"close_settings_window": "Close Settings Window" "close_settings_window": "Zavřít okno nastavení"
} }
}, },
"report": { "report": {
"title_report": "Report", "title_report": "Nahlásit",
"title": "Report %s", "title": "Nahlásit %s",
"step1": "Step 1 of 2", "step1": "Krok 1 ze 2",
"step2": "Step 2 of 2", "step2": "Krok 2 ze 2",
"content1": "Are there any other posts youd like to add to the report?", "content1": "Existují nějaké další příspěvky, které byste chtěli přidat do zprávy?",
"content2": "Is there anything the moderators should know about this report?", "content2": "Je o tomto hlášení něco, co by měli vědět moderátoři?",
"report_sent_title": "Thanks for reporting, well look into this.", "report_sent_title": "Děkujeme za nahlášení, podíváme se na to.",
"send": "Send Report", "send": "Odeslat hlášení",
"skip_to_send": "Send without comment", "skip_to_send": "Odeslat bez komentáře",
"text_placeholder": "Type or paste additional comments", "text_placeholder": "Napište nebo vložte další komentáře",
"reported": "REPORTED", "reported": "NAHLÁŠEN",
"step_one": { "step_one": {
"step_1_of_4": "Step 1 of 4", "step_1_of_4": "Krok 1 ze 4",
"whats_wrong_with_this_post": "What's wrong with this post?", "whats_wrong_with_this_post": "Co je na tomto příspěvku špatně?",
"whats_wrong_with_this_account": "What's wrong with this account?", "whats_wrong_with_this_account": "Co je špatně s tímto účtem?",
"whats_wrong_with_this_username": "What's wrong with %s?", "whats_wrong_with_this_username": "Co je špatně na %s?",
"select_the_best_match": "Select the best match", "select_the_best_match": "Vyberte nejbližší možnost",
"i_dont_like_it": "I dont like it", "i_dont_like_it": "Nelíbí se mi",
"it_is_not_something_you_want_to_see": "It is not something you want to see", "it_is_not_something_you_want_to_see": "Není to něco, co chcete vidět",
"its_spam": "Its spam", "its_spam": "Je to spam",
"malicious_links_fake_engagement_or_repetetive_replies": "Malicious links, fake engagement, or repetetive replies", "malicious_links_fake_engagement_or_repetetive_replies": "Škodlivé odkazy, falešné zapojení nebo opakující se odpovědi",
"it_violates_server_rules": "It violates server rules", "it_violates_server_rules": "Porušuje pravidla serveru",
"you_are_aware_that_it_breaks_specific_rules": "You are aware that it breaks specific rules", "you_are_aware_that_it_breaks_specific_rules": "Máte za to, že porušuje konkrétní pravidla",
"its_something_else": "Its something else", "its_something_else": "Jde o něco jiného",
"the_issue_does_not_fit_into_other_categories": "The issue does not fit into other categories" "the_issue_does_not_fit_into_other_categories": "Problém neodpovídá ostatním kategoriím"
}, },
"step_two": { "step_two": {
"step_2_of_4": "Step 2 of 4", "step_2_of_4": "Krok 2 ze 4",
"which_rules_are_being_violated": "Which rules are being violated?", "which_rules_are_being_violated": "Jaká pravidla jsou porušována?",
"select_all_that_apply": "Select all that apply", "select_all_that_apply": "Vyberte všechna relevantní",
"i_just_dont_like_it": "I just dont like it" "i_just_dont_like_it": "Jen se mi to nelíbí"
}, },
"step_three": { "step_three": {
"step_3_of_4": "Step 3 of 4", "step_3_of_4": "Krok 3 ze 4",
"are_there_any_posts_that_back_up_this_report": "Are there any posts that back up this report?", "are_there_any_posts_that_back_up_this_report": "Existují příspěvky dokládající toto hlášení?",
"select_all_that_apply": "Select all that apply" "select_all_that_apply": "Vyberte všechna relevantní"
}, },
"step_four": { "step_four": {
"step_4_of_4": "Step 4 of 4", "step_4_of_4": "Krok 4 ze 4",
"is_there_anything_else_we_should_know": "Is there anything else we should know?" "is_there_anything_else_we_should_know": "Je ještě něco jiného, co bychom měli vědět?"
}, },
"step_final": { "step_final": {
"dont_want_to_see_this": "Dont want to see this?", "dont_want_to_see_this": "Nechcete to vidět?",
"when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "When you see something you dont like on Mastodon, you can remove the person from your experience.", "when_you_see_something_you_dont_like_on_mastodon_you_can_remove_the_person_from_your_experience.": "Když uvidíte něco, co se vám nelíbí na Mastodonu, můžete odstranit tuto osobu ze svého zážitku.",
"unfollow": "Unfollow", "unfollow": "Přestat sledovat",
"unfollowed": "Unfollowed", "unfollowed": "Už nesledujete",
"unfollow_user": "Unfollow %s", "unfollow_user": "Přestat sledovat %s",
"mute_user": "Mute %s", "mute_user": "Skrýt %s",
"you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "You wont see their posts or reblogs in your home feed. They wont know theyve been muted.", "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "Neuvidíte jejich příspěvky nebo boostnutí v domovském kanálu. Nebudou vědět, že jsou skrytí.",
"block_user": "Block %s", "block_user": "Blokovat %s",
"they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "They will no longer be able to follow or see your posts, but they can see if theyve been blocked.", "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "Už nebudou moci sledovat nebo vidět vaše příspěvky, ale mohou vidět, zda byly zablokovány.",
"while_we_review_this_you_can_take_action_against_user": "While we review this, you can take action against %s" "while_we_review_this_you_can_take_action_against_user": "Zatímco to posuzujeme, můžete podniknout kroky proti %s"
} }
}, },
"preview": { "preview": {
"keyboard": { "keyboard": {
"close_preview": "Close Preview", "close_preview": "Zavřít náhled",
"show_next": "Show Next", "show_next": "Zobrazit další",
"show_previous": "Show Previous" "show_previous": "Zobrazit předchozí"
} }
}, },
"account_list": { "account_list": {
"tab_bar_hint": "Current selected profile: %s. Double tap then hold to show account switcher", "tab_bar_hint": "Aktuální vybraný profil: %s. Dvojitým poklepáním zobrazíte přepínač účtů",
"dismiss_account_switcher": "Dismiss Account Switcher", "dismiss_account_switcher": "Zrušit přepínač účtů",
"add_account": "Add Account" "add_account": "Přidat účet"
}, },
"wizard": { "wizard": {
"new_in_mastodon": "New in Mastodon", "new_in_mastodon": "Nový v Mastodonu",
"multiple_account_switch_intro_description": "Switch between multiple accounts by holding the profile button.", "multiple_account_switch_intro_description": "Přepínání mezi více účty podržením tlačítka profilu.",
"accessibility_hint": "Double tap to dismiss this wizard" "accessibility_hint": "Dvojitým poklepáním tohoto průvodce odmítnete"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Záložky"
} }
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"NSCameraUsageDescription": "Used to take photo for post status", "NSCameraUsageDescription": "Slouží k pořízení fotografie pro příspěvek",
"NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library", "NSPhotoLibraryAddUsageDescription": "Slouží k uložení fotografie do knihovny fotografií",
"NewPostShortcutItemTitle": "New Post", "NewPostShortcutItemTitle": "Nový příspěvek",
"SearchShortcutItemTitle": "Search" "SearchShortcutItemTitle": "Hledat"
} }

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Hybwch", "reblog": "Hybwch",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -248,9 +248,9 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 Follower</string> <string>1 Folgender</string>
<key>other</key> <key>other</key>
<string>%ld Follower</string> <string>%ld Folgende</string>
</dict> </dict>
</dict> </dict>
<key>date.year.left</key> <key>date.year.left</key>

View File

@ -136,6 +136,12 @@
"vote": "Abstimmen", "vote": "Abstimmen",
"closed": "Beendet" "closed": "Beendet"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Antworten", "reply": "Antworten",
"reblog": "Teilen", "reblog": "Teilen",
@ -376,7 +382,11 @@
"video": "Video", "video": "Video",
"attachment_broken": "Dieses %s scheint defekt zu sein und\nkann nicht auf Mastodon hochgeladen werden.", "attachment_broken": "Dieses %s scheint defekt zu sein und\nkann nicht auf Mastodon hochgeladen werden.",
"description_photo": "Für Menschen mit Sehbehinderung beschreiben...", "description_photo": "Für Menschen mit Sehbehinderung beschreiben...",
"description_video": "Für Menschen mit Sehbehinderung beschreiben..." "description_video": "Für Menschen mit Sehbehinderung beschreiben...",
"load_failed": "Laden fehlgeschlagen",
"upload_failed": "Upload fehlgeschlagen",
"can_not_recognize_this_media_attachment": "Medienanhang wurde nicht erkannt",
"attachment_too_large": "Anhang zu groß"
}, },
"poll": { "poll": {
"duration_time": "Dauer: %s", "duration_time": "Dauer: %s",
@ -425,7 +435,7 @@
"dashboard": { "dashboard": {
"posts": "Beiträge", "posts": "Beiträge",
"following": "Gefolgte", "following": "Gefolgte",
"followers": "Folger" "followers": "Folgende"
}, },
"fields": { "fields": {
"add_row": "Zeile hinzufügen", "add_row": "Zeile hinzufügen",
@ -460,7 +470,7 @@
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Reblogs anzeigen", "title": "Reblogs anzeigen",
"message": "Confirm to show reblogs" "message": "Bestätigen um Reblogs anzuzeigen"
}, },
"confirm_hide_reblogs": { "confirm_hide_reblogs": {
"title": "Reblogs ausblenden", "title": "Reblogs ausblenden",
@ -476,11 +486,11 @@
}, },
"follower": { "follower": {
"title": "Follower", "title": "Follower",
"footer": "Follower von anderen Servern werden nicht angezeigt." "footer": "Folger, die nicht auf deinem Server registriert sind, werden nicht angezeigt."
}, },
"following": { "following": {
"title": "Folgende", "title": "Folgende",
"footer": "Wem das Konto folgt wird von anderen Servern werden nicht angezeigt." "footer": "Gefolgte, die nicht auf deinem Server registriert sind, werden nicht angezeigt."
}, },
"familiarFollowers": { "familiarFollowers": {
"title": "Follower, die dir bekannt vorkommen", "title": "Follower, die dir bekannt vorkommen",
@ -590,7 +600,7 @@
"mentions": "Mich erwähnt", "mentions": "Mich erwähnt",
"trigger": { "trigger": {
"anyone": "jeder", "anyone": "jeder",
"follower": "ein Folger", "follower": "ein Folgender",
"follow": "ein von mir Gefolgter", "follow": "ein von mir Gefolgter",
"noone": "niemand", "noone": "niemand",
"title": "Benachrichtige mich, wenn" "title": "Benachrichtige mich, wenn"
@ -696,7 +706,7 @@
"accessibility_hint": "Doppeltippen, um diesen Assistenten zu schließen" "accessibility_hint": "Doppeltippen, um diesen Assistenten zu schließen"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Lesezeichen"
} }
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"NSCameraUsageDescription": "Verwendet um Fotos für neue Beiträge aufzunehmen", "NSCameraUsageDescription": "Wird verwendet, um Fotos für neue Beiträge aufzunehmen",
"NSPhotoLibraryAddUsageDescription": "Verwendet um Fotos zu speichern", "NSPhotoLibraryAddUsageDescription": "Wird verwendet, um Foto in der Foto-Mediathek zu speichern",
"NewPostShortcutItemTitle": "Neuer Beitrag", "NewPostShortcutItemTitle": "Neuer Beitrag",
"SearchShortcutItemTitle": "Suche" "SearchShortcutItemTitle": "Suchen"
} }

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -138,7 +138,7 @@
}, },
"meta_entity": { "meta_entity": {
"url": "Link: %s", "url": "Link: %s",
"hashtag": "Hastag %s", "hashtag": "Hashtag: %s",
"mention": "Show Profile: %s", "mention": "Show Profile: %s",
"email": "Email address: %s" "email": "Email address: %s"
}, },
@ -382,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -136,6 +136,12 @@
"vote": "Votar", "vote": "Votar",
"closed": "Cerrada" "closed": "Cerrada"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Responder", "reply": "Responder",
"reblog": "Adherir", "reblog": "Adherir",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "Este archivo de %s está roto\ny no se puede subir a Mastodon.", "attachment_broken": "Este archivo de %s está roto\ny no se puede subir a Mastodon.",
"description_photo": "Describí la imagen para personas con dificultades visuales…", "description_photo": "Describí la imagen para personas con dificultades visuales…",
"description_video": "Describí el video para personas con dificultades visuales…" "description_video": "Describí el video para personas con dificultades visuales…",
"load_failed": "Falló la descarga",
"upload_failed": "Falló la subida",
"can_not_recognize_this_media_attachment": "No se pudo reconocer este archivo adjunto",
"attachment_too_large": "Adjunto demasiado grande"
}, },
"poll": { "poll": {
"duration_time": "Duración: %s", "duration_time": "Duración: %s",

View File

@ -136,6 +136,12 @@
"vote": "Vota", "vote": "Vota",
"closed": "Cerrado" "closed": "Cerrado"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Responder", "reply": "Responder",
"reblog": "Rebloguear", "reblog": "Rebloguear",
@ -376,7 +382,11 @@
"video": "vídeo", "video": "vídeo",
"attachment_broken": "Este %s está roto y no puede\nsubirse a Mastodon.", "attachment_broken": "Este %s está roto y no puede\nsubirse a Mastodon.",
"description_photo": "Describe la foto para los usuarios con dificultad visual...", "description_photo": "Describe la foto para los usuarios con dificultad visual...",
"description_video": "Describe el vídeo para los usuarios con dificultad visual..." "description_video": "Describe el vídeo para los usuarios con dificultad visual...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duración: %s", "duration_time": "Duración: %s",

View File

@ -136,6 +136,12 @@
"vote": "Bozkatu", "vote": "Bozkatu",
"closed": "Itxita" "closed": "Itxita"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Erantzun", "reply": "Erantzun",
"reblog": "Bultzada", "reblog": "Bultzada",
@ -376,7 +382,11 @@
"video": "bideoa", "video": "bideoa",
"attachment_broken": "%s hondatuta dago eta ezin da\nMastodonera igo.", "attachment_broken": "%s hondatuta dago eta ezin da\nMastodonera igo.",
"description_photo": "Deskribatu argazkia ikusmen arazoak dituztenentzat...", "description_photo": "Deskribatu argazkia ikusmen arazoak dituztenentzat...",
"description_video": "Deskribatu bideoa ikusmen arazoak dituztenentzat..." "description_video": "Deskribatu bideoa ikusmen arazoak dituztenentzat...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Iraupena: %s", "duration_time": "Iraupena: %s",

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Suljettu" "closed": "Suljettu"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Vastaa", "reply": "Vastaa",
"reblog": "Jaa edelleen", "reblog": "Jaa edelleen",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Kuvaile kuva näkövammaisille...", "description_photo": "Kuvaile kuva näkövammaisille...",
"description_video": "Kuvaile video näkövammaisille..." "description_video": "Kuvaile video näkövammaisille...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Kesto: %s", "duration_time": "Kesto: %s",

View File

@ -136,6 +136,12 @@
"vote": "Voter", "vote": "Voter",
"closed": "Fermé" "closed": "Fermé"
}, },
"meta_entity": {
"url": "Lien : %s",
"hashtag": "Hashtag : %s",
"mention": "Afficher le profile : %s",
"email": "Adresse e-mail : %s"
},
"actions": { "actions": {
"reply": "Répondre", "reply": "Répondre",
"reblog": "Rebloguer", "reblog": "Rebloguer",
@ -376,7 +382,11 @@
"video": "vidéo", "video": "vidéo",
"attachment_broken": "Ce %s est brisé et ne peut pas être\ntéléversé sur Mastodon.", "attachment_broken": "Ce %s est brisé et ne peut pas être\ntéléversé sur Mastodon.",
"description_photo": "Décrire cette photo pour les personnes malvoyantes...", "description_photo": "Décrire cette photo pour les personnes malvoyantes...",
"description_video": "Décrire cette vidéo pour les personnes malvoyantes..." "description_video": "Décrire cette vidéo pour les personnes malvoyantes...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Durée: %s", "duration_time": "Durée: %s",
@ -696,7 +706,7 @@
"accessibility_hint": "Tapotez deux fois pour fermer cet assistant" "accessibility_hint": "Tapotez deux fois pour fermer cet assistant"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Favoris"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "Cuir bhòt", "vote": "Cuir bhòt",
"closed": "Dùinte" "closed": "Dùinte"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Freagair", "reply": "Freagair",
"reblog": "Brosnaich", "reblog": "Brosnaich",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "Seo %s a tha briste is cha ghabh\na luchdadh suas gu Mastodon.", "attachment_broken": "Seo %s a tha briste is cha ghabh\na luchdadh suas gu Mastodon.",
"description_photo": "Mìnich an dealbh dhan fheadhainn air a bheil cion-lèirsinne…", "description_photo": "Mìnich an dealbh dhan fheadhainn air a bheil cion-lèirsinne…",
"description_video": "Mìnich a video dhan fheadhainn air a bheil cion-lèirsinne…" "description_video": "Mìnich a video dhan fheadhainn air a bheil cion-lèirsinne…",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Faide: %s", "duration_time": "Faide: %s",

View File

@ -136,6 +136,12 @@
"vote": "Votar", "vote": "Votar",
"closed": "Pechada" "closed": "Pechada"
}, },
"meta_entity": {
"url": "Ligazón: %s",
"hashtag": "Cancelo: %s",
"mention": "Mostrar Perfil: %s",
"email": "Enderezo de email: %s"
},
"actions": { "actions": {
"reply": "Responder", "reply": "Responder",
"reblog": "Promover", "reblog": "Promover",
@ -181,8 +187,8 @@
"unmute_user": "Deixar de acalar a @%s", "unmute_user": "Deixar de acalar a @%s",
"muted": "Acalada", "muted": "Acalada",
"edit_info": "Editar info", "edit_info": "Editar info",
"show_reblogs": "Show Reblogs", "show_reblogs": "Mostrar Promocións",
"hide_reblogs": "Hide Reblogs" "hide_reblogs": "Agochar Promocións"
}, },
"timeline": { "timeline": {
"filtered": "Filtrado", "filtered": "Filtrado",
@ -376,7 +382,11 @@
"video": "vídeo", "video": "vídeo",
"attachment_broken": "Este %s está estragado e non pode\nser subido a Mastodon.", "attachment_broken": "Este %s está estragado e non pode\nser subido a Mastodon.",
"description_photo": "Describe a foto para persoas con problemas visuais...", "description_photo": "Describe a foto para persoas con problemas visuais...",
"description_video": "Describe o vídeo para persoas con problemas visuais..." "description_video": "Describe o vídeo para persoas con problemas visuais...",
"load_failed": "Fallou a carga",
"upload_failed": "Erro na subida",
"can_not_recognize_this_media_attachment": "Non se recoñece o tipo de multimedia",
"attachment_too_large": "Adxunto demasiado grande"
}, },
"poll": { "poll": {
"duration_time": "Duración: %s", "duration_time": "Duración: %s",
@ -459,12 +469,12 @@
"message": "Confirma o desbloqueo de %s" "message": "Confirma o desbloqueo de %s"
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Show Reblogs", "title": "Mostrar Promocións",
"message": "Confirm to show reblogs" "message": "Confirma para ver promocións"
}, },
"confirm_hide_reblogs": { "confirm_hide_reblogs": {
"title": "Hide Reblogs", "title": "Agochar Promocións",
"message": "Confirm to hide reblogs" "message": "Confirma para agochar promocións"
} }
}, },
"accessibility": { "accessibility": {
@ -696,7 +706,7 @@
"accessibility_hint": "Dobre toque para desbotar este asistente" "accessibility_hint": "Dobre toque para desbotar este asistente"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Marcadores"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -6,29 +6,29 @@
"please_try_again_later": "Silakan coba lagi nanti." "please_try_again_later": "Silakan coba lagi nanti."
}, },
"sign_up_failure": { "sign_up_failure": {
"title": "Sign Up Failure" "title": "Gagal Mendaftar"
}, },
"server_error": { "server_error": {
"title": "Kesalahan Server" "title": "Kesalahan Server"
}, },
"vote_failure": { "vote_failure": {
"title": "Vote Failure", "title": "Gagal Voting",
"poll_ended": "Japat telah berakhir" "poll_ended": "Japat telah berakhir"
}, },
"discard_post_content": { "discard_post_content": {
"title": "Hapus Draf", "title": "Hapus Draf",
"message": "Confirm to discard composed post content." "message": "Konfirmasi untuk mengabaikan postingan yang dibuat."
}, },
"publish_post_failure": { "publish_post_failure": {
"title": "Publish Failure", "title": "Gagal Mempublikasikan",
"message": "Failed to publish the post.\nPlease check your internet connection.", "message": "Gagal mempublikasikan postingan.\nMohon periksa koneksi Internet Anda.",
"attachments_message": { "attachments_message": {
"video_attach_with_photo": "Tidak dapat melampirkan video di postingan yang sudah mengandung gambar.", "video_attach_with_photo": "Tidak dapat melampirkan video di postingan yang sudah mengandung gambar.",
"more_than_one_video": "Tidak dapat melampirkan lebih dari satu video." "more_than_one_video": "Tidak dapat melampirkan lebih dari satu video."
} }
}, },
"edit_profile_failure": { "edit_profile_failure": {
"title": "Edit Profile Error", "title": "Masalah dalam mengubah profil",
"message": "Tidak dapat menyunting profil. Harap coba lagi." "message": "Tidak dapat menyunting profil. Harap coba lagi."
}, },
"sign_out": { "sign_out": {
@ -37,16 +37,16 @@
"confirm": "Keluar" "confirm": "Keluar"
}, },
"block_domain": { "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": "Apakah Anda benar, benar yakin ingin memblokir keseluruhan %s? Dalam kebanyakan kasus, beberapa pemblokiran atau pembisuan yang ditargetkan sudah cukup dan lebih disukai. Anda tidak akan melihat konten dari domain tersebut dan semua pengikut Anda dari domain itu akan dihapus.",
"block_entire_domain": "Blokir Domain" "block_entire_domain": "Blokir Domain"
}, },
"save_photo_failure": { "save_photo_failure": {
"title": "Save Photo Failure", "title": "Gagal Menyimpan Foto",
"message": "Please enable the photo library access permission to save the photo." "message": "Mohon aktifkan izin akses pustaka foto untuk menyimpan foto."
}, },
"delete_post": { "delete_post": {
"title": "Apakah Anda yakin ingin menghapus postingan ini?", "title": "Apakah Anda yakin ingin menghapus postingan ini?",
"message": "Are you sure you want to delete this post?" "message": "Apakah Anda yakin untuk menghapus kiriman ini?"
}, },
"clean_cache": { "clean_cache": {
"title": "Bersihkan Cache", "title": "Bersihkan Cache",
@ -67,11 +67,11 @@
"done": "Selesai", "done": "Selesai",
"confirm": "Konfirmasi", "confirm": "Konfirmasi",
"continue": "Lanjut", "continue": "Lanjut",
"compose": "Compose", "compose": "Tulis",
"cancel": "Batal", "cancel": "Batal",
"discard": "Discard", "discard": "Buang",
"try_again": "Coba Lagi", "try_again": "Coba Lagi",
"take_photo": "Take Photo", "take_photo": "Ambil Foto",
"save_photo": "Simpan Foto", "save_photo": "Simpan Foto",
"copy_photo": "Salin Foto", "copy_photo": "Salin Foto",
"sign_in": "Masuk", "sign_in": "Masuk",
@ -82,9 +82,9 @@
"share_user": "Bagikan %s", "share_user": "Bagikan %s",
"share_post": "Bagikan Postingan", "share_post": "Bagikan Postingan",
"open_in_safari": "Buka di Safari", "open_in_safari": "Buka di Safari",
"open_in_browser": "Open in Browser", "open_in_browser": "Buka di Peramban",
"find_people": "Cari orang untuk diikuti", "find_people": "Cari orang untuk diikuti",
"manually_search": "Manually search instead", "manually_search": "Cari secara manual saja",
"skip": "Lewati", "skip": "Lewati",
"reply": "Balas", "reply": "Balas",
"report_user": "Laporkan %s", "report_user": "Laporkan %s",
@ -111,16 +111,16 @@
"next_status": "Postingan Selanjutnya", "next_status": "Postingan Selanjutnya",
"open_status": "Buka Postingan", "open_status": "Buka Postingan",
"open_author_profile": "Buka Profil Penulis", "open_author_profile": "Buka Profil Penulis",
"open_reblogger_profile": "Open Reblogger's Profile", "open_reblogger_profile": "Buka Profil Reblogger",
"reply_status": "Balas Postingan", "reply_status": "Balas Postingan",
"toggle_reblog": "Toggle Reblog on Post", "toggle_reblog": "Nyalakan Reblog pada Postingan",
"toggle_favorite": "Toggle Favorite on Post", "toggle_favorite": "Nyalakan Favorit pada Postingan",
"toggle_content_warning": "Toggle Content Warning", "toggle_content_warning": "Nyalakan Peringatan Konten",
"preview_image": "Preview Image" "preview_image": "Pratinjau Gambar"
}, },
"segmented_control": { "segmented_control": {
"previous_section": "Previous Section", "previous_section": "Bagian Sebelumnya",
"next_section": "Next Section" "next_section": "Bagian Selanjutnya"
} }
}, },
"status": { "status": {
@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Ditutup" "closed": "Ditutup"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Balas", "reply": "Balas",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "%s ini rusak dan tidak dapat diunggah ke Mastodon.", "attachment_broken": "%s ini rusak dan tidak dapat diunggah ke Mastodon.",
"description_photo": "Jelaskan fotonya untuk mereka yang tidak dapat melihat dengan jelas...", "description_photo": "Jelaskan fotonya untuk mereka yang tidak dapat melihat dengan jelas...",
"description_video": "Jelaskan videonya untuk mereka yang tidak dapat melihat dengan jelas..." "description_video": "Jelaskan videonya untuk mereka yang tidak dapat melihat dengan jelas...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Durasi: %s", "duration_time": "Durasi: %s",

View File

@ -136,6 +136,12 @@
"vote": "Vota", "vote": "Vota",
"closed": "Chiuso" "closed": "Chiuso"
}, },
"meta_entity": {
"url": "Collegamento: %s",
"hashtag": "Hashtag: %s",
"mention": "Mostra il profilo: %s",
"email": "Indirizzo email: %s"
},
"actions": { "actions": {
"reply": "Rispondi", "reply": "Rispondi",
"reblog": "Condivisione", "reblog": "Condivisione",
@ -376,7 +382,11 @@
"video": "filmato", "video": "filmato",
"attachment_broken": "Questo %s è rotto e non può essere\ncaricato su Mastodon.", "attachment_broken": "Questo %s è rotto e non può essere\ncaricato su Mastodon.",
"description_photo": "Descrivi la foto per gli utenti ipovedenti...", "description_photo": "Descrivi la foto per gli utenti ipovedenti...",
"description_video": "Descrivi il filmato per gli utenti ipovedenti..." "description_video": "Descrivi il filmato per gli utenti ipovedenti...",
"load_failed": "Caricamento fallito",
"upload_failed": "Caricamento fallito",
"can_not_recognize_this_media_attachment": "Impossibile riconoscere questo allegato multimediale",
"attachment_too_large": "Allegato troppo grande"
}, },
"poll": { "poll": {
"duration_time": "Durata: %s", "duration_time": "Durata: %s",
@ -696,7 +706,7 @@
"accessibility_hint": "Doppio tocco per eliminare questa procedura guidata" "accessibility_hint": "Doppio tocco per eliminare questa procedura guidata"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Segnalibri"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "投票", "vote": "投票",
"closed": "終了" "closed": "終了"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "返信", "reply": "返信",
"reblog": "ブースト", "reblog": "ブースト",
@ -376,7 +382,11 @@
"video": "動画", "video": "動画",
"attachment_broken": "%sは壊れていてMastodonにアップロードできません。", "attachment_broken": "%sは壊れていてMastodonにアップロードできません。",
"description_photo": "閲覧が難しいユーザーへの画像説明", "description_photo": "閲覧が難しいユーザーへの画像説明",
"description_video": "閲覧が難しいユーザーへの映像説明" "description_video": "閲覧が難しいユーザーへの映像説明",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "期間: %s", "duration_time": "期間: %s",

View File

@ -136,6 +136,12 @@
"vote": "Dɣeṛ", "vote": "Dɣeṛ",
"closed": "Ifukk" "closed": "Ifukk"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Err", "reply": "Err",
"reblog": "Aɛiwed n usuffeɣ", "reblog": "Aɛiwed n usuffeɣ",
@ -376,7 +382,11 @@
"video": "tavidyutt", "video": "tavidyutt",
"attachment_broken": "%s-a yerreẓ, ur yezmir ara\nAd d-yettwasali ɣef Mastodon.", "attachment_broken": "%s-a yerreẓ, ur yezmir ara\nAd d-yettwasali ɣef Mastodon.",
"description_photo": "Glem-d tawlaft i wid yesɛan ugur deg yiẓri...", "description_photo": "Glem-d tawlaft i wid yesɛan ugur deg yiẓri...",
"description_video": "Glem-d tavidyut i wid yesɛan ugur deg yiẓri..." "description_video": "Glem-d tavidyut i wid yesɛan ugur deg yiẓri...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Tangazt: %s", "duration_time": "Tangazt: %s",

View File

@ -136,6 +136,12 @@
"vote": "Deng bide", "vote": "Deng bide",
"closed": "Girtî" "closed": "Girtî"
}, },
"meta_entity": {
"url": "Girêdan: %s",
"hashtag": "Hashtagê: %s",
"mention": "Profîlê nîşan bide: %s",
"email": "Navnîşanên e-nameyê: %s"
},
"actions": { "actions": {
"reply": "Bersivê bide", "reply": "Bersivê bide",
"reblog": "Ji nû ve nivîsandin", "reblog": "Ji nû ve nivîsandin",
@ -181,8 +187,8 @@
"unmute_user": "%s bêdeng neke", "unmute_user": "%s bêdeng neke",
"muted": "Bêdengkirî", "muted": "Bêdengkirî",
"edit_info": "Zanyariyan serrast bike", "edit_info": "Zanyariyan serrast bike",
"show_reblogs": "Show Reblogs", "show_reblogs": "Bilindkirinan nîşan bide",
"hide_reblogs": "Hide Reblogs" "hide_reblogs": "Bilindkirinan veşêre"
}, },
"timeline": { "timeline": {
"filtered": "Parzûnkirî", "filtered": "Parzûnkirî",
@ -376,7 +382,11 @@
"video": "vîdyo", "video": "vîdyo",
"attachment_broken": "Ev %s naxebite û nayê barkirin\n li ser Mastodon.", "attachment_broken": "Ev %s naxebite û nayê barkirin\n li ser Mastodon.",
"description_photo": "Wêneyê ji bo kêmbînên dîtbar bide nasîn...", "description_photo": "Wêneyê ji bo kêmbînên dîtbar bide nasîn...",
"description_video": "Vîdyoyê ji bo kêmbînên dîtbar bide nasîn..." "description_video": "Vîdyoyê ji bo kêmbînên dîtbar bide nasîn...",
"load_failed": "Barkirin têk çû",
"upload_failed": "Barkirin têk çû",
"can_not_recognize_this_media_attachment": "Nikare ev pêveka medyayê nas bike",
"attachment_too_large": "Pêvek pir mezin e"
}, },
"poll": { "poll": {
"duration_time": "Dirêjî: %s", "duration_time": "Dirêjî: %s",
@ -459,12 +469,12 @@
"message": "Ji bo rakirina astengkirinê %s bipejirîne" "message": "Ji bo rakirina astengkirinê %s bipejirîne"
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Show Reblogs", "title": "Bilindkirinan nîşan bide",
"message": "Confirm to show reblogs" "message": "Bo nîşandana bilindkirinan bipejirîne"
}, },
"confirm_hide_reblogs": { "confirm_hide_reblogs": {
"title": "Hide Reblogs", "title": "Bilindkirinan veşêre",
"message": "Confirm to hide reblogs" "message": "Bo veşartina bilindkirinan bipejirîne"
} }
}, },
"accessibility": { "accessibility": {
@ -696,7 +706,7 @@
"accessibility_hint": "Du caran bitikîne da ku çarçoveyahilpekok ji holê rakî" "accessibility_hint": "Du caran bitikîne da ku çarçoveyahilpekok ji holê rakî"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Şûnpel"
} }
} }
} }

View File

@ -129,13 +129,19 @@
"show_post": "게시물 보기", "show_post": "게시물 보기",
"show_user_profile": "사용자 프로필 보기", "show_user_profile": "사용자 프로필 보기",
"content_warning": "열람 주의", "content_warning": "열람 주의",
"sensitive_content": "Sensitive Content", "sensitive_content": "민감한 콘텐츠",
"media_content_warning": "아무 곳이나 눌러서 보기", "media_content_warning": "아무 곳이나 눌러서 보기",
"tap_to_reveal": "눌러서 확인", "tap_to_reveal": "눌러서 확인",
"poll": { "poll": {
"vote": "투표", "vote": "투표",
"closed": "마감" "closed": "마감"
}, },
"meta_entity": {
"url": "링크: %s",
"hashtag": "해시태그: %s",
"mention": "프로필 보기: %s",
"email": "이메일 주소: %s"
},
"actions": { "actions": {
"reply": "답글", "reply": "답글",
"reblog": "리블로그", "reblog": "리블로그",
@ -376,7 +382,11 @@
"video": "동영상", "video": "동영상",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "시각장애인을 위한 사진 설명…", "description_photo": "시각장애인을 위한 사진 설명…",
"description_video": "시각장애인을 위한 영상 설명…" "description_video": "시각장애인을 위한 영상 설명…",
"load_failed": "불러오기 실패",
"upload_failed": "업로드 실패",
"can_not_recognize_this_media_attachment": "이 미디어 첨부파일을 인식할 수 없습니다",
"attachment_too_large": "첨부파일이 너무 큽니다"
}, },
"poll": { "poll": {
"duration_time": "기간: %s", "duration_time": "기간: %s",

View File

@ -136,6 +136,12 @@
"vote": "Balsot", "vote": "Balsot",
"closed": "Aizvērts" "closed": "Aizvērts"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Atbildēt", "reply": "Atbildēt",
"reblog": "Reblogot", "reblog": "Reblogot",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -136,6 +136,12 @@
"vote": "Stemmen", "vote": "Stemmen",
"closed": "Gesloten" "closed": "Gesloten"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reageren", "reply": "Reageren",
"reblog": "Delen", "reblog": "Delen",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "Deze %s is corrupt en kan niet geüpload worden naar Mastodon.", "attachment_broken": "Deze %s is corrupt en kan niet geüpload worden naar Mastodon.",
"description_photo": "Omschrijf de foto voor mensen met een visuele beperking...", "description_photo": "Omschrijf de foto voor mensen met een visuele beperking...",
"description_video": "Omschrijf de video voor mensen met een visuele beperking..." "description_video": "Omschrijf de video voor mensen met een visuele beperking...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duur: %s", "duration_time": "Duur: %s",

View File

@ -6,7 +6,7 @@
"please_try_again_later": "Tente novamente mais tarde." "please_try_again_later": "Tente novamente mais tarde."
}, },
"sign_up_failure": { "sign_up_failure": {
"title": "Sign Up Failure" "title": "Falha no cadastro"
}, },
"server_error": { "server_error": {
"title": "Erro do servidor" "title": "Erro do servidor"
@ -17,7 +17,7 @@
}, },
"discard_post_content": { "discard_post_content": {
"title": "Deletar Rascunho", "title": "Deletar Rascunho",
"message": "Confirm to discard composed post content." "message": "Confirme para descartar o conteúdo da publicação composta."
}, },
"publish_post_failure": { "publish_post_failure": {
"title": "Falha ao publicar", "title": "Falha ao publicar",
@ -42,7 +42,7 @@
}, },
"save_photo_failure": { "save_photo_failure": {
"title": "Falha ao salvar foto", "title": "Falha ao salvar foto",
"message": "Please enable the photo library access permission to save the photo." "message": "Por favor, ative a permissão de acesso à galeria para salvar a foto."
}, },
"delete_post": { "delete_post": {
"title": "Deletar Toot", "title": "Deletar Toot",
@ -71,212 +71,218 @@
"cancel": "Cancelar", "cancel": "Cancelar",
"discard": "Descartar", "discard": "Descartar",
"try_again": "Tente novamente", "try_again": "Tente novamente",
"take_photo": "Take Photo", "take_photo": "Tirar foto",
"save_photo": "Salvar foto", "save_photo": "Salvar foto",
"copy_photo": "Copiar foto", "copy_photo": "Copiar foto",
"sign_in": "Sign In", "sign_in": "Entrar",
"sign_up": "Sign Up", "sign_up": "Criar conta",
"see_more": "See More", "see_more": "Ver mais",
"preview": "Preview", "preview": "Pré-visualização",
"share": "Compartilhar", "share": "Compartilhar",
"share_user": "Compartilhar %s", "share_user": "Compartilhar %s",
"share_post": "Share Post", "share_post": "Compartilhar postagem",
"open_in_safari": "Open in Safari", "open_in_safari": "Abrir no Safari",
"open_in_browser": "Open in Browser", "open_in_browser": "Abrir no navegador",
"find_people": "Find people to follow", "find_people": "Encontre pessoas para seguir",
"manually_search": "Manually search instead", "manually_search": "Procure manualmente em vez disso",
"skip": "Skip", "skip": "Pular",
"reply": "Reply", "reply": "Responder",
"report_user": "Report %s", "report_user": "Denunciar %s",
"block_domain": "Block %s", "block_domain": "Bloquear %s",
"unblock_domain": "Unblock %s", "unblock_domain": "Desbloquear %s",
"settings": "Settings", "settings": "Configurações",
"delete": "Delete" "delete": "Excluir"
}, },
"tabs": { "tabs": {
"home": "Home", "home": "Início",
"search": "Search", "search": "Buscar",
"notification": "Notification", "notification": "Notificação",
"profile": "Profile" "profile": "Perfil"
}, },
"keyboard": { "keyboard": {
"common": { "common": {
"switch_to_tab": "Switch to %s", "switch_to_tab": "Mudar para %s",
"compose_new_post": "Compose New Post", "compose_new_post": "Compor novo toot",
"show_favorites": "Show Favorites", "show_favorites": "Mostrar favoritos",
"open_settings": "Open Settings" "open_settings": "Abrir configurações"
}, },
"timeline": { "timeline": {
"previous_status": "Previous Post", "previous_status": "Postagem anterior",
"next_status": "Next Post", "next_status": "Próxima postagem",
"open_status": "Open Post", "open_status": "Abrir toot",
"open_author_profile": "Open Author's Profile", "open_author_profile": "Abrir perfil do autor",
"open_reblogger_profile": "Open Reblogger's Profile", "open_reblogger_profile": "Abrir perfil do reblogger",
"reply_status": "Reply to Post", "reply_status": "Responder toot",
"toggle_reblog": "Toggle Reblog on Post", "toggle_reblog": "Ativar/desativar Reblog na postagem",
"toggle_favorite": "Toggle Favorite on Post", "toggle_favorite": "Ativar/desativar Favorito na postagem",
"toggle_content_warning": "Toggle Content Warning", "toggle_content_warning": "Ativar/desativar Aviso de Conteúdo",
"preview_image": "Preview Image" "preview_image": "Pré-visualizar imagem"
}, },
"segmented_control": { "segmented_control": {
"previous_section": "Previous Section", "previous_section": "Seção anterior",
"next_section": "Next Section" "next_section": "Próxima seção"
} }
}, },
"status": { "status": {
"user_reblogged": "%s reblogged", "user_reblogged": "%s reblogou",
"user_replied_to": "Replied to %s", "user_replied_to": "Em resposta a %s",
"show_post": "Show Post", "show_post": "Mostrar postagem",
"show_user_profile": "Show user profile", "show_user_profile": "Mostrar perfil de usuário",
"content_warning": "Content Warning", "content_warning": "Aviso de Conteúdo",
"sensitive_content": "Sensitive Content", "sensitive_content": "Conteúdo sensível",
"media_content_warning": "Tap anywhere to reveal", "media_content_warning": "Toque em qualquer lugar para revelar",
"tap_to_reveal": "Tap to reveal", "tap_to_reveal": "Toque para revelar",
"poll": { "poll": {
"vote": "Vote", "vote": "Votar",
"closed": "Closed" "closed": "Fechado"
},
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Mostrar perfil: %s",
"email": "Endereço de e-mail: %s"
}, },
"actions": { "actions": {
"reply": "Responder", "reply": "Responder",
"reblog": "Reblog", "reblog": "Reblogar",
"unreblog": "Undo reblog", "unreblog": "Desfazer reblog",
"favorite": "Favorite", "favorite": "Favoritar",
"unfavorite": "Unfavorite", "unfavorite": "Remover favorito",
"menu": "Menu", "menu": "Menu",
"hide": "Hide", "hide": "Ocultar",
"show_image": "Show image", "show_image": "Exibir imagem",
"show_gif": "Show GIF", "show_gif": "Exibir GIF",
"show_video_player": "Show video player", "show_video_player": "Mostrar reprodutor de vídeo",
"tap_then_hold_to_show_menu": "Tap then hold to show menu" "tap_then_hold_to_show_menu": "Toque e em seguida segure para exibir o menu"
}, },
"tag": { "tag": {
"url": "URL", "url": "URL",
"mention": "Mention", "mention": "Mencionar",
"link": "Link", "link": "Link",
"hashtag": "Hashtag", "hashtag": "Hashtag",
"email": "Email", "email": "E-mail",
"emoji": "Emoji" "emoji": "Emoji"
}, },
"visibility": { "visibility": {
"unlisted": "Everyone can see this post but not display in the public timeline.", "unlisted": "Everyone can see this post but not display in the public timeline.",
"private": "Only their followers can see this post.", "private": "Somente seus seguidores podem ver essa postagem.",
"private_from_me": "Only my followers can see this post.", "private_from_me": "Somente meus seguidores podem ver essa postagem.",
"direct": "Only mentioned user can see this post." "direct": "Somente o usuário mencionado pode ver essa postagem."
} }
}, },
"friendship": { "friendship": {
"follow": "Follow", "follow": "Seguir",
"following": "Following", "following": "Seguindo",
"request": "Request", "request": "Solicitação",
"pending": "Pending", "pending": "Pendente",
"block": "Block", "block": "Bloquear",
"block_user": "Block %s", "block_user": "Bloquear %s",
"block_domain": "Block %s", "block_domain": "Bloquear %s",
"unblock": "Unblock", "unblock": "Desbloquear",
"unblock_user": "Unblock %s", "unblock_user": "Desbloquear %s",
"blocked": "Blocked", "blocked": "Bloqueado",
"mute": "Mute", "mute": "Silenciar",
"mute_user": "Mute %s", "mute_user": "Silenciar %s",
"unmute": "Unmute", "unmute": "Remover silenciado",
"unmute_user": "Unmute %s", "unmute_user": "Remover silenciado %s",
"muted": "Muted", "muted": "Silenciado",
"edit_info": "Edit Info", "edit_info": "Editar informação",
"show_reblogs": "Show Reblogs", "show_reblogs": "Mostrar Reblogs",
"hide_reblogs": "Hide Reblogs" "hide_reblogs": "Ocultar Reblogs"
}, },
"timeline": { "timeline": {
"filtered": "Filtered", "filtered": "Filtrado",
"timestamp": { "timestamp": {
"now": "Now" "now": "Agora"
}, },
"loader": { "loader": {
"load_missing_posts": "Load missing posts", "load_missing_posts": "Carregar postagens em falta",
"loading_missing_posts": "Loading missing posts...", "loading_missing_posts": "Carregando postagens em falta...",
"show_more_replies": "Show more replies" "show_more_replies": "Exibir mais respostas"
}, },
"header": { "header": {
"no_status_found": "No Post Found", "no_status_found": "Nenhuma postagem encontrada",
"blocking_warning": "You cant view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", "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.", "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.", "blocked_warning": "Você não pode ver o perfil desse usuário até que ele o desbloqueie.",
"user_blocked_warning": "You cant view %ss profile\nuntil they unblock you.", "user_blocked_warning": "Você não pode ver o perfil de %s até que ele o desbloqueie.",
"suspended_warning": "This user has been suspended.", "suspended_warning": "Esse usuário foi suspenso.",
"user_suspended_warning": "%ss account has been suspended." "user_suspended_warning": "A conta de %s foi suspensa."
} }
} }
} }
}, },
"scene": { "scene": {
"welcome": { "welcome": {
"slogan": "Social networking\nback in your hands.", "slogan": "Você no controle de sua rede social.",
"get_started": "Get Started", "get_started": "Comece já",
"log_in": "Log In" "log_in": "Entrar"
}, },
"server_picker": { "server_picker": {
"title": "Mastodon is made of users in different servers.", "title": "Mastodon é feito de usuários em instâncias diferentes.",
"subtitle": "Pick a server based on your interests, region, or a general purpose one.", "subtitle": "Escolha uma instância baseada nos seus interesses, região, ou em uma proposta geral.",
"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.", "subtitle_extend": "Escolha uma instância baseada nos seus interesses, região, ou em uma proposta geral. Cada instância é operada por um indivíduo ou uma organização totalmente independente.",
"button": { "button": {
"category": { "category": {
"all": "All", "all": "Todos",
"all_accessiblity_description": "Category: All", "all_accessiblity_description": "Categoria: Todos",
"academia": "academia", "academia": "acadêmico",
"activism": "activism", "activism": "ativismo",
"food": "food", "food": "comida",
"furry": "furry", "furry": "furry",
"games": "games", "games": "jogos",
"general": "general", "general": "geral",
"journalism": "journalism", "journalism": "jornalismo",
"lgbt": "lgbt", "lgbt": "lgbt",
"regional": "regional", "regional": "regional",
"art": "art", "art": "arte",
"music": "music", "music": "música",
"tech": "tech" "tech": "tecnologia"
}, },
"see_less": "See Less", "see_less": "Ver menos",
"see_more": "See More" "see_more": "Ver mais"
}, },
"label": { "label": {
"language": "LANGUAGE", "language": "Idioma",
"users": "USERS", "users": "Usuários",
"category": "CATEGORY" "category": "Categoria"
}, },
"input": { "input": {
"placeholder": "Search servers", "placeholder": "Procurar instâncias",
"search_servers_or_enter_url": "Search servers or enter URL" "search_servers_or_enter_url": "Procurar instâncias ou inserir URL"
}, },
"empty_state": { "empty_state": {
"finding_servers": "Finding available servers...", "finding_servers": "Procurando instâncias disponíveis...",
"bad_network": "Something went wrong while loading the data. Check your internet connection.", "bad_network": "Algo deu errado ao carregar os dados. Verifique sua conexão com a internet.",
"no_results": "No results" "no_results": "Sem resultados"
} }
}, },
"register": { "register": {
"title": "Lets get you set up on %s", "title": "Vamos configurar você em %s",
"lets_get_you_set_up_on_domain": "Lets get you set up on %s", "lets_get_you_set_up_on_domain": "Lets get you set up on %s",
"input": { "input": {
"avatar": { "avatar": {
"delete": "Delete" "delete": "Excluir"
}, },
"username": { "username": {
"placeholder": "username", "placeholder": "nome de usuário",
"duplicate_prompt": "This username is taken." "duplicate_prompt": "Esse nome de usuário já está sendo usado."
}, },
"display_name": { "display_name": {
"placeholder": "display name" "placeholder": "nome de exibição"
}, },
"email": { "email": {
"placeholder": "email" "placeholder": "e-mail"
}, },
"password": { "password": {
"placeholder": "password", "placeholder": "senha",
"require": "Your password needs at least:", "require": "Sua senha deve ter pelo menos:",
"character_limit": "8 characters", "character_limit": "8 carácteres",
"accessibility": { "accessibility": {
"checked": "checked", "checked": "checked",
"unchecked": "unchecked" "unchecked": "unchecked"
}, },
"hint": "Your password needs at least eight characters" "hint": "Sua senha precisa ter pelo menos oito carácteres"
}, },
"invite": { "invite": {
"registration_user_invite_request": "Why do you want to join?" "registration_user_invite_request": "Why do you want to join?"
@ -284,17 +290,17 @@
}, },
"error": { "error": {
"item": { "item": {
"username": "Username", "username": "Nome de usuário",
"email": "Email", "email": "E-mail",
"password": "Password", "password": "Senha",
"agreement": "Agreement", "agreement": "Termos de uso",
"locale": "Locale", "locale": "Localidade",
"reason": "Reason" "reason": "Motivo"
}, },
"reason": { "reason": {
"blocked": "%s contains a disallowed email provider", "blocked": "%s contains a disallowed email provider",
"unreachable": "%s does not seem to exist", "unreachable": "%s parece não existir",
"taken": "%s is already in use", "taken": "%s já está em uso",
"reserved": "%s is a reserved keyword", "reserved": "%s is a reserved keyword",
"accepted": "%s must be accepted", "accepted": "%s must be accepted",
"blank": "%s is required", "blank": "%s is required",
@ -366,27 +372,31 @@
"media_selection": { "media_selection": {
"camera": "Take Photo", "camera": "Take Photo",
"photo_library": "Photo Library", "photo_library": "Photo Library",
"browse": "Browse" "browse": "Navegar"
}, },
"content_input_placeholder": "Type or paste whats on your mind", "content_input_placeholder": "Digite ou cole o que está na sua mente",
"compose_action": "Publish", "compose_action": "Publicar",
"replying_to_user": "replying to %s", "replying_to_user": "em resposta a %s",
"attachment": { "attachment": {
"photo": "photo", "photo": "foto",
"video": "video", "video": "vídeo",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duração: %s",
"thirty_minutes": "30 minutes", "thirty_minutes": "30 minutos",
"one_hour": "1 Hour", "one_hour": "1 hora",
"six_hours": "6 Hours", "six_hours": "6 horas",
"one_day": "1 Day", "one_day": "1 dia",
"three_days": "3 Days", "three_days": "3 dias",
"seven_days": "7 Days", "seven_days": "7 dias",
"option_number": "Option %ld" "option_number": "Opção %ld"
}, },
"content_warning": { "content_warning": {
"placeholder": "Write an accurate warning here..." "placeholder": "Write an accurate warning here..."
@ -423,9 +433,9 @@
"follows_you": "Follows You" "follows_you": "Follows You"
}, },
"dashboard": { "dashboard": {
"posts": "posts", "posts": "toots",
"following": "following", "following": "seguindo",
"followers": "followers" "followers": "seguidores"
}, },
"fields": { "fields": {
"add_row": "Add Row", "add_row": "Add Row",
@ -508,30 +518,30 @@
"accounts": { "accounts": {
"title": "Accounts you might like", "title": "Accounts you might like",
"description": "You may like to follow these accounts", "description": "You may like to follow these accounts",
"follow": "Follow" "follow": "Seguir"
} }
}, },
"searching": { "searching": {
"segment": { "segment": {
"all": "All", "all": "Todos",
"people": "People", "people": "Pessoas",
"hashtags": "Hashtags", "hashtags": "Hashtags",
"posts": "Posts" "posts": "Toots"
}, },
"empty_state": { "empty_state": {
"no_results": "No results" "no_results": "Sem resultados"
}, },
"recent_search": "Recent searches", "recent_search": "Pesquisas recentes",
"clear": "Clear" "clear": "Limpar"
} }
}, },
"discovery": { "discovery": {
"tabs": { "tabs": {
"posts": "Posts", "posts": "Toots",
"hashtags": "Hashtags", "hashtags": "Hashtags",
"news": "News", "news": "Notícias",
"community": "Community", "community": "Comunidade",
"for_you": "For You" "for_you": "Para você"
}, },
"intro": "These are the posts gaining traction in your corner of Mastodon." "intro": "These are the posts gaining traction in your corner of Mastodon."
}, },

View File

@ -1,6 +1,6 @@
{ {
"NSCameraUsageDescription": "Used to take photo for post status", "NSCameraUsageDescription": "Usado para tirar uma foto para postagem",
"NSPhotoLibraryAddUsageDescription": "Used to save photo into the Photo Library", "NSPhotoLibraryAddUsageDescription": "Usado para salvar foto na Galeria",
"NewPostShortcutItemTitle": "New Post", "NewPostShortcutItemTitle": "Novo Toot",
"SearchShortcutItemTitle": "Search" "SearchShortcutItemTitle": "Buscar"
} }

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -32,9 +32,9 @@
"message": "Nu se poate edita profilul. Vă rugăm să încercaţi din nou." "message": "Nu se poate edita profilul. Vă rugăm să încercaţi din nou."
}, },
"sign_out": { "sign_out": {
"title": "Deconectați-vă", "title": "Deconectare",
"message": "Sigur doriți să vă deconectați?", "message": "Sigur doriți să vă deconectați?",
"confirm": "Deconectați-vă" "confirm": "Deconectare"
}, },
"block_domain": { "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": "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.",
@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -136,6 +136,12 @@
"vote": "Проголосовать", "vote": "Проголосовать",
"closed": "Завершён" "closed": "Завершён"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Ответить", "reply": "Ответить",
"reblog": "Продвинуть", "reblog": "Продвинуть",
@ -376,7 +382,11 @@
"video": "видео", "video": "видео",
"attachment_broken": "Это %s повреждено и не может\nбыть отправлено в Mastodon.", "attachment_broken": "Это %s повреждено и не может\nбыть отправлено в Mastodon.",
"description_photo": "Опишите фото для людей с нарушениями зрения...", "description_photo": "Опишите фото для людей с нарушениями зрения...",
"description_video": "Опишите видео для людей с нарушениями зрения..." "description_video": "Опишите видео для людей с нарушениями зрения...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Продолжительность: %s", "duration_time": "Продолжительность: %s",

View File

@ -136,6 +136,12 @@
"vote": "ඡන්දය", "vote": "ඡන්දය",
"closed": "වසා ඇත" "closed": "වසා ඇත"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "පිළිතුරු", "reply": "පිළිතුරු",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -136,6 +136,12 @@
"vote": "Glasuj", "vote": "Glasuj",
"closed": "Zaprto" "closed": "Zaprto"
}, },
"meta_entity": {
"url": "Povezava: %s",
"hashtag": "Ključnik: %s",
"mention": "Pokaži profil: %s",
"email": "E-naslov: %s"
},
"actions": { "actions": {
"reply": "Odgovori", "reply": "Odgovori",
"reblog": "Poobjavi", "reblog": "Poobjavi",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "To %s je okvarjeno in ga ni\nmožno naložiti v Mastodon.", "attachment_broken": "To %s je okvarjeno in ga ni\nmožno naložiti v Mastodon.",
"description_photo": "Opiši fotografijo za slabovidne in osebe z okvaro vida ...", "description_photo": "Opiši fotografijo za slabovidne in osebe z okvaro vida ...",
"description_video": "Opiši video za slabovidne in osebe z okvaro vida ..." "description_video": "Opiši video za slabovidne in osebe z okvaro vida ...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Trajanje: %s", "duration_time": "Trajanje: %s",
@ -696,7 +706,7 @@
"accessibility_hint": "Dvakrat tapnite, da zapustite tega čarovnika" "accessibility_hint": "Dvakrat tapnite, da zapustite tega čarovnika"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Zaznamki"
} }
} }
} }

View File

@ -152,9 +152,9 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>%ld puff</string> <string>%ld boost</string>
<key>other</key> <key>other</key>
<string>%ld puffar</string> <string>%ld boostar</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.reply</key> <key>plural.count.reply</key>

View File

@ -111,9 +111,9 @@
"next_status": "Nästa inlägg", "next_status": "Nästa inlägg",
"open_status": "Öppna inlägg", "open_status": "Öppna inlägg",
"open_author_profile": "Öppna författarens profil", "open_author_profile": "Öppna författarens profil",
"open_reblogger_profile": "Öppna ompostarens profil", "open_reblogger_profile": "Öppna boostarens profil",
"reply_status": "Svara på inlägg", "reply_status": "Svara på inlägg",
"toggle_reblog": "Växla puff på inlägg", "toggle_reblog": "Växla boost på inlägg",
"toggle_favorite": "Växla favorit på inlägg", "toggle_favorite": "Växla favorit på inlägg",
"toggle_content_warning": "Växla innehållsvarning", "toggle_content_warning": "Växla innehållsvarning",
"preview_image": "Förhandsgranska bild" "preview_image": "Förhandsgranska bild"
@ -124,7 +124,7 @@
} }
}, },
"status": { "status": {
"user_reblogged": "%s puffade", "user_reblogged": "%s boostade",
"user_replied_to": "Svarade på %s", "user_replied_to": "Svarade på %s",
"show_post": "Visa inlägg", "show_post": "Visa inlägg",
"show_user_profile": "Visa användarprofil", "show_user_profile": "Visa användarprofil",
@ -136,10 +136,16 @@
"vote": "Rösta", "vote": "Rösta",
"closed": "Stängd" "closed": "Stängd"
}, },
"meta_entity": {
"url": "Länk: %s",
"hashtag": "Hashtag: %s",
"mention": "Visa profil: %s",
"email": "E-postadress: %s"
},
"actions": { "actions": {
"reply": "Svara", "reply": "Svara",
"reblog": "Puffa", "reblog": "Boosta",
"unreblog": "Ångra puff", "unreblog": "Ångra boost",
"favorite": "Favorit", "favorite": "Favorit",
"unfavorite": "Ta bort favorit", "unfavorite": "Ta bort favorit",
"menu": "Meny", "menu": "Meny",
@ -181,8 +187,8 @@
"unmute_user": "Avtysta %s", "unmute_user": "Avtysta %s",
"muted": "Tystad", "muted": "Tystad",
"edit_info": "Redigera info", "edit_info": "Redigera info",
"show_reblogs": "Visa knuffar", "show_reblogs": "Visa boostar",
"hide_reblogs": "Dölj puffar" "hide_reblogs": "Dölj boostar"
}, },
"timeline": { "timeline": {
"filtered": "Filtrerat", "filtered": "Filtrerat",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "Denna %s är trasig och kan inte\nladdas upp till Mastodon.", "attachment_broken": "Denna %s är trasig och kan inte\nladdas upp till Mastodon.",
"description_photo": "Beskriv fotot för synskadade...", "description_photo": "Beskriv fotot för synskadade...",
"description_video": "Beskriv videon för de synskadade..." "description_video": "Beskriv videon för de synskadade...",
"load_failed": "Det gick inte att läsa in",
"upload_failed": "Uppladdning misslyckades",
"can_not_recognize_this_media_attachment": "Känner inte igen mediebilagan",
"attachment_too_large": "Bilagan är för stor"
}, },
"poll": { "poll": {
"duration_time": "Längd: %s", "duration_time": "Längd: %s",
@ -459,12 +469,12 @@
"message": "Bekräfta för att avblockera %s" "message": "Bekräfta för att avblockera %s"
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Visa puffar", "title": "Visa boostar",
"message": "Bekräfta för att visa puffar" "message": "Bekräfta för att visa boostar"
}, },
"confirm_hide_reblogs": { "confirm_hide_reblogs": {
"title": "Dölj puffar", "title": "Dölj boostar",
"message": "Bekräfta för att dölja puffar" "message": "Bekräfta för att dölja boostar"
} }
}, },
"accessibility": { "accessibility": {
@ -490,7 +500,7 @@
"title": "Favoriserad av" "title": "Favoriserad av"
}, },
"reblogged_by": { "reblogged_by": {
"title": "Puffat av" "title": "Boostat av"
}, },
"search": { "search": {
"title": "Sök", "title": "Sök",
@ -546,7 +556,7 @@
"notification_description": { "notification_description": {
"followed_you": "följde dig", "followed_you": "följde dig",
"favorited_your_post": "favoriserade ditt inlägg", "favorited_your_post": "favoriserade ditt inlägg",
"reblogged_your_post": "puffade ditt inlägg", "reblogged_your_post": "boostade ditt inlägg",
"mentioned_you": "nämnde dig", "mentioned_you": "nämnde dig",
"request_to_follow_you": "begär att följa dig", "request_to_follow_you": "begär att följa dig",
"poll_has_ended": "omröstningen har avslutats" "poll_has_ended": "omröstningen har avslutats"
@ -586,7 +596,7 @@
"title": "Notiser", "title": "Notiser",
"favorites": "Favoriserar mitt inlägg", "favorites": "Favoriserar mitt inlägg",
"follows": "Följer mig", "follows": "Följer mig",
"boosts": "Ompostar mitt inlägg", "boosts": "Boostar mitt inlägg",
"mentions": "Nämner mig", "mentions": "Nämner mig",
"trigger": { "trigger": {
"anyone": "alla", "anyone": "alla",
@ -672,7 +682,7 @@
"unfollowed": "Slutade följa", "unfollowed": "Slutade följa",
"unfollow_user": "Avfölj %s", "unfollow_user": "Avfölj %s",
"mute_user": "Tysta %s", "mute_user": "Tysta %s",
"you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "Du kommer inte att se deras inlägg eller ompostningar i ditt hemflöde. De kommer inte att veta att de har blivit tystade.", "you_wont_see_their_posts_or_reblogs_in_your_home_feed_they_wont_know_they_ve_been_muted": "Du kommer inte att se deras inlägg eller boostar i ditt hemflöde. De kommer inte att veta att de har blivit tystade.",
"block_user": "Blockera %s", "block_user": "Blockera %s",
"they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "De kommer inte längre att kunna följa eller se dina inlägg, men de kan se om de har blockerats.", "they_will_no_longer_be_able_to_follow_or_see_your_posts_but_they_can_see_if_theyve_been_blocked": "De kommer inte längre att kunna följa eller se dina inlägg, men de kan se om de har blockerats.",
"while_we_review_this_you_can_take_action_against_user": "Medan vi granskar detta kan du vidta åtgärder mot %s" "while_we_review_this_you_can_take_action_against_user": "Medan vi granskar detta kan du vidta åtgärder mot %s"
@ -696,7 +706,7 @@
"accessibility_hint": "Dubbeltryck för att avvisa den här guiden" "accessibility_hint": "Dubbeltryck för att avvisa den här guiden"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Bokmärken"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "ลงคะแนน", "vote": "ลงคะแนน",
"closed": "ปิดแล้ว" "closed": "ปิดแล้ว"
}, },
"meta_entity": {
"url": "ลิงก์: %s",
"hashtag": "แฮชแท็ก: %s",
"mention": "โปรไฟล์ที่แสดง: %s",
"email": "ที่อยู่อีเมล: %s"
},
"actions": { "actions": {
"reply": "ตอบกลับ", "reply": "ตอบกลับ",
"reblog": "ดัน", "reblog": "ดัน",
@ -181,8 +187,8 @@
"unmute_user": "เลิกซ่อน %s", "unmute_user": "เลิกซ่อน %s",
"muted": "ซ่อนอยู่", "muted": "ซ่อนอยู่",
"edit_info": "แก้ไขข้อมูล", "edit_info": "แก้ไขข้อมูล",
"show_reblogs": "Show Reblogs", "show_reblogs": "แสดงการดัน",
"hide_reblogs": "Hide Reblogs" "hide_reblogs": "ซ่อนการดัน"
}, },
"timeline": { "timeline": {
"filtered": "กรองอยู่", "filtered": "กรองอยู่",
@ -215,7 +221,7 @@
"server_picker": { "server_picker": {
"title": "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ", "title": "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ",
"subtitle": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ", "subtitle": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ",
"subtitle_extend": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง", "subtitle_extend": "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ได้รับการดำเนินงานโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง",
"button": { "button": {
"category": { "category": {
"all": "ทั้งหมด", "all": "ทั้งหมด",
@ -376,7 +382,11 @@
"video": "วิดีโอ", "video": "วิดีโอ",
"attachment_broken": "%s นี้เสียหายและไม่สามารถ\nอัปโหลดไปยัง Mastodon", "attachment_broken": "%s นี้เสียหายและไม่สามารถ\nอัปโหลดไปยัง Mastodon",
"description_photo": "อธิบายรูปภาพสำหรับผู้บกพร่องทางการมองเห็น...", "description_photo": "อธิบายรูปภาพสำหรับผู้บกพร่องทางการมองเห็น...",
"description_video": "อธิบายวิดีโอสำหรับผู้บกพร่องทางการมองเห็น..." "description_video": "อธิบายวิดีโอสำหรับผู้บกพร่องทางการมองเห็น...",
"load_failed": "การโหลดล้มเหลว",
"upload_failed": "การอัปโหลดล้มเหลว",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "ไฟล์แนบใหญ่เกินไป"
}, },
"poll": { "poll": {
"duration_time": "ระยะเวลา: %s", "duration_time": "ระยะเวลา: %s",
@ -459,12 +469,12 @@
"message": "ยืนยันเพื่อเลิกปิดกั้น %s" "message": "ยืนยันเพื่อเลิกปิดกั้น %s"
}, },
"confirm_show_reblogs": { "confirm_show_reblogs": {
"title": "Show Reblogs", "title": "แสดงการดัน",
"message": "Confirm to show reblogs" "message": "ยืนยันเพื่อแสดงการดัน"
}, },
"confirm_hide_reblogs": { "confirm_hide_reblogs": {
"title": "Hide Reblogs", "title": "ซ่อนการดัน",
"message": "Confirm to hide reblogs" "message": "ยืนยันเพื่อซ่อนการดัน"
} }
}, },
"accessibility": { "accessibility": {
@ -696,7 +706,7 @@
"accessibility_hint": "แตะสองครั้งเพื่อปิดตัวช่วยสร้างนี้" "accessibility_hint": "แตะสองครั้งเพื่อปิดตัวช่วยสร้างนี้"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "ที่คั่นหน้า"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "Oy ver", "vote": "Oy ver",
"closed": "Kapandı" "closed": "Kapandı"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Yanıtla", "reply": "Yanıtla",
"reblog": "Yeniden paylaş", "reblog": "Yeniden paylaş",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "Bu %s bozuk ve Mastodon'a\nyüklenemiyor.", "attachment_broken": "Bu %s bozuk ve Mastodon'a\nyüklenemiyor.",
"description_photo": "Görme engelliler için fotoğrafı tarif edin...", "description_photo": "Görme engelliler için fotoğrafı tarif edin...",
"description_video": "Görme engelliler için videoyu tarif edin..." "description_video": "Görme engelliler için videoyu tarif edin...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Süre: %s", "duration_time": "Süre: %s",

View File

@ -136,6 +136,12 @@
"vote": "Vote", "vote": "Vote",
"closed": "Closed" "closed": "Closed"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "Reply", "reply": "Reply",
"reblog": "Reblog", "reblog": "Reblog",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.", "attachment_broken": "This %s is broken and cant be\nuploaded to Mastodon.",
"description_photo": "Describe the photo for the visually-impaired...", "description_photo": "Describe the photo for the visually-impaired...",
"description_video": "Describe the video for the visually-impaired..." "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",

View File

@ -136,6 +136,12 @@
"vote": "Bình chọn", "vote": "Bình chọn",
"closed": "Kết thúc" "closed": "Kết thúc"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Hiện hồ sơ: %s",
"email": "Email: %s"
},
"actions": { "actions": {
"reply": "Trả lời", "reply": "Trả lời",
"reblog": "Đăng lại", "reblog": "Đăng lại",
@ -376,7 +382,11 @@
"video": "video", "video": "video",
"attachment_broken": "%s này bị lỗi và không thể\ntải lên Mastodon.", "attachment_broken": "%s này bị lỗi và không thể\ntải lên Mastodon.",
"description_photo": "Mô tả hình ảnh cho người khiếm thị...", "description_photo": "Mô tả hình ảnh cho người khiếm thị...",
"description_video": "Mô tả video cho người khiếm thị..." "description_video": "Mô tả video cho người khiếm thị...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "Thời hạn: %s", "duration_time": "Thời hạn: %s",
@ -696,7 +706,7 @@
"accessibility_hint": "Nhấn hai lần để bỏ qua" "accessibility_hint": "Nhấn hai lần để bỏ qua"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "Tút đã lưu"
} }
} }
} }

View File

@ -136,6 +136,12 @@
"vote": "投票", "vote": "投票",
"closed": "已关闭" "closed": "已关闭"
}, },
"meta_entity": {
"url": "Link: %s",
"hashtag": "Hashtag: %s",
"mention": "Show Profile: %s",
"email": "Email address: %s"
},
"actions": { "actions": {
"reply": "回复", "reply": "回复",
"reblog": "转发", "reblog": "转发",
@ -376,7 +382,11 @@
"video": "视频", "video": "视频",
"attachment_broken": "%s已损坏\n无法上传到 Mastodon", "attachment_broken": "%s已损坏\n无法上传到 Mastodon",
"description_photo": "为视觉障碍人士添加照片的文字说明...", "description_photo": "为视觉障碍人士添加照片的文字说明...",
"description_video": "为视觉障碍人士添加视频的文字说明..." "description_video": "为视觉障碍人士添加视频的文字说明...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "时长:%s", "duration_time": "时长:%s",

View File

@ -136,6 +136,12 @@
"vote": "投票", "vote": "投票",
"closed": "已關閉" "closed": "已關閉"
}, },
"meta_entity": {
"url": "連結:%s",
"hashtag": "主題標籤: %s",
"mention": "顯示個人檔案:%s",
"email": "電子郵件地址:%s"
},
"actions": { "actions": {
"reply": "回覆", "reply": "回覆",
"reblog": "轉嘟", "reblog": "轉嘟",
@ -376,7 +382,11 @@
"video": "影片", "video": "影片",
"attachment_broken": "此 %s 已損毀,並無法被上傳至 Mastodon。", "attachment_broken": "此 %s 已損毀,並無法被上傳至 Mastodon。",
"description_photo": "為視障人士提供圖片說明...", "description_photo": "為視障人士提供圖片說明...",
"description_video": "為視障人士提供影片說明..." "description_video": "為視障人士提供影片說明...",
"load_failed": "Load Failed",
"upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment",
"attachment_too_large": "Attachment too large"
}, },
"poll": { "poll": {
"duration_time": "持續時間:%s", "duration_time": "持續時間:%s",
@ -696,7 +706,7 @@
"accessibility_hint": "點兩下以關閉此設定精靈" "accessibility_hint": "點兩下以關閉此設定精靈"
}, },
"bookmark": { "bookmark": {
"title": "Bookmarks" "title": "書籤"
} }
} }
} }

View File

@ -385,8 +385,10 @@
"description_video": "Describe the video for the visually-impaired...", "description_video": "Describe the video for the visually-impaired...",
"load_failed": "Load Failed", "load_failed": "Load Failed",
"upload_failed": "Upload Failed", "upload_failed": "Upload Failed",
"can_not_recognize_this_media_attachment": "Can not regonize this media attachment", "can_not_recognize_this_media_attachment": "Can not recognize this media attachment",
"attachment_too_large": "Attachment too large" "attachment_too_large": "Attachment too large",
"compressing_state": "Compressing...",
"server_processing_state": "Server Processing..."
}, },
"poll": { "poll": {
"duration_time": "Duration: %s", "duration_time": "Duration: %s",
@ -396,7 +398,9 @@
"one_day": "1 Day", "one_day": "1 Day",
"three_days": "3 Days", "three_days": "3 Days",
"seven_days": "7 Days", "seven_days": "7 Days",
"option_number": "Option %ld" "option_number": "Option %ld",
"the_poll_is_invalid": "The poll is invalid",
"the_poll_has_empty_option": "The poll has empty option"
}, },
"content_warning": { "content_warning": {
"placeholder": "Write an accurate warning here..." "placeholder": "Write an accurate warning here..."
@ -444,6 +448,10 @@
"placeholder": { "placeholder": {
"label": "Label", "label": "Label",
"content": "Content" "content": "Content"
},
"verified": {
"short": "Verified on %s",
"long": "Ownership of this link was checked on %s"
} }
}, },
"segmented_control": { "segmented_control": {
@ -711,4 +719,4 @@
"title": "Bookmarks" "title": "Bookmarks"
} }
} }
} }

View File

@ -23,6 +23,7 @@ extension ProfileFieldItem {
var name: CurrentValueSubject<String, Never> var name: CurrentValueSubject<String, Never>
var value: CurrentValueSubject<String, Never> var value: CurrentValueSubject<String, Never>
var verifiedAt: CurrentValueSubject<Date?, Never>
let emojiMeta: MastodonContent.Emojis let emojiMeta: MastodonContent.Emojis
@ -30,11 +31,13 @@ extension ProfileFieldItem {
id: UUID = UUID(), id: UUID = UUID(),
name: String, name: String,
value: String, value: String,
verifiedAt: Date?,
emojiMeta: MastodonContent.Emojis emojiMeta: MastodonContent.Emojis
) { ) {
self.id = id self.id = id
self.name = CurrentValueSubject(name) self.name = CurrentValueSubject(name)
self.value = CurrentValueSubject(value) self.value = CurrentValueSubject(value)
self.verifiedAt = CurrentValueSubject(verifiedAt)
self.emojiMeta = emojiMeta self.emojiMeta = emojiMeta
} }
@ -45,6 +48,7 @@ extension ProfileFieldItem {
return lhs.id == rhs.id return lhs.id == rhs.id
&& lhs.name.value == rhs.name.value && lhs.name.value == rhs.name.value
&& lhs.value.value == rhs.value.value && lhs.value.value == rhs.value.value
&& lhs.verifiedAt.value == rhs.verifiedAt.value
&& lhs.emojiMeta == rhs.emojiMeta && lhs.emojiMeta == rhs.emojiMeta
} }

View File

@ -8,6 +8,7 @@
import os import os
import UIKit import UIKit
import Combine import Combine
import MastodonAsset
import MastodonCore import MastodonCore
import MastodonMeta import MastodonMeta
import MastodonLocalization import MastodonLocalization
@ -48,6 +49,10 @@ extension ProfileFieldSection {
do { do {
let mastodonContent = MastodonContent(content: field.value.value, emojis: field.emojiMeta) let mastodonContent = MastodonContent(content: field.value.value, emojis: field.emojiMeta)
let metaContent = try MastodonMetaContent.convert(document: mastodonContent) let metaContent = try MastodonMetaContent.convert(document: mastodonContent)
cell.valueMetaLabel.linkAttributes[.foregroundColor] = Asset.Colors.brand.color
if field.verifiedAt.value != nil {
cell.valueMetaLabel.linkAttributes[.foregroundColor] = Asset.Scene.Profile.About.bioAboutFieldVerifiedLink.color
}
cell.valueMetaLabel.configure(content: metaContent) cell.valueMetaLabel.configure(content: metaContent)
} catch { } catch {
let content = PlaintextMetaContent(string: field.value.value) let content = PlaintextMetaContent(string: field.value.value)
@ -57,7 +62,23 @@ extension ProfileFieldSection {
// set background // set background
var backgroundConfiguration = UIBackgroundConfiguration.listPlainCell() var backgroundConfiguration = UIBackgroundConfiguration.listPlainCell()
backgroundConfiguration.backgroundColor = UIColor.secondarySystemBackground backgroundConfiguration.backgroundColor = UIColor.secondarySystemBackground
if (field.verifiedAt.value != nil) {
backgroundConfiguration.backgroundColor = Asset.Scene.Profile.About.bioAboutFieldVerifiedBackground.color
}
cell.backgroundConfiguration = backgroundConfiguration cell.backgroundConfiguration = backgroundConfiguration
// set checkmark and edit menu label
cell.checkmark.isHidden = true
cell.checkmarkPopoverString = nil
if let verifiedAt = field.verifiedAt.value {
cell.checkmark.isHidden = false
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .short
let dateString = formatter.string(from: verifiedAt)
cell.checkmark.accessibilityLabel = L10n.Scene.Profile.Fields.Verified.long(dateString)
cell.checkmarkPopoverString = L10n.Scene.Profile.Fields.Verified.short(dateString)
}
cell.delegate = configuration.profileFieldCollectionViewCellDelegate cell.delegate = configuration.profileFieldCollectionViewCellDelegate
} }

View File

@ -44,18 +44,6 @@ final class ComposeViewController: UIViewController, NeedsDependency {
}() }()
private(set) lazy var cancelBarButtonItem = UIBarButtonItem(title: L10n.Common.Controls.Actions.cancel, style: .plain, target: self, action: #selector(ComposeViewController.cancelBarButtonItemPressed(_:))) private(set) lazy var cancelBarButtonItem = UIBarButtonItem(title: L10n.Common.Controls.Actions.cancel, style: .plain, target: self, action: #selector(ComposeViewController.cancelBarButtonItemPressed(_:)))
let characterCountLabel: UILabel = {
let label = UILabel()
label.font = .systemFont(ofSize: 15, weight: .regular)
label.text = "500"
label.textColor = Asset.Colors.Label.secondary.color
label.accessibilityLabel = L10n.A11y.Plural.Count.inputLimitRemains(500)
return label
}()
private(set) lazy var characterCountBarButtonItem: UIBarButtonItem = {
let barButtonItem = UIBarButtonItem(customView: characterCountLabel)
return barButtonItem
}()
let publishButton: UIButton = { let publishButton: UIButton = {
let button = RoundedEdgesButton(type: .custom) let button = RoundedEdgesButton(type: .custom)
@ -93,20 +81,6 @@ final class ComposeViewController: UIViewController, NeedsDependency {
} }
extension ComposeViewController {
private static func createLayout() -> UICollectionViewLayout {
let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .estimated(44))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .estimated(44))
let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item])
let section = NSCollectionLayoutSection(group: group)
section.contentInsetsReference = .readableContent
// section.interGroupSpacing = 10
// section.contentInsets = NSDirectionalEdgeInsets(top: 10, leading: 10, bottom: 10, trailing: 10)
return UICollectionViewCompositionalLayout(section: section)
}
}
extension ComposeViewController { extension ComposeViewController {
override func viewDidLoad() { override func viewDidLoad() {
@ -139,16 +113,6 @@ extension ComposeViewController {
]) ])
composeContentViewController.didMove(toParent: self) composeContentViewController.didMove(toParent: self)
// bind navigation bar style
// configureNavigationBarTitleStyle()
viewModel.traitCollectionDidChangePublisher
.receive(on: DispatchQueue.main)
.sink { [weak self] _ in
guard let self = self else { return }
self.configureNavigationBarTitleStyle()
}
.store(in: &disposeBag)
// bind title // bind title
viewModel.$title viewModel.$title
.receive(on: DispatchQueue.main) .receive(on: DispatchQueue.main)
@ -189,53 +153,6 @@ extension ComposeViewController {
present(alertController, animated: true, completion: nil) present(alertController, animated: true, completion: nil)
} }
// private func setupBackgroundColor(theme: Theme) {
// let backgroundColor = UIColor(dynamicProvider: { traitCollection in
// switch traitCollection.userInterfaceStyle {
// case .light:
// return .systemBackground
// default:
// return theme.systemElevatedBackgroundColor
// }
// })
// view.backgroundColor = backgroundColor
//// tableView.backgroundColor = backgroundColor
//// composeToolbarBackgroundView.backgroundColor = theme.composeToolbarBackgroundColor
// }
//
// // keyboard shortcutBar
// private func setupInputAssistantItem(item: UITextInputAssistantItem) {
// let barButtonItems = [
// composeToolbarView.mediaBarButtonItem,
// composeToolbarView.pollBarButtonItem,
// composeToolbarView.contentWarningBarButtonItem,
// composeToolbarView.visibilityBarButtonItem,
// ]
// let group = UIBarButtonItemGroup(barButtonItems: barButtonItems, representativeItem: nil)
//
// item.trailingBarButtonGroups = [group]
// }
//
// private func configureToolbarDisplay(keyboardHasShortcutBar: Bool) {
// switch self.traitCollection.userInterfaceIdiom {
// case .pad:
// let shouldHideToolbar = keyboardHasShortcutBar && self.traitCollection.horizontalSizeClass == .regular
// self.composeToolbarView.alpha = shouldHideToolbar ? 0 : 1
// self.composeToolbarBackgroundView.alpha = shouldHideToolbar ? 0 : 1
// default:
// break
// }
// }
//
private func configureNavigationBarTitleStyle() {
switch traitCollection.userInterfaceIdiom {
case .pad:
navigationController?.navigationBar.prefersLargeTitles = traitCollection.horizontalSizeClass == .regular
default:
break
}
}
} }
extension ComposeViewController { extension ComposeViewController {
@ -340,130 +257,137 @@ extension ComposeViewController: UIAdaptivePresentationControllerDelegate {
} }
//extension ComposeViewController { extension ComposeViewController {
// override var keyCommands: [UIKeyCommand]? { override var keyCommands: [UIKeyCommand]? {
// composeKeyCommands composeKeyCommands
// } }
//} }
//
//extension ComposeViewController { extension ComposeViewController {
//
// enum ComposeKeyCommand: String, CaseIterable { enum ComposeKeyCommand: String, CaseIterable {
// case discardPost case discardPost
// case publishPost case publishPost
// case mediaBrowse case mediaBrowse
// case mediaPhotoLibrary case mediaPhotoLibrary
// case mediaCamera case mediaCamera
// case togglePoll case togglePoll
// case toggleContentWarning case toggleContentWarning
// case selectVisibilityPublic case selectVisibilityPublic
// // TODO: remove selectVisibilityUnlisted from codebase // TODO: remove selectVisibilityUnlisted from codebase
// // case selectVisibilityUnlisted // case selectVisibilityUnlisted
// case selectVisibilityPrivate case selectVisibilityPrivate
// case selectVisibilityDirect case selectVisibilityDirect
//
// var title: String { var title: String {
// switch self { switch self {
// case .discardPost: return L10n.Scene.Compose.Keyboard.discardPost case .discardPost: return L10n.Scene.Compose.Keyboard.discardPost
// case .publishPost: return L10n.Scene.Compose.Keyboard.publishPost case .publishPost: return L10n.Scene.Compose.Keyboard.publishPost
// case .mediaBrowse: return L10n.Scene.Compose.Keyboard.appendAttachmentEntry(L10n.Scene.Compose.MediaSelection.browse) case .mediaBrowse: return L10n.Scene.Compose.Keyboard.appendAttachmentEntry(L10n.Scene.Compose.MediaSelection.browse)
// case .mediaPhotoLibrary: return L10n.Scene.Compose.Keyboard.appendAttachmentEntry(L10n.Scene.Compose.MediaSelection.photoLibrary) case .mediaPhotoLibrary: return L10n.Scene.Compose.Keyboard.appendAttachmentEntry(L10n.Scene.Compose.MediaSelection.photoLibrary)
// case .mediaCamera: return L10n.Scene.Compose.Keyboard.appendAttachmentEntry(L10n.Scene.Compose.MediaSelection.camera) case .mediaCamera: return L10n.Scene.Compose.Keyboard.appendAttachmentEntry(L10n.Scene.Compose.MediaSelection.camera)
// case .togglePoll: return L10n.Scene.Compose.Keyboard.togglePoll case .togglePoll: return L10n.Scene.Compose.Keyboard.togglePoll
// case .toggleContentWarning: return L10n.Scene.Compose.Keyboard.toggleContentWarning case .toggleContentWarning: return L10n.Scene.Compose.Keyboard.toggleContentWarning
// case .selectVisibilityPublic: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.public) case .selectVisibilityPublic: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.public)
// // case .selectVisibilityUnlisted: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.unlisted) // case .selectVisibilityUnlisted: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.unlisted)
// case .selectVisibilityPrivate: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.private) case .selectVisibilityPrivate: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.private)
// case .selectVisibilityDirect: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.direct) case .selectVisibilityDirect: return L10n.Scene.Compose.Keyboard.selectVisibilityEntry(L10n.Scene.Compose.Visibility.direct)
// } }
// } }
//
// // UIKeyCommand input // UIKeyCommand input
// var input: String { var input: String {
// switch self { switch self {
// case .discardPost: return "w" // + command case .discardPost: return "w" // + command
// case .publishPost: return "\r" // (enter) + command case .publishPost: return "\r" // (enter) + command
// case .mediaBrowse: return "b" // + option + command case .mediaBrowse: return "b" // + option + command
// case .mediaPhotoLibrary: return "p" // + option + command case .mediaPhotoLibrary: return "p" // + option + command
// case .mediaCamera: return "c" // + option + command case .mediaCamera: return "c" // + option + command
// case .togglePoll: return "p" // + shift + command case .togglePoll: return "p" // + shift + command
// case .toggleContentWarning: return "c" // + shift + command case .toggleContentWarning: return "c" // + shift + command
// case .selectVisibilityPublic: return "1" // + command case .selectVisibilityPublic: return "1" // + command
// // case .selectVisibilityUnlisted: return "2" // + command // case .selectVisibilityUnlisted: return "2" // + command
// case .selectVisibilityPrivate: return "2" // + command case .selectVisibilityPrivate: return "2" // + command
// case .selectVisibilityDirect: return "3" // + command case .selectVisibilityDirect: return "3" // + command
// } }
// } }
//
// var modifierFlags: UIKeyModifierFlags { var modifierFlags: UIKeyModifierFlags {
// switch self { switch self {
// case .discardPost: return [.command] case .discardPost: return [.command]
// case .publishPost: return [.command] case .publishPost: return [.command]
// case .mediaBrowse: return [.alternate, .command] case .mediaBrowse: return [.alternate, .command]
// case .mediaPhotoLibrary: return [.alternate, .command] case .mediaPhotoLibrary: return [.alternate, .command]
// case .mediaCamera: return [.alternate, .command] case .mediaCamera: return [.alternate, .command]
// case .togglePoll: return [.shift, .command] case .togglePoll: return [.shift, .command]
// case .toggleContentWarning: return [.shift, .command] case .toggleContentWarning: return [.shift, .command]
// case .selectVisibilityPublic: return [.command] case .selectVisibilityPublic: return [.command]
// // case .selectVisibilityUnlisted: return [.command] // case .selectVisibilityUnlisted: return [.command]
// case .selectVisibilityPrivate: return [.command] case .selectVisibilityPrivate: return [.command]
// case .selectVisibilityDirect: return [.command] case .selectVisibilityDirect: return [.command]
// } }
// } }
//
// var propertyList: Any { var propertyList: Any {
// return rawValue return rawValue
// } }
// } }
//
// var composeKeyCommands: [UIKeyCommand]? { var composeKeyCommands: [UIKeyCommand]? {
// ComposeKeyCommand.allCases.map { command in ComposeKeyCommand.allCases.map { command in
// UIKeyCommand( UIKeyCommand(
// title: command.title, title: command.title,
// image: nil, image: nil,
// action: #selector(Self.composeKeyCommandHandler(_:)), action: #selector(Self.composeKeyCommandHandler(_:)),
// input: command.input, input: command.input,
// modifierFlags: command.modifierFlags, modifierFlags: command.modifierFlags,
// propertyList: command.propertyList, propertyList: command.propertyList,
// alternates: [], alternates: [],
// discoverabilityTitle: nil, discoverabilityTitle: nil,
// attributes: [], attributes: [],
// state: .off state: .off
// ) )
// } }
// } }
//
// @objc private func composeKeyCommandHandler(_ sender: UIKeyCommand) { @objc private func composeKeyCommandHandler(_ sender: UIKeyCommand) {
// guard let rawValue = sender.propertyList as? String, guard let rawValue = sender.propertyList as? String,
// let command = ComposeKeyCommand(rawValue: rawValue) else { return } let command = ComposeKeyCommand(rawValue: rawValue) else { return }
//
// switch command { switch command {
// case .discardPost: case .discardPost:
// cancelBarButtonItemPressed(cancelBarButtonItem) cancelBarButtonItemPressed(cancelBarButtonItem)
// case .publishPost: case .publishPost:
// publishBarButtonItemPressed(publishBarButtonItem) publishBarButtonItemPressed(publishBarButtonItem)
// case .mediaBrowse: case .mediaBrowse:
// present(documentPickerController, animated: true, completion: nil) guard !isViewControllerIsAlreadyModal(composeContentViewController.documentPickerController) else { return }
// case .mediaPhotoLibrary: present(composeContentViewController.documentPickerController, animated: true, completion: nil)
// present(photoLibraryPicker, animated: true, completion: nil) case .mediaPhotoLibrary:
// case .mediaCamera: guard !isViewControllerIsAlreadyModal(composeContentViewController.photoLibraryPicker) else { return }
// guard UIImagePickerController.isSourceTypeAvailable(.camera) else { present(composeContentViewController.photoLibraryPicker, animated: true, completion: nil)
// return case .mediaCamera:
// } guard UIImagePickerController.isSourceTypeAvailable(.camera) else {
// present(imagePickerController, animated: true, completion: nil) return
// case .togglePoll: }
// composeToolbarView.pollButton.sendActions(for: .touchUpInside) guard !isViewControllerIsAlreadyModal(composeContentViewController.imagePickerController) else { return }
// case .toggleContentWarning: present(composeContentViewController.imagePickerController, animated: true, completion: nil)
// composeToolbarView.contentWarningButton.sendActions(for: .touchUpInside) case .togglePoll:
// case .selectVisibilityPublic: composeContentViewModel.isPollActive.toggle()
// viewModel.selectedStatusVisibility = .public case .toggleContentWarning:
// // case .selectVisibilityUnlisted: composeContentViewModel.isContentWarningActive.toggle()
// // viewModel.selectedStatusVisibility.value = .unlisted case .selectVisibilityPublic:
// case .selectVisibilityPrivate: composeContentViewModel.visibility = .public
// viewModel.selectedStatusVisibility = .private // case .selectVisibilityUnlisted:
// case .selectVisibilityDirect: // viewModel.selectedStatusVisibility.value = .unlisted
// viewModel.selectedStatusVisibility = .direct case .selectVisibilityPrivate:
// } composeContentViewModel.visibility = .private
// } case .selectVisibilityDirect:
// composeContentViewModel.visibility = .direct
//} }
}
private func isViewControllerIsAlreadyModal(_ viewController: UIViewController) -> Bool {
return viewController.presentingViewController != nil
}
}

View File

@ -26,6 +26,16 @@ final class ProfileFieldCollectionViewCell: UICollectionViewCell {
let keyMetaLabel = MetaLabel(style: .profileFieldName) let keyMetaLabel = MetaLabel(style: .profileFieldName)
let valueMetaLabel = MetaLabel(style: .profileFieldValue) let valueMetaLabel = MetaLabel(style: .profileFieldValue)
let checkmark = UIImageView(image: Asset.Editing.checkmark.image.withRenderingMode(.alwaysTemplate))
var checkmarkPopoverString: String? = nil;
let tapGesture = UITapGestureRecognizer();
private var _editMenuInteraction: Any? = nil
@available(iOS 16, *)
fileprivate var editMenuInteraction: UIEditMenuInteraction {
_editMenuInteraction = _editMenuInteraction ?? UIEditMenuInteraction(delegate: self)
return _editMenuInteraction as! UIEditMenuInteraction
}
override func prepareForReuse() { override func prepareForReuse() {
super.prepareForReuse() super.prepareForReuse()
@ -47,6 +57,17 @@ final class ProfileFieldCollectionViewCell: UICollectionViewCell {
extension ProfileFieldCollectionViewCell { extension ProfileFieldCollectionViewCell {
private func _init() { private func _init() {
// Setup colors
checkmark.tintColor = Asset.Scene.Profile.About.bioAboutFieldVerifiedCheckmark.color;
// Setup gestures
tapGesture.addTarget(self, action: #selector(ProfileFieldCollectionViewCell.didTapCheckmark(_:)))
checkmark.addGestureRecognizer(tapGesture)
checkmark.isUserInteractionEnabled = true
if #available(iOS 16, *) {
checkmark.addInteraction(editMenuInteraction)
}
// containerStackView: V - [ metaContainer | plainContainer ] // containerStackView: V - [ metaContainer | plainContainer ]
let containerStackView = UIStackView() let containerStackView = UIStackView()
containerStackView.axis = .vertical containerStackView.axis = .vertical
@ -63,19 +84,62 @@ extension ProfileFieldCollectionViewCell {
bottomAnchor.constraint(equalTo: containerStackView.bottomAnchor, constant: 11), bottomAnchor.constraint(equalTo: containerStackView.bottomAnchor, constant: 11),
]) ])
// metaContainer: V - [ keyMetaLabel | valueMetaLabel ] // metaContainer: V - [ keyMetaLabel | valueContainer ]
let metaContainer = UIStackView() let metaContainer = UIStackView()
metaContainer.axis = .vertical metaContainer.axis = .vertical
metaContainer.spacing = 2 metaContainer.spacing = 2
containerStackView.addArrangedSubview(metaContainer) containerStackView.addArrangedSubview(metaContainer)
// valueContainer: H - [ valueMetaLabel | checkmark ]
let valueContainer = UIStackView()
valueContainer.axis = .horizontal
valueContainer.spacing = 2
metaContainer.addArrangedSubview(keyMetaLabel) metaContainer.addArrangedSubview(keyMetaLabel)
metaContainer.addArrangedSubview(valueMetaLabel) valueContainer.addArrangedSubview(valueMetaLabel)
valueContainer.addArrangedSubview(checkmark)
metaContainer.addArrangedSubview(valueContainer)
keyMetaLabel.linkDelegate = self keyMetaLabel.linkDelegate = self
valueMetaLabel.linkDelegate = self valueMetaLabel.linkDelegate = self
} }
@objc public func didTapCheckmark(_ recognizer: UITapGestureRecognizer) {
if #available(iOS 16, *) {
editMenuInteraction.presentEditMenu(with: UIEditMenuConfiguration(identifier: nil, sourcePoint: recognizer.location(in: checkmark)))
} else {
guard let editMenuLabel = checkmarkPopoverString else { return }
self.isUserInteractionEnabled = true
self.becomeFirstResponder()
UIMenuController.shared.menuItems = [
UIMenuItem(
title: editMenuLabel,
action: #selector(dismissVerifiedMenu)
)
]
UIMenuController.shared.showMenu(from: checkmark, rect: checkmark.bounds)
}
}
}
// UIMenuController boilerplate
@available(iOS, deprecated: 16, message: "Can be removed when target version is >=16 -- boilerplate to maintain compatibility with UIMenuController")
extension ProfileFieldCollectionViewCell {
override var canBecomeFirstResponder: Bool { true }
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(dismissVerifiedMenu) {
return true
}
return super.canPerformAction(action, withSender: sender)
}
@objc public func dismissVerifiedMenu() {
UIMenuController.shared.hideMenu()
}
} }
// MARK: - MetaLabelDelegate // MARK: - MetaLabelDelegate
@ -85,3 +149,16 @@ extension ProfileFieldCollectionViewCell: MetaLabelDelegate {
delegate?.profileFieldCollectionViewCell(self, metaLebel: metaLabel, didSelectMeta: meta) delegate?.profileFieldCollectionViewCell(self, metaLebel: metaLabel, didSelectMeta: meta)
} }
} }
// MARK: UIEditMenuInteractionDelegate
@available(iOS 16.0, *)
extension ProfileFieldCollectionViewCell: UIEditMenuInteractionDelegate {
func editMenuInteraction(_ interaction: UIEditMenuInteraction, menuFor configuration: UIEditMenuConfiguration, suggestedActions: [UIMenuElement]) -> UIMenu? {
guard let editMenuLabel = checkmarkPopoverString else { return UIMenu(children: []) }
return UIMenu(children: [UIAction(title: editMenuLabel) { _ in return }])
}
func editMenuInteraction(_ interaction: UIEditMenuInteraction, targetRectFor configuration: UIEditMenuConfiguration) -> CGRect {
return checkmark.frame
}
}

View File

@ -52,7 +52,7 @@ final class ProfileAboutViewModel {
$emojiMeta $emojiMeta
) )
.map { fields, emojiMeta in .map { fields, emojiMeta in
fields.map { ProfileFieldItem.FieldValue(name: $0.name, value: $0.value, emojiMeta: emojiMeta) } fields.map { ProfileFieldItem.FieldValue(name: $0.name, value: $0.value, verifiedAt: $0.verifiedAt, emojiMeta: emojiMeta) }
} }
.assign(to: &profileInfo.$fields) .assign(to: &profileInfo.$fields)
@ -72,6 +72,7 @@ final class ProfileAboutViewModel {
ProfileFieldItem.FieldValue( ProfileFieldItem.FieldValue(
name: field.name, name: field.name,
value: field.value, value: field.value,
verifiedAt: field.verifiedAt,
emojiMeta: [:] // no use for editing emojiMeta: [:] // no use for editing
) )
} ?? [] } ?? []
@ -92,7 +93,7 @@ extension ProfileAboutViewModel {
func appendFieldItem() { func appendFieldItem() {
var fields = profileInfoEditing.fields var fields = profileInfoEditing.fields
guard fields.count < ProfileHeaderViewModel.maxProfileFieldCount else { return } guard fields.count < ProfileHeaderViewModel.maxProfileFieldCount else { return }
fields.append(ProfileFieldItem.FieldValue(name: "", value: "", emojiMeta: [:])) fields.append(ProfileFieldItem.FieldValue(name: "", value: "", verifiedAt: nil, emojiMeta: [:]))
profileInfoEditing.fields = fields profileInfoEditing.fields = fields
} }
@ -112,7 +113,7 @@ extension ProfileAboutViewModel: ProfileViewModelEditable {
let isFieldsEqual: Bool = { let isFieldsEqual: Bool = {
let originalFields = self.accountForEdit?.source?.fields?.compactMap { field in let originalFields = self.accountForEdit?.source?.fields?.compactMap { field in
ProfileFieldItem.FieldValue(name: field.name, value: field.value, emojiMeta: [:]) ProfileFieldItem.FieldValue(name: field.name, value: field.value, verifiedAt: nil, emojiMeta: [:])
} ?? [] } ?? []
let editFields = profileInfoEditing.fields let editFields = profileInfoEditing.fields
guard editFields.count == originalFields.count else { return false } guard editFields.count == originalFields.count else { return false }

View File

@ -51,6 +51,7 @@ final class ProfileViewController: UIViewController, NeedsDependency, MediaPrevi
action: #selector(ProfileViewController.settingBarButtonItemPressed(_:)) action: #selector(ProfileViewController.settingBarButtonItemPressed(_:))
) )
barButtonItem.tintColor = .white barButtonItem.tintColor = .white
barButtonItem.accessibilityLabel = L10n.Common.Controls.Actions.settings
return barButtonItem return barButtonItem
}() }()
@ -62,6 +63,7 @@ final class ProfileViewController: UIViewController, NeedsDependency, MediaPrevi
action: #selector(ProfileViewController.shareBarButtonItemPressed(_:)) action: #selector(ProfileViewController.shareBarButtonItemPressed(_:))
) )
barButtonItem.tintColor = .white barButtonItem.tintColor = .white
barButtonItem.accessibilityLabel = L10n.Common.Controls.Actions.share
return barButtonItem return barButtonItem
}() }()
@ -73,6 +75,7 @@ final class ProfileViewController: UIViewController, NeedsDependency, MediaPrevi
action: #selector(ProfileViewController.favoriteBarButtonItemPressed(_:)) action: #selector(ProfileViewController.favoriteBarButtonItemPressed(_:))
) )
barButtonItem.tintColor = .white barButtonItem.tintColor = .white
barButtonItem.accessibilityLabel = L10n.Scene.Favorite.title
return barButtonItem return barButtonItem
}() }()
@ -84,18 +87,21 @@ final class ProfileViewController: UIViewController, NeedsDependency, MediaPrevi
action: #selector(ProfileViewController.bookmarkBarButtonItemPressed(_:)) action: #selector(ProfileViewController.bookmarkBarButtonItemPressed(_:))
) )
barButtonItem.tintColor = .white barButtonItem.tintColor = .white
barButtonItem.accessibilityLabel = L10n.Scene.Bookmark.title
return barButtonItem return barButtonItem
}() }()
private(set) lazy var replyBarButtonItem: UIBarButtonItem = { private(set) lazy var replyBarButtonItem: UIBarButtonItem = {
let barButtonItem = UIBarButtonItem(image: UIImage(systemName: "arrowshape.turn.up.left"), style: .plain, target: self, action: #selector(ProfileViewController.replyBarButtonItemPressed(_:))) let barButtonItem = UIBarButtonItem(image: UIImage(systemName: "arrowshape.turn.up.left"), style: .plain, target: self, action: #selector(ProfileViewController.replyBarButtonItemPressed(_:)))
barButtonItem.tintColor = .white barButtonItem.tintColor = .white
barButtonItem.accessibilityLabel = L10n.Common.Controls.Actions.reply
return barButtonItem return barButtonItem
}() }()
let moreMenuBarButtonItem: UIBarButtonItem = { let moreMenuBarButtonItem: UIBarButtonItem = {
let barButtonItem = UIBarButtonItem(image: UIImage(systemName: "ellipsis.circle"), style: .plain, target: nil, action: nil) let barButtonItem = UIBarButtonItem(image: UIImage(systemName: "ellipsis.circle"), style: .plain, target: nil, action: nil)
barButtonItem.tintColor = .white barButtonItem.tintColor = .white
barButtonItem.accessibilityLabel = L10n.Common.Controls.Actions.seeMore
return barButtonItem return barButtonItem
}() }()

View File

@ -0,0 +1,9 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}

View File

@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.852",
"green" : "0.894",
"red" : "0.835"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.354",
"green" : "0.353",
"red" : "0.268"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.371",
"green" : "0.565",
"red" : "0.290"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.603",
"green" : "0.742",
"red" : "0.476"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.371",
"green" : "0.565",
"red" : "0.290"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.603",
"green" : "0.742",
"red" : "0.476"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -8,6 +8,9 @@
#elseif os(tvOS) || os(watchOS) #elseif os(tvOS) || os(watchOS)
import UIKit import UIKit
#endif #endif
#if canImport(SwiftUI)
import SwiftUI
#endif
// Deprecated typealiases // Deprecated typealiases
@available(*, deprecated, renamed: "ColorAsset.Color", message: "This typealias will be removed in SwiftGen 7.0") @available(*, deprecated, renamed: "ColorAsset.Color", message: "This typealias will be removed in SwiftGen 7.0")
@ -168,6 +171,11 @@ public enum Asset {
public static let textFieldBackground = ColorAsset(name: "Scene/Onboarding/textField.background") public static let textFieldBackground = ColorAsset(name: "Scene/Onboarding/textField.background")
} }
public enum Profile { public enum Profile {
public enum About {
public static let bioAboutFieldVerifiedBackground = ColorAsset(name: "Scene/Profile/About/bio.about.field.verified.background")
public static let bioAboutFieldVerifiedCheckmark = ColorAsset(name: "Scene/Profile/About/bio.about.field.verified.checkmark")
public static let bioAboutFieldVerifiedLink = ColorAsset(name: "Scene/Profile/About/bio.about.field.verified.link")
}
public enum Banner { public enum Banner {
public static let bioEditBackgroundGray = ColorAsset(name: "Scene/Profile/Banner/bio.edit.background.gray") public static let bioEditBackgroundGray = ColorAsset(name: "Scene/Profile/Banner/bio.edit.background.gray")
public static let nameEditBackgroundGray = ColorAsset(name: "Scene/Profile/Banner/name.edit.background.gray") public static let nameEditBackgroundGray = ColorAsset(name: "Scene/Profile/Banner/name.edit.background.gray")
@ -279,6 +287,24 @@ public final class ColorAsset {
return color return color
}() }()
#if os(iOS) || os(tvOS)
@available(iOS 11.0, tvOS 11.0, *)
public func color(compatibleWith traitCollection: UITraitCollection) -> Color {
let bundle = Bundle.module
guard let color = Color(named: name, in: bundle, compatibleWith: traitCollection) else {
fatalError("Unable to load color asset named \(name).")
}
return color
}
#endif
#if canImport(SwiftUI)
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public private(set) lazy var swiftUIColor: SwiftUI.Color = {
SwiftUI.Color(asset: self)
}()
#endif
fileprivate init(name: String) { fileprivate init(name: String) {
self.name = name self.name = name
} }
@ -298,6 +324,16 @@ public extension ColorAsset.Color {
} }
} }
#if canImport(SwiftUI)
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public extension SwiftUI.Color {
init(asset: ColorAsset) {
let bundle = Bundle.module
self.init(asset.name, bundle: bundle)
}
}
#endif
public struct ImageAsset { public struct ImageAsset {
public fileprivate(set) var name: String public fileprivate(set) var name: String
@ -307,6 +343,7 @@ public struct ImageAsset {
public typealias Image = UIImage public typealias Image = UIImage
#endif #endif
@available(iOS 8.0, tvOS 9.0, watchOS 2.0, macOS 10.7, *)
public var image: Image { public var image: Image {
let bundle = Bundle.module let bundle = Bundle.module
#if os(iOS) || os(tvOS) #if os(iOS) || os(tvOS)
@ -322,9 +359,28 @@ public struct ImageAsset {
} }
return result return result
} }
#if os(iOS) || os(tvOS)
@available(iOS 8.0, tvOS 9.0, *)
public func image(compatibleWith traitCollection: UITraitCollection) -> Image {
let bundle = Bundle.module
guard let result = Image(named: name, in: bundle, compatibleWith: traitCollection) else {
fatalError("Unable to load image asset named \(name).")
}
return result
}
#endif
#if canImport(SwiftUI)
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public var swiftUIImage: SwiftUI.Image {
SwiftUI.Image(asset: self)
}
#endif
} }
public extension ImageAsset.Image { public extension ImageAsset.Image {
@available(iOS 8.0, tvOS 9.0, watchOS 2.0, *)
@available(macOS, deprecated, @available(macOS, deprecated,
message: "This initializer is unsafe on macOS, please use the ImageAsset.image property") message: "This initializer is unsafe on macOS, please use the ImageAsset.image property")
convenience init?(asset: ImageAsset) { convenience init?(asset: ImageAsset) {
@ -338,3 +394,23 @@ public extension ImageAsset.Image {
#endif #endif
} }
} }
#if canImport(SwiftUI)
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public extension SwiftUI.Image {
init(asset: ImageAsset) {
let bundle = Bundle.module
self.init(asset.name, bundle: bundle)
}
init(asset: ImageAsset, label: Text) {
let bundle = Bundle.module
self.init(asset.name, bundle: bundle, label: label)
}
init(decorative asset: ImageAsset) {
let bundle = Bundle.module
self.init(decorative: asset.name, bundle: bundle)
}
}
#endif

View File

@ -1,18 +1,20 @@
// swiftlint:disable all // swiftlint:disable all
// Generated using SwiftGen https://github.com/SwiftGen/SwiftGen // Generated using SwiftGen https://github.com/SwiftGen/SwiftGen
#if os(OSX) #if os(macOS)
import AppKit.NSFont import AppKit.NSFont
#elseif os(iOS) || os(tvOS) || os(watchOS) #elseif os(iOS) || os(tvOS) || os(watchOS)
import UIKit.UIFont import UIKit.UIFont
#endif #endif
#if canImport(SwiftUI)
import SwiftUI
#endif
// Deprecated typealiases // Deprecated typealiases
@available(*, deprecated, renamed: "FontConvertible.Font", message: "This typealias will be removed in SwiftGen 7.0") @available(*, deprecated, renamed: "FontConvertible.Font", message: "This typealias will be removed in SwiftGen 7.0")
public typealias Font = FontConvertible.Font public typealias Font = FontConvertible.Font
// swiftlint:disable superfluous_disable_command // swiftlint:disable superfluous_disable_command file_length implicit_return
// swiftlint:disable file_length
// MARK: - Fonts // MARK: - Fonts
@ -36,7 +38,7 @@ public struct FontConvertible {
public let family: String public let family: String
public let path: String public let path: String
#if os(OSX) #if os(macOS)
public typealias Font = NSFont public typealias Font = NSFont
#elseif os(iOS) || os(tvOS) || os(watchOS) #elseif os(iOS) || os(tvOS) || os(watchOS)
public typealias Font = UIFont public typealias Font = UIFont
@ -49,12 +51,41 @@ public struct FontConvertible {
return font return font
} }
#if canImport(SwiftUI)
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public func swiftUIFont(size: CGFloat) -> SwiftUI.Font {
return SwiftUI.Font.custom(self, size: size)
}
@available(iOS 14.0, tvOS 14.0, watchOS 7.0, macOS 11.0, *)
public func swiftUIFont(fixedSize: CGFloat) -> SwiftUI.Font {
return SwiftUI.Font.custom(self, fixedSize: fixedSize)
}
@available(iOS 14.0, tvOS 14.0, watchOS 7.0, macOS 11.0, *)
public func swiftUIFont(size: CGFloat, relativeTo textStyle: SwiftUI.Font.TextStyle) -> SwiftUI.Font {
return SwiftUI.Font.custom(self, size: size, relativeTo: textStyle)
}
#endif
public func register() { public func register() {
// swiftlint:disable:next conditional_returns_on_newline // swiftlint:disable:next conditional_returns_on_newline
guard let url = url else { return } guard let url = url else { return }
CTFontManagerRegisterFontsForURL(url as CFURL, .process, nil) CTFontManagerRegisterFontsForURL(url as CFURL, .process, nil)
} }
fileprivate func registerIfNeeded() {
#if os(iOS) || os(tvOS) || os(watchOS)
if !UIFont.fontNames(forFamilyName: family).contains(name) {
register()
}
#elseif os(macOS)
if let url = url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
register()
}
#endif
}
fileprivate var url: URL? { fileprivate var url: URL? {
// swiftlint:disable:next implicit_return // swiftlint:disable:next implicit_return
return Bundle.module.url(forResource: path, withExtension: nil) return Bundle.module.url(forResource: path, withExtension: nil)
@ -63,16 +94,34 @@ public struct FontConvertible {
public extension FontConvertible.Font { public extension FontConvertible.Font {
convenience init?(font: FontConvertible, size: CGFloat) { convenience init?(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS) font.registerIfNeeded()
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
self.init(name: font.name, size: size) self.init(name: font.name, size: size)
} }
} }
#if canImport(SwiftUI)
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public extension SwiftUI.Font {
static func custom(_ font: FontConvertible, size: CGFloat) -> SwiftUI.Font {
font.registerIfNeeded()
return custom(font.name, size: size)
}
}
@available(iOS 14.0, tvOS 14.0, watchOS 7.0, macOS 11.0, *)
public extension SwiftUI.Font {
static func custom(_ font: FontConvertible, fixedSize: CGFloat) -> SwiftUI.Font {
font.registerIfNeeded()
return custom(font.name, fixedSize: fixedSize)
}
static func custom(
_ font: FontConvertible,
size: CGFloat,
relativeTo textStyle: SwiftUI.Font.TextStyle
) -> SwiftUI.Font {
font.registerIfNeeded()
return custom(font.name, size: size, relativeTo: textStyle)
}
}
#endif

View File

@ -0,0 +1,461 @@
"Common.Alerts.BlockDomain.BlockEntireDomain" = "Block Domain";
"Common.Alerts.BlockDomain.Title" = "Are you really, really sure you want to block the entire %@? 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.";
"Common.Alerts.CleanCache.Message" = "Successfully cleaned %@ cache.";
"Common.Alerts.CleanCache.Title" = "Clean Cache";
"Common.Alerts.Common.PleaseTryAgain" = "Please try again.";
"Common.Alerts.Common.PleaseTryAgainLater" = "Please try again later.";
"Common.Alerts.DeletePost.Message" = "Are you sure you want to delete this post?";
"Common.Alerts.DeletePost.Title" = "Delete Post";
"Common.Alerts.DiscardPostContent.Message" = "Confirm to discard composed post content.";
"Common.Alerts.DiscardPostContent.Title" = "Discard Draft";
"Common.Alerts.EditProfileFailure.Message" = "Cannot edit profile. Please try again.";
"Common.Alerts.EditProfileFailure.Title" = "Edit Profile Error";
"Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "Cannot attach more than one video.";
"Common.Alerts.PublishPostFailure.AttachmentsMessage.VideoAttachWithPhoto" = "Cannot attach a video to a post that already contains images.";
"Common.Alerts.PublishPostFailure.Message" = "Failed to publish the post.
Please check your internet connection.";
"Common.Alerts.PublishPostFailure.Title" = "Publish Failure";
"Common.Alerts.SavePhotoFailure.Message" = "Please enable the photo library access permission to save the photo.";
"Common.Alerts.SavePhotoFailure.Title" = "Save Photo Failure";
"Common.Alerts.ServerError.Title" = "Server Error";
"Common.Alerts.SignOut.Confirm" = "Sign Out";
"Common.Alerts.SignOut.Message" = "Are you sure you want to sign out?";
"Common.Alerts.SignOut.Title" = "Sign Out";
"Common.Alerts.SignUpFailure.Title" = "Sign Up Failure";
"Common.Alerts.VoteFailure.PollEnded" = "The poll has ended";
"Common.Alerts.VoteFailure.Title" = "Vote Failure";
"Common.Controls.Actions.Add" = "Add";
"Common.Controls.Actions.Back" = "Back";
"Common.Controls.Actions.BlockDomain" = "Block %@";
"Common.Controls.Actions.Cancel" = "Cancel";
"Common.Controls.Actions.Compose" = "Compose";
"Common.Controls.Actions.Confirm" = "Confirm";
"Common.Controls.Actions.Continue" = "Continue";
"Common.Controls.Actions.CopyPhoto" = "Copy Photo";
"Common.Controls.Actions.Delete" = "Delete";
"Common.Controls.Actions.Discard" = "Discard";
"Common.Controls.Actions.Done" = "Done";
"Common.Controls.Actions.Edit" = "Edit";
"Common.Controls.Actions.FindPeople" = "Find people to follow";
"Common.Controls.Actions.ManuallySearch" = "Manually search instead";
"Common.Controls.Actions.Next" = "Next";
"Common.Controls.Actions.Ok" = "OK";
"Common.Controls.Actions.Open" = "Open";
"Common.Controls.Actions.OpenInBrowser" = "Open in Browser";
"Common.Controls.Actions.OpenInSafari" = "Open in Safari";
"Common.Controls.Actions.Preview" = "Preview";
"Common.Controls.Actions.Previous" = "Previous";
"Common.Controls.Actions.Remove" = "Remove";
"Common.Controls.Actions.Reply" = "Reply";
"Common.Controls.Actions.ReportUser" = "Report %@";
"Common.Controls.Actions.Save" = "Save";
"Common.Controls.Actions.SavePhoto" = "Save Photo";
"Common.Controls.Actions.SeeMore" = "See More";
"Common.Controls.Actions.Settings" = "Settings";
"Common.Controls.Actions.Share" = "Share";
"Common.Controls.Actions.SharePost" = "Share Post";
"Common.Controls.Actions.ShareUser" = "Share %@";
"Common.Controls.Actions.SignIn" = "Sign In";
"Common.Controls.Actions.SignUp" = "Sign Up";
"Common.Controls.Actions.Skip" = "Skip";
"Common.Controls.Actions.TakePhoto" = "Take Photo";
"Common.Controls.Actions.TryAgain" = "Try Again";
"Common.Controls.Actions.UnblockDomain" = "Unblock %@";
"Common.Controls.Friendship.Block" = "Block";
"Common.Controls.Friendship.BlockDomain" = "Block %@";
"Common.Controls.Friendship.BlockUser" = "Block %@";
"Common.Controls.Friendship.Blocked" = "Blocked";
"Common.Controls.Friendship.EditInfo" = "Edit Info";
"Common.Controls.Friendship.Follow" = "Follow";
"Common.Controls.Friendship.Following" = "Following";
"Common.Controls.Friendship.HideReblogs" = "Hide Reblogs";
"Common.Controls.Friendship.Mute" = "Mute";
"Common.Controls.Friendship.MuteUser" = "Mute %@";
"Common.Controls.Friendship.Muted" = "Muted";
"Common.Controls.Friendship.Pending" = "Pending";
"Common.Controls.Friendship.Request" = "Request";
"Common.Controls.Friendship.ShowReblogs" = "Show Reblogs";
"Common.Controls.Friendship.Unblock" = "Unblock";
"Common.Controls.Friendship.UnblockUser" = "Unblock %@";
"Common.Controls.Friendship.Unmute" = "Unmute";
"Common.Controls.Friendship.UnmuteUser" = "Unmute %@";
"Common.Controls.Keyboard.Common.ComposeNewPost" = "Compose New Post";
"Common.Controls.Keyboard.Common.OpenSettings" = "Open Settings";
"Common.Controls.Keyboard.Common.ShowFavorites" = "Show Favorites";
"Common.Controls.Keyboard.Common.SwitchToTab" = "Switch to %@";
"Common.Controls.Keyboard.SegmentedControl.NextSection" = "Next Section";
"Common.Controls.Keyboard.SegmentedControl.PreviousSection" = "Previous Section";
"Common.Controls.Keyboard.Timeline.NextStatus" = "Next Post";
"Common.Controls.Keyboard.Timeline.OpenAuthorProfile" = "Open Author's Profile";
"Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "Open Reblogger's Profile";
"Common.Controls.Keyboard.Timeline.OpenStatus" = "Open Post";
"Common.Controls.Keyboard.Timeline.PreviewImage" = "Preview Image";
"Common.Controls.Keyboard.Timeline.PreviousStatus" = "Previous Post";
"Common.Controls.Keyboard.Timeline.ReplyStatus" = "Reply to Post";
"Common.Controls.Keyboard.Timeline.ToggleContentWarning" = "Toggle Content Warning";
"Common.Controls.Keyboard.Timeline.ToggleFavorite" = "Toggle Favorite on Post";
"Common.Controls.Keyboard.Timeline.ToggleReblog" = "Toggle Reblog on Post";
"Common.Controls.Status.Actions.Favorite" = "Favorite";
"Common.Controls.Status.Actions.Hide" = "Hide";
"Common.Controls.Status.Actions.Menu" = "Menu";
"Common.Controls.Status.Actions.Reblog" = "Reblog";
"Common.Controls.Status.Actions.Reply" = "Reply";
"Common.Controls.Status.Actions.ShowGif" = "Show GIF";
"Common.Controls.Status.Actions.ShowImage" = "Show image";
"Common.Controls.Status.Actions.ShowVideoPlayer" = "Show video player";
"Common.Controls.Status.Actions.TapThenHoldToShowMenu" = "Tap then hold to show menu";
"Common.Controls.Status.Actions.Unfavorite" = "Unfavorite";
"Common.Controls.Status.Actions.Unreblog" = "Undo reblog";
"Common.Controls.Status.ContentWarning" = "Content Warning";
"Common.Controls.Status.MediaContentWarning" = "Tap anywhere to reveal";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Closed";
"Common.Controls.Status.Poll.Vote" = "Vote";
"Common.Controls.Status.SensitiveContent" = "Sensitive Content";
"Common.Controls.Status.ShowPost" = "Show Post";
"Common.Controls.Status.ShowUserProfile" = "Show user profile";
"Common.Controls.Status.Tag.Email" = "Email";
"Common.Controls.Status.Tag.Emoji" = "Emoji";
"Common.Controls.Status.Tag.Hashtag" = "Hashtag";
"Common.Controls.Status.Tag.Link" = "Link";
"Common.Controls.Status.Tag.Mention" = "Mention";
"Common.Controls.Status.Tag.Url" = "URL";
"Common.Controls.Status.TapToReveal" = "Tap to reveal";
"Common.Controls.Status.UserReblogged" = "%@ reblogged";
"Common.Controls.Status.UserRepliedTo" = "Replied to %@";
"Common.Controls.Status.Visibility.Direct" = "Only mentioned user can see this post.";
"Common.Controls.Status.Visibility.Private" = "Only their followers can see this post.";
"Common.Controls.Status.Visibility.PrivateFromMe" = "Only my followers can see this post.";
"Common.Controls.Status.Visibility.Unlisted" = "Everyone can see this post but not display in the public timeline.";
"Common.Controls.Tabs.Home" = "Home";
"Common.Controls.Tabs.Notification" = "Notification";
"Common.Controls.Tabs.Profile" = "Profile";
"Common.Controls.Tabs.Search" = "Search";
"Common.Controls.Timeline.Filtered" = "Filtered";
"Common.Controls.Timeline.Header.BlockedWarning" = "You cant view this users profile
until they unblock you.";
"Common.Controls.Timeline.Header.BlockingWarning" = "You cant view this user's profile
until you unblock them.
Your profile looks like this to them.";
"Common.Controls.Timeline.Header.NoStatusFound" = "No Post Found";
"Common.Controls.Timeline.Header.SuspendedWarning" = "This user has been suspended.";
"Common.Controls.Timeline.Header.UserBlockedWarning" = "You cant view %@s profile
until they unblock you.";
"Common.Controls.Timeline.Header.UserBlockingWarning" = "You cant view %@s profile
until you unblock them.
Your profile looks like this to them.";
"Common.Controls.Timeline.Header.UserSuspendedWarning" = "%@s account has been suspended.";
"Common.Controls.Timeline.Loader.LoadMissingPosts" = "Load missing posts";
"Common.Controls.Timeline.Loader.LoadingMissingPosts" = "Loading missing posts...";
"Common.Controls.Timeline.Loader.ShowMoreReplies" = "Show more replies";
"Common.Controls.Timeline.Timestamp.Now" = "Now";
"Scene.AccountList.AddAccount" = "Add Account";
"Scene.AccountList.DismissAccountSwitcher" = "Dismiss Account Switcher";
"Scene.AccountList.TabBarHint" = "Current selected profile: %@. Double tap then hold to show account switcher";
"Scene.Bookmark.Title" = "Bookmarks";
"Scene.Compose.Accessibility.AppendAttachment" = "Add Attachment";
"Scene.Compose.Accessibility.AppendPoll" = "Add Poll";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Custom Emoji Picker";
"Scene.Compose.Accessibility.DisableContentWarning" = "Disable Content Warning";
"Scene.Compose.Accessibility.EnableContentWarning" = "Enable Content Warning";
"Scene.Compose.Accessibility.PostOptions" = "Post Options";
"Scene.Compose.Accessibility.PostVisibilityMenu" = "Post Visibility Menu";
"Scene.Compose.Accessibility.PostingAs" = "Posting as %@";
"Scene.Compose.Accessibility.RemovePoll" = "Remove Poll";
"Scene.Compose.Attachment.AttachmentBroken" = "This %@ is broken and cant be
uploaded to Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not recognize this media attachment";
"Scene.Compose.Attachment.CompressingState" = "Compressing...";
"Scene.Compose.Attachment.DescriptionPhoto" = "Describe the photo for the visually-impaired...";
"Scene.Compose.Attachment.DescriptionVideo" = "Describe the video for the visually-impaired...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "photo";
"Scene.Compose.Attachment.ServerProcessingState" = "Server Processing...";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Space to add";
"Scene.Compose.ComposeAction" = "Publish";
"Scene.Compose.ContentInputPlaceholder" = "Type or paste whats on your mind";
"Scene.Compose.ContentWarning.Placeholder" = "Write an accurate warning here...";
"Scene.Compose.Keyboard.AppendAttachmentEntry" = "Add Attachment - %@";
"Scene.Compose.Keyboard.DiscardPost" = "Discard Post";
"Scene.Compose.Keyboard.PublishPost" = "Publish Post";
"Scene.Compose.Keyboard.SelectVisibilityEntry" = "Select Visibility - %@";
"Scene.Compose.Keyboard.ToggleContentWarning" = "Toggle Content Warning";
"Scene.Compose.Keyboard.TogglePoll" = "Toggle Poll";
"Scene.Compose.MediaSelection.Browse" = "Browse";
"Scene.Compose.MediaSelection.Camera" = "Take Photo";
"Scene.Compose.MediaSelection.PhotoLibrary" = "Photo Library";
"Scene.Compose.Poll.DurationTime" = "Duration: %@";
"Scene.Compose.Poll.OneDay" = "1 Day";
"Scene.Compose.Poll.OneHour" = "1 Hour";
"Scene.Compose.Poll.OptionNumber" = "Option %ld";
"Scene.Compose.Poll.SevenDays" = "7 Days";
"Scene.Compose.Poll.SixHours" = "6 Hours";
"Scene.Compose.Poll.ThePollHasEmptyOption" = "The poll has empty option";
"Scene.Compose.Poll.ThePollIsInvalid" = "The poll is invalid";
"Scene.Compose.Poll.ThirtyMinutes" = "30 minutes";
"Scene.Compose.Poll.ThreeDays" = "3 Days";
"Scene.Compose.ReplyingToUser" = "replying to %@";
"Scene.Compose.Title.NewPost" = "New Post";
"Scene.Compose.Title.NewReply" = "New Reply";
"Scene.Compose.Visibility.Direct" = "Only people I mention";
"Scene.Compose.Visibility.Private" = "Followers only";
"Scene.Compose.Visibility.Public" = "Public";
"Scene.Compose.Visibility.Unlisted" = "Unlisted";
"Scene.ConfirmEmail.Button.OpenEmailApp" = "Open Email App";
"Scene.ConfirmEmail.Button.Resend" = "Resend";
"Scene.ConfirmEmail.DontReceiveEmail.Description" = "Check if your email address is correct as well as your junk folder if you havent.";
"Scene.ConfirmEmail.DontReceiveEmail.ResendEmail" = "Resend Email";
"Scene.ConfirmEmail.DontReceiveEmail.Title" = "Check your email";
"Scene.ConfirmEmail.OpenEmailApp.Description" = "We just sent you an email. Check your junk folder if you havent.";
"Scene.ConfirmEmail.OpenEmailApp.Mail" = "Mail";
"Scene.ConfirmEmail.OpenEmailApp.OpenEmailClient" = "Open Email Client";
"Scene.ConfirmEmail.OpenEmailApp.Title" = "Check your inbox.";
"Scene.ConfirmEmail.Subtitle" = "Tap the link we emailed to you to verify your account.";
"Scene.ConfirmEmail.TapTheLinkWeEmailedToYouToVerifyYourAccount" = "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";
"Scene.Discovery.Tabs.Posts" = "Posts";
"Scene.Familiarfollowers.FollowedByNames" = "Followed by %@";
"Scene.Familiarfollowers.Title" = "Followers you familiar";
"Scene.Favorite.Title" = "Your Favorites";
"Scene.FavoritedBy.Title" = "Favorited By";
"Scene.Follower.Footer" = "Followers from other servers are not displayed.";
"Scene.Follower.Title" = "follower";
"Scene.Following.Footer" = "Follows from other servers are not displayed.";
"Scene.Following.Title" = "following";
"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Tap to scroll to top and tap again to previous location";
"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo Button";
"Scene.HomeTimeline.NavigationBarState.NewPosts" = "See new posts";
"Scene.HomeTimeline.NavigationBarState.Offline" = "Offline";
"Scene.HomeTimeline.NavigationBarState.Published" = "Published!";
"Scene.HomeTimeline.NavigationBarState.Publishing" = "Publishing post...";
"Scene.HomeTimeline.Title" = "Home";
"Scene.Notification.FollowRequest.Accept" = "Accept";
"Scene.Notification.FollowRequest.Accepted" = "Accepted";
"Scene.Notification.FollowRequest.Reject" = "reject";
"Scene.Notification.FollowRequest.Rejected" = "Rejected";
"Scene.Notification.Keyobard.ShowEverything" = "Show Everything";
"Scene.Notification.Keyobard.ShowMentions" = "Show Mentions";
"Scene.Notification.NotificationDescription.FavoritedYourPost" = "favorited your post";
"Scene.Notification.NotificationDescription.FollowedYou" = "followed you";
"Scene.Notification.NotificationDescription.MentionedYou" = "mentioned you";
"Scene.Notification.NotificationDescription.PollHasEnded" = "poll has ended";
"Scene.Notification.NotificationDescription.RebloggedYourPost" = "reblogged your post";
"Scene.Notification.NotificationDescription.RequestToFollowYou" = "request to follow you";
"Scene.Notification.Title.Everything" = "Everything";
"Scene.Notification.Title.Mentions" = "Mentions";
"Scene.Preview.Keyboard.ClosePreview" = "Close Preview";
"Scene.Preview.Keyboard.ShowNext" = "Show Next";
"Scene.Preview.Keyboard.ShowPrevious" = "Show Previous";
"Scene.Profile.Accessibility.DoubleTapToOpenTheList" = "Double tap to open the list";
"Scene.Profile.Accessibility.EditAvatarImage" = "Edit avatar image";
"Scene.Profile.Accessibility.ShowAvatarImage" = "Show avatar image";
"Scene.Profile.Accessibility.ShowBannerImage" = "Show banner image";
"Scene.Profile.Dashboard.Followers" = "followers";
"Scene.Profile.Dashboard.Following" = "following";
"Scene.Profile.Dashboard.Posts" = "posts";
"Scene.Profile.Fields.AddRow" = "Add Row";
"Scene.Profile.Fields.Placeholder.Content" = "Content";
"Scene.Profile.Fields.Placeholder.Label" = "Label";
"Scene.Profile.Header.FollowsYou" = "Follows You";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Confirm to block %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Block Account";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Confirm to hide reblogs";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Hide Reblogs";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Confirm to mute %@";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Mute Account";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirm to show reblogs";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Show Reblogs";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Confirm to unblock %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Unblock Account";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Confirm to unmute %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Title" = "Unmute Account";
"Scene.Profile.SegmentedControl.About" = "About";
"Scene.Profile.SegmentedControl.Media" = "Media";
"Scene.Profile.SegmentedControl.Posts" = "Posts";
"Scene.Profile.SegmentedControl.PostsAndReplies" = "Posts and Replies";
"Scene.Profile.SegmentedControl.Replies" = "Replies";
"Scene.RebloggedBy.Title" = "Reblogged By";
"Scene.Register.Error.Item.Agreement" = "Agreement";
"Scene.Register.Error.Item.Email" = "Email";
"Scene.Register.Error.Item.Locale" = "Locale";
"Scene.Register.Error.Item.Password" = "Password";
"Scene.Register.Error.Item.Reason" = "Reason";
"Scene.Register.Error.Item.Username" = "Username";
"Scene.Register.Error.Reason.Accepted" = "%@ must be accepted";
"Scene.Register.Error.Reason.Blank" = "%@ is required";
"Scene.Register.Error.Reason.Blocked" = "%@ contains a disallowed email provider";
"Scene.Register.Error.Reason.Inclusion" = "%@ is not a supported value";
"Scene.Register.Error.Reason.Invalid" = "%@ is invalid";
"Scene.Register.Error.Reason.Reserved" = "%@ is a reserved keyword";
"Scene.Register.Error.Reason.Taken" = "%@ is already in use";
"Scene.Register.Error.Reason.TooLong" = "%@ is too long";
"Scene.Register.Error.Reason.TooShort" = "%@ is too short";
"Scene.Register.Error.Reason.Unreachable" = "%@ does not seem to exist";
"Scene.Register.Error.Special.EmailInvalid" = "This is not a valid email address";
"Scene.Register.Error.Special.PasswordTooShort" = "Password is too short (must be at least 8 characters)";
"Scene.Register.Error.Special.UsernameInvalid" = "Username must only contain alphanumeric characters and underscores";
"Scene.Register.Error.Special.UsernameTooLong" = "Username is too long (cant be longer than 30 characters)";
"Scene.Register.Input.Avatar.Delete" = "Delete";
"Scene.Register.Input.DisplayName.Placeholder" = "display name";
"Scene.Register.Input.Email.Placeholder" = "email";
"Scene.Register.Input.Invite.RegistrationUserInviteRequest" = "Why do you want to join?";
"Scene.Register.Input.Password.Accessibility.Checked" = "checked";
"Scene.Register.Input.Password.Accessibility.Unchecked" = "unchecked";
"Scene.Register.Input.Password.CharacterLimit" = "8 characters";
"Scene.Register.Input.Password.Hint" = "Your password needs at least eight characters";
"Scene.Register.Input.Password.Placeholder" = "password";
"Scene.Register.Input.Password.Require" = "Your password needs at least:";
"Scene.Register.Input.Username.DuplicatePrompt" = "This username is taken.";
"Scene.Register.Input.Username.Placeholder" = "username";
"Scene.Register.LetsGetYouSetUpOnDomain" = "Lets get you set up on %@";
"Scene.Register.Title" = "Lets get you set up on %@";
"Scene.Report.Content1" = "Are there any other posts youd like to add to the report?";
"Scene.Report.Content2" = "Is there anything the moderators should know about this report?";
"Scene.Report.ReportSentTitle" = "Thanks for reporting, well look into this.";
"Scene.Report.Reported" = "REPORTED";
"Scene.Report.Send" = "Send Report";
"Scene.Report.SkipToSend" = "Send without comment";
"Scene.Report.Step1" = "Step 1 of 2";
"Scene.Report.Step2" = "Step 2 of 2";
"Scene.Report.StepFinal.BlockUser" = "Block %@";
"Scene.Report.StepFinal.DontWantToSeeThis" = "Dont want to see this?";
"Scene.Report.StepFinal.MuteUser" = "Mute %@";
"Scene.Report.StepFinal.TheyWillNoLongerBeAbleToFollowOrSeeYourPostsButTheyCanSeeIfTheyveBeenBlocked" = "They will no longer be able to follow or see your posts, but they can see if theyve been blocked.";
"Scene.Report.StepFinal.Unfollow" = "Unfollow";
"Scene.Report.StepFinal.UnfollowUser" = "Unfollow %@";
"Scene.Report.StepFinal.Unfollowed" = "Unfollowed";
"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "When you see something you dont like on Mastodon, you can remove the person from your experience.";
"Scene.Report.StepFinal.WhileWeReviewThisYouCanTakeActionAgainstUser" = "While we review this, you can take action against %@";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "You wont see their posts or reblogs in your home feed. They wont know theyve been muted.";
"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Is there anything else we should know?";
"Scene.Report.StepFour.Step4Of4" = "Step 4 of 4";
"Scene.Report.StepOne.IDontLikeIt" = "I dont like it";
"Scene.Report.StepOne.ItIsNotSomethingYouWantToSee" = "It is not something you want to see";
"Scene.Report.StepOne.ItViolatesServerRules" = "It violates server rules";
"Scene.Report.StepOne.ItsSomethingElse" = "Its something else";
"Scene.Report.StepOne.ItsSpam" = "Its spam";
"Scene.Report.StepOne.MaliciousLinksFakeEngagementOrRepetetiveReplies" = "Malicious links, fake engagement, or repetetive replies";
"Scene.Report.StepOne.SelectTheBestMatch" = "Select the best match";
"Scene.Report.StepOne.Step1Of4" = "Step 1 of 4";
"Scene.Report.StepOne.TheIssueDoesNotFitIntoOtherCategories" = "The issue does not fit into other categories";
"Scene.Report.StepOne.WhatsWrongWithThisAccount" = "What's wrong with this account?";
"Scene.Report.StepOne.WhatsWrongWithThisPost" = "What's wrong with this post?";
"Scene.Report.StepOne.WhatsWrongWithThisUsername" = "What's wrong with %@?";
"Scene.Report.StepOne.YouAreAwareThatItBreaksSpecificRules" = "You are aware that it breaks specific rules";
"Scene.Report.StepThree.AreThereAnyPostsThatBackUpThisReport" = "Are there any posts that back up this report?";
"Scene.Report.StepThree.SelectAllThatApply" = "Select all that apply";
"Scene.Report.StepThree.Step3Of4" = "Step 3 of 4";
"Scene.Report.StepTwo.IJustDontLikeIt" = "I just dont like it";
"Scene.Report.StepTwo.SelectAllThatApply" = "Select all that apply";
"Scene.Report.StepTwo.Step2Of4" = "Step 2 of 4";
"Scene.Report.StepTwo.WhichRulesAreBeingViolated" = "Which rules are being violated?";
"Scene.Report.TextPlaceholder" = "Type or paste additional comments";
"Scene.Report.Title" = "Report %@";
"Scene.Report.TitleReport" = "Report";
"Scene.Search.Recommend.Accounts.Description" = "You may like to follow these accounts";
"Scene.Search.Recommend.Accounts.Follow" = "Follow";
"Scene.Search.Recommend.Accounts.Title" = "Accounts you might like";
"Scene.Search.Recommend.ButtonText" = "See All";
"Scene.Search.Recommend.HashTag.Description" = "Hashtags that are getting quite a bit of attention";
"Scene.Search.Recommend.HashTag.PeopleTalking" = "%@ people are talking";
"Scene.Search.Recommend.HashTag.Title" = "Trending on Mastodon";
"Scene.Search.SearchBar.Cancel" = "Cancel";
"Scene.Search.SearchBar.Placeholder" = "Search hashtags and users";
"Scene.Search.Searching.Clear" = "Clear";
"Scene.Search.Searching.EmptyState.NoResults" = "No results";
"Scene.Search.Searching.RecentSearch" = "Recent searches";
"Scene.Search.Searching.Segment.All" = "All";
"Scene.Search.Searching.Segment.Hashtags" = "Hashtags";
"Scene.Search.Searching.Segment.People" = "People";
"Scene.Search.Searching.Segment.Posts" = "Posts";
"Scene.Search.Title" = "Search";
"Scene.ServerPicker.Button.Category.Academia" = "academia";
"Scene.ServerPicker.Button.Category.Activism" = "activism";
"Scene.ServerPicker.Button.Category.All" = "All";
"Scene.ServerPicker.Button.Category.AllAccessiblityDescription" = "Category: All";
"Scene.ServerPicker.Button.Category.Art" = "art";
"Scene.ServerPicker.Button.Category.Food" = "food";
"Scene.ServerPicker.Button.Category.Furry" = "furry";
"Scene.ServerPicker.Button.Category.Games" = "games";
"Scene.ServerPicker.Button.Category.General" = "general";
"Scene.ServerPicker.Button.Category.Journalism" = "journalism";
"Scene.ServerPicker.Button.Category.Lgbt" = "lgbt";
"Scene.ServerPicker.Button.Category.Music" = "music";
"Scene.ServerPicker.Button.Category.Regional" = "regional";
"Scene.ServerPicker.Button.Category.Tech" = "tech";
"Scene.ServerPicker.Button.SeeLess" = "See Less";
"Scene.ServerPicker.Button.SeeMore" = "See More";
"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 servers";
"Scene.ServerPicker.Input.SearchServersOrEnterUrl" = "Search servers or enter URL";
"Scene.ServerPicker.Label.Category" = "CATEGORY";
"Scene.ServerPicker.Label.Language" = "LANGUAGE";
"Scene.ServerPicker.Label.Users" = "USERS";
"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 %@.";
"Scene.ServerRules.Subtitle" = "These are set and enforced by the %@ moderators.";
"Scene.ServerRules.TermsOfService" = "terms of service";
"Scene.ServerRules.Title" = "Some ground rules.";
"Scene.Settings.Footer.MastodonDescription" = "Mastodon is open source software. You can report issues on GitHub at %@ (%@)";
"Scene.Settings.Keyboard.CloseSettingsWindow" = "Close Settings Window";
"Scene.Settings.Section.Appearance.Automatic" = "Automatic";
"Scene.Settings.Section.Appearance.Dark" = "Always Dark";
"Scene.Settings.Section.Appearance.Light" = "Always Light";
"Scene.Settings.Section.Appearance.Title" = "Appearance";
"Scene.Settings.Section.BoringZone.AccountSettings" = "Account Settings";
"Scene.Settings.Section.BoringZone.Privacy" = "Privacy Policy";
"Scene.Settings.Section.BoringZone.Terms" = "Terms of Service";
"Scene.Settings.Section.BoringZone.Title" = "The Boring Zone";
"Scene.Settings.Section.LookAndFeel.Light" = "Light";
"Scene.Settings.Section.LookAndFeel.ReallyDark" = "Really Dark";
"Scene.Settings.Section.LookAndFeel.SortaDark" = "Sorta Dark";
"Scene.Settings.Section.LookAndFeel.Title" = "Look and Feel";
"Scene.Settings.Section.LookAndFeel.UseSystem" = "Use System";
"Scene.Settings.Section.Notifications.Boosts" = "Reblogs my post";
"Scene.Settings.Section.Notifications.Favorites" = "Favorites my post";
"Scene.Settings.Section.Notifications.Follows" = "Follows me";
"Scene.Settings.Section.Notifications.Mentions" = "Mentions me";
"Scene.Settings.Section.Notifications.Title" = "Notifications";
"Scene.Settings.Section.Notifications.Trigger.Anyone" = "anyone";
"Scene.Settings.Section.Notifications.Trigger.Follow" = "anyone I follow";
"Scene.Settings.Section.Notifications.Trigger.Follower" = "a follower";
"Scene.Settings.Section.Notifications.Trigger.Noone" = "no one";
"Scene.Settings.Section.Notifications.Trigger.Title" = "Notify me when";
"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "Disable animated avatars";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Disable animated emojis";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferences";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "True black dark mode";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Use default browser to open links";
"Scene.Settings.Section.SpicyZone.Clear" = "Clear Media Cache";
"Scene.Settings.Section.SpicyZone.Signout" = "Sign Out";
"Scene.Settings.Section.SpicyZone.Title" = "The Spicy Zone";
"Scene.Settings.Title" = "Settings";
"Scene.SuggestionAccount.FollowExplain" = "When you follow someone, youll see their posts in your home feed.";
"Scene.SuggestionAccount.Title" = "Find People to Follow";
"Scene.Thread.BackTitle" = "Post";
"Scene.Thread.Title" = "Post from %@";
"Scene.Welcome.GetStarted" = "Get Started";
"Scene.Welcome.LogIn" = "Log In";
"Scene.Welcome.Slogan" = "Social networking
back in your hands.";
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
"Scene.Wizard.NewInMastodon" = "New in Mastodon";

View File

@ -0,0 +1,631 @@
<?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>zero</key>
<string>no unread notification</string>
<key>one</key>
<string>1 unread notification</string>
<key>few</key>
<string>%ld unread notifications</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 characters</string>
<key>one</key>
<string>1 character</string>
<key>few</key>
<string>%ld characters</string>
<key>many</key>
<string>%ld characters</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>zero</key>
<string>0 characters</string>
<key>one</key>
<string>1 character</string>
<key>few</key>
<string>%ld characters</string>
<key>many</key>
<string>%ld characters</string>
<key>other</key>
<string>%ld characters</string>
</dict>
</dict>
<key>a11y.plural.count.characters_left</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@character_count@ left</string>
<key>character_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>no characters</string>
<key>one</key>
<string>1 character</string>
<key>few</key>
<string>%ld characters</string>
<key>many</key>
<string>%ld characters</string>
<key>other</key>
<string>%ld characters</string>
</dict>
</dict>
<key>plural.count.followed_by_and_mutual</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@names@%#@count_mutual@</string>
<key>names</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>other</key>
<string></string>
</dict>
<key>count_mutual</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>Followed by %1$@</string>
<key>one</key>
<string>Followed by %1$@, and another mutual</string>
<key>few</key>
<string>Followed by %1$@, and %ld mutuals</string>
<key>many</key>
<string>Followed by %1$@, and %ld mutuals</string>
<key>other</key>
<string>Followed by %1$@, and %ld mutuals</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>zero</key>
<string>posts</string>
<key>one</key>
<string>post</string>
<key>few</key>
<string>posts</string>
<key>many</key>
<string>posts</string>
<key>other</key>
<string>posts</string>
</dict>
</dict>
<key>plural.count.media</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@media_count@</string>
<key>media_count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>0 media</string>
<key>one</key>
<string>1 media</string>
<key>few</key>
<string>%ld media</string>
<key>many</key>
<string>%ld media</string>
<key>other</key>
<string>%ld media</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>zero</key>
<string>0 posts</string>
<key>one</key>
<string>1 post</string>
<key>few</key>
<string>%ld posts</string>
<key>many</key>
<string>%ld posts</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>zero</key>
<string>0 favorites</string>
<key>one</key>
<string>1 favorite</string>
<key>few</key>
<string>%ld favorites</string>
<key>many</key>
<string>%ld favorites</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>zero</key>
<string>0 reblogs</string>
<key>one</key>
<string>1 reblog</string>
<key>few</key>
<string>%ld reblogs</string>
<key>many</key>
<string>%ld reblogs</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>zero</key>
<string>0 replies</string>
<key>one</key>
<string>1 reply</string>
<key>few</key>
<string>%ld replies</string>
<key>many</key>
<string>%ld replies</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>zero</key>
<string>0 votes</string>
<key>one</key>
<string>1 vote</string>
<key>few</key>
<string>%ld votes</string>
<key>many</key>
<string>%ld votes</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>zero</key>
<string>0 voters</string>
<key>one</key>
<string>1 voter</string>
<key>few</key>
<string>%ld voters</string>
<key>many</key>
<string>%ld voters</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>zero</key>
<string>0 people talking</string>
<key>one</key>
<string>1 people talking</string>
<key>few</key>
<string>%ld people talking</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 following</string>
<key>one</key>
<string>1 following</string>
<key>few</key>
<string>%ld following</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 followers</string>
<key>one</key>
<string>1 follower</string>
<key>few</key>
<string>%ld followers</string>
<key>many</key>
<string>%ld followers</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>zero</key>
<string>0 years left</string>
<key>one</key>
<string>1 year left</string>
<key>few</key>
<string>%ld years left</string>
<key>many</key>
<string>%ld years 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>zero</key>
<string>0 months left</string>
<key>one</key>
<string>1 months left</string>
<key>few</key>
<string>%ld months left</string>
<key>many</key>
<string>%ld 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>zero</key>
<string>0 days left</string>
<key>one</key>
<string>1 day left</string>
<key>few</key>
<string>%ld days left</string>
<key>many</key>
<string>%ld days 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>zero</key>
<string>0 hours left</string>
<key>one</key>
<string>1 hour left</string>
<key>few</key>
<string>%ld hours left</string>
<key>many</key>
<string>%ld hours 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>zero</key>
<string>0 minutes left</string>
<key>one</key>
<string>1 minute left</string>
<key>few</key>
<string>%ld minutes left</string>
<key>many</key>
<string>%ld minutes 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>zero</key>
<string>0 seconds left</string>
<key>one</key>
<string>1 second left</string>
<key>few</key>
<string>%ld seconds left</string>
<key>many</key>
<string>%ld seconds 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>zero</key>
<string>0y ago</string>
<key>one</key>
<string>1y ago</string>
<key>few</key>
<string>%ldy ago</string>
<key>many</key>
<string>%ldy 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>zero</key>
<string>0M ago</string>
<key>one</key>
<string>1M ago</string>
<key>few</key>
<string>%ldM ago</string>
<key>many</key>
<string>%ldM 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>zero</key>
<string>0d ago</string>
<key>one</key>
<string>1d ago</string>
<key>few</key>
<string>%ldd ago</string>
<key>many</key>
<string>%ldd 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>zero</key>
<string>0h ago</string>
<key>one</key>
<string>1h ago</string>
<key>few</key>
<string>%ldh ago</string>
<key>many</key>
<string>%ldh 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>zero</key>
<string>0m ago</string>
<key>one</key>
<string>1m ago</string>
<key>few</key>
<string>%ldm ago</string>
<key>many</key>
<string>%ldm 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>zero</key>
<string>0s ago</string>
<key>one</key>
<string>1s ago</string>
<key>few</key>
<string>%lds ago</string>
<key>many</key>
<string>%lds ago</string>
<key>other</key>
<string>%lds ago</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -68,13 +68,13 @@
"Common.Controls.Friendship.EditInfo" = "تَحريرُ المَعلُومات"; "Common.Controls.Friendship.EditInfo" = "تَحريرُ المَعلُومات";
"Common.Controls.Friendship.Follow" = "مُتابَعَة"; "Common.Controls.Friendship.Follow" = "مُتابَعَة";
"Common.Controls.Friendship.Following" = "مُتابَع"; "Common.Controls.Friendship.Following" = "مُتابَع";
"Common.Controls.Friendship.HideReblogs" = "Hide Reblogs"; "Common.Controls.Friendship.HideReblogs" = "إخفاء إعادات التدوين";
"Common.Controls.Friendship.Mute" = "كَتم"; "Common.Controls.Friendship.Mute" = "كَتم";
"Common.Controls.Friendship.MuteUser" = "كَتمُ %@"; "Common.Controls.Friendship.MuteUser" = "كَتمُ %@";
"Common.Controls.Friendship.Muted" = "مكتوم"; "Common.Controls.Friendship.Muted" = "مكتوم";
"Common.Controls.Friendship.Pending" = "قيد المُراجعة"; "Common.Controls.Friendship.Pending" = "قيد المُراجعة";
"Common.Controls.Friendship.Request" = "إرسال طَلَب"; "Common.Controls.Friendship.Request" = "إرسال طَلَب";
"Common.Controls.Friendship.ShowReblogs" = "Show Reblogs"; "Common.Controls.Friendship.ShowReblogs" = "إظهار إعادات التدوين";
"Common.Controls.Friendship.Unblock" = "رفع الحَظر"; "Common.Controls.Friendship.Unblock" = "رفع الحَظر";
"Common.Controls.Friendship.UnblockUser" = "رفع الحَظر عن %@"; "Common.Controls.Friendship.UnblockUser" = "رفع الحَظر عن %@";
"Common.Controls.Friendship.Unmute" = "رفع الكتم"; "Common.Controls.Friendship.Unmute" = "رفع الكتم";
@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "التراجُع عن إعادة النشر"; "Common.Controls.Status.Actions.Unreblog" = "التراجُع عن إعادة النشر";
"Common.Controls.Status.ContentWarning" = "تحذير المُحتوى"; "Common.Controls.Status.ContentWarning" = "تحذير المُحتوى";
"Common.Controls.Status.MediaContentWarning" = "اُنقُر لِلكَشف"; "Common.Controls.Status.MediaContentWarning" = "اُنقُر لِلكَشف";
"Common.Controls.Status.MetaEntity.Email" = "عُنوان البريد الإلكتُروني: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "وَسْم: %@";
"Common.Controls.Status.MetaEntity.Mention" = "إظهار المِلف التعريفي: %@";
"Common.Controls.Status.MetaEntity.Url" = "رابِط: %@";
"Common.Controls.Status.Poll.Closed" = "انتهى"; "Common.Controls.Status.Poll.Closed" = "انتهى";
"Common.Controls.Status.Poll.Vote" = "صَوِّت"; "Common.Controls.Status.Poll.Vote" = "صَوِّت";
"Common.Controls.Status.SensitiveContent" = "مُحتَوى حَسَّاس"; "Common.Controls.Status.SensitiveContent" = "مُحتَوى حَسَّاس";
@ -151,7 +155,7 @@
"Scene.AccountList.AddAccount" = "إضافَةُ حِساب"; "Scene.AccountList.AddAccount" = "إضافَةُ حِساب";
"Scene.AccountList.DismissAccountSwitcher" = "تجاهُل مبدِّل الحِساب"; "Scene.AccountList.DismissAccountSwitcher" = "تجاهُل مبدِّل الحِساب";
"Scene.AccountList.TabBarHint" = "المِلَفُّ المُحدَّدُ حالِيًّا: %@. اُنقُر نَقرًا مُزدَوَجًا مَعَ الاِستِمرارِ لِإظهارِ مُبدِّلِ الحِساب"; "Scene.AccountList.TabBarHint" = "المِلَفُّ المُحدَّدُ حالِيًّا: %@. اُنقُر نَقرًا مُزدَوَجًا مَعَ الاِستِمرارِ لِإظهارِ مُبدِّلِ الحِساب";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "العَلاماتُ المَرجعيَّة";
"Scene.Compose.Accessibility.AppendAttachment" = "إضافة مُرفَق"; "Scene.Compose.Accessibility.AppendAttachment" = "إضافة مُرفَق";
"Scene.Compose.Accessibility.AppendPoll" = "اضافة استطلاع رأي"; "Scene.Compose.Accessibility.AppendPoll" = "اضافة استطلاع رأي";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "منتقي الرموز التعبيرية المُخصَّص"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "منتقي الرموز التعبيرية المُخصَّص";
@ -161,9 +165,13 @@
"Scene.Compose.Accessibility.RemovePoll" = "إزالة الاستطلاع"; "Scene.Compose.Accessibility.RemovePoll" = "إزالة الاستطلاع";
"Scene.Compose.Attachment.AttachmentBroken" = "هذا ال%@ مُعطَّل "Scene.Compose.Attachment.AttachmentBroken" = "هذا ال%@ مُعطَّل
ويتعذَّرُ رفعُه إلى ماستودون."; ويتعذَّرُ رفعُه إلى ماستودون.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "صِف الصورة للمَكفوفين..."; "Scene.Compose.Attachment.DescriptionPhoto" = "صِف الصورة للمَكفوفين...";
"Scene.Compose.Attachment.DescriptionVideo" = "صِف المقطع المرئي للمَكفوفين..."; "Scene.Compose.Attachment.DescriptionVideo" = "صِف المقطع المرئي للمَكفوفين...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "صورة"; "Scene.Compose.Attachment.Photo" = "صورة";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "مقطع مرئي"; "Scene.Compose.Attachment.Video" = "مقطع مرئي";
"Scene.Compose.AutoComplete.SpaceToAdd" = "انقر على مساحة لإضافتِها"; "Scene.Compose.AutoComplete.SpaceToAdd" = "انقر على مساحة لإضافتِها";
"Scene.Compose.ComposeAction" = "نَشر"; "Scene.Compose.ComposeAction" = "نَشر";
@ -256,12 +264,12 @@
"Scene.Profile.Header.FollowsYou" = "يُتابِعُك"; "Scene.Profile.Header.FollowsYou" = "يُتابِعُك";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "تأكيدُ حَظر %@"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "تأكيدُ حَظر %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "حَظرُ الحِساب"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "حَظرُ الحِساب";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Confirm to hide reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "التأكيد لِإخفاء إعادات التدوين";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Hide Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "إخفاء إعادات التدوين";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "تأكيدُ كَتم %@"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "تأكيدُ كَتم %@";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "كَتمُ الحِساب"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "كَتمُ الحِساب";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirm to show reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "التأكيد لِإظهار إعادات التدوين";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Show Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "إظهار إعادات التدوين";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "تأكيدُ رَفع الحَظرِ عَن %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "تأكيدُ رَفع الحَظرِ عَن %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "رَفعُ الحَظرِ عَنِ الحِساب"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "رَفعُ الحَظرِ عَنِ الحِساب";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "أكِّد لرفع الكتمْ عن %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "أكِّد لرفع الكتمْ عن %@";

View File

@ -108,6 +108,10 @@ Comprova la teva connexió a Internet.";
"Common.Controls.Status.Actions.Unreblog" = "Desfer l'impuls"; "Common.Controls.Status.Actions.Unreblog" = "Desfer l'impuls";
"Common.Controls.Status.ContentWarning" = "Advertència de Contingut"; "Common.Controls.Status.ContentWarning" = "Advertència de Contingut";
"Common.Controls.Status.MediaContentWarning" = "Toca qualsevol lloc per a mostrar"; "Common.Controls.Status.MediaContentWarning" = "Toca qualsevol lloc per a mostrar";
"Common.Controls.Status.MetaEntity.Email" = "Correu electrònic: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Etiqueta %@";
"Common.Controls.Status.MetaEntity.Mention" = "Mostra el Perfil: %@";
"Common.Controls.Status.MetaEntity.Url" = "Enllaç: %@";
"Common.Controls.Status.Poll.Closed" = "Finalitzada"; "Common.Controls.Status.Poll.Closed" = "Finalitzada";
"Common.Controls.Status.Poll.Vote" = "Vota"; "Common.Controls.Status.Poll.Vote" = "Vota";
"Common.Controls.Status.SensitiveContent" = "Contingut sensible"; "Common.Controls.Status.SensitiveContent" = "Contingut sensible";
@ -151,7 +155,7 @@ El teu perfil els sembla així.";
"Scene.AccountList.AddAccount" = "Afegir compte"; "Scene.AccountList.AddAccount" = "Afegir compte";
"Scene.AccountList.DismissAccountSwitcher" = "Descartar el commutador de comptes"; "Scene.AccountList.DismissAccountSwitcher" = "Descartar el commutador de comptes";
"Scene.AccountList.TabBarHint" = "Perfil actual seleccionat: %@. Toca dues vegades i manté el dit per a mostrar el commutador de comptes"; "Scene.AccountList.TabBarHint" = "Perfil actual seleccionat: %@. Toca dues vegades i manté el dit per a mostrar el commutador de comptes";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Marcadors";
"Scene.Compose.Accessibility.AppendAttachment" = "Afegeix Adjunt"; "Scene.Compose.Accessibility.AppendAttachment" = "Afegeix Adjunt";
"Scene.Compose.Accessibility.AppendPoll" = "Afegir enquesta"; "Scene.Compose.Accessibility.AppendPoll" = "Afegir enquesta";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Selector d'Emoji Personalitzat"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Selector d'Emoji Personalitzat";
@ -161,9 +165,13 @@ El teu perfil els sembla així.";
"Scene.Compose.Accessibility.RemovePoll" = "Eliminar Enquesta"; "Scene.Compose.Accessibility.RemovePoll" = "Eliminar Enquesta";
"Scene.Compose.Attachment.AttachmentBroken" = "Aquest %@ està trencat i no pot ser "Scene.Compose.Attachment.AttachmentBroken" = "Aquest %@ està trencat i no pot ser
carregat a Mastodon."; carregat a Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "El fitxer adjunt és massa gran";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "No es pot reconèixer l'adjunt multimèdia";
"Scene.Compose.Attachment.DescriptionPhoto" = "Descriu la foto per als disminuïts visuals..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Descriu la foto per als disminuïts visuals...";
"Scene.Compose.Attachment.DescriptionVideo" = "Descriu el vídeo per als disminuïts visuals..."; "Scene.Compose.Attachment.DescriptionVideo" = "Descriu el vídeo per als disminuïts visuals...";
"Scene.Compose.Attachment.LoadFailed" = "Ha fallat la càrrega";
"Scene.Compose.Attachment.Photo" = "foto"; "Scene.Compose.Attachment.Photo" = "foto";
"Scene.Compose.Attachment.UploadFailed" = "Pujada fallida";
"Scene.Compose.Attachment.Video" = "vídeo"; "Scene.Compose.Attachment.Video" = "vídeo";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Espai per afegir"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Espai per afegir";
"Scene.Compose.ComposeAction" = "Publica"; "Scene.Compose.ComposeAction" = "Publica";

View File

@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "پۆستکردنەکە بگەڕێنەوە"; "Common.Controls.Status.Actions.Unreblog" = "پۆستکردنەکە بگەڕێنەوە";
"Common.Controls.Status.ContentWarning" = "ئاگاداریی ناوەڕۆک"; "Common.Controls.Status.ContentWarning" = "ئاگاداریی ناوەڕۆک";
"Common.Controls.Status.MediaContentWarning" = "دەستی پیا بنێ بۆ نیشاندانی"; "Common.Controls.Status.MediaContentWarning" = "دەستی پیا بنێ بۆ نیشاندانی";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "داخراوە"; "Common.Controls.Status.Poll.Closed" = "داخراوە";
"Common.Controls.Status.Poll.Vote" = "دەنگ بدە"; "Common.Controls.Status.Poll.Vote" = "دەنگ بدە";
"Common.Controls.Status.SensitiveContent" = "ناوەڕۆکی هەستیار"; "Common.Controls.Status.SensitiveContent" = "ناوەڕۆکی هەستیار";
@ -160,9 +164,13 @@
"Scene.Compose.Accessibility.PostVisibilityMenu" = "پێڕستی شێوازی دەرکەوتنی پۆست"; "Scene.Compose.Accessibility.PostVisibilityMenu" = "پێڕستی شێوازی دەرکەوتنی پۆست";
"Scene.Compose.Accessibility.RemovePoll" = "دانگدانەکە لابە"; "Scene.Compose.Accessibility.RemovePoll" = "دانگدانەکە لابە";
"Scene.Compose.Attachment.AttachmentBroken" = "ئەم %@ـە تێک چووە و ناتوانیت بەرزی بکەیتەوە."; "Scene.Compose.Attachment.AttachmentBroken" = "ئەم %@ـە تێک چووە و ناتوانیت بەرزی بکەیتەوە.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "وێنەکەت بۆ نابیناکان باس بکە..."; "Scene.Compose.Attachment.DescriptionPhoto" = "وێنەکەت بۆ نابیناکان باس بکە...";
"Scene.Compose.Attachment.DescriptionVideo" = "ڤیدیۆکەت بۆ نابیناکان باس بکە..."; "Scene.Compose.Attachment.DescriptionVideo" = "ڤیدیۆکەت بۆ نابیناکان باس بکە...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "وێنە"; "Scene.Compose.Attachment.Photo" = "وێنە";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "ڤیدیۆ"; "Scene.Compose.Attachment.Video" = "ڤیدیۆ";
"Scene.Compose.AutoComplete.SpaceToAdd" = "بۆشایی دابنێ بۆ زیادکردن"; "Scene.Compose.AutoComplete.SpaceToAdd" = "بۆشایی دابنێ بۆ زیادکردن";
"Scene.Compose.ComposeAction" = "بڵاوی بکەوە"; "Scene.Compose.ComposeAction" = "بڵاوی بکەوە";

View File

@ -108,6 +108,10 @@ Bitte überprüfe deine Internetverbindung.";
"Common.Controls.Status.Actions.Unreblog" = "Nicht mehr teilen"; "Common.Controls.Status.Actions.Unreblog" = "Nicht mehr teilen";
"Common.Controls.Status.ContentWarning" = "Inhaltswarnung"; "Common.Controls.Status.ContentWarning" = "Inhaltswarnung";
"Common.Controls.Status.MediaContentWarning" = "Tippe irgendwo zum Anzeigen"; "Common.Controls.Status.MediaContentWarning" = "Tippe irgendwo zum Anzeigen";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Beendet"; "Common.Controls.Status.Poll.Closed" = "Beendet";
"Common.Controls.Status.Poll.Vote" = "Abstimmen"; "Common.Controls.Status.Poll.Vote" = "Abstimmen";
"Common.Controls.Status.SensitiveContent" = "NSFW-Inhalt"; "Common.Controls.Status.SensitiveContent" = "NSFW-Inhalt";
@ -151,7 +155,7 @@ Dein Profil sieht für diesen Benutzer auch so aus.";
"Scene.AccountList.AddAccount" = "Konto hinzufügen"; "Scene.AccountList.AddAccount" = "Konto hinzufügen";
"Scene.AccountList.DismissAccountSwitcher" = "Dialog zum Wechseln des Kontos schließen"; "Scene.AccountList.DismissAccountSwitcher" = "Dialog zum Wechseln des Kontos schließen";
"Scene.AccountList.TabBarHint" = "Aktuell ausgewähltes Profil: %@. Doppeltippen dann gedrückt halten, um den Kontoschalter anzuzeigen"; "Scene.AccountList.TabBarHint" = "Aktuell ausgewähltes Profil: %@. Doppeltippen dann gedrückt halten, um den Kontoschalter anzuzeigen";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Lesezeichen";
"Scene.Compose.Accessibility.AppendAttachment" = "Anhang hinzufügen"; "Scene.Compose.Accessibility.AppendAttachment" = "Anhang hinzufügen";
"Scene.Compose.Accessibility.AppendPoll" = "Umfrage hinzufügen"; "Scene.Compose.Accessibility.AppendPoll" = "Umfrage hinzufügen";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Benutzerdefinierter Emojiwähler"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Benutzerdefinierter Emojiwähler";
@ -161,9 +165,13 @@ Dein Profil sieht für diesen Benutzer auch so aus.";
"Scene.Compose.Accessibility.RemovePoll" = "Umfrage entfernen"; "Scene.Compose.Accessibility.RemovePoll" = "Umfrage entfernen";
"Scene.Compose.Attachment.AttachmentBroken" = "Dieses %@ scheint defekt zu sein und "Scene.Compose.Attachment.AttachmentBroken" = "Dieses %@ scheint defekt zu sein und
kann nicht auf Mastodon hochgeladen werden."; kann nicht auf Mastodon hochgeladen werden.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Anhang zu groß";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Medienanhang wurde nicht erkannt";
"Scene.Compose.Attachment.DescriptionPhoto" = "Für Menschen mit Sehbehinderung beschreiben..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Für Menschen mit Sehbehinderung beschreiben...";
"Scene.Compose.Attachment.DescriptionVideo" = "Für Menschen mit Sehbehinderung beschreiben..."; "Scene.Compose.Attachment.DescriptionVideo" = "Für Menschen mit Sehbehinderung beschreiben...";
"Scene.Compose.Attachment.LoadFailed" = "Laden fehlgeschlagen";
"Scene.Compose.Attachment.Photo" = "Foto"; "Scene.Compose.Attachment.Photo" = "Foto";
"Scene.Compose.Attachment.UploadFailed" = "Upload fehlgeschlagen";
"Scene.Compose.Attachment.Video" = "Video"; "Scene.Compose.Attachment.Video" = "Video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Leerzeichen um hinzuzufügen"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Leerzeichen um hinzuzufügen";
"Scene.Compose.ComposeAction" = "Veröffentlichen"; "Scene.Compose.ComposeAction" = "Veröffentlichen";
@ -215,9 +223,9 @@ kann nicht auf Mastodon hochgeladen werden.";
"Scene.Familiarfollowers.Title" = "Follower, die dir bekannt vorkommen"; "Scene.Familiarfollowers.Title" = "Follower, die dir bekannt vorkommen";
"Scene.Favorite.Title" = "Deine Favoriten"; "Scene.Favorite.Title" = "Deine Favoriten";
"Scene.FavoritedBy.Title" = "Favorisiert von"; "Scene.FavoritedBy.Title" = "Favorisiert von";
"Scene.Follower.Footer" = "Follower von anderen Servern werden nicht angezeigt."; "Scene.Follower.Footer" = "Folger, die nicht auf deinem Server registriert sind, werden nicht angezeigt.";
"Scene.Follower.Title" = "Follower"; "Scene.Follower.Title" = "Follower";
"Scene.Following.Footer" = "Wem das Konto folgt wird von anderen Servern werden nicht angezeigt."; "Scene.Following.Footer" = "Gefolgte, die nicht auf deinem Server registriert sind, werden nicht angezeigt.";
"Scene.Following.Title" = "Folgende"; "Scene.Following.Title" = "Folgende";
"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Zum Scrollen nach oben tippen und zum vorherigen Ort erneut tippen"; "Scene.HomeTimeline.NavigationBarState.Accessibility.LogoHint" = "Zum Scrollen nach oben tippen und zum vorherigen Ort erneut tippen";
"Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo-Button"; "Scene.HomeTimeline.NavigationBarState.Accessibility.LogoLabel" = "Logo-Button";
@ -247,7 +255,7 @@ kann nicht auf Mastodon hochgeladen werden.";
"Scene.Profile.Accessibility.EditAvatarImage" = "Profilbild bearbeiten"; "Scene.Profile.Accessibility.EditAvatarImage" = "Profilbild bearbeiten";
"Scene.Profile.Accessibility.ShowAvatarImage" = "Profilbild anzeigen"; "Scene.Profile.Accessibility.ShowAvatarImage" = "Profilbild anzeigen";
"Scene.Profile.Accessibility.ShowBannerImage" = "Bannerbild anzeigen"; "Scene.Profile.Accessibility.ShowBannerImage" = "Bannerbild anzeigen";
"Scene.Profile.Dashboard.Followers" = "Folger"; "Scene.Profile.Dashboard.Followers" = "Folgende";
"Scene.Profile.Dashboard.Following" = "Gefolgte"; "Scene.Profile.Dashboard.Following" = "Gefolgte";
"Scene.Profile.Dashboard.Posts" = "Beiträge"; "Scene.Profile.Dashboard.Posts" = "Beiträge";
"Scene.Profile.Fields.AddRow" = "Zeile hinzufügen"; "Scene.Profile.Fields.AddRow" = "Zeile hinzufügen";
@ -260,7 +268,7 @@ kann nicht auf Mastodon hochgeladen werden.";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Reblogs ausblenden"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Reblogs ausblenden";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Bestätige %@ stumm zu schalten"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Bestätige %@ stumm zu schalten";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Konto stummschalten"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Konto stummschalten";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirm to show reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Bestätigen um Reblogs anzuzeigen";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Reblogs anzeigen"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Reblogs anzeigen";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Bestätige %@ zu entsperren"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Bestätige %@ zu entsperren";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Konto entsperren"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Konto entsperren";
@ -422,7 +430,7 @@ beliebigen Server.";
"Scene.Settings.Section.Notifications.Title" = "Benachrichtigungen"; "Scene.Settings.Section.Notifications.Title" = "Benachrichtigungen";
"Scene.Settings.Section.Notifications.Trigger.Anyone" = "jeder"; "Scene.Settings.Section.Notifications.Trigger.Anyone" = "jeder";
"Scene.Settings.Section.Notifications.Trigger.Follow" = "ein von mir Gefolgter"; "Scene.Settings.Section.Notifications.Trigger.Follow" = "ein von mir Gefolgter";
"Scene.Settings.Section.Notifications.Trigger.Follower" = "ein Folger"; "Scene.Settings.Section.Notifications.Trigger.Follower" = "ein Folgender";
"Scene.Settings.Section.Notifications.Trigger.Noone" = "niemand"; "Scene.Settings.Section.Notifications.Trigger.Noone" = "niemand";
"Scene.Settings.Section.Notifications.Trigger.Title" = "Benachrichtige mich, wenn"; "Scene.Settings.Section.Notifications.Trigger.Title" = "Benachrichtige mich, wenn";
"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "Animierte Profilbilder deaktivieren"; "Scene.Settings.Section.Preference.DisableAvatarAnimation" = "Animierte Profilbilder deaktivieren";

View File

@ -248,9 +248,9 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>1 Follower</string> <string>1 Folgender</string>
<key>other</key> <key>other</key>
<string>%ld Follower</string> <string>%ld Folgende</string>
</dict> </dict>
</dict> </dict>
<key>date.year.left</key> <key>date.year.left</key>

View File

@ -109,7 +109,7 @@ Please check your internet connection.";
"Common.Controls.Status.ContentWarning" = "Content Warning"; "Common.Controls.Status.ContentWarning" = "Content Warning";
"Common.Controls.Status.MediaContentWarning" = "Tap anywhere to reveal"; "Common.Controls.Status.MediaContentWarning" = "Tap anywhere to reveal";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@"; "Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hastag %@"; "Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@"; "Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@"; "Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Closed"; "Common.Controls.Status.Poll.Closed" = "Closed";
@ -167,9 +167,13 @@ Your profile looks like this to them.";
"Scene.Compose.Accessibility.RemovePoll" = "Remove Poll"; "Scene.Compose.Accessibility.RemovePoll" = "Remove Poll";
"Scene.Compose.Attachment.AttachmentBroken" = "This %@ is broken and cant be "Scene.Compose.Attachment.AttachmentBroken" = "This %@ is broken and cant be
uploaded to Mastodon."; uploaded to Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Describe the photo for the visually-impaired..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Describe the photo for the visually-impaired...";
"Scene.Compose.Attachment.DescriptionVideo" = "Describe the video for the visually-impaired..."; "Scene.Compose.Attachment.DescriptionVideo" = "Describe the video for the visually-impaired...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "photo"; "Scene.Compose.Attachment.Photo" = "photo";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Space to add"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Space to add";
"Scene.Compose.ComposeAction" = "Publish"; "Scene.Compose.ComposeAction" = "Publish";
@ -259,6 +263,8 @@ uploaded to Mastodon.";
"Scene.Profile.Fields.AddRow" = "Add Row"; "Scene.Profile.Fields.AddRow" = "Add Row";
"Scene.Profile.Fields.Placeholder.Content" = "Content"; "Scene.Profile.Fields.Placeholder.Content" = "Content";
"Scene.Profile.Fields.Placeholder.Label" = "Label"; "Scene.Profile.Fields.Placeholder.Label" = "Label";
"Scene.Profile.Fields.Verified.Short" = "Verified at %s";
"Scene.Profile.Fields.Verified.Long" = "Ownership of this link was checked on %s";
"Scene.Profile.Header.FollowsYou" = "Follows You"; "Scene.Profile.Header.FollowsYou" = "Follows You";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Confirm to block %@"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Confirm to block %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Block Account"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Block Account";
@ -450,4 +456,4 @@ uploaded to Mastodon.";
back in your hands."; back in your hands.";
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard"; "Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button."; "Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
"Scene.Wizard.NewInMastodon" = "New in Mastodon"; "Scene.Wizard.NewInMastodon" = "New in Mastodon";

View File

@ -108,6 +108,10 @@ Por favor, revise su conexión a internet.";
"Common.Controls.Status.Actions.Unreblog" = "Deshacer reblogueo"; "Common.Controls.Status.Actions.Unreblog" = "Deshacer reblogueo";
"Common.Controls.Status.ContentWarning" = "Advertencia de Contenido"; "Common.Controls.Status.ContentWarning" = "Advertencia de Contenido";
"Common.Controls.Status.MediaContentWarning" = "Pulsa en cualquier sitio para mostrar"; "Common.Controls.Status.MediaContentWarning" = "Pulsa en cualquier sitio para mostrar";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Cerrado"; "Common.Controls.Status.Poll.Closed" = "Cerrado";
"Common.Controls.Status.Poll.Vote" = "Vota"; "Common.Controls.Status.Poll.Vote" = "Vota";
"Common.Controls.Status.SensitiveContent" = "Contenido sensible"; "Common.Controls.Status.SensitiveContent" = "Contenido sensible";
@ -161,9 +165,13 @@ Tu perfil se ve así para él.";
"Scene.Compose.Accessibility.RemovePoll" = "Eliminar Encuesta"; "Scene.Compose.Accessibility.RemovePoll" = "Eliminar Encuesta";
"Scene.Compose.Attachment.AttachmentBroken" = "Este %@ está roto y no puede "Scene.Compose.Attachment.AttachmentBroken" = "Este %@ está roto y no puede
subirse a Mastodon."; subirse a Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Describe la foto para los usuarios con dificultad visual..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Describe la foto para los usuarios con dificultad visual...";
"Scene.Compose.Attachment.DescriptionVideo" = "Describe el vídeo para los usuarios con dificultad visual..."; "Scene.Compose.Attachment.DescriptionVideo" = "Describe el vídeo para los usuarios con dificultad visual...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "foto"; "Scene.Compose.Attachment.Photo" = "foto";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "vídeo"; "Scene.Compose.Attachment.Video" = "vídeo";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Espacio para añadir"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Espacio para añadir";
"Scene.Compose.ComposeAction" = "Publicar"; "Scene.Compose.ComposeAction" = "Publicar";

View File

@ -108,6 +108,10 @@ Egiaztatu Interneteko konexioa.";
"Common.Controls.Status.Actions.Unreblog" = "Desegin bultzada"; "Common.Controls.Status.Actions.Unreblog" = "Desegin bultzada";
"Common.Controls.Status.ContentWarning" = "Edukiaren abisua"; "Common.Controls.Status.ContentWarning" = "Edukiaren abisua";
"Common.Controls.Status.MediaContentWarning" = "Ukitu edonon bistaratzeko"; "Common.Controls.Status.MediaContentWarning" = "Ukitu edonon bistaratzeko";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Itxita"; "Common.Controls.Status.Poll.Closed" = "Itxita";
"Common.Controls.Status.Poll.Vote" = "Bozkatu"; "Common.Controls.Status.Poll.Vote" = "Bozkatu";
"Common.Controls.Status.SensitiveContent" = "Sensitive Content"; "Common.Controls.Status.SensitiveContent" = "Sensitive Content";
@ -161,9 +165,13 @@ Zure profilak itxura hau du berarentzat.";
"Scene.Compose.Accessibility.RemovePoll" = "Kendu inkesta"; "Scene.Compose.Accessibility.RemovePoll" = "Kendu inkesta";
"Scene.Compose.Attachment.AttachmentBroken" = "%@ hondatuta dago eta ezin da "Scene.Compose.Attachment.AttachmentBroken" = "%@ hondatuta dago eta ezin da
Mastodonera igo."; Mastodonera igo.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Deskribatu argazkia ikusmen arazoak dituztenentzat..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Deskribatu argazkia ikusmen arazoak dituztenentzat...";
"Scene.Compose.Attachment.DescriptionVideo" = "Deskribatu bideoa ikusmen arazoak dituztenentzat..."; "Scene.Compose.Attachment.DescriptionVideo" = "Deskribatu bideoa ikusmen arazoak dituztenentzat...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "argazkia"; "Scene.Compose.Attachment.Photo" = "argazkia";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "bideoa"; "Scene.Compose.Attachment.Video" = "bideoa";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Sakatu zuriunea gehitzeko"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Sakatu zuriunea gehitzeko";
"Scene.Compose.ComposeAction" = "Argitaratu"; "Scene.Compose.ComposeAction" = "Argitaratu";

View File

@ -108,6 +108,10 @@ Tarkista internet-yhteytesi.";
"Common.Controls.Status.Actions.Unreblog" = "Peru edelleen jako"; "Common.Controls.Status.Actions.Unreblog" = "Peru edelleen jako";
"Common.Controls.Status.ContentWarning" = "Sisältövaroitus"; "Common.Controls.Status.ContentWarning" = "Sisältövaroitus";
"Common.Controls.Status.MediaContentWarning" = "Napauta mistä tahansa paljastaaksesi"; "Common.Controls.Status.MediaContentWarning" = "Napauta mistä tahansa paljastaaksesi";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Suljettu"; "Common.Controls.Status.Poll.Closed" = "Suljettu";
"Common.Controls.Status.Poll.Vote" = "Vote"; "Common.Controls.Status.Poll.Vote" = "Vote";
"Common.Controls.Status.SensitiveContent" = "Sensitive Content"; "Common.Controls.Status.SensitiveContent" = "Sensitive Content";
@ -161,9 +165,13 @@ Profiilisi näyttää tältä hänelle.";
"Scene.Compose.Accessibility.RemovePoll" = "Poista kysely"; "Scene.Compose.Accessibility.RemovePoll" = "Poista kysely";
"Scene.Compose.Attachment.AttachmentBroken" = "This %@ is broken and cant be "Scene.Compose.Attachment.AttachmentBroken" = "This %@ is broken and cant be
uploaded to Mastodon."; uploaded to Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Kuvaile kuva näkövammaisille..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Kuvaile kuva näkövammaisille...";
"Scene.Compose.Attachment.DescriptionVideo" = "Kuvaile video näkövammaisille..."; "Scene.Compose.Attachment.DescriptionVideo" = "Kuvaile video näkövammaisille...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "kuva"; "Scene.Compose.Attachment.Photo" = "kuva";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Space to add"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Space to add";
"Scene.Compose.ComposeAction" = "Julkaise"; "Scene.Compose.ComposeAction" = "Julkaise";

View File

@ -108,6 +108,10 @@ Veuillez vérifier votre accès à Internet.";
"Common.Controls.Status.Actions.Unreblog" = "Annuler le reblog"; "Common.Controls.Status.Actions.Unreblog" = "Annuler le reblog";
"Common.Controls.Status.ContentWarning" = "Avertissement de contenu"; "Common.Controls.Status.ContentWarning" = "Avertissement de contenu";
"Common.Controls.Status.MediaContentWarning" = "Tapotez nimporte où pour révéler la publication"; "Common.Controls.Status.MediaContentWarning" = "Tapotez nimporte où pour révéler la publication";
"Common.Controls.Status.MetaEntity.Email" = "Adresse e-mail : %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag : %@";
"Common.Controls.Status.MetaEntity.Mention" = "Afficher le profile : %@";
"Common.Controls.Status.MetaEntity.Url" = "Lien : %@";
"Common.Controls.Status.Poll.Closed" = "Fermé"; "Common.Controls.Status.Poll.Closed" = "Fermé";
"Common.Controls.Status.Poll.Vote" = "Voter"; "Common.Controls.Status.Poll.Vote" = "Voter";
"Common.Controls.Status.SensitiveContent" = "Contenu sensible"; "Common.Controls.Status.SensitiveContent" = "Contenu sensible";
@ -151,7 +155,7 @@ Votre profil ressemble à ça pour lui.";
"Scene.AccountList.AddAccount" = "Ajouter un compte"; "Scene.AccountList.AddAccount" = "Ajouter un compte";
"Scene.AccountList.DismissAccountSwitcher" = "Rejeter le commutateur de compte"; "Scene.AccountList.DismissAccountSwitcher" = "Rejeter le commutateur de compte";
"Scene.AccountList.TabBarHint" = "Profil sélectionné actuel: %@. Double appui puis maintenez enfoncé pour afficher le changement de compte"; "Scene.AccountList.TabBarHint" = "Profil sélectionné actuel: %@. Double appui puis maintenez enfoncé pour afficher le changement de compte";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Favoris";
"Scene.Compose.Accessibility.AppendAttachment" = "Joindre un document"; "Scene.Compose.Accessibility.AppendAttachment" = "Joindre un document";
"Scene.Compose.Accessibility.AppendPoll" = "Ajouter un Sondage"; "Scene.Compose.Accessibility.AppendPoll" = "Ajouter un Sondage";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Sélecteur démojis personnalisés"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Sélecteur démojis personnalisés";
@ -161,9 +165,13 @@ Votre profil ressemble à ça pour lui.";
"Scene.Compose.Accessibility.RemovePoll" = "Retirer le sondage"; "Scene.Compose.Accessibility.RemovePoll" = "Retirer le sondage";
"Scene.Compose.Attachment.AttachmentBroken" = "Ce %@ est brisé et ne peut pas être "Scene.Compose.Attachment.AttachmentBroken" = "Ce %@ est brisé et ne peut pas être
téléversé sur Mastodon."; téléversé sur Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Décrire cette photo pour les personnes malvoyantes..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Décrire cette photo pour les personnes malvoyantes...";
"Scene.Compose.Attachment.DescriptionVideo" = "Décrire cette vidéo pour les personnes malvoyantes..."; "Scene.Compose.Attachment.DescriptionVideo" = "Décrire cette vidéo pour les personnes malvoyantes...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "photo"; "Scene.Compose.Attachment.Photo" = "photo";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "vidéo"; "Scene.Compose.Attachment.Video" = "vidéo";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Espace à ajouter"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Espace à ajouter";
"Scene.Compose.ComposeAction" = "Publier"; "Scene.Compose.ComposeAction" = "Publier";

View File

@ -108,6 +108,10 @@ Thoir sùil air a cheangal agad ris an eadar-lìon.";
"Common.Controls.Status.Actions.Unreblog" = "Na brosnaich tuilleadh"; "Common.Controls.Status.Actions.Unreblog" = "Na brosnaich tuilleadh";
"Common.Controls.Status.ContentWarning" = "Rabhadh susbainte"; "Common.Controls.Status.ContentWarning" = "Rabhadh susbainte";
"Common.Controls.Status.MediaContentWarning" = "Thoir gnogag àite sam bith gus a nochdadh"; "Common.Controls.Status.MediaContentWarning" = "Thoir gnogag àite sam bith gus a nochdadh";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Dùinte"; "Common.Controls.Status.Poll.Closed" = "Dùinte";
"Common.Controls.Status.Poll.Vote" = "Cuir bhòt"; "Common.Controls.Status.Poll.Vote" = "Cuir bhòt";
"Common.Controls.Status.SensitiveContent" = "Susbaint fhrionasach"; "Common.Controls.Status.SensitiveContent" = "Susbaint fhrionasach";
@ -161,9 +165,13 @@ Seo an coltas a th air a phròifil agad dhaibh-san.";
"Scene.Compose.Accessibility.RemovePoll" = "Thoir air falbh an cunntas-bheachd"; "Scene.Compose.Accessibility.RemovePoll" = "Thoir air falbh an cunntas-bheachd";
"Scene.Compose.Attachment.AttachmentBroken" = "Seo %@ a tha briste is cha ghabh "Scene.Compose.Attachment.AttachmentBroken" = "Seo %@ a tha briste is cha ghabh
a luchdadh suas gu Mastodon."; a luchdadh suas gu Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Mìnich an dealbh dhan fheadhainn air a bheil cion-lèirsinne…"; "Scene.Compose.Attachment.DescriptionPhoto" = "Mìnich an dealbh dhan fheadhainn air a bheil cion-lèirsinne…";
"Scene.Compose.Attachment.DescriptionVideo" = "Mìnich a video dhan fheadhainn air a bheil cion-lèirsinne…"; "Scene.Compose.Attachment.DescriptionVideo" = "Mìnich a video dhan fheadhainn air a bheil cion-lèirsinne…";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "dealbh"; "Scene.Compose.Attachment.Photo" = "dealbh";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Brùth air Space gus a chur ris"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Brùth air Space gus a chur ris";
"Scene.Compose.ComposeAction" = "Foillsich"; "Scene.Compose.ComposeAction" = "Foillsich";

View File

@ -68,13 +68,13 @@ Comproba a conexión a internet.";
"Common.Controls.Friendship.EditInfo" = "Editar info"; "Common.Controls.Friendship.EditInfo" = "Editar info";
"Common.Controls.Friendship.Follow" = "Seguir"; "Common.Controls.Friendship.Follow" = "Seguir";
"Common.Controls.Friendship.Following" = "Seguindo"; "Common.Controls.Friendship.Following" = "Seguindo";
"Common.Controls.Friendship.HideReblogs" = "Hide Reblogs"; "Common.Controls.Friendship.HideReblogs" = "Agochar Promocións";
"Common.Controls.Friendship.Mute" = "Acalar"; "Common.Controls.Friendship.Mute" = "Acalar";
"Common.Controls.Friendship.MuteUser" = "Acalar a %@"; "Common.Controls.Friendship.MuteUser" = "Acalar a %@";
"Common.Controls.Friendship.Muted" = "Acalada"; "Common.Controls.Friendship.Muted" = "Acalada";
"Common.Controls.Friendship.Pending" = "Pendente"; "Common.Controls.Friendship.Pending" = "Pendente";
"Common.Controls.Friendship.Request" = "Solicitar"; "Common.Controls.Friendship.Request" = "Solicitar";
"Common.Controls.Friendship.ShowReblogs" = "Show Reblogs"; "Common.Controls.Friendship.ShowReblogs" = "Mostrar Promocións";
"Common.Controls.Friendship.Unblock" = "Desbloquear"; "Common.Controls.Friendship.Unblock" = "Desbloquear";
"Common.Controls.Friendship.UnblockUser" = "Desbloquear a %@"; "Common.Controls.Friendship.UnblockUser" = "Desbloquear a %@";
"Common.Controls.Friendship.Unmute" = "Non Acalar"; "Common.Controls.Friendship.Unmute" = "Non Acalar";
@ -108,6 +108,10 @@ Comproba a conexión a internet.";
"Common.Controls.Status.Actions.Unreblog" = "Retirar promoción"; "Common.Controls.Status.Actions.Unreblog" = "Retirar promoción";
"Common.Controls.Status.ContentWarning" = "Aviso sobre o contido"; "Common.Controls.Status.ContentWarning" = "Aviso sobre o contido";
"Common.Controls.Status.MediaContentWarning" = "Toca nalgures para mostrar"; "Common.Controls.Status.MediaContentWarning" = "Toca nalgures para mostrar";
"Common.Controls.Status.MetaEntity.Email" = "Enderezo de email: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Cancelo: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Mostrar Perfil: %@";
"Common.Controls.Status.MetaEntity.Url" = "Ligazón: %@";
"Common.Controls.Status.Poll.Closed" = "Pechada"; "Common.Controls.Status.Poll.Closed" = "Pechada";
"Common.Controls.Status.Poll.Vote" = "Votar"; "Common.Controls.Status.Poll.Vote" = "Votar";
"Common.Controls.Status.SensitiveContent" = "Contido sensible"; "Common.Controls.Status.SensitiveContent" = "Contido sensible";
@ -151,7 +155,7 @@ Así se ve o teu perfil.";
"Scene.AccountList.AddAccount" = "Engadir conta"; "Scene.AccountList.AddAccount" = "Engadir conta";
"Scene.AccountList.DismissAccountSwitcher" = "Desbotar intercambiador de contas"; "Scene.AccountList.DismissAccountSwitcher" = "Desbotar intercambiador de contas";
"Scene.AccountList.TabBarHint" = "Perfil seleccionado: %@. Dobre toque e manter para mostrar o intercambiador de contas"; "Scene.AccountList.TabBarHint" = "Perfil seleccionado: %@. Dobre toque e manter para mostrar o intercambiador de contas";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Marcadores";
"Scene.Compose.Accessibility.AppendAttachment" = "Engadir anexo"; "Scene.Compose.Accessibility.AppendAttachment" = "Engadir anexo";
"Scene.Compose.Accessibility.AppendPoll" = "Engadir enquisa"; "Scene.Compose.Accessibility.AppendPoll" = "Engadir enquisa";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Selector emoji personalizado"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Selector emoji personalizado";
@ -161,9 +165,13 @@ Así se ve o teu perfil.";
"Scene.Compose.Accessibility.RemovePoll" = "Eliminar enquisa"; "Scene.Compose.Accessibility.RemovePoll" = "Eliminar enquisa";
"Scene.Compose.Attachment.AttachmentBroken" = "Este %@ está estragado e non pode "Scene.Compose.Attachment.AttachmentBroken" = "Este %@ está estragado e non pode
ser subido a Mastodon."; ser subido a Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Adxunto demasiado grande";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Non se recoñece o tipo de multimedia";
"Scene.Compose.Attachment.DescriptionPhoto" = "Describe a foto para persoas con problemas visuais..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Describe a foto para persoas con problemas visuais...";
"Scene.Compose.Attachment.DescriptionVideo" = "Describe o vídeo para persoas con problemas visuais..."; "Scene.Compose.Attachment.DescriptionVideo" = "Describe o vídeo para persoas con problemas visuais...";
"Scene.Compose.Attachment.LoadFailed" = "Fallou a carga";
"Scene.Compose.Attachment.Photo" = "foto"; "Scene.Compose.Attachment.Photo" = "foto";
"Scene.Compose.Attachment.UploadFailed" = "Erro na subida";
"Scene.Compose.Attachment.Video" = "vídeo"; "Scene.Compose.Attachment.Video" = "vídeo";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Barra de espazo engade"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Barra de espazo engade";
"Scene.Compose.ComposeAction" = "Publicar"; "Scene.Compose.ComposeAction" = "Publicar";
@ -256,12 +264,12 @@ ser subido a Mastodon.";
"Scene.Profile.Header.FollowsYou" = "Séguete"; "Scene.Profile.Header.FollowsYou" = "Séguete";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Confirma o bloqueo de %@"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Confirma o bloqueo de %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Bloquear Conta"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Bloquear Conta";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Confirm to hide reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Confirma para agochar promocións";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Hide Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Agochar Promocións";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Confirma Acalar a %@"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Confirma Acalar a %@";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Acalar conta"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Acalar conta";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirm to show reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirma para ver promocións";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Show Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Mostrar Promocións";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Confirma o desbloqueo de %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Confirma o desbloqueo de %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Desbloquear Conta"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Desbloquear Conta";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Confirma restablecer a %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Confirma restablecer a %@";

View File

@ -108,6 +108,10 @@ Per favore verifica la tua connessione internet.";
"Common.Controls.Status.Actions.Unreblog" = "Annulla condivisione"; "Common.Controls.Status.Actions.Unreblog" = "Annulla condivisione";
"Common.Controls.Status.ContentWarning" = "Avviso sul contenuto"; "Common.Controls.Status.ContentWarning" = "Avviso sul contenuto";
"Common.Controls.Status.MediaContentWarning" = "Tocca ovunque per rivelare"; "Common.Controls.Status.MediaContentWarning" = "Tocca ovunque per rivelare";
"Common.Controls.Status.MetaEntity.Email" = "Indirizzo email: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Mostra il profilo: %@";
"Common.Controls.Status.MetaEntity.Url" = "Collegamento: %@";
"Common.Controls.Status.Poll.Closed" = "Chiuso"; "Common.Controls.Status.Poll.Closed" = "Chiuso";
"Common.Controls.Status.Poll.Vote" = "Vota"; "Common.Controls.Status.Poll.Vote" = "Vota";
"Common.Controls.Status.SensitiveContent" = "Contenuto sensibile"; "Common.Controls.Status.SensitiveContent" = "Contenuto sensibile";
@ -151,7 +155,7 @@ Il tuo profilo sembra questo per loro.";
"Scene.AccountList.AddAccount" = "Aggiungi account"; "Scene.AccountList.AddAccount" = "Aggiungi account";
"Scene.AccountList.DismissAccountSwitcher" = "Ignora il cambio account"; "Scene.AccountList.DismissAccountSwitcher" = "Ignora il cambio account";
"Scene.AccountList.TabBarHint" = "Profilo corrente selezionato: %@. Doppio tocco e tieni premuto per mostrare il cambio account"; "Scene.AccountList.TabBarHint" = "Profilo corrente selezionato: %@. Doppio tocco e tieni premuto per mostrare il cambio account";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Segnalibri";
"Scene.Compose.Accessibility.AppendAttachment" = "Aggiungi allegato"; "Scene.Compose.Accessibility.AppendAttachment" = "Aggiungi allegato";
"Scene.Compose.Accessibility.AppendPoll" = "Aggiungi sondaggio"; "Scene.Compose.Accessibility.AppendPoll" = "Aggiungi sondaggio";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Selettore Emoji personalizzato"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Selettore Emoji personalizzato";
@ -161,9 +165,13 @@ Il tuo profilo sembra questo per loro.";
"Scene.Compose.Accessibility.RemovePoll" = "Elimina sondaggio"; "Scene.Compose.Accessibility.RemovePoll" = "Elimina sondaggio";
"Scene.Compose.Attachment.AttachmentBroken" = "Questo %@ è rotto e non può essere "Scene.Compose.Attachment.AttachmentBroken" = "Questo %@ è rotto e non può essere
caricato su Mastodon."; caricato su Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Allegato troppo grande";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Impossibile riconoscere questo allegato multimediale";
"Scene.Compose.Attachment.DescriptionPhoto" = "Descrivi la foto per gli utenti ipovedenti..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Descrivi la foto per gli utenti ipovedenti...";
"Scene.Compose.Attachment.DescriptionVideo" = "Descrivi il filmato per gli utenti ipovedenti..."; "Scene.Compose.Attachment.DescriptionVideo" = "Descrivi il filmato per gli utenti ipovedenti...";
"Scene.Compose.Attachment.LoadFailed" = "Caricamento fallito";
"Scene.Compose.Attachment.Photo" = "foto"; "Scene.Compose.Attachment.Photo" = "foto";
"Scene.Compose.Attachment.UploadFailed" = "Caricamento fallito";
"Scene.Compose.Attachment.Video" = "filmato"; "Scene.Compose.Attachment.Video" = "filmato";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Spazio da aggiungere"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Spazio da aggiungere";
"Scene.Compose.ComposeAction" = "Pubblica"; "Scene.Compose.ComposeAction" = "Pubblica";

View File

@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "ブーストを戻す"; "Common.Controls.Status.Actions.Unreblog" = "ブーストを戻す";
"Common.Controls.Status.ContentWarning" = "コンテンツ警告"; "Common.Controls.Status.ContentWarning" = "コンテンツ警告";
"Common.Controls.Status.MediaContentWarning" = "どこかをタップして表示"; "Common.Controls.Status.MediaContentWarning" = "どこかをタップして表示";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "終了"; "Common.Controls.Status.Poll.Closed" = "終了";
"Common.Controls.Status.Poll.Vote" = "投票"; "Common.Controls.Status.Poll.Vote" = "投票";
"Common.Controls.Status.SensitiveContent" = "閲覧注意"; "Common.Controls.Status.SensitiveContent" = "閲覧注意";
@ -156,9 +160,13 @@
"Scene.Compose.Accessibility.PostVisibilityMenu" = "投稿の表示メニュー"; "Scene.Compose.Accessibility.PostVisibilityMenu" = "投稿の表示メニュー";
"Scene.Compose.Accessibility.RemovePoll" = "投票を消去"; "Scene.Compose.Accessibility.RemovePoll" = "投票を消去";
"Scene.Compose.Attachment.AttachmentBroken" = "%@は壊れていてMastodonにアップロードできません。"; "Scene.Compose.Attachment.AttachmentBroken" = "%@は壊れていてMastodonにアップロードできません。";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "閲覧が難しいユーザーへの画像説明"; "Scene.Compose.Attachment.DescriptionPhoto" = "閲覧が難しいユーザーへの画像説明";
"Scene.Compose.Attachment.DescriptionVideo" = "閲覧が難しいユーザーへの映像説明"; "Scene.Compose.Attachment.DescriptionVideo" = "閲覧が難しいユーザーへの映像説明";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "写真"; "Scene.Compose.Attachment.Photo" = "写真";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "動画"; "Scene.Compose.Attachment.Video" = "動画";
"Scene.Compose.AutoComplete.SpaceToAdd" = "スペースを追加"; "Scene.Compose.AutoComplete.SpaceToAdd" = "スペースを追加";
"Scene.Compose.ComposeAction" = "投稿"; "Scene.Compose.ComposeAction" = "投稿";

View File

@ -108,6 +108,10 @@ Ma ulac aɣilif, senqed tuqqna-inek internet.";
"Common.Controls.Status.Actions.Unreblog" = "Sefsex allus n usuffeɣ"; "Common.Controls.Status.Actions.Unreblog" = "Sefsex allus n usuffeɣ";
"Common.Controls.Status.ContentWarning" = "Alɣu n ugbur"; "Common.Controls.Status.ContentWarning" = "Alɣu n ugbur";
"Common.Controls.Status.MediaContentWarning" = "Sit anida tebɣiḍ i wakken ad twaliḍ"; "Common.Controls.Status.MediaContentWarning" = "Sit anida tebɣiḍ i wakken ad twaliḍ";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Ifukk"; "Common.Controls.Status.Poll.Closed" = "Ifukk";
"Common.Controls.Status.Poll.Vote" = "Dɣeṛ"; "Common.Controls.Status.Poll.Vote" = "Dɣeṛ";
"Common.Controls.Status.SensitiveContent" = "Agbur amḥulfu"; "Common.Controls.Status.SensitiveContent" = "Agbur amḥulfu";
@ -161,9 +165,13 @@ Akka i as-d-yettban umaɣnu-inek.";
"Scene.Compose.Accessibility.RemovePoll" = "Kkes asenqed"; "Scene.Compose.Accessibility.RemovePoll" = "Kkes asenqed";
"Scene.Compose.Attachment.AttachmentBroken" = "%@-a yerreẓ, ur yezmir ara "Scene.Compose.Attachment.AttachmentBroken" = "%@-a yerreẓ, ur yezmir ara
Ad d-yettwasali ɣef Mastodon."; Ad d-yettwasali ɣef Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Glem-d tawlaft i wid yesɛan ugur deg yiẓri..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Glem-d tawlaft i wid yesɛan ugur deg yiẓri...";
"Scene.Compose.Attachment.DescriptionVideo" = "Glem-d tavidyut i wid yesɛan ugur deg yiẓri..."; "Scene.Compose.Attachment.DescriptionVideo" = "Glem-d tavidyut i wid yesɛan ugur deg yiẓri...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "tawlaft"; "Scene.Compose.Attachment.Photo" = "tawlaft";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "tavidyutt"; "Scene.Compose.Attachment.Video" = "tavidyutt";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Tallunt ara yettwarnun"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Tallunt ara yettwarnun";
"Scene.Compose.ComposeAction" = "Sufeɣ"; "Scene.Compose.ComposeAction" = "Sufeɣ";

View File

@ -68,13 +68,13 @@ Jkx girêdana înternetê xwe kontrol bike.";
"Common.Controls.Friendship.EditInfo" = "Zanyariyan serrast bike"; "Common.Controls.Friendship.EditInfo" = "Zanyariyan serrast bike";
"Common.Controls.Friendship.Follow" = "Bişopîne"; "Common.Controls.Friendship.Follow" = "Bişopîne";
"Common.Controls.Friendship.Following" = "Dişopîne"; "Common.Controls.Friendship.Following" = "Dişopîne";
"Common.Controls.Friendship.HideReblogs" = "Hide Reblogs"; "Common.Controls.Friendship.HideReblogs" = "Bilindkirinan veşêre";
"Common.Controls.Friendship.Mute" = "Bêdeng bike"; "Common.Controls.Friendship.Mute" = "Bêdeng bike";
"Common.Controls.Friendship.MuteUser" = "%@ bêdeng bike"; "Common.Controls.Friendship.MuteUser" = "%@ bêdeng bike";
"Common.Controls.Friendship.Muted" = "Bêdengkirî"; "Common.Controls.Friendship.Muted" = "Bêdengkirî";
"Common.Controls.Friendship.Pending" = "Tê nirxandin"; "Common.Controls.Friendship.Pending" = "Tê nirxandin";
"Common.Controls.Friendship.Request" = "Daxwaz bike"; "Common.Controls.Friendship.Request" = "Daxwaz bike";
"Common.Controls.Friendship.ShowReblogs" = "Show Reblogs"; "Common.Controls.Friendship.ShowReblogs" = "Bilindkirinan nîşan bide";
"Common.Controls.Friendship.Unblock" = "Astengiyê rake"; "Common.Controls.Friendship.Unblock" = "Astengiyê rake";
"Common.Controls.Friendship.UnblockUser" = "%@ asteng neke"; "Common.Controls.Friendship.UnblockUser" = "%@ asteng neke";
"Common.Controls.Friendship.Unmute" = "Bêdeng neke"; "Common.Controls.Friendship.Unmute" = "Bêdeng neke";
@ -108,6 +108,10 @@ Jkx girêdana înternetê xwe kontrol bike.";
"Common.Controls.Status.Actions.Unreblog" = "Ji nû ve nivîsandinê vegere"; "Common.Controls.Status.Actions.Unreblog" = "Ji nû ve nivîsandinê vegere";
"Common.Controls.Status.ContentWarning" = "Hişyariya naverokê"; "Common.Controls.Status.ContentWarning" = "Hişyariya naverokê";
"Common.Controls.Status.MediaContentWarning" = "Ji bo eşkerekirinê li derekî bitikîne"; "Common.Controls.Status.MediaContentWarning" = "Ji bo eşkerekirinê li derekî bitikîne";
"Common.Controls.Status.MetaEntity.Email" = "Navnîşanên e-nameyê: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtagê: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Profîlê nîşan bide: %@";
"Common.Controls.Status.MetaEntity.Url" = "Girêdan: %@";
"Common.Controls.Status.Poll.Closed" = "Girtî"; "Common.Controls.Status.Poll.Closed" = "Girtî";
"Common.Controls.Status.Poll.Vote" = "Deng bide"; "Common.Controls.Status.Poll.Vote" = "Deng bide";
"Common.Controls.Status.SensitiveContent" = "Naveroka hestiyarî"; "Common.Controls.Status.SensitiveContent" = "Naveroka hestiyarî";
@ -151,7 +155,7 @@ Profîla te ji wan ra wiha xuya dike.";
"Scene.AccountList.AddAccount" = "Ajimêr tevlî bike"; "Scene.AccountList.AddAccount" = "Ajimêr tevlî bike";
"Scene.AccountList.DismissAccountSwitcher" = "Guherkera ajimêrê paş guh bike"; "Scene.AccountList.DismissAccountSwitcher" = "Guherkera ajimêrê paş guh bike";
"Scene.AccountList.TabBarHint" = "Profîla hilbijartî ya niha: %@. Du caran bitikîne û paşê dest bide ser da ku guhêrbara ajimêr were nîşandan"; "Scene.AccountList.TabBarHint" = "Profîla hilbijartî ya niha: %@. Du caran bitikîne û paşê dest bide ser da ku guhêrbara ajimêr were nîşandan";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Şûnpel";
"Scene.Compose.Accessibility.AppendAttachment" = "Pêvek tevlî bike"; "Scene.Compose.Accessibility.AppendAttachment" = "Pêvek tevlî bike";
"Scene.Compose.Accessibility.AppendPoll" = "Rapirsî tevlî bike"; "Scene.Compose.Accessibility.AppendPoll" = "Rapirsî tevlî bike";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Hilbijêrê emojî yên kesanekirî"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Hilbijêrê emojî yên kesanekirî";
@ -161,9 +165,13 @@ Profîla te ji wan ra wiha xuya dike.";
"Scene.Compose.Accessibility.RemovePoll" = "Rapirsî rake"; "Scene.Compose.Accessibility.RemovePoll" = "Rapirsî rake";
"Scene.Compose.Attachment.AttachmentBroken" = "Ev %@ naxebite û nayê barkirin "Scene.Compose.Attachment.AttachmentBroken" = "Ev %@ naxebite û nayê barkirin
li ser Mastodon."; li ser Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Pêvek pir mezin e";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Nikare ev pêveka medyayê nas bike";
"Scene.Compose.Attachment.DescriptionPhoto" = "Wêneyê ji bo kêmbînên dîtbar bide nasîn..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Wêneyê ji bo kêmbînên dîtbar bide nasîn...";
"Scene.Compose.Attachment.DescriptionVideo" = "Vîdyoyê ji bo kêmbînên dîtbar bide nasîn..."; "Scene.Compose.Attachment.DescriptionVideo" = "Vîdyoyê ji bo kêmbînên dîtbar bide nasîn...";
"Scene.Compose.Attachment.LoadFailed" = "Barkirin têk çû";
"Scene.Compose.Attachment.Photo" = "wêne"; "Scene.Compose.Attachment.Photo" = "wêne";
"Scene.Compose.Attachment.UploadFailed" = "Barkirin têk çû";
"Scene.Compose.Attachment.Video" = "vîdyo"; "Scene.Compose.Attachment.Video" = "vîdyo";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Bicîhkirinê tevlî bike"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Bicîhkirinê tevlî bike";
"Scene.Compose.ComposeAction" = "Biweşîne"; "Scene.Compose.ComposeAction" = "Biweşîne";
@ -257,12 +265,12 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin.";
"Scene.Profile.Header.FollowsYou" = "Te dişopîne"; "Scene.Profile.Header.FollowsYou" = "Te dişopîne";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Ji bo rakirina astengkirinê %@ bipejirîne"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Ji bo rakirina astengkirinê %@ bipejirîne";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Ajimêr asteng bike"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Ajimêr asteng bike";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Confirm to hide reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Bo veşartina bilindkirinan bipejirîne";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Hide Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Bilindkirinan veşêre";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Ji bo bêdengkirina %@ bipejirîne"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Ji bo bêdengkirina %@ bipejirîne";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Ajimêrê bêdeng bike"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Ajimêrê bêdeng bike";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirm to show reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Bo nîşandana bilindkirinan bipejirîne";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Show Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Bilindkirinan nîşan bide";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Ji bo rakirina astengkirinê %@ bipejirîne"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Ji bo rakirina astengkirinê %@ bipejirîne";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Astengiyê li ser ajimêr rake"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Astengiyê li ser ajimêr rake";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Ji bo vekirina bêdengkirinê %@ bipejirîne"; "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Ji bo vekirina bêdengkirinê %@ bipejirîne";

View File

@ -107,6 +107,10 @@
"Common.Controls.Status.Actions.Unreblog" = "Delen ongedaan maken"; "Common.Controls.Status.Actions.Unreblog" = "Delen ongedaan maken";
"Common.Controls.Status.ContentWarning" = "Inhoudswaarschuwing"; "Common.Controls.Status.ContentWarning" = "Inhoudswaarschuwing";
"Common.Controls.Status.MediaContentWarning" = "Tap hier om te tonen"; "Common.Controls.Status.MediaContentWarning" = "Tap hier om te tonen";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Gesloten"; "Common.Controls.Status.Poll.Closed" = "Gesloten";
"Common.Controls.Status.Poll.Vote" = "Stemmen"; "Common.Controls.Status.Poll.Vote" = "Stemmen";
"Common.Controls.Status.SensitiveContent" = "Gevoelige inhoud"; "Common.Controls.Status.SensitiveContent" = "Gevoelige inhoud";
@ -155,9 +159,13 @@ Uw profiel ziet er zo uit voor hen.";
"Scene.Compose.Accessibility.PostVisibilityMenu" = "Berichtzichtbaarheidsmenu"; "Scene.Compose.Accessibility.PostVisibilityMenu" = "Berichtzichtbaarheidsmenu";
"Scene.Compose.Accessibility.RemovePoll" = "Peiling verwijderen"; "Scene.Compose.Accessibility.RemovePoll" = "Peiling verwijderen";
"Scene.Compose.Attachment.AttachmentBroken" = "Deze %@ is corrupt en kan niet geüpload worden naar Mastodon."; "Scene.Compose.Attachment.AttachmentBroken" = "Deze %@ is corrupt en kan niet geüpload worden naar Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Omschrijf de foto voor mensen met een visuele beperking..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Omschrijf de foto voor mensen met een visuele beperking...";
"Scene.Compose.Attachment.DescriptionVideo" = "Omschrijf de video voor mensen met een visuele beperking..."; "Scene.Compose.Attachment.DescriptionVideo" = "Omschrijf de video voor mensen met een visuele beperking...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "foto"; "Scene.Compose.Attachment.Photo" = "foto";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Spaties toe te voegen"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Spaties toe te voegen";
"Scene.Compose.ComposeAction" = "Publiceren"; "Scene.Compose.ComposeAction" = "Publiceren";

View File

@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "Убрать продвижение"; "Common.Controls.Status.Actions.Unreblog" = "Убрать продвижение";
"Common.Controls.Status.ContentWarning" = "Предупреждение о содержании"; "Common.Controls.Status.ContentWarning" = "Предупреждение о содержании";
"Common.Controls.Status.MediaContentWarning" = "Нажмите в любом месте, чтобы показать"; "Common.Controls.Status.MediaContentWarning" = "Нажмите в любом месте, чтобы показать";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Завершён"; "Common.Controls.Status.Poll.Closed" = "Завершён";
"Common.Controls.Status.Poll.Vote" = "Проголосовать"; "Common.Controls.Status.Poll.Vote" = "Проголосовать";
"Common.Controls.Status.SensitiveContent" = "Sensitive Content"; "Common.Controls.Status.SensitiveContent" = "Sensitive Content";
@ -169,9 +173,13 @@
"Scene.Compose.Accessibility.RemovePoll" = "Убрать опрос"; "Scene.Compose.Accessibility.RemovePoll" = "Убрать опрос";
"Scene.Compose.Attachment.AttachmentBroken" = "Это %@ повреждено и не может "Scene.Compose.Attachment.AttachmentBroken" = "Это %@ повреждено и не может
быть отправлено в Mastodon."; быть отправлено в Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Опишите фото для людей с нарушениями зрения..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Опишите фото для людей с нарушениями зрения...";
"Scene.Compose.Attachment.DescriptionVideo" = "Опишите видео для людей с нарушениями зрения..."; "Scene.Compose.Attachment.DescriptionVideo" = "Опишите видео для людей с нарушениями зрения...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "изображение"; "Scene.Compose.Attachment.Photo" = "изображение";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "видео"; "Scene.Compose.Attachment.Video" = "видео";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Пробел, чтобы добавить"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Пробел, чтобы добавить";
"Scene.Compose.ComposeAction" = "Опубликовать"; "Scene.Compose.ComposeAction" = "Опубликовать";

View File

@ -68,13 +68,13 @@ Kontrollera din internetanslutning.";
"Common.Controls.Friendship.EditInfo" = "Redigera info"; "Common.Controls.Friendship.EditInfo" = "Redigera info";
"Common.Controls.Friendship.Follow" = "Följ"; "Common.Controls.Friendship.Follow" = "Följ";
"Common.Controls.Friendship.Following" = "Följer"; "Common.Controls.Friendship.Following" = "Följer";
"Common.Controls.Friendship.HideReblogs" = "Dölj puffar"; "Common.Controls.Friendship.HideReblogs" = "Dölj boostar";
"Common.Controls.Friendship.Mute" = "Tysta"; "Common.Controls.Friendship.Mute" = "Tysta";
"Common.Controls.Friendship.MuteUser" = "Tysta %@"; "Common.Controls.Friendship.MuteUser" = "Tysta %@";
"Common.Controls.Friendship.Muted" = "Tystad"; "Common.Controls.Friendship.Muted" = "Tystad";
"Common.Controls.Friendship.Pending" = "Väntande"; "Common.Controls.Friendship.Pending" = "Väntande";
"Common.Controls.Friendship.Request" = "Följ"; "Common.Controls.Friendship.Request" = "Följ";
"Common.Controls.Friendship.ShowReblogs" = "Visa knuffar"; "Common.Controls.Friendship.ShowReblogs" = "Visa boostar";
"Common.Controls.Friendship.Unblock" = "Avblockera"; "Common.Controls.Friendship.Unblock" = "Avblockera";
"Common.Controls.Friendship.UnblockUser" = "Avblockera %@"; "Common.Controls.Friendship.UnblockUser" = "Avblockera %@";
"Common.Controls.Friendship.Unmute" = "Avtysta"; "Common.Controls.Friendship.Unmute" = "Avtysta";
@ -87,27 +87,31 @@ Kontrollera din internetanslutning.";
"Common.Controls.Keyboard.SegmentedControl.PreviousSection" = "Föregående avsnitt"; "Common.Controls.Keyboard.SegmentedControl.PreviousSection" = "Föregående avsnitt";
"Common.Controls.Keyboard.Timeline.NextStatus" = "Nästa inlägg"; "Common.Controls.Keyboard.Timeline.NextStatus" = "Nästa inlägg";
"Common.Controls.Keyboard.Timeline.OpenAuthorProfile" = "Öppna författarens profil"; "Common.Controls.Keyboard.Timeline.OpenAuthorProfile" = "Öppna författarens profil";
"Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "Öppna ompostarens profil"; "Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "Öppna boostarens profil";
"Common.Controls.Keyboard.Timeline.OpenStatus" = "Öppna inlägg"; "Common.Controls.Keyboard.Timeline.OpenStatus" = "Öppna inlägg";
"Common.Controls.Keyboard.Timeline.PreviewImage" = "Förhandsgranska bild"; "Common.Controls.Keyboard.Timeline.PreviewImage" = "Förhandsgranska bild";
"Common.Controls.Keyboard.Timeline.PreviousStatus" = "Föregående inlägg"; "Common.Controls.Keyboard.Timeline.PreviousStatus" = "Föregående inlägg";
"Common.Controls.Keyboard.Timeline.ReplyStatus" = "Svara på inlägg"; "Common.Controls.Keyboard.Timeline.ReplyStatus" = "Svara på inlägg";
"Common.Controls.Keyboard.Timeline.ToggleContentWarning" = "Växla innehållsvarning"; "Common.Controls.Keyboard.Timeline.ToggleContentWarning" = "Växla innehållsvarning";
"Common.Controls.Keyboard.Timeline.ToggleFavorite" = "Växla favorit på inlägg"; "Common.Controls.Keyboard.Timeline.ToggleFavorite" = "Växla favorit på inlägg";
"Common.Controls.Keyboard.Timeline.ToggleReblog" = "Växla puff på inlägg"; "Common.Controls.Keyboard.Timeline.ToggleReblog" = "Växla boost på inlägg";
"Common.Controls.Status.Actions.Favorite" = "Favorit"; "Common.Controls.Status.Actions.Favorite" = "Favorit";
"Common.Controls.Status.Actions.Hide" = "Dölj"; "Common.Controls.Status.Actions.Hide" = "Dölj";
"Common.Controls.Status.Actions.Menu" = "Meny"; "Common.Controls.Status.Actions.Menu" = "Meny";
"Common.Controls.Status.Actions.Reblog" = "Puffa"; "Common.Controls.Status.Actions.Reblog" = "Boosta";
"Common.Controls.Status.Actions.Reply" = "Svara"; "Common.Controls.Status.Actions.Reply" = "Svara";
"Common.Controls.Status.Actions.ShowGif" = "Visa GIF"; "Common.Controls.Status.Actions.ShowGif" = "Visa GIF";
"Common.Controls.Status.Actions.ShowImage" = "Visa bild"; "Common.Controls.Status.Actions.ShowImage" = "Visa bild";
"Common.Controls.Status.Actions.ShowVideoPlayer" = "Visa videospelare"; "Common.Controls.Status.Actions.ShowVideoPlayer" = "Visa videospelare";
"Common.Controls.Status.Actions.TapThenHoldToShowMenu" = "Tryck och håll ned för att visa menyn"; "Common.Controls.Status.Actions.TapThenHoldToShowMenu" = "Tryck och håll ned för att visa menyn";
"Common.Controls.Status.Actions.Unfavorite" = "Ta bort favorit"; "Common.Controls.Status.Actions.Unfavorite" = "Ta bort favorit";
"Common.Controls.Status.Actions.Unreblog" = "Ångra puff"; "Common.Controls.Status.Actions.Unreblog" = "Ångra boost";
"Common.Controls.Status.ContentWarning" = "Innehållsvarning"; "Common.Controls.Status.ContentWarning" = "Innehållsvarning";
"Common.Controls.Status.MediaContentWarning" = "Tryck var som helst för att visa"; "Common.Controls.Status.MediaContentWarning" = "Tryck var som helst för att visa";
"Common.Controls.Status.MetaEntity.Email" = "E-postadress: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Visa profil: %@";
"Common.Controls.Status.MetaEntity.Url" = "Länk: %@";
"Common.Controls.Status.Poll.Closed" = "Stängd"; "Common.Controls.Status.Poll.Closed" = "Stängd";
"Common.Controls.Status.Poll.Vote" = "Rösta"; "Common.Controls.Status.Poll.Vote" = "Rösta";
"Common.Controls.Status.SensitiveContent" = "Känsligt innehåll"; "Common.Controls.Status.SensitiveContent" = "Känsligt innehåll";
@ -120,7 +124,7 @@ Kontrollera din internetanslutning.";
"Common.Controls.Status.Tag.Mention" = "Omnämn"; "Common.Controls.Status.Tag.Mention" = "Omnämn";
"Common.Controls.Status.Tag.Url" = "URL"; "Common.Controls.Status.Tag.Url" = "URL";
"Common.Controls.Status.TapToReveal" = "Tryck för att visa"; "Common.Controls.Status.TapToReveal" = "Tryck för att visa";
"Common.Controls.Status.UserReblogged" = "%@ puffade"; "Common.Controls.Status.UserReblogged" = "%@ boostade";
"Common.Controls.Status.UserRepliedTo" = "Svarade på %@"; "Common.Controls.Status.UserRepliedTo" = "Svarade på %@";
"Common.Controls.Status.Visibility.Direct" = "Endast omnämnda användare kan se detta inlägg."; "Common.Controls.Status.Visibility.Direct" = "Endast omnämnda användare kan se detta inlägg.";
"Common.Controls.Status.Visibility.Private" = "Endast deras följare kan se detta inlägg."; "Common.Controls.Status.Visibility.Private" = "Endast deras följare kan se detta inlägg.";
@ -151,7 +155,7 @@ Din profil ser ut så här för dem.";
"Scene.AccountList.AddAccount" = "Lägg till konto"; "Scene.AccountList.AddAccount" = "Lägg till konto";
"Scene.AccountList.DismissAccountSwitcher" = "Stäng kontoväxlare"; "Scene.AccountList.DismissAccountSwitcher" = "Stäng kontoväxlare";
"Scene.AccountList.TabBarHint" = "Nuvarande vald profil: %@. Dubbeltryck och håll för att visa kontoväxlare"; "Scene.AccountList.TabBarHint" = "Nuvarande vald profil: %@. Dubbeltryck och håll för att visa kontoväxlare";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Bokmärken";
"Scene.Compose.Accessibility.AppendAttachment" = "Lägg till bilaga"; "Scene.Compose.Accessibility.AppendAttachment" = "Lägg till bilaga";
"Scene.Compose.Accessibility.AppendPoll" = "Lägg till omröstning"; "Scene.Compose.Accessibility.AppendPoll" = "Lägg till omröstning";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Anpassad emoji-väljare"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Anpassad emoji-väljare";
@ -161,9 +165,13 @@ Din profil ser ut så här för dem.";
"Scene.Compose.Accessibility.RemovePoll" = "Ta bort omröstning"; "Scene.Compose.Accessibility.RemovePoll" = "Ta bort omröstning";
"Scene.Compose.Attachment.AttachmentBroken" = "Denna %@ är trasig och kan inte "Scene.Compose.Attachment.AttachmentBroken" = "Denna %@ är trasig och kan inte
laddas upp till Mastodon."; laddas upp till Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Bilagan är för stor";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Känner inte igen mediebilagan";
"Scene.Compose.Attachment.DescriptionPhoto" = "Beskriv fotot för synskadade..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Beskriv fotot för synskadade...";
"Scene.Compose.Attachment.DescriptionVideo" = "Beskriv videon för de synskadade..."; "Scene.Compose.Attachment.DescriptionVideo" = "Beskriv videon för de synskadade...";
"Scene.Compose.Attachment.LoadFailed" = "Det gick inte att läsa in";
"Scene.Compose.Attachment.Photo" = "foto"; "Scene.Compose.Attachment.Photo" = "foto";
"Scene.Compose.Attachment.UploadFailed" = "Uppladdning misslyckades";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Mellanslag för att lägga till"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Mellanslag för att lägga till";
"Scene.Compose.ComposeAction" = "Publicera"; "Scene.Compose.ComposeAction" = "Publicera";
@ -236,7 +244,7 @@ laddas upp till Mastodon.";
"Scene.Notification.NotificationDescription.FollowedYou" = "följde dig"; "Scene.Notification.NotificationDescription.FollowedYou" = "följde dig";
"Scene.Notification.NotificationDescription.MentionedYou" = "nämnde dig"; "Scene.Notification.NotificationDescription.MentionedYou" = "nämnde dig";
"Scene.Notification.NotificationDescription.PollHasEnded" = "omröstningen har avslutats"; "Scene.Notification.NotificationDescription.PollHasEnded" = "omröstningen har avslutats";
"Scene.Notification.NotificationDescription.RebloggedYourPost" = "puffade ditt inlägg"; "Scene.Notification.NotificationDescription.RebloggedYourPost" = "boostade ditt inlägg";
"Scene.Notification.NotificationDescription.RequestToFollowYou" = "begär att följa dig"; "Scene.Notification.NotificationDescription.RequestToFollowYou" = "begär att följa dig";
"Scene.Notification.Title.Everything" = "Allting"; "Scene.Notification.Title.Everything" = "Allting";
"Scene.Notification.Title.Mentions" = "Omnämningar"; "Scene.Notification.Title.Mentions" = "Omnämningar";
@ -256,12 +264,12 @@ laddas upp till Mastodon.";
"Scene.Profile.Header.FollowsYou" = "Följer dig"; "Scene.Profile.Header.FollowsYou" = "Följer dig";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Bekräfta för att blockera %@"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "Bekräfta för att blockera %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Blockera konto"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "Blockera konto";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Bekräfta för att dölja puffar"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Bekräfta för att dölja boostar";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Dölj puffar"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Dölj boostar";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Bekräfta för att tysta %@"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "Bekräfta för att tysta %@";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Tysta konto"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "Tysta konto";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Bekräfta för att visa puffar"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Bekräfta för att visa boostar";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Visa puffar"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Visa boostar";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Bekräfta för att avblockera %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "Bekräfta för att avblockera %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Avblockera konto"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "Avblockera konto";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Bekräfta för att avtysta %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "Bekräfta för att avtysta %@";
@ -271,7 +279,7 @@ laddas upp till Mastodon.";
"Scene.Profile.SegmentedControl.Posts" = "Inlägg"; "Scene.Profile.SegmentedControl.Posts" = "Inlägg";
"Scene.Profile.SegmentedControl.PostsAndReplies" = "Inlägg och svar"; "Scene.Profile.SegmentedControl.PostsAndReplies" = "Inlägg och svar";
"Scene.Profile.SegmentedControl.Replies" = "Svar"; "Scene.Profile.SegmentedControl.Replies" = "Svar";
"Scene.RebloggedBy.Title" = "Puffat av"; "Scene.RebloggedBy.Title" = "Boostat av";
"Scene.Register.Error.Item.Agreement" = "Avtal"; "Scene.Register.Error.Item.Agreement" = "Avtal";
"Scene.Register.Error.Item.Email" = "E-post"; "Scene.Register.Error.Item.Email" = "E-post";
"Scene.Register.Error.Item.Locale" = "Språk"; "Scene.Register.Error.Item.Locale" = "Språk";
@ -323,7 +331,7 @@ laddas upp till Mastodon.";
"Scene.Report.StepFinal.Unfollowed" = "Slutade följa"; "Scene.Report.StepFinal.Unfollowed" = "Slutade följa";
"Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "När du ser något som du inte gillar på Mastodon kan du ta bort personen från din upplevelse."; "Scene.Report.StepFinal.WhenYouSeeSomethingYouDontLikeOnMastodonYouCanRemoveThePersonFromYourExperience." = "När du ser något som du inte gillar på Mastodon kan du ta bort personen från din upplevelse.";
"Scene.Report.StepFinal.WhileWeReviewThisYouCanTakeActionAgainstUser" = "Medan vi granskar detta kan du vidta åtgärder mot %@"; "Scene.Report.StepFinal.WhileWeReviewThisYouCanTakeActionAgainstUser" = "Medan vi granskar detta kan du vidta åtgärder mot %@";
"Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "Du kommer inte att se deras inlägg eller ompostningar i ditt hemflöde. De kommer inte att veta att de har blivit tystade."; "Scene.Report.StepFinal.YouWontSeeTheirPostsOrReblogsInYourHomeFeedTheyWontKnowTheyVeBeenMuted" = "Du kommer inte att se deras inlägg eller boostar i ditt hemflöde. De kommer inte att veta att de har blivit tystade.";
"Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Finns det något annat vi borde veta?"; "Scene.Report.StepFour.IsThereAnythingElseWeShouldKnow" = "Finns det något annat vi borde veta?";
"Scene.Report.StepFour.Step4Of4" = "Steg 4 av 4"; "Scene.Report.StepFour.Step4Of4" = "Steg 4 av 4";
"Scene.Report.StepOne.IDontLikeIt" = "Jag tycker inte om det"; "Scene.Report.StepOne.IDontLikeIt" = "Jag tycker inte om det";
@ -414,7 +422,7 @@ laddas upp till Mastodon.";
"Scene.Settings.Section.LookAndFeel.SortaDark" = "Ganska mörk"; "Scene.Settings.Section.LookAndFeel.SortaDark" = "Ganska mörk";
"Scene.Settings.Section.LookAndFeel.Title" = "Utseende och känsla"; "Scene.Settings.Section.LookAndFeel.Title" = "Utseende och känsla";
"Scene.Settings.Section.LookAndFeel.UseSystem" = "Följ systeminställningarna"; "Scene.Settings.Section.LookAndFeel.UseSystem" = "Följ systeminställningarna";
"Scene.Settings.Section.Notifications.Boosts" = "Ompostar mitt inlägg"; "Scene.Settings.Section.Notifications.Boosts" = "Boostar mitt inlägg";
"Scene.Settings.Section.Notifications.Favorites" = "Favoriserar mitt inlägg"; "Scene.Settings.Section.Notifications.Favorites" = "Favoriserar mitt inlägg";
"Scene.Settings.Section.Notifications.Follows" = "Följer mig"; "Scene.Settings.Section.Notifications.Follows" = "Följer mig";
"Scene.Settings.Section.Notifications.Mentions" = "Nämner mig"; "Scene.Settings.Section.Notifications.Mentions" = "Nämner mig";

View File

@ -152,9 +152,9 @@
<key>NSStringFormatValueTypeKey</key> <key>NSStringFormatValueTypeKey</key>
<string>ld</string> <string>ld</string>
<key>one</key> <key>one</key>
<string>%ld puff</string> <string>%ld boost</string>
<key>other</key> <key>other</key>
<string>%ld puffar</string> <string>%ld boostar</string>
</dict> </dict>
</dict> </dict>
<key>plural.count.reply</key> <key>plural.count.reply</key>

View File

@ -68,13 +68,13 @@
"Common.Controls.Friendship.EditInfo" = "แก้ไขข้อมูล"; "Common.Controls.Friendship.EditInfo" = "แก้ไขข้อมูล";
"Common.Controls.Friendship.Follow" = "ติดตาม"; "Common.Controls.Friendship.Follow" = "ติดตาม";
"Common.Controls.Friendship.Following" = "กำลังติดตาม"; "Common.Controls.Friendship.Following" = "กำลังติดตาม";
"Common.Controls.Friendship.HideReblogs" = "Hide Reblogs"; "Common.Controls.Friendship.HideReblogs" = "ซ่อนการดัน";
"Common.Controls.Friendship.Mute" = "ซ่อน"; "Common.Controls.Friendship.Mute" = "ซ่อน";
"Common.Controls.Friendship.MuteUser" = "ซ่อน %@"; "Common.Controls.Friendship.MuteUser" = "ซ่อน %@";
"Common.Controls.Friendship.Muted" = "ซ่อนอยู่"; "Common.Controls.Friendship.Muted" = "ซ่อนอยู่";
"Common.Controls.Friendship.Pending" = "รอดำเนินการ"; "Common.Controls.Friendship.Pending" = "รอดำเนินการ";
"Common.Controls.Friendship.Request" = "ขอ"; "Common.Controls.Friendship.Request" = "ขอ";
"Common.Controls.Friendship.ShowReblogs" = "Show Reblogs"; "Common.Controls.Friendship.ShowReblogs" = "แสดงการดัน";
"Common.Controls.Friendship.Unblock" = "เลิกปิดกั้น"; "Common.Controls.Friendship.Unblock" = "เลิกปิดกั้น";
"Common.Controls.Friendship.UnblockUser" = "เลิกปิดกั้น %@"; "Common.Controls.Friendship.UnblockUser" = "เลิกปิดกั้น %@";
"Common.Controls.Friendship.Unmute" = "เลิกซ่อน"; "Common.Controls.Friendship.Unmute" = "เลิกซ่อน";
@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "เลิกทำการดัน"; "Common.Controls.Status.Actions.Unreblog" = "เลิกทำการดัน";
"Common.Controls.Status.ContentWarning" = "คำเตือนเนื้อหา"; "Common.Controls.Status.ContentWarning" = "คำเตือนเนื้อหา";
"Common.Controls.Status.MediaContentWarning" = "แตะที่ใดก็ตามเพื่อเปิดเผย"; "Common.Controls.Status.MediaContentWarning" = "แตะที่ใดก็ตามเพื่อเปิดเผย";
"Common.Controls.Status.MetaEntity.Email" = "ที่อยู่อีเมล: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "แฮชแท็ก: %@";
"Common.Controls.Status.MetaEntity.Mention" = "โปรไฟล์ที่แสดง: %@";
"Common.Controls.Status.MetaEntity.Url" = "ลิงก์: %@";
"Common.Controls.Status.Poll.Closed" = "ปิดแล้ว"; "Common.Controls.Status.Poll.Closed" = "ปิดแล้ว";
"Common.Controls.Status.Poll.Vote" = "ลงคะแนน"; "Common.Controls.Status.Poll.Vote" = "ลงคะแนน";
"Common.Controls.Status.SensitiveContent" = "เนื้อหาที่ละเอียดอ่อน"; "Common.Controls.Status.SensitiveContent" = "เนื้อหาที่ละเอียดอ่อน";
@ -151,7 +155,7 @@
"Scene.AccountList.AddAccount" = "เพิ่มบัญชี"; "Scene.AccountList.AddAccount" = "เพิ่มบัญชี";
"Scene.AccountList.DismissAccountSwitcher" = "ปิดตัวสลับบัญชี"; "Scene.AccountList.DismissAccountSwitcher" = "ปิดตัวสลับบัญชี";
"Scene.AccountList.TabBarHint" = "โปรไฟล์ที่เลือกในปัจจุบัน: %@ แตะสองครั้งแล้วกดค้างไว้เพื่อแสดงตัวสลับบัญชี"; "Scene.AccountList.TabBarHint" = "โปรไฟล์ที่เลือกในปัจจุบัน: %@ แตะสองครั้งแล้วกดค้างไว้เพื่อแสดงตัวสลับบัญชี";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "ที่คั่นหน้า";
"Scene.Compose.Accessibility.AppendAttachment" = "เพิ่มไฟล์แนบ"; "Scene.Compose.Accessibility.AppendAttachment" = "เพิ่มไฟล์แนบ";
"Scene.Compose.Accessibility.AppendPoll" = "เพิ่มการสำรวจความคิดเห็น"; "Scene.Compose.Accessibility.AppendPoll" = "เพิ่มการสำรวจความคิดเห็น";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "ตัวเลือกอีโมจิที่กำหนดเอง"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "ตัวเลือกอีโมจิที่กำหนดเอง";
@ -161,9 +165,13 @@
"Scene.Compose.Accessibility.RemovePoll" = "เอาการสำรวจความคิดเห็นออก"; "Scene.Compose.Accessibility.RemovePoll" = "เอาการสำรวจความคิดเห็นออก";
"Scene.Compose.Attachment.AttachmentBroken" = "%@ นี้เสียหายและไม่สามารถ "Scene.Compose.Attachment.AttachmentBroken" = "%@ นี้เสียหายและไม่สามารถ
อัปโหลดไปยัง Mastodon"; อัปโหลดไปยัง Mastodon";
"Scene.Compose.Attachment.AttachmentTooLarge" = "ไฟล์แนบใหญ่เกินไป";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "อธิบายรูปภาพสำหรับผู้บกพร่องทางการมองเห็น..."; "Scene.Compose.Attachment.DescriptionPhoto" = "อธิบายรูปภาพสำหรับผู้บกพร่องทางการมองเห็น...";
"Scene.Compose.Attachment.DescriptionVideo" = "อธิบายวิดีโอสำหรับผู้บกพร่องทางการมองเห็น..."; "Scene.Compose.Attachment.DescriptionVideo" = "อธิบายวิดีโอสำหรับผู้บกพร่องทางการมองเห็น...";
"Scene.Compose.Attachment.LoadFailed" = "การโหลดล้มเหลว";
"Scene.Compose.Attachment.Photo" = "รูปภาพ"; "Scene.Compose.Attachment.Photo" = "รูปภาพ";
"Scene.Compose.Attachment.UploadFailed" = "การอัปโหลดล้มเหลว";
"Scene.Compose.Attachment.Video" = "วิดีโอ"; "Scene.Compose.Attachment.Video" = "วิดีโอ";
"Scene.Compose.AutoComplete.SpaceToAdd" = "เว้นวรรคเพื่อเพิ่ม"; "Scene.Compose.AutoComplete.SpaceToAdd" = "เว้นวรรคเพื่อเพิ่ม";
"Scene.Compose.ComposeAction" = "เผยแพร่"; "Scene.Compose.ComposeAction" = "เผยแพร่";
@ -256,12 +264,12 @@
"Scene.Profile.Header.FollowsYou" = "ติดตามคุณ"; "Scene.Profile.Header.FollowsYou" = "ติดตามคุณ";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "ยืนยันเพื่อปิดกั้น %@"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Message" = "ยืนยันเพื่อปิดกั้น %@";
"Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "ปิดกั้นบัญชี"; "Scene.Profile.RelationshipActionAlert.ConfirmBlockUser.Title" = "ปิดกั้นบัญชี";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "Confirm to hide reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Message" = "ยืนยันเพื่อซ่อนการดัน";
"Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "Hide Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmHideReblogs.Title" = "ซ่อนการดัน";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "ยืนยันเพื่อซ่อน %@"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Message" = "ยืนยันเพื่อซ่อน %@";
"Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "ซ่อนบัญชี"; "Scene.Profile.RelationshipActionAlert.ConfirmMuteUser.Title" = "ซ่อนบัญชี";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "Confirm to show reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Message" = "ยืนยันเพื่อแสดงการดัน";
"Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "Show Reblogs"; "Scene.Profile.RelationshipActionAlert.ConfirmShowReblogs.Title" = "แสดงการดัน";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "ยืนยันเพื่อเลิกปิดกั้น %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Message" = "ยืนยันเพื่อเลิกปิดกั้น %@";
"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "เลิกปิดกั้นบัญชี"; "Scene.Profile.RelationshipActionAlert.ConfirmUnblockUser.Title" = "เลิกปิดกั้นบัญชี";
"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "ยืนยันเพื่อเลิกซ่อน %@"; "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "ยืนยันเพื่อเลิกซ่อน %@";
@ -391,7 +399,7 @@
"Scene.ServerPicker.Label.Language" = "ภาษา"; "Scene.ServerPicker.Label.Language" = "ภาษา";
"Scene.ServerPicker.Label.Users" = "ผู้ใช้"; "Scene.ServerPicker.Label.Users" = "ผู้ใช้";
"Scene.ServerPicker.Subtitle" = "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ"; "Scene.ServerPicker.Subtitle" = "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ";
"Scene.ServerPicker.SubtitleExtend" = "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ดำเนินการโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง"; "Scene.ServerPicker.SubtitleExtend" = "เลือกเซิร์ฟเวอร์ตามความสนใจ, ภูมิภาค หรือวัตถุประสงค์ทั่วไปของคุณ แต่ละเซิร์ฟเวอร์ได้รับการดำเนินงานโดยองค์กรหรือบุคคลที่เป็นอิสระโดยสิ้นเชิง";
"Scene.ServerPicker.Title" = "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ"; "Scene.ServerPicker.Title" = "Mastodon ประกอบด้วยผู้ใช้ในเซิร์ฟเวอร์ต่าง ๆ";
"Scene.ServerRules.Button.Confirm" = "ฉันเห็นด้วย"; "Scene.ServerRules.Button.Confirm" = "ฉันเห็นด้วย";
"Scene.ServerRules.PrivacyPolicy" = "นโยบายความเป็นส่วนตัว"; "Scene.ServerRules.PrivacyPolicy" = "นโยบายความเป็นส่วนตัว";

View File

@ -107,6 +107,10 @@
"Common.Controls.Status.Actions.Unreblog" = "Yeniden paylaşımı geri al"; "Common.Controls.Status.Actions.Unreblog" = "Yeniden paylaşımı geri al";
"Common.Controls.Status.ContentWarning" = "İçerik Uyarısı"; "Common.Controls.Status.ContentWarning" = "İçerik Uyarısı";
"Common.Controls.Status.MediaContentWarning" = "Göstermek için herhangi bir yere basın"; "Common.Controls.Status.MediaContentWarning" = "Göstermek için herhangi bir yere basın";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Kapandı"; "Common.Controls.Status.Poll.Closed" = "Kapandı";
"Common.Controls.Status.Poll.Vote" = "Oy ver"; "Common.Controls.Status.Poll.Vote" = "Oy ver";
"Common.Controls.Status.SensitiveContent" = "Hassas İçerik"; "Common.Controls.Status.SensitiveContent" = "Hassas İçerik";
@ -160,9 +164,13 @@ Bu kişiye göre profiliniz böyle gözüküyor.";
"Scene.Compose.Accessibility.RemovePoll" = "Anketi Kaldır"; "Scene.Compose.Accessibility.RemovePoll" = "Anketi Kaldır";
"Scene.Compose.Attachment.AttachmentBroken" = "Bu %@ bozuk ve Mastodon'a "Scene.Compose.Attachment.AttachmentBroken" = "Bu %@ bozuk ve Mastodon'a
yüklenemiyor."; yüklenemiyor.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Görme engelliler için fotoğrafı tarif edin..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Görme engelliler için fotoğrafı tarif edin...";
"Scene.Compose.Attachment.DescriptionVideo" = "Görme engelliler için videoyu tarif edin..."; "Scene.Compose.Attachment.DescriptionVideo" = "Görme engelliler için videoyu tarif edin...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "fotoğraf"; "Scene.Compose.Attachment.Photo" = "fotoğraf";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Eklemek için boşluk tuşuna basın"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Eklemek için boşluk tuşuna basın";
"Scene.Compose.ComposeAction" = "Yayınla"; "Scene.Compose.ComposeAction" = "Yayınla";

View File

@ -108,6 +108,10 @@ Vui lòng kiểm tra kết nối mạng.";
"Common.Controls.Status.Actions.Unreblog" = "Hủy đăng lại"; "Common.Controls.Status.Actions.Unreblog" = "Hủy đăng lại";
"Common.Controls.Status.ContentWarning" = "Nội dung ẩn"; "Common.Controls.Status.ContentWarning" = "Nội dung ẩn";
"Common.Controls.Status.MediaContentWarning" = "Nhấn để hiển thị"; "Common.Controls.Status.MediaContentWarning" = "Nhấn để hiển thị";
"Common.Controls.Status.MetaEntity.Email" = "Email: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Hiện hồ sơ: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "Kết thúc"; "Common.Controls.Status.Poll.Closed" = "Kết thúc";
"Common.Controls.Status.Poll.Vote" = "Bình chọn"; "Common.Controls.Status.Poll.Vote" = "Bình chọn";
"Common.Controls.Status.SensitiveContent" = "Nội dung nhạy cảm"; "Common.Controls.Status.SensitiveContent" = "Nội dung nhạy cảm";
@ -151,7 +155,7 @@ Họ sẽ thấy trang của bạn như thế này.";
"Scene.AccountList.AddAccount" = "Thêm tài khoản"; "Scene.AccountList.AddAccount" = "Thêm tài khoản";
"Scene.AccountList.DismissAccountSwitcher" = "Bỏ qua chuyển đổi tài khoản"; "Scene.AccountList.DismissAccountSwitcher" = "Bỏ qua chuyển đổi tài khoản";
"Scene.AccountList.TabBarHint" = "Đang dùng tài khoản: %@. Nhấn hai lần và giữ để đổi sang tài khoản khác"; "Scene.AccountList.TabBarHint" = "Đang dùng tài khoản: %@. Nhấn hai lần và giữ để đổi sang tài khoản khác";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "Tút đã lưu";
"Scene.Compose.Accessibility.AppendAttachment" = "Thêm media"; "Scene.Compose.Accessibility.AppendAttachment" = "Thêm media";
"Scene.Compose.Accessibility.AppendPoll" = "Tạo bình chọn"; "Scene.Compose.Accessibility.AppendPoll" = "Tạo bình chọn";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "Chọn emoji"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "Chọn emoji";
@ -161,9 +165,13 @@ Họ sẽ thấy trang của bạn như thế này.";
"Scene.Compose.Accessibility.RemovePoll" = "Xóa bình chọn"; "Scene.Compose.Accessibility.RemovePoll" = "Xóa bình chọn";
"Scene.Compose.Attachment.AttachmentBroken" = "%@ này bị lỗi và không thể "Scene.Compose.Attachment.AttachmentBroken" = "%@ này bị lỗi và không thể
tải lên Mastodon."; tải lên Mastodon.";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "Mô tả hình ảnh cho người khiếm thị..."; "Scene.Compose.Attachment.DescriptionPhoto" = "Mô tả hình ảnh cho người khiếm thị...";
"Scene.Compose.Attachment.DescriptionVideo" = "Mô tả video cho người khiếm thị..."; "Scene.Compose.Attachment.DescriptionVideo" = "Mô tả video cho người khiếm thị...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "ảnh"; "Scene.Compose.Attachment.Photo" = "ảnh";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "video"; "Scene.Compose.Attachment.Video" = "video";
"Scene.Compose.AutoComplete.SpaceToAdd" = "Khoảng cách để thêm"; "Scene.Compose.AutoComplete.SpaceToAdd" = "Khoảng cách để thêm";
"Scene.Compose.ComposeAction" = "Đăng"; "Scene.Compose.ComposeAction" = "Đăng";

View File

@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "取消转发"; "Common.Controls.Status.Actions.Unreblog" = "取消转发";
"Common.Controls.Status.ContentWarning" = "内容警告"; "Common.Controls.Status.ContentWarning" = "内容警告";
"Common.Controls.Status.MediaContentWarning" = "点击任意位置显示"; "Common.Controls.Status.MediaContentWarning" = "点击任意位置显示";
"Common.Controls.Status.MetaEntity.Email" = "Email address: %@";
"Common.Controls.Status.MetaEntity.Hashtag" = "Hashtag: %@";
"Common.Controls.Status.MetaEntity.Mention" = "Show Profile: %@";
"Common.Controls.Status.MetaEntity.Url" = "Link: %@";
"Common.Controls.Status.Poll.Closed" = "已关闭"; "Common.Controls.Status.Poll.Closed" = "已关闭";
"Common.Controls.Status.Poll.Vote" = "投票"; "Common.Controls.Status.Poll.Vote" = "投票";
"Common.Controls.Status.SensitiveContent" = "敏感内容"; "Common.Controls.Status.SensitiveContent" = "敏感内容";
@ -161,9 +165,13 @@
"Scene.Compose.Accessibility.RemovePoll" = "移除投票"; "Scene.Compose.Accessibility.RemovePoll" = "移除投票";
"Scene.Compose.Attachment.AttachmentBroken" = "%@已损坏 "Scene.Compose.Attachment.AttachmentBroken" = "%@已损坏
无法上传到 Mastodon"; 无法上传到 Mastodon";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "为视觉障碍人士添加照片的文字说明..."; "Scene.Compose.Attachment.DescriptionPhoto" = "为视觉障碍人士添加照片的文字说明...";
"Scene.Compose.Attachment.DescriptionVideo" = "为视觉障碍人士添加视频的文字说明..."; "Scene.Compose.Attachment.DescriptionVideo" = "为视觉障碍人士添加视频的文字说明...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "照片"; "Scene.Compose.Attachment.Photo" = "照片";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "视频"; "Scene.Compose.Attachment.Video" = "视频";
"Scene.Compose.AutoComplete.SpaceToAdd" = "输入空格键入"; "Scene.Compose.AutoComplete.SpaceToAdd" = "输入空格键入";
"Scene.Compose.ComposeAction" = "发送"; "Scene.Compose.ComposeAction" = "发送";

View File

@ -108,6 +108,10 @@
"Common.Controls.Status.Actions.Unreblog" = "取消轉嘟"; "Common.Controls.Status.Actions.Unreblog" = "取消轉嘟";
"Common.Controls.Status.ContentWarning" = "內容警告"; "Common.Controls.Status.ContentWarning" = "內容警告";
"Common.Controls.Status.MediaContentWarning" = "輕觸任何地方以顯示"; "Common.Controls.Status.MediaContentWarning" = "輕觸任何地方以顯示";
"Common.Controls.Status.MetaEntity.Email" = "電子郵件地址:%@";
"Common.Controls.Status.MetaEntity.Hashtag" = "主題標籤: %@";
"Common.Controls.Status.MetaEntity.Mention" = "顯示個人檔案:%@";
"Common.Controls.Status.MetaEntity.Url" = "連結:%@";
"Common.Controls.Status.Poll.Closed" = "已關閉"; "Common.Controls.Status.Poll.Closed" = "已關閉";
"Common.Controls.Status.Poll.Vote" = "投票"; "Common.Controls.Status.Poll.Vote" = "投票";
"Common.Controls.Status.SensitiveContent" = "敏感內容"; "Common.Controls.Status.SensitiveContent" = "敏感內容";
@ -147,7 +151,7 @@
"Scene.AccountList.AddAccount" = "新增帳號"; "Scene.AccountList.AddAccount" = "新增帳號";
"Scene.AccountList.DismissAccountSwitcher" = "關閉帳號切換器"; "Scene.AccountList.DismissAccountSwitcher" = "關閉帳號切換器";
"Scene.AccountList.TabBarHint" = "目前已選擇的個人檔案:%@。點兩下然後按住以顯示帳號切換器"; "Scene.AccountList.TabBarHint" = "目前已選擇的個人檔案:%@。點兩下然後按住以顯示帳號切換器";
"Scene.Bookmark.Title" = "Bookmarks"; "Scene.Bookmark.Title" = "書籤";
"Scene.Compose.Accessibility.AppendAttachment" = "新增附件"; "Scene.Compose.Accessibility.AppendAttachment" = "新增附件";
"Scene.Compose.Accessibility.AppendPoll" = "新增投票"; "Scene.Compose.Accessibility.AppendPoll" = "新增投票";
"Scene.Compose.Accessibility.CustomEmojiPicker" = "自訂 emoji 選擇器"; "Scene.Compose.Accessibility.CustomEmojiPicker" = "自訂 emoji 選擇器";
@ -156,9 +160,13 @@
"Scene.Compose.Accessibility.PostVisibilityMenu" = "嘟文可見性選單"; "Scene.Compose.Accessibility.PostVisibilityMenu" = "嘟文可見性選單";
"Scene.Compose.Accessibility.RemovePoll" = "移除投票"; "Scene.Compose.Accessibility.RemovePoll" = "移除投票";
"Scene.Compose.Attachment.AttachmentBroken" = "此 %@ 已損毀,並無法被上傳至 Mastodon。"; "Scene.Compose.Attachment.AttachmentBroken" = "此 %@ 已損毀,並無法被上傳至 Mastodon。";
"Scene.Compose.Attachment.AttachmentTooLarge" = "Attachment too large";
"Scene.Compose.Attachment.CanNotRecognizeThisMediaAttachment" = "Can not regonize this media attachment";
"Scene.Compose.Attachment.DescriptionPhoto" = "為視障人士提供圖片說明..."; "Scene.Compose.Attachment.DescriptionPhoto" = "為視障人士提供圖片說明...";
"Scene.Compose.Attachment.DescriptionVideo" = "為視障人士提供影片說明..."; "Scene.Compose.Attachment.DescriptionVideo" = "為視障人士提供影片說明...";
"Scene.Compose.Attachment.LoadFailed" = "Load Failed";
"Scene.Compose.Attachment.Photo" = "照片"; "Scene.Compose.Attachment.Photo" = "照片";
"Scene.Compose.Attachment.UploadFailed" = "Upload Failed";
"Scene.Compose.Attachment.Video" = "影片"; "Scene.Compose.Attachment.Video" = "影片";
"Scene.Compose.AutoComplete.SpaceToAdd" = "添加的空白"; "Scene.Compose.AutoComplete.SpaceToAdd" = "添加的空白";
"Scene.Compose.ComposeAction" = "嘟出去"; "Scene.Compose.ComposeAction" = "嘟出去";

View File

@ -65,7 +65,7 @@ public struct AttachmentView: View {
if viewModel.output == nil, let error = viewModel.error { if viewModel.output == nil, let error = viewModel.error {
VisualEffectView(effect: blurEffect) VisualEffectView(effect: blurEffect)
VStack { VStack {
Text("Load Failed") // TODO: i18n Text(L10n.Scene.Compose.Attachment.loadFailed)
.font(.system(size: 13, weight: .semibold)) .font(.system(size: 13, weight: .semibold))
Text(error.localizedDescription) Text(error.localizedDescription)
.font(.system(size: 12, weight: .regular)) .font(.system(size: 12, weight: .regular))
@ -123,7 +123,7 @@ public struct AttachmentView: View {
case .remove: case .remove:
switch viewModel.uploadState { switch viewModel.uploadState {
case .compressing: case .compressing:
return "Comporessing..." // TODO: i18n return L10n.Scene.Compose.Attachment.compressingState
default: default:
if viewModel.fractionCompleted < 0.9 { if viewModel.fractionCompleted < 0.9 {
let totalSizeInByte = viewModel.outputSizeInByte let totalSizeInByte = viewModel.outputSizeInByte
@ -132,11 +132,11 @@ public struct AttachmentView: View {
let upload = viewModel.byteCountFormatter.string(fromByteCount: Int64(uploadSizeInByte)) let upload = viewModel.byteCountFormatter.string(fromByteCount: Int64(uploadSizeInByte))
return "\(upload) / \(total)" return "\(upload) / \(total)"
} else { } else {
return "Server Processing..." // TODO: i18n return L10n.Scene.Compose.Attachment.serverProcessingState
} }
} }
case .retry: case .retry:
return "Upload Failed" // TODO: i18n return L10n.Scene.Compose.Attachment.uploadFailed
} }
}() }()
let subtitle: String = { let subtitle: String = {

View File

@ -11,6 +11,7 @@ import Combine
import PhotosUI import PhotosUI
import Kingfisher import Kingfisher
import MastodonCore import MastodonCore
import MastodonLocalization
import func QuartzCore.CACurrentMediaTime import func QuartzCore.CACurrentMediaTime
public protocol AttachmentViewModelDelegate: AnyObject { public protocol AttachmentViewModelDelegate: AnyObject {
@ -48,9 +49,7 @@ final public class AttachmentViewModel: NSObject, ObservableObject, Identifiable
public let authContext: AuthContext public let authContext: AuthContext
public let input: Input public let input: Input
@Published var caption = "" @Published var caption = ""
@Published var sizeLimit = SizeLimit() // @Published var sizeLimit = SizeLimit()
// var compressVideoTask: Task<URL, Error>?
// output // output
@Published public private(set) var output: Output? @Published public private(set) var output: Output?
@ -263,15 +262,16 @@ extension AttachmentViewModel {
} }
} }
// not in using
public struct SizeLimit { public struct SizeLimit {
public let image: Int public let image: Int
public let gif: Int public let gif: Int
public let video: Int public let video: Int
public init( public init(
image: Int = 5 * 1024 * 1024, // 5 MiB, image: Int = 10 * 1024 * 1024, // 10 MiB
gif: Int = 15 * 1024 * 1024, // 15 MiB, gif: Int = 40 * 1024 * 1024, // 40 MiB
video: Int = 512 * 1024 * 1024 // 512 MiB video: Int = 40 * 1024 * 1024 // 40 MiB
) { ) {
self.image = image self.image = image
self.gif = gif self.gif = gif
@ -286,9 +286,9 @@ extension AttachmentViewModel {
public var errorDescription: String? { public var errorDescription: String? {
switch self { switch self {
case .invalidAttachmentType: case .invalidAttachmentType:
return "Can not regonize this media attachment" // TODO: i18n return L10n.Scene.Compose.Attachment.canNotRecognizeThisMediaAttachment
case .attachmentTooLarge: case .attachmentTooLarge:
return "Attachment too large" return L10n.Scene.Compose.Attachment.attachmentTooLarge
} }
} }
} }

View File

@ -73,7 +73,7 @@ final class AutoCompleteViewModel {
inputText inputText
.removeDuplicates() .removeDuplicates()
.receive(on: DispatchQueue.main) .throttle(for: .milliseconds(200), scheduler: DispatchQueue.main, latest: true)
.sink { [weak self] inputText in .sink { [weak self] inputText in
guard let self = self else { return } guard let self = self else { return }
self.stateMachine.enter(State.Loading.self) self.stateMachine.enter(State.Loading.self)

View File

@ -55,20 +55,20 @@ public final class ComposeContentViewController: UIViewController {
return configuration return configuration
} }
private(set) lazy var photoLibraryPicker: PHPickerViewController = { public private(set) lazy var photoLibraryPicker: PHPickerViewController = {
let imagePicker = PHPickerViewController(configuration: ComposeContentViewController.createPhotoLibraryPickerConfiguration()) let imagePicker = PHPickerViewController(configuration: ComposeContentViewController.createPhotoLibraryPickerConfiguration())
imagePicker.delegate = self imagePicker.delegate = self
return imagePicker return imagePicker
}() }()
private(set) lazy var imagePickerController: UIImagePickerController = { public private(set) lazy var imagePickerController: UIImagePickerController = {
let imagePickerController = UIImagePickerController() let imagePickerController = UIImagePickerController()
imagePickerController.sourceType = .camera imagePickerController.sourceType = .camera
imagePickerController.delegate = self imagePickerController.delegate = self
return imagePickerController return imagePickerController
}() }()
private(set) lazy var documentPickerController: UIDocumentPickerViewController = { public private(set) lazy var documentPickerController: UIDocumentPickerViewController = {
let documentPickerController = UIDocumentPickerViewController(forOpeningContentTypes: [.image, .movie]) let documentPickerController = UIDocumentPickerViewController(forOpeningContentTypes: [.image, .movie])
documentPickerController.delegate = self documentPickerController.delegate = self
return documentPickerController return documentPickerController
@ -334,9 +334,22 @@ extension ComposeContentViewController {
viewModel.$isPollActive.assign(to: &composeContentToolbarViewModel.$isPollActive) viewModel.$isPollActive.assign(to: &composeContentToolbarViewModel.$isPollActive)
viewModel.$isEmojiActive.assign(to: &composeContentToolbarViewModel.$isEmojiActive) viewModel.$isEmojiActive.assign(to: &composeContentToolbarViewModel.$isEmojiActive)
viewModel.$isContentWarningActive.assign(to: &composeContentToolbarViewModel.$isContentWarningActive) viewModel.$isContentWarningActive.assign(to: &composeContentToolbarViewModel.$isContentWarningActive)
viewModel.$visibility.assign(to: &composeContentToolbarViewModel.$visibility)
viewModel.$maxTextInputLimit.assign(to: &composeContentToolbarViewModel.$maxTextInputLimit) viewModel.$maxTextInputLimit.assign(to: &composeContentToolbarViewModel.$maxTextInputLimit)
viewModel.$contentWeightedLength.assign(to: &composeContentToolbarViewModel.$contentWeightedLength) viewModel.$contentWeightedLength.assign(to: &composeContentToolbarViewModel.$contentWeightedLength)
viewModel.$contentWarningWeightedLength.assign(to: &composeContentToolbarViewModel.$contentWarningWeightedLength) viewModel.$contentWarningWeightedLength.assign(to: &composeContentToolbarViewModel.$contentWarningWeightedLength)
// bind back to source due to visibility not update via delegate
composeContentToolbarViewModel.$visibility
.dropFirst()
.receive(on: DispatchQueue.main)
.sink { [weak self] visibility in
guard let self = self else { return }
if self.viewModel.visibility != visibility {
self.viewModel.visibility = visibility
}
}
.store(in: &disposeBag)
} }
private func updateAutoCompleteViewControllerLayout() { private func updateAutoCompleteViewControllerLayout() {

View File

@ -91,7 +91,7 @@ public final class ComposeContentViewModel: NSObject, ObservableObject {
// @Published public internal(set) var isMediaValid = true // @Published public internal(set) var isMediaValid = true
// poll // poll
@Published var isPollActive = false @Published public var isPollActive = false
@Published public var pollOptions: [PollComposeItem.Option] = { @Published public var pollOptions: [PollComposeItem.Option] = {
// initial with 2 options // initial with 2 options
var options: [PollComposeItem.Option] = [] var options: [PollComposeItem.Option] = []
@ -111,7 +111,7 @@ public final class ComposeContentViewModel: NSObject, ObservableObject {
@Published var isLoadingCustomEmoji = false @Published var isLoadingCustomEmoji = false
// visibility // visibility
@Published var visibility: Mastodon.Entity.Status.Visibility @Published public var visibility: Mastodon.Entity.Status.Visibility
// UI & UX // UI & UX
@Published var replyToCellFrame: CGRect = .zero @Published var replyToCellFrame: CGRect = .zero
@ -229,6 +229,32 @@ public final class ComposeContentViewModel: NSObject, ObservableObject {
break break
} }
// set limit
let _configuration: Mastodon.Entity.Instance.Configuration? = {
var configuration: Mastodon.Entity.Instance.Configuration? = nil
context.managedObjectContext.performAndWait {
guard let authentication = authContext.mastodonAuthenticationBox.authenticationRecord.object(in: context.managedObjectContext)
else { return }
configuration = authentication.instance?.configuration
}
return configuration
}()
if let configuration = _configuration {
// set character limit
if let maxCharacters = configuration.statuses?.maxCharacters {
maxTextInputLimit = maxCharacters
}
// set media limit
if let maxMediaAttachments = configuration.statuses?.maxMediaAttachments {
maxMediaAttachmentLimit = maxMediaAttachments
}
// set poll option limit
if let maxOptions = configuration.polls?.maxOptions {
maxPollOptionLimit = maxOptions
}
// TODO: more limit
}
bind() bind()
} }
@ -453,14 +479,14 @@ extension ComposeContentViewModel {
public var errorDescription: String? { public var errorDescription: String? {
switch self { switch self {
case .pollHasEmptyOption: case .pollHasEmptyOption:
return "The post poll is invalid" // TODO: i18n return L10n.Scene.Compose.Poll.thePollIsInvalid
} }
} }
public var failureReason: String? { public var failureReason: String? {
switch self { switch self {
case .pollHasEmptyOption: case .pollHasEmptyOption:
return "The poll has empty option" // TODO: i18n return L10n.Scene.Compose.Poll.thePollHasEmptyOption
} }
} }
} }

View File

@ -11,7 +11,7 @@ target 'Mastodon' do
pod 'XLPagerTabStrip', '~> 9.0.0' pod 'XLPagerTabStrip', '~> 9.0.0'
# misc # misc
pod 'SwiftGen', '~> 6.4.0' pod 'SwiftGen', '~> 6.6.2'
pod 'DateToolsSwift', '~> 5.0.0' pod 'DateToolsSwift', '~> 5.0.0'
pod 'Kanna', '~> 5.2.2' pod 'Kanna', '~> 5.2.2'
pod 'Sourcery', '~> 1.6.1' pod 'Sourcery', '~> 1.6.1'

View File

@ -5,7 +5,7 @@ PODS:
- Sourcery (1.6.1): - Sourcery (1.6.1):
- Sourcery/CLI-Only (= 1.6.1) - Sourcery/CLI-Only (= 1.6.1)
- Sourcery/CLI-Only (1.6.1) - Sourcery/CLI-Only (1.6.1)
- SwiftGen (6.4.0) - SwiftGen (6.6.2)
- XLPagerTabStrip (9.0.0) - XLPagerTabStrip (9.0.0)
DEPENDENCIES: DEPENDENCIES:
@ -13,7 +13,7 @@ DEPENDENCIES:
- FLEX (~> 4.4.0) - FLEX (~> 4.4.0)
- Kanna (~> 5.2.2) - Kanna (~> 5.2.2)
- Sourcery (~> 1.6.1) - Sourcery (~> 1.6.1)
- SwiftGen (~> 6.4.0) - SwiftGen (~> 6.6.2)
- XLPagerTabStrip (~> 9.0.0) - XLPagerTabStrip (~> 9.0.0)
SPEC REPOS: SPEC REPOS:
@ -30,9 +30,9 @@ SPEC CHECKSUMS:
FLEX: 7ca2c8cd3a435ff501ff6d2f2141e9bdc934eaab FLEX: 7ca2c8cd3a435ff501ff6d2f2141e9bdc934eaab
Kanna: 01cfbddc127f5ff0963692f285fcbc8a9d62d234 Kanna: 01cfbddc127f5ff0963692f285fcbc8a9d62d234
Sourcery: f3759f803bd0739f74fc92a4341eed0473ce61ac Sourcery: f3759f803bd0739f74fc92a4341eed0473ce61ac
SwiftGen: 67860cc7c3cfc2ed25b9b74cfd55495fc89f9108 SwiftGen: 1366a7f71aeef49954ca5a63ba4bef6b0f24138c
XLPagerTabStrip: 61c57fd61f611ee5f01ff1495ad6fbee8bf496c5 XLPagerTabStrip: 61c57fd61f611ee5f01ff1495ad6fbee8bf496c5
PODFILE CHECKSUM: 8fddf46611e09d2eb1a5d67c464c236884a08e80 PODFILE CHECKSUM: 7499a197793f73c4dcf1d16a315434baaa688873
COCOAPODS: 1.11.3 COCOAPODS: 1.11.3

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