diff --git a/Localization/Intents.stringsdict b/Localization/Intents.stringsdict new file mode 100644 index 000000000..5a39d5e64 --- /dev/null +++ b/Localization/Intents.stringsdict @@ -0,0 +1,54 @@ + + + + + There are ${count} options matching ‘${content}’. - 2 + + NSStringLocalizedFormatKey + There are %#@count_option@ matching ‘${content}’. + count_option + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + %ld + zero + 0 options + one + 1 option + two + 2 options + few + %ld options + many + %ld options + other + %ld options + + + There are ${count} options matching ‘${visibility}’. + + NSStringLocalizedFormatKey + There are %#@count_option@ matching ‘${visibility}’. + count_option + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + %ld + zero + 0 options + one + 1 option + two + 2 options + few + %ld options + many + %ld options + other + %ld options + + + + diff --git a/Localization/Localizable.stringsdict b/Localization/Localizable.stringsdict index cfa87b017..44fb608bc 100644 --- a/Localization/Localizable.stringsdict +++ b/Localization/Localizable.stringsdict @@ -376,5 +376,137 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0y ago + one + 1y ago + few + %ldy ago + many + %ldy ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0M ago + one + 1M ago + few + %ldM ago + many + %ldM ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0d ago + one + 1d ago + few + %ldd ago + many + %ldd ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0h ago + one + 1h ago + few + %ldh ago + many + %ldh ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0m ago + one + 1m ago + few + %ldm ago + many + %ldm ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0s ago + one + 1s ago + few + %lds ago + many + %lds ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/Intents/input/da_DK/Intents.strings b/Localization/StringsConvertor/Intents/input/da_DK/Intents.strings new file mode 100644 index 000000000..e19069797 --- /dev/null +++ b/Localization/StringsConvertor/Intents/input/da_DK/Intents.strings @@ -0,0 +1,51 @@ +"16wxgf" = "Post on Mastodon"; + +"751xkl" = "Text Content"; + +"CsR7G2" = "Post"; + +"HZSGTr" = "What content to post?"; + +"HdGikU" = "Posting failed"; + +"KDNTJ4" = "Failure Reason"; + +"RHxKOw" = "Send Post with text content"; + +"RxSqsb" = "Post"; + +"WCIR3D" = "Post ${content} on Mastodon"; + +"ZKJSNu" = "Post"; + +"ZS1XaK" = "${content}"; + +"ZbSjzC" = "Visibility"; + +"Zo4jgJ" = "Post Visibility"; + +"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; + +"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; + +"ayoYEb-dYQ5NN" = "${content}, Public"; + +"ayoYEb-ehFLjY" = "${content}, Followers Only"; + +"dUyuGg" = "Post"; + +"dYQ5NN" = "Public"; + +"ehFLjY" = "Followers Only"; + +"gfePDu" = "Posting failed. ${failureReason}"; + +"k7dbKQ" = "Post was sent successfully."; + +"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; + +"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; + +"rM6dvp" = "URL"; + +"ryJLwG" = "Post was sent successfully. "; diff --git a/Localization/StringsConvertor/Intents/input/de_DE/Intents.strings b/Localization/StringsConvertor/Intents/input/de_DE/Intents.strings index e19069797..db8062fbc 100644 --- a/Localization/StringsConvertor/Intents/input/de_DE/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/de_DE/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Auf Mastodon schreiben"; -"751xkl" = "Text Content"; +"751xkl" = "Textinhalt"; "CsR7G2" = "Post"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "Welcher Inhalt soll gepostet werden?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Posten fehlgeschlagen"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Fehlerursache"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Beitrag mit Textinhalt posten"; -"RxSqsb" = "Post"; +"RxSqsb" = "Beitrag"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Schreibe ${content} auf Mastodon"; "ZKJSNu" = "Post"; -"ZS1XaK" = "${content}"; +"ZS1XaK" = "Inhalt: ${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Sichtbarkeit"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Sichtbarkeit des Beitrags"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "Es gibt ${count} Optionen, die zu ''öffentlich\" passen."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "Es gibt ${count} Optionen, die zu ''nur für Follower\" passen."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, öffentlich"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, nur für Follower"; "dUyuGg" = "Post"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Öffentlich"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Nur für Follower"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Senden fehlgeschlagen. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "Beitrag wurde erfolgreich gesendet."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Nur zur Bestätigung, du wolltest \"Öffentlich\"?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Nur zur Bestätigung, du wolltest \"Nur für Follower\"?"; "rM6dvp" = "URL"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "Beitrag wurde erfolgreich gesendet. "; diff --git a/Localization/StringsConvertor/Intents/input/es_AR/Intents.strings b/Localization/StringsConvertor/Intents/input/es_AR/Intents.strings index e19069797..64c0376c0 100644 --- a/Localization/StringsConvertor/Intents/input/es_AR/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/es_AR/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Enviar a Mastodon"; -"751xkl" = "Text Content"; +"751xkl" = "Contenido del texto"; -"CsR7G2" = "Post"; +"CsR7G2" = "Enviar"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "¿Qué contenido enviar?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Error al enviar mensaje"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Motivo del error"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Enviar mensaje con contenido de texto"; -"RxSqsb" = "Post"; +"RxSqsb" = "Enviar"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Enviar ${content} a Mastodon"; -"ZKJSNu" = "Post"; +"ZKJSNu" = "Enviar"; "ZS1XaK" = "${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Visibilidad"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Visibilidad del mensaje"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "Hay ${count} opciones que coinciden con \"Público\"."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "Hay ${count} opciones que coinciden con \"Sólo para seguidores\"."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, público"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, sólo para seguidores"; -"dUyuGg" = "Post"; +"dUyuGg" = "Enviar"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Público"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Sólo para seguidores"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Error al enviar mensaje. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "El mensaje se envió exitosamente."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Sólo para confirmar, ¿querías que este mensaje sea PÚBLICO?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Sólo para confirmar, ¿querías que este mensaje sea SÓLO PARA SEGUIDORES?"; -"rM6dvp" = "URL"; +"rM6dvp" = "Dirección web"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "El mensaje se envió exitosamente. "; diff --git a/Localization/StringsConvertor/Intents/input/gd_GB/Intents.strings b/Localization/StringsConvertor/Intents/input/gd_GB/Intents.strings index e19069797..46f4be66a 100644 --- a/Localization/StringsConvertor/Intents/input/gd_GB/Intents.strings +++ b/Localization/StringsConvertor/Intents/input/gd_GB/Intents.strings @@ -1,51 +1,51 @@ "16wxgf" = "Post on Mastodon"; -"751xkl" = "Text Content"; +"751xkl" = "Susbaint teacsa"; "CsR7G2" = "Post"; "HZSGTr" = "What content to post?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Dh’fhàillig leis a’ phostadh"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Adhbhar an fhàilligidh"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Cuir post le susbaint teacsa"; "RxSqsb" = "Post"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Postaich ${content} air Mastodon"; "ZKJSNu" = "Post"; "ZS1XaK" = "${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Faicsinneachd"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Faicsinneachd a’ phuist"; "apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; "apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, poblach"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, luchd-leantainn a-mhàin"; "dUyuGg" = "Post"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Poblach"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Luchd-leantainn a-mhàin"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Fhàillig leis a’ phostadh. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "Chaidh am post a chur."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "A bheil “Poblach” fainear dhut le cinnt?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "A bheil “Luchd-leantainn a-mhàin” fainear dhut le cinnt?"; "rM6dvp" = "URL"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "Chaidh am post a chur. "; diff --git a/Localization/StringsConvertor/Intents/input/id_ID/Intents.strings b/Localization/StringsConvertor/Intents/input/id_ID/Intents.strings new file mode 100644 index 000000000..e19069797 --- /dev/null +++ b/Localization/StringsConvertor/Intents/input/id_ID/Intents.strings @@ -0,0 +1,51 @@ +"16wxgf" = "Post on Mastodon"; + +"751xkl" = "Text Content"; + +"CsR7G2" = "Post"; + +"HZSGTr" = "What content to post?"; + +"HdGikU" = "Posting failed"; + +"KDNTJ4" = "Failure Reason"; + +"RHxKOw" = "Send Post with text content"; + +"RxSqsb" = "Post"; + +"WCIR3D" = "Post ${content} on Mastodon"; + +"ZKJSNu" = "Post"; + +"ZS1XaK" = "${content}"; + +"ZbSjzC" = "Visibility"; + +"Zo4jgJ" = "Post Visibility"; + +"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; + +"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; + +"ayoYEb-dYQ5NN" = "${content}, Public"; + +"ayoYEb-ehFLjY" = "${content}, Followers Only"; + +"dUyuGg" = "Post"; + +"dYQ5NN" = "Public"; + +"ehFLjY" = "Followers Only"; + +"gfePDu" = "Posting failed. ${failureReason}"; + +"k7dbKQ" = "Post was sent successfully."; + +"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; + +"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; + +"rM6dvp" = "URL"; + +"ryJLwG" = "Post was sent successfully. "; diff --git a/Localization/StringsConvertor/Intents/input/th_TH/Intents.strings b/Localization/StringsConvertor/Intents/input/th_TH/Intents.strings new file mode 100644 index 000000000..e19069797 --- /dev/null +++ b/Localization/StringsConvertor/Intents/input/th_TH/Intents.strings @@ -0,0 +1,51 @@ +"16wxgf" = "Post on Mastodon"; + +"751xkl" = "Text Content"; + +"CsR7G2" = "Post"; + +"HZSGTr" = "What content to post?"; + +"HdGikU" = "Posting failed"; + +"KDNTJ4" = "Failure Reason"; + +"RHxKOw" = "Send Post with text content"; + +"RxSqsb" = "Post"; + +"WCIR3D" = "Post ${content} on Mastodon"; + +"ZKJSNu" = "Post"; + +"ZS1XaK" = "${content}"; + +"ZbSjzC" = "Visibility"; + +"Zo4jgJ" = "Post Visibility"; + +"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; + +"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; + +"ayoYEb-dYQ5NN" = "${content}, Public"; + +"ayoYEb-ehFLjY" = "${content}, Followers Only"; + +"dUyuGg" = "Post"; + +"dYQ5NN" = "Public"; + +"ehFLjY" = "Followers Only"; + +"gfePDu" = "Posting failed. ${failureReason}"; + +"k7dbKQ" = "Post was sent successfully."; + +"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; + +"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; + +"rM6dvp" = "URL"; + +"ryJLwG" = "Post was sent successfully. "; diff --git a/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict b/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict index ac93b644b..537064efb 100644 --- a/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ar_SA/Localizable.stringsdict @@ -410,5 +410,149 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldy ago + one + 1y ago + two + %ldy ago + few + %ldy ago + many + %ldy ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldM ago + one + 1M ago + two + %ldM ago + few + %ldM ago + many + %ldM ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldd ago + one + 1d ago + two + %ldd ago + few + %ldd ago + many + %ldd ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldh ago + one + 1h ago + two + %ldh ago + few + %ldh ago + many + %ldh ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldm ago + one + 1m ago + two + %ldm ago + few + %ldm ago + many + %ldm ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %lds ago + one + 1s ago + two + %lds ago + few + %lds ago + many + %lds ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/ar_SA/app.json b/Localization/StringsConvertor/input/ar_SA/app.json index e370035cb..dad1465f9 100644 --- a/Localization/StringsConvertor/input/ar_SA/app.json +++ b/Localization/StringsConvertor/input/ar_SA/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "لا توجد هناك منشورات", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/ca_ES/Localizable.stringsdict b/Localization/StringsConvertor/input/ca_ES/Localizable.stringsdict index 012a0d4c8..b76b0a921 100644 --- a/Localization/StringsConvertor/input/ca_ES/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ca_ES/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld segons restants + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1a + other + fa %ldy anys + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1M + other + fa %ldM mesos + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1d + other + fa %ldd dies + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1h + other + fa %ldh hores + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1m + other + fa %ldm minuts + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1s + other + fa %lds seg + + diff --git a/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict b/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict index ac93b644b..537064efb 100644 --- a/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/cy_GB/Localizable.stringsdict @@ -410,5 +410,149 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldy ago + one + 1y ago + two + %ldy ago + few + %ldy ago + many + %ldy ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldM ago + one + 1M ago + two + %ldM ago + few + %ldM ago + many + %ldM ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldd ago + one + 1d ago + two + %ldd ago + few + %ldd ago + many + %ldd ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldh ago + one + 1h ago + two + %ldh ago + few + %ldh ago + many + %ldh ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldm ago + one + 1m ago + two + %ldm ago + few + %ldm ago + many + %ldm ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %lds ago + one + 1s ago + two + %lds ago + few + %lds ago + many + %lds ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/cy_GB/app.json b/Localization/StringsConvertor/input/cy_GB/app.json index 3d99c77da..d7ba2147e 100644 --- a/Localization/StringsConvertor/input/cy_GB/app.json +++ b/Localization/StringsConvertor/input/cy_GB/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/da_DK/Localizable.stringsdict b/Localization/StringsConvertor/input/da_DK/Localizable.stringsdict new file mode 100644 index 000000000..c7c84d074 --- /dev/null +++ b/Localization/StringsConvertor/input/da_DK/Localizable.stringsdict @@ -0,0 +1,374 @@ + + + + + a11y.plural.count.input_limit_exceeds + + NSStringLocalizedFormatKey + Input limit exceeds %#@character_count@ + character_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 character + other + %ld characters + + + a11y.plural.count.input_limit_remains + + NSStringLocalizedFormatKey + Input limit remains %#@character_count@ + character_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 character + other + %ld characters + + + plural.count.metric_formatted.post + + NSStringLocalizedFormatKey + %@ %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + post + other + posts + + + plural.count.post + + NSStringLocalizedFormatKey + %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 post + other + %ld posts + + + plural.count.favorite + + NSStringLocalizedFormatKey + %#@favorite_count@ + favorite_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 favorite + other + %ld favorites + + + plural.count.reblog + + NSStringLocalizedFormatKey + %#@reblog_count@ + reblog_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 reblog + other + %ld reblogs + + + plural.count.vote + + NSStringLocalizedFormatKey + %#@vote_count@ + vote_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 vote + other + %ld votes + + + plural.count.voter + + NSStringLocalizedFormatKey + %#@voter_count@ + voter_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 voter + other + %ld voters + + + plural.people_talking + + NSStringLocalizedFormatKey + %#@count_people_talking@ + count_people_talking + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 people talking + other + %ld people talking + + + plural.count.following + + NSStringLocalizedFormatKey + %#@count_following@ + count_following + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 following + other + %ld following + + + plural.count.follower + + NSStringLocalizedFormatKey + %#@count_follower@ + count_follower + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 follower + other + %ld followers + + + date.year.left + + NSStringLocalizedFormatKey + %#@count_year_left@ + count_year_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 year left + other + %ld years left + + + date.month.left + + NSStringLocalizedFormatKey + %#@count_month_left@ + count_month_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 months left + other + %ld months left + + + date.day.left + + NSStringLocalizedFormatKey + %#@count_day_left@ + count_day_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 day left + other + %ld days left + + + date.hour.left + + NSStringLocalizedFormatKey + %#@count_hour_left@ + count_hour_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 hour left + other + %ld hours left + + + date.minute.left + + NSStringLocalizedFormatKey + %#@count_minute_left@ + count_minute_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 minute left + other + %ld minutes left + + + date.second.left + + NSStringLocalizedFormatKey + %#@count_second_left@ + count_second_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1 second left + other + %ld seconds left + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + + + diff --git a/Localization/StringsConvertor/input/da_DK/app.json b/Localization/StringsConvertor/input/da_DK/app.json new file mode 100644 index 000000000..d7ba2147e --- /dev/null +++ b/Localization/StringsConvertor/input/da_DK/app.json @@ -0,0 +1,541 @@ +{ + "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": "Are you sure you want to delete this post?", + "delete": "Delete" + }, + "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", + "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", + "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", + "media_content_warning": "Tap anywhere to reveal", + "poll": { + "vote": "Vote", + "closed": "Closed" + }, + "actions": { + "reply": "Reply", + "reblog": "Reblog", + "unreblog": "Undo reblog", + "favorite": "Favorite", + "unfavorite": "Unfavorite", + "menu": "Menu" + }, + "tag": { + "url": "URL", + "mention": "Mention", + "link": "Link", + "hashtag": "Hashtag", + "email": "Email", + "emoji": "Emoji" + } + }, + "friendship": { + "follow": "Follow", + "following": "Following", + "request": "Request", + "pending": "Pending", + "block": "Block", + "block_user": "Block %s", + "block_domain": "Block %s", + "unblock": "Unblock", + "unblock_user": "Unblock %s", + "blocked": "Blocked", + "mute": "Mute", + "mute_user": "Mute %s", + "unmute": "Unmute", + "unmute_user": "Unmute %s", + "muted": "Muted", + "edit_info": "Edit Info" + }, + "timeline": { + "filtered": "Filtered", + "timestamp": { + "now": "Now" + }, + "loader": { + "load_missing_posts": "Load missing posts", + "loading_missing_posts": "Loading missing posts...", + "show_more_replies": "Show more replies" + }, + "header": { + "no_status_found": "No Post Found", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", + "suspended_warning": "This user has been suspended.", + "user_suspended_warning": "%s’s account has been suspended." + } + } + } + }, + "scene": { + "welcome": { + "slogan": "Social networking\nback in your hands." + }, + "server_picker": { + "title": "Pick a server,\nany server.", + "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": "Find a server or join your own..." + }, + "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": "Tell us about you.", + "input": { + "avatar": { + "delete": "Delete" + }, + "username": { + "placeholder": "username", + "duplicate_prompt": "This username is taken." + }, + "display_name": { + "placeholder": "display name" + }, + "email": { + "placeholder": "email" + }, + "password": { + "placeholder": "password", + "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 (can’t be longer than 30 characters)", + "email_invalid": "This is not a valid email address", + "password_too_short": "Password is too short (must be at least 8 characters)" + } + } + }, + "server_rules": { + "title": "Some ground rules.", + "subtitle": "These rules are set by the admins of %s.", + "prompt": "By continuing, you’re subject to the terms of service and privacy policy for %s.", + "terms_of_service": "terms of service", + "privacy_policy": "privacy policy", + "button": { + "confirm": "I Agree" + } + }, + "confirm_email": { + "title": "One last thing.", + "subtitle": "We just sent an email to %s,\ntap the link to confirm your account.", + "button": { + "open_email_app": "Open Email App", + "dont_receive_email": "I never got an email" + }, + "dont_receive_email": { + "title": "Check your email", + "description": "Check if your email address is correct as well as your junk folder if you haven’t.", + "resend_email": "Resend Email" + }, + "open_email_app": { + "title": "Check your inbox.", + "description": "We just sent you an email. Check your junk folder if you haven’t.", + "mail": "Mail", + "open_email_client": "Open Email Client" + } + }, + "home_timeline": { + "title": "Home", + "navigation_bar_state": { + "offline": "Offline", + "new_posts": "See new posts", + "published": "Published!", + "Publishing": "Publishing post..." + } + }, + "suggestion_account": { + "title": "Find People to Follow", + "follow_explain": "When you follow someone, you’ll 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 what’s on your mind", + "compose_action": "Publish", + "replying_to_user": "replying to %s", + "attachment": { + "photo": "photo", + "video": "video", + "attachment_broken": "This %s is broken and can’t be\nuploaded to Mastodon.", + "description_photo": "Describe the photo for the visually-impaired...", + "description_video": "Describe the video for the visually-impaired..." + }, + "poll": { + "duration_time": "Duration: %s", + "thirty_minutes": "30 minutes", + "one_hour": "1 Hour", + "six_hours": "6 Hours", + "one_day": "1 Day", + "three_days": "3 Days", + "seven_days": "7 Days", + "option_number": "Option %ld" + }, + "content_warning": { + "placeholder": "Write an accurate warning here..." + }, + "visibility": { + "public": "Public", + "unlisted": "Unlisted", + "private": "Followers only", + "direct": "Only people I mention" + }, + "auto_complete": { + "space_to_add": "Space to add" + }, + "accessibility": { + "append_attachment": "Add Attachment", + "append_poll": "Add Poll", + "remove_poll": "Remove Poll", + "custom_emoji_picker": "Custom Emoji Picker", + "enable_content_warning": "Enable Content Warning", + "disable_content_warning": "Disable Content Warning", + "post_visibility_menu": "Post Visibility Menu" + }, + "keyboard": { + "discard_post": "Discard Post", + "publish_post": "Publish Post", + "toggle_poll": "Toggle Poll", + "toggle_content_warning": "Toggle Content Warning", + "append_attachment_entry": "Add Attachment - %s", + "select_visibility_entry": "Select Visibility - %s" + } + }, + "profile": { + "dashboard": { + "posts": "posts", + "following": "following", + "followers": "followers" + }, + "fields": { + "add_row": "Add Row", + "placeholder": { + "label": "Label", + "content": "Content" + } + }, + "segmented_control": { + "posts": "Posts", + "replies": "Replies", + "media": "Media" + }, + "relationship_action_alert": { + "confirm_unmute_user": { + "title": "Unmute Account", + "message": "Confirm to unmute %s" + }, + "confirm_unblock_usre": { + "title": "Unblock Account", + "message": "Confirm to unblock %s" + } + } + }, + "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" + } + }, + "favorite": { + "title": "Your Favorites" + }, + "notification": { + "title": { + "Everything": "Everything", + "Mentions": "Mentions" + }, + "action": { + "follow": "followed you", + "favourite": "favorited your post", + "reblog": "reblogged your post", + "poll": "Your poll has ended", + "mention": "mentioned you", + "follow_request": "requested to follow you" + }, + "keyobard": { + "show_everything": "Show Everything", + "show_mentions": "Show Mentions" + } + }, + "thread": { + "back_title": "Post", + "title": "Post from %s" + }, + "settings": { + "title": "Settings", + "section": { + "appearance": { + "title": "Appearance", + "automatic": "Automatic", + "light": "Always Light", + "dark": "Always Dark" + }, + "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" + }, + "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 %s", + "step1": "Step 1 of 2", + "step2": "Step 2 of 2", + "content1": "Are there any other posts you’d like to add to the report?", + "content2": "Is there anything the moderators should know about this report?", + "send": "Send Report", + "skip_to_send": "Send without comment", + "text_placeholder": "Type or paste additional comments" + }, + "preview": { + "keyboard": { + "close_preview": "Close Preview", + "show_next": "Show Next", + "show_previous": "Show Previous" + } + } + } +} \ No newline at end of file diff --git a/Localization/StringsConvertor/input/da_DK/ios-infoPlist.json b/Localization/StringsConvertor/input/da_DK/ios-infoPlist.json new file mode 100644 index 000000000..c6db73de0 --- /dev/null +++ b/Localization/StringsConvertor/input/da_DK/ios-infoPlist.json @@ -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" +} diff --git a/Localization/StringsConvertor/input/de_DE/Localizable.stringsdict b/Localization/StringsConvertor/input/de_DE/Localizable.stringsdict index e0e798625..e89bdb074 100644 --- a/Localization/StringsConvertor/input/de_DE/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/de_DE/Localizable.stringsdict @@ -5,7 +5,7 @@ a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + Eingabelimit überschritten %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 Zeichen other - %ld characters + %ld Zeichen a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + Eingabelimit eingehalten %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -29,9 +29,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 Zeichen other - %ld characters + %ld Zeichen plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 Beitrag other - %ld posts + %ld Beiträge plural.count.favorite @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 following + 1 folgt other - %ld following + %ld folgen plural.count.follower @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 Follower other - %ld followers + %ld Follower date.year.left @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + noch 1 Jahr übrig other - %ld years left + noch %ld Jahre übrig date.month.left @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + noch 1 Monat übrig other - %ld months left + noch %ld Monate übrig date.day.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + noch 1 Tag übrig other - %ld days left + noch %ld Tage übrig date.hour.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + noch 1 Stunde übrig other - %ld hours left + noch %ld Stunden übrig date.minute.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + noch 1 Minute übrig other - %ld minutes left + noch %ld Minuten übrig date.second.left @@ -269,9 +269,105 @@ NSStringFormatValueTypeKey ld one - 1 second left + noch 1 Sekunde übrig other - %ld seconds left + noch %ld Sekunden übrig + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Jahr + other + vor %ld Jahren + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 M + other + vor %ld Monaten + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Tag + other + vor %ld Tagen + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Stunde + other + vor %ld Stunden + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Minute + other + vor %ld Minuten + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Sekunde + other + vor %ld Sekuden diff --git a/Localization/StringsConvertor/input/de_DE/app.json b/Localization/StringsConvertor/input/de_DE/app.json index c955e12a5..4e83609dc 100644 --- a/Localization/StringsConvertor/input/de_DE/app.json +++ b/Localization/StringsConvertor/input/de_DE/app.json @@ -6,7 +6,7 @@ "please_try_again_later": "Bitte versuche es später nochmal." }, "sign_up_failure": { - "title": "Anmeldefehler" + "title": "Registrierungsfehler" }, "server_error": { "title": "Serverfehler" @@ -16,15 +16,15 @@ "poll_ended": "Die Umfrage ist beendet" }, "discard_post_content": { - "title": "Entwurf Verwerfen", - "message": "Bestätige um den Beitrag zu verwerfen." + "title": "Entwurf verwerfen", + "message": "Bestätige, um den Beitrag zu verwerfen." }, "publish_post_failure": { "title": "Fehler bei Veröffentlichung", "message": "Fehler beim Veröffentlichen des Beitrags.\nBitte überprüfe deine Internetverbindung.", "attachments_message": { "video_attach_with_photo": "Es kann kein Video an einen Beitrag, der bereits Bilder enthält, angehängt werden.", - "more_than_one_video": "Es kann nicht mehr als ein Video hinzugefügt werden." + "more_than_one_video": "Es kann nicht mehr als ein Video angehängt werden." } }, "edit_profile_failure": { @@ -37,7 +37,7 @@ "confirm": "Abmelden" }, "block_domain": { - "title": "Bist du dir wirklich sicher, dass du die ganze Domain %s blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus und werden bevorzugt. Du wirst den Inhalt von dieser Domain nicht mehr sehen. Deine Folgenden von dieser Domain werden entfernt.", + "title": "Bist du dir wirklich sicher, dass du die ganze Domain %s blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus und werden bevorzugt. Du wirst den Inhalt von dieser Domain nicht mehr sehen. Deine Follower von dieser Domain werden entfernt.", "block_entire_domain": "Domain blockieren" }, "save_photo_failure": { @@ -57,7 +57,7 @@ "actions": { "back": "Zurück", "next": "Weiter", - "previous": "Zurück", + "previous": "Vorheriges", "open": "Öffnen", "add": "Hinzufügen", "remove": "Entfernen", @@ -158,7 +158,7 @@ "block_user": "%s blockieren", "block_domain": "%s blockieren", "unblock": "Blockierung aufheben", - "unblock_user": "@%s entblocken", + "unblock_user": "Blockierung von %s aufheben", "blocked": "Blockiert", "mute": "Stummschalten", "mute_user": "%s stummschalten", @@ -180,9 +180,9 @@ "header": { "no_status_found": "Kein Beitrag gefunden", "blocking_warning": "Du kannst das Profil dieses Benutzers nicht sehen\n solange du den Benutzer nicht entsperrst.\nDein Profil sieht für diesen Benutzer auch so aus.", - "user_blocking_warning": "Du kannst %ss Profil nicht sehen\n solange du diesen Benutzer nicht entsperrst.\nDein Profil sieht für diesen Benutzer auch so aus.", - "blocked_warning": "Das Profil dieses Benutzers\n kann nicht angezeigt werden, bis er dich entsperrt.", - "user_blocked_warning": "Du kannst das Profil von %s nicht sehen\n bis der Benutzer dich entsperrt.", + "user_blocking_warning": "Du kannst %ss Profil nicht sehen\nsolange du diesen Benutzer nicht entsperrst.\nDein Profil sieht für diesen Benutzer auch so aus.", + "blocked_warning": "Das Profil dieses Benutzers\nkann nicht angezeigt werden, bis er dich entsperrt.", + "user_blocked_warning": "Du kannst das Profil von %s nicht sehen \nbis der Benutzer dich entsperrt.", "suspended_warning": "Dieser Nutzer wurde gesperrt.", "user_suspended_warning": "Das Konto von %s wurde gesperrt." } @@ -201,7 +201,7 @@ "all_accessiblity_description": "Kategorie: Alle", "academia": "Wissenschaft", "activism": "Aktivismus", - "food": "Kochen", + "food": "Essen", "furry": "Furry", "games": "Spiele", "general": "Allgemein", @@ -225,7 +225,7 @@ }, "empty_state": { "finding_servers": "Verfügbare Server werden gesucht...", - "bad_network": "Da ist etwas schief gelaufen. Bitte versuche es erneut oder überprüfe deine Internetverbindung.", + "bad_network": "Beim Laden der Daten ist etwas schief gelaufen. Überprüfe deine Internetverbindung.", "no_results": "Keine Ergebnisse" } }, @@ -277,7 +277,7 @@ "special": { "username_invalid": "Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten", "username_too_long": "Benutzername ist zu lang (darf nicht länger als 30 Zeichen sein)", - "email_invalid": "Dies ist keine gültige E-Mail Adresse", + "email_invalid": "Dies ist keine gültige E-Mail-Adresse", "password_too_short": "Passwort ist zu kurz (mindestens 8 Zeichen erforderlich)" } } @@ -294,7 +294,7 @@ }, "confirm_email": { "title": "Noch eine letzte Sache.", - "subtitle": "Wir haben gerade eine E-Mail an %s gesendet,\ntippe auf den Link, um Dein Konto zu bestätigen.", + "subtitle": "Wir haben gerade eine E-Mail an %s gesendet,\ntippe darin auf den Link, um Dein Konto zu bestätigen.", "button": { "open_email_app": "E-Mail-App öffnen", "dont_receive_email": "Ich habe keine E-Mail erhalten." @@ -321,8 +321,8 @@ } }, "suggestion_account": { - "title": "Entdecke Benutzer zum Folgen", - "follow_explain": "Wenn du jemandem folgst, siehst du deren Beiträge dann in deinem Home-Feed." + "title": "Finde Personen zum Folgen", + "follow_explain": "Wenn du jemandem folgst, dann siehst du deren Beiträge in deinem Home-Feed." }, "compose": { "title": { diff --git a/Localization/StringsConvertor/input/en_US/Localizable.stringsdict b/Localization/StringsConvertor/input/en_US/Localizable.stringsdict index 42c07cec9..c7c84d074 100644 --- a/Localization/StringsConvertor/input/en_US/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/en_US/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/en_US/app.json b/Localization/StringsConvertor/input/en_US/app.json index 3d99c77da..d7ba2147e 100644 --- a/Localization/StringsConvertor/input/en_US/app.json +++ b/Localization/StringsConvertor/input/en_US/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/es_AR/Localizable.stringsdict b/Localization/StringsConvertor/input/es_AR/Localizable.stringsdict index d1c258f4b..f98962ccb 100644 --- a/Localization/StringsConvertor/input/es_AR/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/es_AR/Localizable.stringsdict @@ -5,7 +5,7 @@ a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + El límite de entrada excede %#@character_count@ caracteres character_count NSStringFormatSpecTypeKey @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + El límite de entrada permite %#@character_count@ caracteres character_count NSStringFormatSpecTypeKey @@ -29,9 +29,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 mensaje other - %ld posts + %ld mensajes plural.count.favorite @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 following + siguiendo a 1 other - %ld following + siguiendo a %ld plural.count.follower @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 seguidor other - %ld followers + %ld seguidores date.year.left @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + 1 año restante other - %ld years left + %ld años restantes date.month.left @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + 1 mes restante other - %ld months left + %ld meses restantes date.day.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + 1 día restante other - %ld days left + %ld días restantes date.hour.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + 1 hora restante other - %ld hours left + %ld horas restantes date.minute.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + 1 minuto restante other - %ld minutes left + %ld minutos restantes date.second.left @@ -269,9 +269,105 @@ NSStringFormatValueTypeKey ld one - 1 second left + 1 segundo restante other - %ld seconds left + %ld segundos restantes + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 año + other + hace %ld años + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 mes + other + hace %ld meses + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 día + other + hace %ld días + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 hora + other + hace %ld horas + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 minuto + other + hace %ld minutos + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 segundo + other + hace %ld segundos diff --git a/Localization/StringsConvertor/input/es_AR/app.json b/Localization/StringsConvertor/input/es_AR/app.json index e3410be12..18b757707 100644 --- a/Localization/StringsConvertor/input/es_AR/app.json +++ b/Localization/StringsConvertor/input/es_AR/app.json @@ -13,7 +13,7 @@ }, "vote_failure": { "title": "Error al votar", - "poll_ended": "La encuesta ha terminado" + "poll_ended": "La encuesta finalizó" }, "discard_post_content": { "title": "Descartar borrador", diff --git a/Localization/StringsConvertor/input/es_ES/Localizable.stringsdict b/Localization/StringsConvertor/input/es_ES/Localizable.stringsdict index 9097a22c4..21036aac5 100644 --- a/Localization/StringsConvertor/input/es_ES/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/es_ES/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/fr_FR/Localizable.stringsdict b/Localization/StringsConvertor/input/fr_FR/Localizable.stringsdict index 56e176d1e..d6fb911f3 100644 --- a/Localization/StringsConvertor/input/fr_FR/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/fr_FR/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/gd_GB/Localizable.stringsdict b/Localization/StringsConvertor/input/gd_GB/Localizable.stringsdict index 214befaad..63a998c6e 100644 --- a/Localization/StringsConvertor/input/gd_GB/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/gd_GB/Localizable.stringsdict @@ -5,7 +5,7 @@ a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + Tha d’ ion-chur %#@character_count@ ro fhada character_count NSStringFormatSpecTypeKey @@ -13,19 +13,19 @@ NSStringFormatValueTypeKey ld one - 1 character + %ld charactar two - %ld characters + %ld charactar few - %ld characters + %ld caractaran other - %ld characters + %ld caractar a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + Tha %#@character_count@ air fhàgail dhut character_count NSStringFormatSpecTypeKey @@ -33,13 +33,13 @@ NSStringFormatValueTypeKey ld one - 1 character + %ld charactar two - %ld characters + %ld charactar few - %ld characters + %ld caractaran other - %ld characters + %ld caractar plural.count.metric_formatted.post @@ -73,13 +73,13 @@ NSStringFormatValueTypeKey ld one - 1 post + %ld phost two - %ld posts + %ld phost few - %ld posts + %ld postaichean other - %ld posts + %ld post plural.count.favorite @@ -193,13 +193,13 @@ NSStringFormatValueTypeKey ld one - 1 following + A’ leantainn %ld two - %ld following + A’ leantainn %ld few - %ld following + A’ leantainn %ld other - %ld following + A’ leantainn %ld plural.count.follower @@ -213,13 +213,13 @@ NSStringFormatValueTypeKey ld one - 1 follower + Tha %ld a’ leantainn air two - %ld followers + Tha %ld a’ leantainn air few - %ld followers + Tha %ld a’ leantainn air other - %ld followers + Tha %ld a’ leantainn air date.year.left @@ -233,13 +233,13 @@ NSStringFormatValueTypeKey ld one - 1 year left + %ld bhliadhna air fhàgail two - %ld years left + %ld bhliadhna air fhàgail few - %ld years left + %ld bliadhnaichean air fhàgail other - %ld years left + %ld bliadhna air fhàgail date.month.left @@ -253,13 +253,13 @@ NSStringFormatValueTypeKey ld one - 1 months left + %ld mhìos air fhàgail two - %ld months left + %ld mhìos air fhàgail few - %ld months left + %ld mìosan air fhàgail other - %ld months left + %ld mìos air fhàgail date.day.left @@ -273,13 +273,13 @@ NSStringFormatValueTypeKey ld one - 1 day left + %ld latha air fhàgail two - %ld days left + %ld latha air fhàgail few - %ld days left + %ld làithean air fhàgail other - %ld days left + %ld latha air fhàgail date.hour.left @@ -293,13 +293,13 @@ NSStringFormatValueTypeKey ld one - 1 hour left + %ld uair a thìde air fhàgail two - %ld hours left + %ld uair a thìde air fhàgail few - %ld hours left + %ld uairean a thìde air fhàgail other - %ld hours left + %ld uair a thìde air fhàgail date.minute.left @@ -313,13 +313,13 @@ NSStringFormatValueTypeKey ld one - 1 minute left + %ld mhionaid air fhàgail two - %ld minutes left + %ld mhionaid air fhàgail few - %ld minutes left + %ld mionaidean air fhàgail other - %ld minutes left + %ld mionaid air fhàgail date.second.left @@ -333,13 +333,133 @@ NSStringFormatValueTypeKey ld one - 1 second left + %ld diog air fhàgail two - %ld seconds left + %ld dhiog air fhàgail few - %ld seconds left + %ld diogan air fhàgail other - %ld seconds left + %ld diog air fhàgail + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ld bhl. air ais + two + %ld bhl. air ais + few + %ld bl. air ais + other + %ld bl. air ais + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ld mhì. air ais + two + %ld mhì. air ais + few + %ld mì. air ais + other + %ld mì. air ais + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ld là air ais + two + %ld là air ais + few + %ld là. air ais + other + %ld là air ais + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ldu air ais + two + %ldu air ais + few + %ldu air ais + other + %ldu air ais + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ldm air ais + two + %ldm air ais + few + %ldm air ais + other + %ldm air ais + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ldd air ais + two + %ldd air ais + few + %ldd air ais + other + %ldd air ais diff --git a/Localization/StringsConvertor/input/gd_GB/app.json b/Localization/StringsConvertor/input/gd_GB/app.json index f3be64be0..723f45b47 100644 --- a/Localization/StringsConvertor/input/gd_GB/app.json +++ b/Localization/StringsConvertor/input/gd_GB/app.json @@ -13,7 +13,7 @@ }, "vote_failure": { "title": "Dh’fhàillig leis a’ bhòt", - "poll_ended": "The poll has ended" + "poll_ended": "Thàinig an cunntas-bheachd gu crìoch" }, "discard_post_content": { "title": "Tilg air falbh an dreachd", @@ -364,7 +364,7 @@ "direct": "Daoine air an dug mi iomradh a-mhàin" }, "auto_complete": { - "space_to_add": "Space to add" + "space_to_add": "Brùth air Space gus a chur ris" }, "accessibility": { "append_attachment": "Cuir ceanglachan ris", @@ -455,12 +455,12 @@ "Mentions": "Iomraidhean" }, "action": { - "follow": "followed you", - "favourite": "favorited your post", - "reblog": "reblogged your post", + "follow": "– ’s iad ’gad leantainn a-nis", + "favourite": "– ’s iad air am post agad a chur ris na h-annsachdan aca", + "reblog": "– ’s iad air am post agad a bhrosnachadh", "poll": "Thàinig an cunntas-bheachd agad gu crìoch", - "mention": "mentioned you", - "follow_request": "requested to follow you" + "mention": "– ’s iad air iomradh a thoirt ort", + "follow_request": "– ’s iad air leantainn iarraidh ort" }, "keyobard": { "show_everything": "Seall a h-uile càil", @@ -469,7 +469,7 @@ }, "thread": { "back_title": "Post", - "title": "Post o %s" + "title": "Post le %s" }, "settings": { "title": "Roghainnean", diff --git a/Localization/StringsConvertor/input/hi_IN/Localizable.stringsdict b/Localization/StringsConvertor/input/hi_IN/Localizable.stringsdict index 42c07cec9..c7c84d074 100644 --- a/Localization/StringsConvertor/input/hi_IN/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/hi_IN/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/hi_IN/app.json b/Localization/StringsConvertor/input/hi_IN/app.json index 3d99c77da..d7ba2147e 100644 --- a/Localization/StringsConvertor/input/hi_IN/app.json +++ b/Localization/StringsConvertor/input/hi_IN/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/id_ID/Localizable.stringsdict b/Localization/StringsConvertor/input/id_ID/Localizable.stringsdict new file mode 100644 index 000000000..bebde18a5 --- /dev/null +++ b/Localization/StringsConvertor/input/id_ID/Localizable.stringsdict @@ -0,0 +1,328 @@ + + + + + a11y.plural.count.input_limit_exceeds + + NSStringLocalizedFormatKey + Input limit exceeds %#@character_count@ + character_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld characters + + + a11y.plural.count.input_limit_remains + + NSStringLocalizedFormatKey + Input limit remains %#@character_count@ + character_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld characters + + + plural.count.metric_formatted.post + + NSStringLocalizedFormatKey + %@ %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + posts + + + plural.count.post + + NSStringLocalizedFormatKey + %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld posts + + + plural.count.favorite + + NSStringLocalizedFormatKey + %#@favorite_count@ + favorite_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld favorites + + + plural.count.reblog + + NSStringLocalizedFormatKey + %#@reblog_count@ + reblog_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld reblogs + + + plural.count.vote + + NSStringLocalizedFormatKey + %#@vote_count@ + vote_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld votes + + + plural.count.voter + + NSStringLocalizedFormatKey + %#@voter_count@ + voter_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld voters + + + plural.people_talking + + NSStringLocalizedFormatKey + %#@count_people_talking@ + count_people_talking + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld people talking + + + plural.count.following + + NSStringLocalizedFormatKey + %#@count_following@ + count_following + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld following + + + plural.count.follower + + NSStringLocalizedFormatKey + %#@count_follower@ + count_follower + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld followers + + + date.year.left + + NSStringLocalizedFormatKey + %#@count_year_left@ + count_year_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld years left + + + date.month.left + + NSStringLocalizedFormatKey + %#@count_month_left@ + count_month_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld months left + + + date.day.left + + NSStringLocalizedFormatKey + %#@count_day_left@ + count_day_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld days left + + + date.hour.left + + NSStringLocalizedFormatKey + %#@count_hour_left@ + count_hour_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld hours left + + + date.minute.left + + NSStringLocalizedFormatKey + %#@count_minute_left@ + count_minute_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld minutes left + + + date.second.left + + NSStringLocalizedFormatKey + %#@count_second_left@ + count_second_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld seconds left + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + + + diff --git a/Localization/StringsConvertor/input/id_ID/app.json b/Localization/StringsConvertor/input/id_ID/app.json new file mode 100644 index 000000000..d7ba2147e --- /dev/null +++ b/Localization/StringsConvertor/input/id_ID/app.json @@ -0,0 +1,541 @@ +{ + "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": "Are you sure you want to delete this post?", + "delete": "Delete" + }, + "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", + "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", + "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", + "media_content_warning": "Tap anywhere to reveal", + "poll": { + "vote": "Vote", + "closed": "Closed" + }, + "actions": { + "reply": "Reply", + "reblog": "Reblog", + "unreblog": "Undo reblog", + "favorite": "Favorite", + "unfavorite": "Unfavorite", + "menu": "Menu" + }, + "tag": { + "url": "URL", + "mention": "Mention", + "link": "Link", + "hashtag": "Hashtag", + "email": "Email", + "emoji": "Emoji" + } + }, + "friendship": { + "follow": "Follow", + "following": "Following", + "request": "Request", + "pending": "Pending", + "block": "Block", + "block_user": "Block %s", + "block_domain": "Block %s", + "unblock": "Unblock", + "unblock_user": "Unblock %s", + "blocked": "Blocked", + "mute": "Mute", + "mute_user": "Mute %s", + "unmute": "Unmute", + "unmute_user": "Unmute %s", + "muted": "Muted", + "edit_info": "Edit Info" + }, + "timeline": { + "filtered": "Filtered", + "timestamp": { + "now": "Now" + }, + "loader": { + "load_missing_posts": "Load missing posts", + "loading_missing_posts": "Loading missing posts...", + "show_more_replies": "Show more replies" + }, + "header": { + "no_status_found": "No Post Found", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", + "suspended_warning": "This user has been suspended.", + "user_suspended_warning": "%s’s account has been suspended." + } + } + } + }, + "scene": { + "welcome": { + "slogan": "Social networking\nback in your hands." + }, + "server_picker": { + "title": "Pick a server,\nany server.", + "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": "Find a server or join your own..." + }, + "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": "Tell us about you.", + "input": { + "avatar": { + "delete": "Delete" + }, + "username": { + "placeholder": "username", + "duplicate_prompt": "This username is taken." + }, + "display_name": { + "placeholder": "display name" + }, + "email": { + "placeholder": "email" + }, + "password": { + "placeholder": "password", + "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 (can’t be longer than 30 characters)", + "email_invalid": "This is not a valid email address", + "password_too_short": "Password is too short (must be at least 8 characters)" + } + } + }, + "server_rules": { + "title": "Some ground rules.", + "subtitle": "These rules are set by the admins of %s.", + "prompt": "By continuing, you’re subject to the terms of service and privacy policy for %s.", + "terms_of_service": "terms of service", + "privacy_policy": "privacy policy", + "button": { + "confirm": "I Agree" + } + }, + "confirm_email": { + "title": "One last thing.", + "subtitle": "We just sent an email to %s,\ntap the link to confirm your account.", + "button": { + "open_email_app": "Open Email App", + "dont_receive_email": "I never got an email" + }, + "dont_receive_email": { + "title": "Check your email", + "description": "Check if your email address is correct as well as your junk folder if you haven’t.", + "resend_email": "Resend Email" + }, + "open_email_app": { + "title": "Check your inbox.", + "description": "We just sent you an email. Check your junk folder if you haven’t.", + "mail": "Mail", + "open_email_client": "Open Email Client" + } + }, + "home_timeline": { + "title": "Home", + "navigation_bar_state": { + "offline": "Offline", + "new_posts": "See new posts", + "published": "Published!", + "Publishing": "Publishing post..." + } + }, + "suggestion_account": { + "title": "Find People to Follow", + "follow_explain": "When you follow someone, you’ll 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 what’s on your mind", + "compose_action": "Publish", + "replying_to_user": "replying to %s", + "attachment": { + "photo": "photo", + "video": "video", + "attachment_broken": "This %s is broken and can’t be\nuploaded to Mastodon.", + "description_photo": "Describe the photo for the visually-impaired...", + "description_video": "Describe the video for the visually-impaired..." + }, + "poll": { + "duration_time": "Duration: %s", + "thirty_minutes": "30 minutes", + "one_hour": "1 Hour", + "six_hours": "6 Hours", + "one_day": "1 Day", + "three_days": "3 Days", + "seven_days": "7 Days", + "option_number": "Option %ld" + }, + "content_warning": { + "placeholder": "Write an accurate warning here..." + }, + "visibility": { + "public": "Public", + "unlisted": "Unlisted", + "private": "Followers only", + "direct": "Only people I mention" + }, + "auto_complete": { + "space_to_add": "Space to add" + }, + "accessibility": { + "append_attachment": "Add Attachment", + "append_poll": "Add Poll", + "remove_poll": "Remove Poll", + "custom_emoji_picker": "Custom Emoji Picker", + "enable_content_warning": "Enable Content Warning", + "disable_content_warning": "Disable Content Warning", + "post_visibility_menu": "Post Visibility Menu" + }, + "keyboard": { + "discard_post": "Discard Post", + "publish_post": "Publish Post", + "toggle_poll": "Toggle Poll", + "toggle_content_warning": "Toggle Content Warning", + "append_attachment_entry": "Add Attachment - %s", + "select_visibility_entry": "Select Visibility - %s" + } + }, + "profile": { + "dashboard": { + "posts": "posts", + "following": "following", + "followers": "followers" + }, + "fields": { + "add_row": "Add Row", + "placeholder": { + "label": "Label", + "content": "Content" + } + }, + "segmented_control": { + "posts": "Posts", + "replies": "Replies", + "media": "Media" + }, + "relationship_action_alert": { + "confirm_unmute_user": { + "title": "Unmute Account", + "message": "Confirm to unmute %s" + }, + "confirm_unblock_usre": { + "title": "Unblock Account", + "message": "Confirm to unblock %s" + } + } + }, + "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" + } + }, + "favorite": { + "title": "Your Favorites" + }, + "notification": { + "title": { + "Everything": "Everything", + "Mentions": "Mentions" + }, + "action": { + "follow": "followed you", + "favourite": "favorited your post", + "reblog": "reblogged your post", + "poll": "Your poll has ended", + "mention": "mentioned you", + "follow_request": "requested to follow you" + }, + "keyobard": { + "show_everything": "Show Everything", + "show_mentions": "Show Mentions" + } + }, + "thread": { + "back_title": "Post", + "title": "Post from %s" + }, + "settings": { + "title": "Settings", + "section": { + "appearance": { + "title": "Appearance", + "automatic": "Automatic", + "light": "Always Light", + "dark": "Always Dark" + }, + "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" + }, + "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 %s", + "step1": "Step 1 of 2", + "step2": "Step 2 of 2", + "content1": "Are there any other posts you’d like to add to the report?", + "content2": "Is there anything the moderators should know about this report?", + "send": "Send Report", + "skip_to_send": "Send without comment", + "text_placeholder": "Type or paste additional comments" + }, + "preview": { + "keyboard": { + "close_preview": "Close Preview", + "show_next": "Show Next", + "show_previous": "Show Previous" + } + } + } +} \ No newline at end of file diff --git a/Localization/StringsConvertor/input/id_ID/ios-infoPlist.json b/Localization/StringsConvertor/input/id_ID/ios-infoPlist.json new file mode 100644 index 000000000..c6db73de0 --- /dev/null +++ b/Localization/StringsConvertor/input/id_ID/ios-infoPlist.json @@ -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" +} diff --git a/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict b/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict index 82230ebcd..e3699b6ba 100644 --- a/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ja_JP/Localizable.stringsdict @@ -41,7 +41,7 @@ NSStringFormatValueTypeKey ld other - posts + 投稿 plural.count.post @@ -69,7 +69,7 @@ NSStringFormatValueTypeKey ld other - %ld favorites + %ld お気に入り plural.count.reblog @@ -83,7 +83,7 @@ NSStringFormatValueTypeKey ld other - %ld reblogs + %ld ブースト plural.count.vote @@ -139,7 +139,7 @@ NSStringFormatValueTypeKey ld other - %ld following + %ld フォロー plural.count.follower @@ -153,7 +153,7 @@ NSStringFormatValueTypeKey ld other - %ld followers + %ld フォロワー date.year.left @@ -240,5 +240,89 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld 年前 + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/ja_JP/app.json b/Localization/StringsConvertor/input/ja_JP/app.json index 3df4e56c9..3d8e7a53f 100644 --- a/Localization/StringsConvertor/input/ja_JP/app.json +++ b/Localization/StringsConvertor/input/ja_JP/app.json @@ -16,12 +16,12 @@ "poll_ended": "投票は終了しました" }, "discard_post_content": { - "title": "トゥートを破棄しますか?", + "title": "投稿を破棄しますか?", "message": "この操作は取り消しできません。下書きは失われます。" }, "publish_post_failure": { "title": "失敗", - "message": "トゥートに失敗しました。\nインターネットに接続されているか確認してください。", + "message": "投稿に失敗しました。\nインターネットに接続されているか確認してください。", "attachments_message": { "video_attach_with_photo": "すでに画像が含まれている投稿に、動画を添付することができません。", "more_than_one_video": "複数の動画を添付することはできません。" @@ -45,7 +45,7 @@ "message": "写真を保存するには、フォトライブラリのアクセス許可を有効にしてください。" }, "delete_post": { - "title": "このトゥートを消去しますか?", + "title": "この投稿を消去しますか?", "delete": "消去" }, "clean_cache": { @@ -79,7 +79,7 @@ "preview": "プレビュー", "share": "共有", "share_user": "%sを共有", - "share_post": "トゥートを共有", + "share_post": "投稿を共有", "open_in_safari": "Safariで開く", "find_people": "フォローする人を見つける", "manually_search": "手動で検索する", @@ -101,18 +101,18 @@ "common": { "switch_to_tab": "%sに切り替え", "compose_new_post": "新しい投稿を作成", - "show_favorites": "いいねを表示", + "show_favorites": "お気に入りを表示", "open_settings": "設定を開く" }, "timeline": { - "previous_status": "前のトゥート", + "previous_status": "前の投稿", "next_status": "次の投稿", "open_status": "投稿を開く", "open_author_profile": "プロフィールを見る", - "open_reblogger_profile": "リブロガーのプロフィールを開く", - "reply_status": "トゥートにリプライ", + "open_reblogger_profile": "ブーストした人のプロフィールを開く", + "reply_status": "投稿に返信", "toggle_reblog": "ブーストを切り替える", - "toggle_favorite": "いいねを切り替える", + "toggle_favorite": "お気に入り登録を切り替える", "toggle_content_warning": "閲覧注意を切り替える", "preview_image": "画像をプレビュー" }, @@ -124,7 +124,7 @@ "status": { "user_reblogged": "%sがブースト", "user_replied_to": "%sがリプライ", - "show_post": "トゥートを見る", + "show_post": "投稿を見る", "show_user_profile": "プロフィールを見る", "content_warning": "コンテンツ警告", "media_content_warning": "どこかをタップして表示", @@ -136,8 +136,8 @@ "reply": "リプライ", "reblog": "ブースト", "unreblog": "ブーストを戻す", - "favorite": "いいね", - "unfavorite": "いいねと取り消す", + "favorite": "お気に入り", + "unfavorite": "お気に入り登録を取り消す", "menu": "メニュー" }, "tag": { @@ -173,12 +173,12 @@ "now": "今" }, "loader": { - "load_missing_posts": "不足しているトゥートを読み込む", + "load_missing_posts": "不足している投稿を読み込む", "loading_missing_posts": "読込中...", "show_more_replies": "リプライをもっとみる" }, "header": { - "no_status_found": "トゥートが見つかりません", + "no_status_found": "投稿が見つかりません", "blocking_warning": "ブロックを解除するまでこのユーザーをみることはできません。\nそういうことです。", "user_blocking_warning": "%sがブロックを解除しない限りプロフィールをみることはできません。\nそういうことです。", "blocked_warning": "ブロックされているようです...", @@ -315,9 +315,9 @@ "title": "ホーム", "navigation_bar_state": { "offline": "オフライン", - "new_posts": "新しいトゥートを見る", - "published": "トゥートしました!", - "Publishing": "トゥートちう..." + "new_posts": "新しい投稿を見る", + "published": "投稿しました!", + "Publishing": "投稿中..." } }, "suggestion_account": { @@ -326,7 +326,7 @@ }, "compose": { "title": { - "new_post": "新しいトゥート", + "new_post": "新しい投稿", "new_reply": "新しいリプライ" }, "media_selection": { @@ -335,7 +335,7 @@ "browse": "ブラウズ" }, "content_input_placeholder": "気になることを入力またはペースト", - "compose_action": "トゥート", + "compose_action": "投稿", "replying_to_user": "%sにリプライ", "attachment": { "photo": "写真", @@ -361,7 +361,7 @@ "public": "パブリック", "unlisted": "非表示", "private": "フォロワーのみ", - "direct": "メンションしてる人のみ" + "direct": "ダイレクト" }, "auto_complete": { "space_to_add": "スペースを追加" @@ -376,8 +376,8 @@ "post_visibility_menu": "投稿の表示メニュー" }, "keyboard": { - "discard_post": "トゥートを破棄", - "publish_post": "トゥート", + "discard_post": "投稿を破棄", + "publish_post": "投稿する", "toggle_poll": "投票を切り替える", "toggle_content_warning": "閲覧注意を切り替える", "append_attachment_entry": "アタッチメントを追加 - %s", @@ -386,8 +386,8 @@ }, "profile": { "dashboard": { - "posts": "トゥート", - "following": "フォロー中", + "posts": "投稿", + "following": "フォロー", "followers": "フォロワー" }, "fields": { @@ -398,7 +398,7 @@ } }, "segmented_control": { - "posts": "トゥート", + "posts": "投稿", "replies": "リプライ", "media": "メディア" }, @@ -437,7 +437,7 @@ "all": "すべて", "people": "人々", "hashtags": "ハッシュタグ", - "posts": "トゥート" + "posts": "投稿" }, "empty_state": { "no_results": "なし" @@ -447,7 +447,7 @@ } }, "favorite": { - "title": "あなたのいいね" + "title": "お気に入り" }, "notification": { "title": { @@ -456,8 +456,8 @@ }, "action": { "follow": "フォローされました", - "favourite": "あなたがいいねしたトゥート", - "reblog": "あなたの投稿をリブログしました。", + "favourite": "がお気に入りに登録", + "reblog": "がブーストしました", "poll": "投票が終了しました", "mention": "メンションされました", "follow_request": "フォローリクエスト" @@ -468,8 +468,8 @@ } }, "thread": { - "back_title": "トゥート", - "title": "%sのトゥート" + "back_title": "投稿", + "title": "%sの投稿" }, "settings": { "title": "設定", @@ -482,7 +482,7 @@ }, "notifications": { "title": "通知", - "favorites": "いいね", + "favorites": "お気に入り登録", "follows": "フォロー", "boosts": "ブースト", "mentions": "メンション", @@ -524,7 +524,7 @@ "title": "%sを報告", "step1": "ステップ 1/2", "step2": "ステップ 2/2", - "content1": "他に報告したいトゥートはありますか?", + "content1": "他に報告したい投稿はありますか?", "content2": "この報告についてモデレーターに言いたいことはありますか?", "send": "報告を送信", "skip_to_send": "コメントなしで送信", diff --git a/Localization/StringsConvertor/input/ja_JP/ios-infoPlist.json b/Localization/StringsConvertor/input/ja_JP/ios-infoPlist.json index a7390cb56..269fb9076 100644 --- a/Localization/StringsConvertor/input/ja_JP/ios-infoPlist.json +++ b/Localization/StringsConvertor/input/ja_JP/ios-infoPlist.json @@ -1,6 +1,6 @@ { "NSCameraUsageDescription": "投稿用の写真撮影に使用します", "NSPhotoLibraryAddUsageDescription": "写真をフォトライブラリーに保存するときに使用します", - "NewPostShortcutItemTitle": "トゥートする", + "NewPostShortcutItemTitle": "新規投稿", "SearchShortcutItemTitle": "検索" } diff --git a/Localization/StringsConvertor/input/ko_KR/Localizable.stringsdict b/Localization/StringsConvertor/input/ko_KR/Localizable.stringsdict index 2a55b670b..4b19bab17 100644 --- a/Localization/StringsConvertor/input/ko_KR/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ko_KR/Localizable.stringsdict @@ -240,5 +240,89 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/ko_KR/app.json b/Localization/StringsConvertor/input/ko_KR/app.json index 91fd4f147..56dc04f21 100644 --- a/Localization/StringsConvertor/input/ko_KR/app.json +++ b/Localization/StringsConvertor/input/ko_KR/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "게시물이 없습니다", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "이 사용자는 정지된 상태입니다.", "user_suspended_warning": "%s의 계정은 정지된 상태입니다." } diff --git a/Localization/StringsConvertor/input/nl_NL/Localizable.stringsdict b/Localization/StringsConvertor/input/nl_NL/Localizable.stringsdict index e69582f04..1726606b4 100644 --- a/Localization/StringsConvertor/input/nl_NL/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/nl_NL/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconden resterend + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/pt_BR/Localizable.stringsdict b/Localization/StringsConvertor/input/pt_BR/Localizable.stringsdict index 42c07cec9..c7c84d074 100644 --- a/Localization/StringsConvertor/input/pt_BR/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/pt_BR/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/pt_BR/app.json b/Localization/StringsConvertor/input/pt_BR/app.json index 3d99c77da..d7ba2147e 100644 --- a/Localization/StringsConvertor/input/pt_BR/app.json +++ b/Localization/StringsConvertor/input/pt_BR/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/pt_PT/Localizable.stringsdict b/Localization/StringsConvertor/input/pt_PT/Localizable.stringsdict index 42c07cec9..c7c84d074 100644 --- a/Localization/StringsConvertor/input/pt_PT/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/pt_PT/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/pt_PT/app.json b/Localization/StringsConvertor/input/pt_PT/app.json index 3d99c77da..d7ba2147e 100644 --- a/Localization/StringsConvertor/input/pt_PT/app.json +++ b/Localization/StringsConvertor/input/pt_PT/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/ro_RO/Localizable.stringsdict b/Localization/StringsConvertor/input/ro_RO/Localizable.stringsdict index c263567d2..f623187e7 100644 --- a/Localization/StringsConvertor/input/ro_RO/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ro_RO/Localizable.stringsdict @@ -308,5 +308,113 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + few + %ldy ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + few + %ldM ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + few + %ldd ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + few + %ldh ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + few + %ldm ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + few + %lds ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/ro_RO/app.json b/Localization/StringsConvertor/input/ro_RO/app.json index b63492065..45ca41c87 100644 --- a/Localization/StringsConvertor/input/ro_RO/app.json +++ b/Localization/StringsConvertor/input/ro_RO/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/StringsConvertor/input/ru_RU/Localizable.stringsdict b/Localization/StringsConvertor/input/ru_RU/Localizable.stringsdict index 0b48ac969..85ca434a2 100644 --- a/Localization/StringsConvertor/input/ru_RU/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/ru_RU/Localizable.stringsdict @@ -342,5 +342,125 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + few + %ldy ago + many + %ldy ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + few + %ldM ago + many + %ldM ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + few + %ldd ago + many + %ldd ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + few + %ldh ago + many + %ldh ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + few + %ldm ago + many + %ldm ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + few + %lds ago + many + %lds ago + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/th_TH/Localizable.stringsdict b/Localization/StringsConvertor/input/th_TH/Localizable.stringsdict new file mode 100644 index 000000000..bebde18a5 --- /dev/null +++ b/Localization/StringsConvertor/input/th_TH/Localizable.stringsdict @@ -0,0 +1,328 @@ + + + + + a11y.plural.count.input_limit_exceeds + + NSStringLocalizedFormatKey + Input limit exceeds %#@character_count@ + character_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld characters + + + a11y.plural.count.input_limit_remains + + NSStringLocalizedFormatKey + Input limit remains %#@character_count@ + character_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld characters + + + plural.count.metric_formatted.post + + NSStringLocalizedFormatKey + %@ %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + posts + + + plural.count.post + + NSStringLocalizedFormatKey + %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld posts + + + plural.count.favorite + + NSStringLocalizedFormatKey + %#@favorite_count@ + favorite_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld favorites + + + plural.count.reblog + + NSStringLocalizedFormatKey + %#@reblog_count@ + reblog_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld reblogs + + + plural.count.vote + + NSStringLocalizedFormatKey + %#@vote_count@ + vote_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld votes + + + plural.count.voter + + NSStringLocalizedFormatKey + %#@voter_count@ + voter_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld voters + + + plural.people_talking + + NSStringLocalizedFormatKey + %#@count_people_talking@ + count_people_talking + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld people talking + + + plural.count.following + + NSStringLocalizedFormatKey + %#@count_following@ + count_following + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld following + + + plural.count.follower + + NSStringLocalizedFormatKey + %#@count_follower@ + count_follower + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld followers + + + date.year.left + + NSStringLocalizedFormatKey + %#@count_year_left@ + count_year_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld years left + + + date.month.left + + NSStringLocalizedFormatKey + %#@count_month_left@ + count_month_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld months left + + + date.day.left + + NSStringLocalizedFormatKey + %#@count_day_left@ + count_day_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld days left + + + date.hour.left + + NSStringLocalizedFormatKey + %#@count_hour_left@ + count_hour_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld hours left + + + date.minute.left + + NSStringLocalizedFormatKey + %#@count_minute_left@ + count_minute_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld minutes left + + + date.second.left + + NSStringLocalizedFormatKey + %#@count_second_left@ + count_second_left + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld seconds left + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + + + diff --git a/Localization/StringsConvertor/input/th_TH/app.json b/Localization/StringsConvertor/input/th_TH/app.json new file mode 100644 index 000000000..d7ba2147e --- /dev/null +++ b/Localization/StringsConvertor/input/th_TH/app.json @@ -0,0 +1,541 @@ +{ + "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": "Are you sure you want to delete this post?", + "delete": "Delete" + }, + "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", + "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", + "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", + "media_content_warning": "Tap anywhere to reveal", + "poll": { + "vote": "Vote", + "closed": "Closed" + }, + "actions": { + "reply": "Reply", + "reblog": "Reblog", + "unreblog": "Undo reblog", + "favorite": "Favorite", + "unfavorite": "Unfavorite", + "menu": "Menu" + }, + "tag": { + "url": "URL", + "mention": "Mention", + "link": "Link", + "hashtag": "Hashtag", + "email": "Email", + "emoji": "Emoji" + } + }, + "friendship": { + "follow": "Follow", + "following": "Following", + "request": "Request", + "pending": "Pending", + "block": "Block", + "block_user": "Block %s", + "block_domain": "Block %s", + "unblock": "Unblock", + "unblock_user": "Unblock %s", + "blocked": "Blocked", + "mute": "Mute", + "mute_user": "Mute %s", + "unmute": "Unmute", + "unmute_user": "Unmute %s", + "muted": "Muted", + "edit_info": "Edit Info" + }, + "timeline": { + "filtered": "Filtered", + "timestamp": { + "now": "Now" + }, + "loader": { + "load_missing_posts": "Load missing posts", + "loading_missing_posts": "Loading missing posts...", + "show_more_replies": "Show more replies" + }, + "header": { + "no_status_found": "No Post Found", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", + "suspended_warning": "This user has been suspended.", + "user_suspended_warning": "%s’s account has been suspended." + } + } + } + }, + "scene": { + "welcome": { + "slogan": "Social networking\nback in your hands." + }, + "server_picker": { + "title": "Pick a server,\nany server.", + "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": "Find a server or join your own..." + }, + "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": "Tell us about you.", + "input": { + "avatar": { + "delete": "Delete" + }, + "username": { + "placeholder": "username", + "duplicate_prompt": "This username is taken." + }, + "display_name": { + "placeholder": "display name" + }, + "email": { + "placeholder": "email" + }, + "password": { + "placeholder": "password", + "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 (can’t be longer than 30 characters)", + "email_invalid": "This is not a valid email address", + "password_too_short": "Password is too short (must be at least 8 characters)" + } + } + }, + "server_rules": { + "title": "Some ground rules.", + "subtitle": "These rules are set by the admins of %s.", + "prompt": "By continuing, you’re subject to the terms of service and privacy policy for %s.", + "terms_of_service": "terms of service", + "privacy_policy": "privacy policy", + "button": { + "confirm": "I Agree" + } + }, + "confirm_email": { + "title": "One last thing.", + "subtitle": "We just sent an email to %s,\ntap the link to confirm your account.", + "button": { + "open_email_app": "Open Email App", + "dont_receive_email": "I never got an email" + }, + "dont_receive_email": { + "title": "Check your email", + "description": "Check if your email address is correct as well as your junk folder if you haven’t.", + "resend_email": "Resend Email" + }, + "open_email_app": { + "title": "Check your inbox.", + "description": "We just sent you an email. Check your junk folder if you haven’t.", + "mail": "Mail", + "open_email_client": "Open Email Client" + } + }, + "home_timeline": { + "title": "Home", + "navigation_bar_state": { + "offline": "Offline", + "new_posts": "See new posts", + "published": "Published!", + "Publishing": "Publishing post..." + } + }, + "suggestion_account": { + "title": "Find People to Follow", + "follow_explain": "When you follow someone, you’ll 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 what’s on your mind", + "compose_action": "Publish", + "replying_to_user": "replying to %s", + "attachment": { + "photo": "photo", + "video": "video", + "attachment_broken": "This %s is broken and can’t be\nuploaded to Mastodon.", + "description_photo": "Describe the photo for the visually-impaired...", + "description_video": "Describe the video for the visually-impaired..." + }, + "poll": { + "duration_time": "Duration: %s", + "thirty_minutes": "30 minutes", + "one_hour": "1 Hour", + "six_hours": "6 Hours", + "one_day": "1 Day", + "three_days": "3 Days", + "seven_days": "7 Days", + "option_number": "Option %ld" + }, + "content_warning": { + "placeholder": "Write an accurate warning here..." + }, + "visibility": { + "public": "Public", + "unlisted": "Unlisted", + "private": "Followers only", + "direct": "Only people I mention" + }, + "auto_complete": { + "space_to_add": "Space to add" + }, + "accessibility": { + "append_attachment": "Add Attachment", + "append_poll": "Add Poll", + "remove_poll": "Remove Poll", + "custom_emoji_picker": "Custom Emoji Picker", + "enable_content_warning": "Enable Content Warning", + "disable_content_warning": "Disable Content Warning", + "post_visibility_menu": "Post Visibility Menu" + }, + "keyboard": { + "discard_post": "Discard Post", + "publish_post": "Publish Post", + "toggle_poll": "Toggle Poll", + "toggle_content_warning": "Toggle Content Warning", + "append_attachment_entry": "Add Attachment - %s", + "select_visibility_entry": "Select Visibility - %s" + } + }, + "profile": { + "dashboard": { + "posts": "posts", + "following": "following", + "followers": "followers" + }, + "fields": { + "add_row": "Add Row", + "placeholder": { + "label": "Label", + "content": "Content" + } + }, + "segmented_control": { + "posts": "Posts", + "replies": "Replies", + "media": "Media" + }, + "relationship_action_alert": { + "confirm_unmute_user": { + "title": "Unmute Account", + "message": "Confirm to unmute %s" + }, + "confirm_unblock_usre": { + "title": "Unblock Account", + "message": "Confirm to unblock %s" + } + } + }, + "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" + } + }, + "favorite": { + "title": "Your Favorites" + }, + "notification": { + "title": { + "Everything": "Everything", + "Mentions": "Mentions" + }, + "action": { + "follow": "followed you", + "favourite": "favorited your post", + "reblog": "reblogged your post", + "poll": "Your poll has ended", + "mention": "mentioned you", + "follow_request": "requested to follow you" + }, + "keyobard": { + "show_everything": "Show Everything", + "show_mentions": "Show Mentions" + } + }, + "thread": { + "back_title": "Post", + "title": "Post from %s" + }, + "settings": { + "title": "Settings", + "section": { + "appearance": { + "title": "Appearance", + "automatic": "Automatic", + "light": "Always Light", + "dark": "Always Dark" + }, + "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" + }, + "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 %s", + "step1": "Step 1 of 2", + "step2": "Step 2 of 2", + "content1": "Are there any other posts you’d like to add to the report?", + "content2": "Is there anything the moderators should know about this report?", + "send": "Send Report", + "skip_to_send": "Send without comment", + "text_placeholder": "Type or paste additional comments" + }, + "preview": { + "keyboard": { + "close_preview": "Close Preview", + "show_next": "Show Next", + "show_previous": "Show Previous" + } + } + } +} \ No newline at end of file diff --git a/Localization/StringsConvertor/input/th_TH/ios-infoPlist.json b/Localization/StringsConvertor/input/th_TH/ios-infoPlist.json new file mode 100644 index 000000000..c6db73de0 --- /dev/null +++ b/Localization/StringsConvertor/input/th_TH/ios-infoPlist.json @@ -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" +} diff --git a/Localization/StringsConvertor/input/zh_CN/Localizable.stringsdict b/Localization/StringsConvertor/input/zh_CN/Localizable.stringsdict index bb8064914..b7c1398f7 100644 --- a/Localization/StringsConvertor/input/zh_CN/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/zh_CN/Localizable.stringsdict @@ -240,5 +240,89 @@ 剩余 %ld 秒 + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/zh_TW/Localizable.stringsdict b/Localization/StringsConvertor/input/zh_TW/Localizable.stringsdict index 82230ebcd..bebde18a5 100644 --- a/Localization/StringsConvertor/input/zh_TW/Localizable.stringsdict +++ b/Localization/StringsConvertor/input/zh_TW/Localizable.stringsdict @@ -240,5 +240,89 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + diff --git a/Localization/StringsConvertor/input/zh_TW/app.json b/Localization/StringsConvertor/input/zh_TW/app.json index 3d99c77da..d7ba2147e 100644 --- a/Localization/StringsConvertor/input/zh_TW/app.json +++ b/Localization/StringsConvertor/input/zh_TW/app.json @@ -179,10 +179,10 @@ }, "header": { "no_status_found": "No Post Found", - "blocking_warning": "You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them.", - "user_blocking_warning": "You can’t view %s’s profile\n until you unblock them.\nYour profile looks like this to them.", - "blocked_warning": "You can’t view this user’s profile\n until they unblock you.", - "user_blocked_warning": "You can’t view %s’s profile\n until they unblock you.", + "blocking_warning": "You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them.", + "user_blocking_warning": "You can’t view %s’s profile\nuntil you unblock them.\nYour profile looks like this to them.", + "blocked_warning": "You can’t view this user’s profile\nuntil they unblock you.", + "user_blocked_warning": "You can’t view %s’s profile\nuntil they unblock you.", "suspended_warning": "This user has been suspended.", "user_suspended_warning": "%s’s account has been suspended." } diff --git a/Localization/app.json b/Localization/app.json index d7ba2147e..b60ade9c1 100644 --- a/Localization/app.json +++ b/Localization/app.json @@ -454,14 +454,12 @@ "Everything": "Everything", "Mentions": "Mentions" }, - "action": { - "follow": "followed you", - "favourite": "favorited your post", - "reblog": "reblogged your post", - "poll": "Your poll has ended", - "mention": "mentioned you", - "follow_request": "requested to follow you" - }, + "user_followed_you": "%s followed you", + "user_favorited your post": "%s favorited your post", + "user_reblogged_your_post": "%s reblogged your post", + "user_mentioned_you": "%s mentioned you", + "user_requested_to_follow_you": "%s requested to follow you", + "user_your_poll_has_ended": "%s Your poll has ended", "keyobard": { "show_everything": "Show Everything", "show_mentions": "Show Mentions" diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index 5622470ef..39d2f4ce9 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -420,6 +420,8 @@ DBA1DB80268F84F80052DB59 /* NotificationType.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBA1DB7F268F84F80052DB59 /* NotificationType.swift */; }; DBA465932696B495002B41DB /* APIService+WebFinger.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBA465922696B495002B41DB /* APIService+WebFinger.swift */; }; DBA465952696E387002B41DB /* AppPreference.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBA465942696E387002B41DB /* AppPreference.swift */; }; + DBA4B0F626C269880077136E /* Intents.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = DBA4B0F926C269880077136E /* Intents.stringsdict */; }; + DBA4B0F726C269880077136E /* Intents.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = DBA4B0F926C269880077136E /* Intents.stringsdict */; }; DBA5E7A3263AD0A3004598BB /* PhotoLibraryService.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBA5E7A2263AD0A3004598BB /* PhotoLibraryService.swift */; }; DBA5E7A5263BD28C004598BB /* ContextMenuImagePreviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBA5E7A4263BD28C004598BB /* ContextMenuImagePreviewViewModel.swift */; }; DBA5E7A9263BD3A4004598BB /* ContextMenuImagePreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBA5E7A8263BD3A4004598BB /* ContextMenuImagePreviewViewController.swift */; }; @@ -920,7 +922,6 @@ CD92E0F10BDE4FE7C4B999F2 /* Pods_MastodonTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MastodonTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D7D7CF93E262178800077512 /* Pods-Mastodon-AppShared.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon-AppShared.debug.xcconfig"; path = "Target Support Files/Pods-Mastodon-AppShared/Pods-Mastodon-AppShared.debug.xcconfig"; sourceTree = ""; }; DB0009A826AEE5DC009B9D2D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; name = Base; path = Base.lproj/Intents.intentdefinition; sourceTree = ""; }; - DB0009AB26AEE5E3009B9D2D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Intents.strings; sourceTree = ""; }; DB0009AD26AEE5E4009B9D2D /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Intents.strings; sourceTree = ""; }; DB0140CE25C42AEE00F9F3CF /* OSLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; DB023294267F0AB800031745 /* ASMetaEditableTextNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ASMetaEditableTextNode.swift; sourceTree = ""; }; @@ -1192,6 +1193,8 @@ DBA4B0ED26C153B10077136E /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/Localizable.stringsdict; sourceTree = ""; }; DBA4B0EE26C153B20077136E /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; DBA4B0EF26C153B20077136E /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; + DBA4B0F526C2621D0077136E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Intents.strings; sourceTree = ""; }; + DBA4B0F826C269880077136E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Intents.stringsdict; sourceTree = ""; }; DBA5E7A2263AD0A3004598BB /* PhotoLibraryService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoLibraryService.swift; sourceTree = ""; }; DBA5E7A4263BD28C004598BB /* ContextMenuImagePreviewViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMenuImagePreviewViewModel.swift; sourceTree = ""; }; DBA5E7A8263BD3A4004598BB /* ContextMenuImagePreviewViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMenuImagePreviewViewController.swift; sourceTree = ""; }; @@ -2633,6 +2636,7 @@ isa = PBXGroup; children = ( DB0009A926AEE5DC009B9D2D /* Intents.intentdefinition */, + DBA4B0F926C269880077136E /* Intents.stringsdict */, DB8FABD626AEC864008E5AF4 /* MastodonIntent.entitlements */, DB8FABC926AEC7B2008E5AF4 /* IntentHandler.swift */, DBB8AB4526AECDE200F6D281 /* SendPostIntentHandler.swift */, @@ -3401,6 +3405,7 @@ DB3D100D25BAA75E00EAA174 /* Localizable.strings in Resources */, DB427DDF25BAA00100D1B89D /* Assets.xcassets in Resources */, DB427DDD25BAA00100D1B89D /* Main.storyboard in Resources */, + DBA4B0F626C269880077136E /* Intents.stringsdict in Resources */, DB118A8225E4B6E600FAB162 /* Preview Assets.xcassets in Resources */, DB2B3ABC25E37E15007045F9 /* InfoPlist.strings in Resources */, DB68A05D25E9055900CFDF14 /* Settings.bundle in Resources */, @@ -3446,6 +3451,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + DBA4B0F726C269880077136E /* Intents.stringsdict in Resources */, DBB8AB4F26AED13F00F6D281 /* Assets.xcassets in Resources */, DBB8AB5126AED14600F6D281 /* Localizable.strings in Resources */, DBB8AB5026AED14400F6D281 /* Localizable.stringsdict in Resources */, @@ -4337,7 +4343,6 @@ isa = PBXVariantGroup; children = ( DB0009A826AEE5DC009B9D2D /* Base */, - DB0009AB26AEE5E3009B9D2D /* en */, DB0009AD26AEE5E4009B9D2D /* ar */, E9AABD3D26B64B8C00E237DA /* ja */, DBA4B0D326BD10AC0077136E /* zh-Hans */, @@ -4347,6 +4352,7 @@ DBA4B0E326BD11D10077136E /* es-419 */, DBA4B0E826C153820077136E /* de */, DBA4B0EC26C153B10077136E /* nl */, + DBA4B0F526C2621D0077136E /* en */, ); name = Intents.intentdefinition; sourceTree = ""; @@ -4418,6 +4424,14 @@ name = Localizable.stringsdict; sourceTree = ""; }; + DBA4B0F926C269880077136E /* Intents.stringsdict */ = { + isa = PBXVariantGroup; + children = ( + DBA4B0F826C269880077136E /* en */, + ); + name = Intents.stringsdict; + sourceTree = ""; + }; DBC6461626A170AB00B0E31B /* MainInterface.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -4558,7 +4572,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -4566,7 +4580,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -4585,7 +4599,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -4593,7 +4607,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -4848,7 +4862,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -4856,7 +4870,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.MastodonIntent; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -4872,7 +4886,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -4880,7 +4894,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.MastodonIntent; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -4896,7 +4910,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -4904,7 +4918,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.MastodonIntent; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -4920,7 +4934,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = MastodonIntent/MastodonIntent.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = MastodonIntent/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -4928,7 +4942,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.MastodonIntent; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -4944,7 +4958,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -4952,7 +4966,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.ShareActionExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -4968,7 +4982,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -4976,7 +4990,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.ShareActionExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -4992,7 +5006,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5000,7 +5014,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.ShareActionExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -5016,7 +5030,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = ShareActionExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5024,7 +5038,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.ShareActionExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -5106,7 +5120,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -5114,7 +5128,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -5220,7 +5234,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5228,7 +5242,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -5340,7 +5354,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = Mastodon/Info.plist; @@ -5348,7 +5362,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -5454,7 +5468,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5462,7 +5476,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -5508,7 +5522,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5516,7 +5530,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -5531,7 +5545,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5Z4GVSS33P; INFOPLIST_FILE = NotificationService/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -5539,7 +5553,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.5; + MARKETING_VERSION = 1.0.6; PRODUCT_BUNDLE_IDENTIFIER = org.joinmastodon.app.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -5701,7 +5715,7 @@ repositoryURL = "https://github.com/TwidereProject/MetaTextKit.git"; requirement = { kind = exactVersion; - version = 2.1.0; + version = 2.1.1; }; }; DB0E2D2C26833FF600865C3C /* XCRemoteSwiftPackageReference "Nuke-FLAnimatedImage-Plugin" */ = { diff --git a/Mastodon.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme b/Mastodon.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme index 70507b96c..de059787b 100644 --- a/Mastodon.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme +++ b/Mastodon.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme @@ -1,7 +1,7 @@ + version = "1.7"> @@ -27,6 +27,12 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index aa31690df..0071ec899 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,12 +7,12 @@ AppShared.xcscheme_^#shared#^_ orderHint - 33 + 32 CoreDataStack.xcscheme_^#shared#^_ orderHint - 34 + 35 Mastodon - ASDK.xcscheme_^#shared#^_ @@ -87,7 +87,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 32 + 34 MastodonIntents.xcscheme_^#shared#^_ @@ -107,7 +107,7 @@ ShareActionExtension.xcscheme_^#shared#^_ orderHint - 35 + 33 SuppressBuildableAutocreation diff --git a/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved index 8e5ea37af..0dc724ded 100644 --- a/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -96,8 +96,8 @@ "repositoryURL": "https://github.com/TwidereProject/MetaTextKit.git", "state": { "branch": null, - "revision": "ccb54189b31d13868d979c33d43566912b765bbd", - "version": "2.1.0" + "revision": "a5f412b72fc08cd1348e2388fc7ec326365e1823", + "version": "2.1.1" } }, { diff --git a/Mastodon/Diffiable/Section/Status/NotificationSection.swift b/Mastodon/Diffiable/Section/Status/NotificationSection.swift index 79e312299..11dba2146 100644 --- a/Mastodon/Diffiable/Section/Status/NotificationSection.swift +++ b/Mastodon/Diffiable/Section/Status/NotificationSection.swift @@ -68,23 +68,37 @@ extension NotificationSection { .store(in: &cell.disposeBag) // configure author name, notification description, timestamp + let nameText = notification.account.displayNameWithFallback + let titleLabelText = "\(nameText) \(notification.notificationType.actionText)" + do { - let mastodonContent = MastodonContent(content: notification.account.displayNameWithFallback, emojis: notification.account.emojiMeta) + let nameContent = MastodonContent(content: nameText, emojis: notification.account.emojiMeta) + let nameMetaContent = try MastodonMetaContent.convert(document: nameContent) + + let mastodonContent = MastodonContent(content: titleLabelText, emojis: notification.account.emojiMeta) let metaContent = try MastodonMetaContent.convert(document: mastodonContent) - cell.nameLabel.configure(content: metaContent) + + cell.titleLabel.configure(content: metaContent) + + if let nameRange = metaContent.string.range(of: nameMetaContent.string) { + let nsRange = NSRange(nameRange, in: metaContent.string) + cell.titleLabel.textStorage.addAttributes([ + .font: UIFontMetrics(forTextStyle: .headline).scaledFont(for: .systemFont(ofSize: 15, weight: .semibold), maximumPointSize: 20), + .foregroundColor: Asset.Colors.brandBlue.color, + ], range: nsRange) + } + } catch { - let metaContent = PlaintextMetaContent(string: notification.account.displayNameWithFallback) - cell.nameLabel.configure(content: metaContent) + let metaContent = PlaintextMetaContent(string: titleLabelText) + cell.titleLabel.configure(content: metaContent) } + let createAt = notification.createAt - let actionText = notification.notificationType.actionText - cell.actionLabel.text = actionText cell.timestampLabel.text = createAt.localizedTimeAgoSinceNow AppContext.shared.timestampUpdatePublisher .receive(on: DispatchQueue.main) .sink { [weak cell] _ in guard let cell = cell else { return } - cell.actionLabel.text = actionText cell.timestampLabel.text = createAt.localizedTimeAgoSinceNow } .store(in: &cell.disposeBag) diff --git a/Mastodon/Extension/MetaLabel.swift b/Mastodon/Extension/MetaLabel.swift index 8163a10cb..9e7920a8e 100644 --- a/Mastodon/Extension/MetaLabel.swift +++ b/Mastodon/Extension/MetaLabel.swift @@ -13,7 +13,7 @@ extension MetaLabel { enum Style { case statusHeader case statusName - case notificationName + case notificationTitle case profileFieldName case profileFieldValue case recommendAccountName @@ -26,6 +26,7 @@ extension MetaLabel { self.init() layer.masksToBounds = true + lineBreakMode = .byTruncatingTail textContainer.lineBreakMode = .byTruncatingTail textContainer.lineFragmentPadding = 0 @@ -41,9 +42,9 @@ extension MetaLabel { font = .systemFont(ofSize: 17, weight: .semibold) textColor = Asset.Colors.Label.primary.color - case .notificationName: - font = UIFontMetrics(forTextStyle: .headline).scaledFont(for: .systemFont(ofSize: 15, weight: .semibold), maximumPointSize: 20) - textColor = Asset.Colors.brandBlue.color + case .notificationTitle: + font = UIFontMetrics(forTextStyle: .headline).scaledFont(for: .systemFont(ofSize: 15, weight: .regular), maximumPointSize: 20) + textColor = Asset.Colors.Label.secondary.color case .profileFieldName: font = UIFontMetrics(forTextStyle: .headline).scaledFont(for: .systemFont(ofSize: 17, weight: .semibold), maximumPointSize: 20) @@ -54,7 +55,6 @@ extension MetaLabel { textColor = Asset.Colors.Label.primary.color textAlignment = .right - case .titleView: font = .systemFont(ofSize: 17, weight: .semibold) textColor = Asset.Colors.Label.primary.color diff --git a/Mastodon/Generated/Strings.swift b/Mastodon/Generated/Strings.swift index 1356cfacf..698b36a35 100644 --- a/Mastodon/Generated/Strings.swift +++ b/Mastodon/Generated/Strings.swift @@ -327,19 +327,19 @@ internal enum L10n { /// Filtered internal static let filtered = L10n.tr("Localizable", "Common.Controls.Timeline.Filtered") internal enum Header { - /// You can’t view this user’s profile\n until they unblock you. + /// You can’t view this user’s profile\nuntil they unblock you. internal static let blockedWarning = L10n.tr("Localizable", "Common.Controls.Timeline.Header.BlockedWarning") - /// You can’t view this user's profile\n until you unblock them.\nYour profile looks like this to them. + /// You can’t view this user's profile\nuntil you unblock them.\nYour profile looks like this to them. internal static let blockingWarning = L10n.tr("Localizable", "Common.Controls.Timeline.Header.BlockingWarning") /// No Post Found internal static let noStatusFound = L10n.tr("Localizable", "Common.Controls.Timeline.Header.NoStatusFound") /// This user has been suspended. internal static let suspendedWarning = L10n.tr("Localizable", "Common.Controls.Timeline.Header.SuspendedWarning") - /// You can’t view %@’s profile\n until they unblock you. + /// You can’t view %@’s profile\nuntil they unblock you. internal static func userBlockedWarning(_ p1: Any) -> String { return L10n.tr("Localizable", "Common.Controls.Timeline.Header.UserBlockedWarning", String(describing: p1)) } - /// You can’t view %@’s profile\n until you unblock them.\nYour profile looks like this to them. + /// You can’t view %@’s profile\nuntil you unblock them.\nYour profile looks like this to them. internal static func userBlockingWarning(_ p1: Any) -> String { return L10n.tr("Localizable", "Common.Controls.Timeline.Header.UserBlockingWarning", String(describing: p1)) } @@ -986,36 +986,72 @@ internal enum L10n { internal static func `left`(_ p1: Int) -> String { return L10n.tr("Localizable", "date.day.left", p1) } + internal enum Ago { + /// Plural format key: "%#@count_day_ago_abbr@" + internal static func abbr(_ p1: Int) -> String { + return L10n.tr("Localizable", "date.day.ago.abbr", p1) + } + } } internal enum Hour { /// Plural format key: "%#@count_hour_left@" internal static func `left`(_ p1: Int) -> String { return L10n.tr("Localizable", "date.hour.left", p1) } + internal enum Ago { + /// Plural format key: "%#@count_hour_ago_abbr@" + internal static func abbr(_ p1: Int) -> String { + return L10n.tr("Localizable", "date.hour.ago.abbr", p1) + } + } } internal enum Minute { /// Plural format key: "%#@count_minute_left@" internal static func `left`(_ p1: Int) -> String { return L10n.tr("Localizable", "date.minute.left", p1) } + internal enum Ago { + /// Plural format key: "%#@count_minute_ago_abbr@" + internal static func abbr(_ p1: Int) -> String { + return L10n.tr("Localizable", "date.minute.ago.abbr", p1) + } + } } internal enum Month { /// Plural format key: "%#@count_month_left@" internal static func `left`(_ p1: Int) -> String { return L10n.tr("Localizable", "date.month.left", p1) } + internal enum Ago { + /// Plural format key: "%#@count_month_ago_abbr@" + internal static func abbr(_ p1: Int) -> String { + return L10n.tr("Localizable", "date.month.ago.abbr", p1) + } + } } internal enum Second { /// Plural format key: "%#@count_second_left@" internal static func `left`(_ p1: Int) -> String { return L10n.tr("Localizable", "date.second.left", p1) } + internal enum Ago { + /// Plural format key: "%#@count_second_ago_abbr@" + internal static func abbr(_ p1: Int) -> String { + return L10n.tr("Localizable", "date.second.ago.abbr", p1) + } + } } internal enum Year { /// Plural format key: "%#@count_year_left@" internal static func `left`(_ p1: Int) -> String { return L10n.tr("Localizable", "date.year.left", p1) } + internal enum Ago { + /// Plural format key: "%#@count_year_ago_abbr@" + internal static func abbr(_ p1: Int) -> String { + return L10n.tr("Localizable", "date.year.ago.abbr", p1) + } + } } } diff --git a/Mastodon/Mastodon.xctestplan b/Mastodon/Mastodon.xctestplan index b7693b556..bb3dcf385 100644 --- a/Mastodon/Mastodon.xctestplan +++ b/Mastodon/Mastodon.xctestplan @@ -2,9 +2,72 @@ "configurations" : [ { "id" : "63D68260-F74D-4CA6-ADBC-B1263DD6BE55", - "name" : "Configuration 1", + "name" : "English", "options" : { - + "language" : "en" + } + }, + { + "id" : "06DB4A21-6DDF-454F-ABEE-E77DD7AAA146", + "name" : "Arabic", + "options" : { + "language" : "ar" + } + }, + { + "id" : "D95412BD-821C-4FE5-9DA6-8D77C0972B72", + "name" : "Catalan", + "options" : { + "language" : "ca" + } + }, + { + "id" : "EE9219EA-2011-48B5-A475-309C99F91D6D", + "name" : "Chinese, Simplified", + "options" : { + "language" : "zh-Hans" + } + }, + { + "id" : "6FBBAF31-D445-482E-B67B-271F8216AEB6", + "name" : "Dutch", + "options" : { + "language" : "nl" + } + }, + { + "id" : "45A93B8D-54C5-4906-8AC6-5B6FE561CA25", + "name" : "French", + "options" : { + "language" : "fr" + } + }, + { + "id" : "8344111A-3025-4CA0-838C-AF94EBA4D4BE", + "name" : "German", + "options" : { + "language" : "de" + } + }, + { + "id" : "4EE64E47-F9E5-4189-8571-20D29941F854", + "name" : "Japanese", + "options" : { + "language" : "ja" + } + }, + { + "id" : "746F1EBA-E12B-40C4-85C6-A14DC61A180B", + "name" : "Spanish", + "options" : { + "language" : "es" + } + }, + { + "id" : "EDA29FF5-1F0E-451A-863D-0899CE07CB09", + "name" : "Spanish (Latin America)", + "options" : { + "language" : "es-419" } } ], @@ -13,6 +76,7 @@ }, "testTargets" : [ { + "enabled" : false, "target" : { "containerPath" : "container:Mastodon.xcodeproj", "identifier" : "DB427DE725BAA00100D1B89D", @@ -20,6 +84,9 @@ } }, { + "skippedTests" : [ + "MastodonUITests\/testLaunchPerformance()" + ], "target" : { "containerPath" : "container:Mastodon.xcodeproj", "identifier" : "DB427DF225BAA00100D1B89D", diff --git a/Mastodon/Resources/ar.lproj/Localizable.strings b/Mastodon/Resources/ar.lproj/Localizable.strings index 39702487b..3702fa1b7 100644 --- a/Mastodon/Resources/ar.lproj/Localizable.strings +++ b/Mastodon/Resources/ar.lproj/Localizable.strings @@ -117,16 +117,16 @@ Please check your internet connection."; "Common.Controls.Tabs.Search" = "بحث"; "Common.Controls.Timeline.Filtered" = "Filtered"; "Common.Controls.Timeline.Header.BlockedWarning" = "You can’t view this user’s profile - until they unblock you."; +until they unblock you."; "Common.Controls.Timeline.Header.BlockingWarning" = "You can’t view this user's profile - until you unblock them. +until you unblock them. Your profile looks like this to them."; "Common.Controls.Timeline.Header.NoStatusFound" = "لا توجد هناك منشورات"; "Common.Controls.Timeline.Header.SuspendedWarning" = "This user has been suspended."; "Common.Controls.Timeline.Header.UserBlockedWarning" = "You can’t view %@’s profile - until they unblock you."; +until they unblock you."; "Common.Controls.Timeline.Header.UserBlockingWarning" = "You can’t view %@’s profile - until you unblock them. +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"; diff --git a/Mastodon/Resources/ar.lproj/Localizable.stringsdict b/Mastodon/Resources/ar.lproj/Localizable.stringsdict index ac93b644b..537064efb 100644 --- a/Mastodon/Resources/ar.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/ar.lproj/Localizable.stringsdict @@ -410,5 +410,149 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldy ago + one + 1y ago + two + %ldy ago + few + %ldy ago + many + %ldy ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldM ago + one + 1M ago + two + %ldM ago + few + %ldM ago + many + %ldM ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldd ago + one + 1d ago + two + %ldd ago + few + %ldd ago + many + %ldd ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldh ago + one + 1h ago + two + %ldh ago + few + %ldh ago + many + %ldh ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %ldm ago + one + 1m ago + two + %ldm ago + few + %ldm ago + many + %ldm ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + %lds ago + one + 1s ago + two + %lds ago + few + %lds ago + many + %lds ago + other + %lds ago + + diff --git a/Mastodon/Resources/ca.lproj/Localizable.stringsdict b/Mastodon/Resources/ca.lproj/Localizable.stringsdict index 012a0d4c8..b76b0a921 100644 --- a/Mastodon/Resources/ca.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/ca.lproj/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld segons restants + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1a + other + fa %ldy anys + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1M + other + fa %ldM mesos + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1d + other + fa %ldd dies + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1h + other + fa %ldh hores + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1m + other + fa %ldm minuts + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + fa 1s + other + fa %lds seg + + diff --git a/Mastodon/Resources/de.lproj/Localizable.strings b/Mastodon/Resources/de.lproj/Localizable.strings index 179c19f88..1f79dbe78 100644 --- a/Mastodon/Resources/de.lproj/Localizable.strings +++ b/Mastodon/Resources/de.lproj/Localizable.strings @@ -1,16 +1,16 @@ "Common.Alerts.BlockDomain.BlockEntireDomain" = "Domain blockieren"; -"Common.Alerts.BlockDomain.Title" = "Bist du dir wirklich sicher, dass du die ganze Domain %@ blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus und werden bevorzugt. Du wirst den Inhalt von dieser Domain nicht mehr sehen. Deine Folgenden von dieser Domain werden entfernt."; +"Common.Alerts.BlockDomain.Title" = "Bist du dir wirklich sicher, dass du die ganze Domain %@ blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus und werden bevorzugt. Du wirst den Inhalt von dieser Domain nicht mehr sehen. Deine Follower von dieser Domain werden entfernt."; "Common.Alerts.CleanCache.Message" = "%@ erfolgreich aus dem Cache gelöscht."; "Common.Alerts.CleanCache.Title" = "Zwischenspeicher leeren"; "Common.Alerts.Common.PleaseTryAgain" = "Bitte versuche es erneut."; "Common.Alerts.Common.PleaseTryAgainLater" = "Bitte versuche es später nochmal."; "Common.Alerts.DeletePost.Delete" = "Löschen"; "Common.Alerts.DeletePost.Title" = "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?"; -"Common.Alerts.DiscardPostContent.Message" = "Bestätige um den Beitrag zu verwerfen."; -"Common.Alerts.DiscardPostContent.Title" = "Entwurf Verwerfen"; +"Common.Alerts.DiscardPostContent.Message" = "Bestätige, um den Beitrag zu verwerfen."; +"Common.Alerts.DiscardPostContent.Title" = "Entwurf verwerfen"; "Common.Alerts.EditProfileFailure.Message" = "Profil kann nicht bearbeitet werden. Bitte versuche es erneut."; "Common.Alerts.EditProfileFailure.Title" = "Fehler beim Bearbeiten des Profils"; -"Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "Es kann nicht mehr als ein Video hinzugefügt werden."; +"Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "Es kann nicht mehr als ein Video angehängt werden."; "Common.Alerts.PublishPostFailure.AttachmentsMessage.VideoAttachWithPhoto" = "Es kann kein Video an einen Beitrag, der bereits Bilder enthält, angehängt werden."; "Common.Alerts.PublishPostFailure.Message" = "Fehler beim Veröffentlichen des Beitrags. Bitte überprüfe deine Internetverbindung."; @@ -21,7 +21,7 @@ Bitte überprüfe deine Internetverbindung."; "Common.Alerts.SignOut.Confirm" = "Abmelden"; "Common.Alerts.SignOut.Message" = "Bist du sicher, dass du dich abmelden möchten?"; "Common.Alerts.SignOut.Title" = "Abmelden"; -"Common.Alerts.SignUpFailure.Title" = "Anmeldefehler"; +"Common.Alerts.SignUpFailure.Title" = "Registrierungsfehler"; "Common.Alerts.VoteFailure.PollEnded" = "Die Umfrage ist beendet"; "Common.Alerts.VoteFailure.Title" = "Fehler bei Abstimmung"; "Common.Controls.Actions.Add" = "Hinzufügen"; @@ -42,7 +42,7 @@ Bitte überprüfe deine Internetverbindung."; "Common.Controls.Actions.Open" = "Öffnen"; "Common.Controls.Actions.OpenInSafari" = "In Safari öffnen"; "Common.Controls.Actions.Preview" = "Vorschau"; -"Common.Controls.Actions.Previous" = "Zurück"; +"Common.Controls.Actions.Previous" = "Vorheriges"; "Common.Controls.Actions.Remove" = "Entfernen"; "Common.Controls.Actions.Reply" = "Antworten"; "Common.Controls.Actions.ReportUser" = "%@ melden"; @@ -72,7 +72,7 @@ Bitte überprüfe deine Internetverbindung."; "Common.Controls.Friendship.Pending" = "In Warteschlange"; "Common.Controls.Friendship.Request" = "Anfragen"; "Common.Controls.Friendship.Unblock" = "Blockierung aufheben"; -"Common.Controls.Friendship.UnblockUser" = "@%@ entblocken"; +"Common.Controls.Friendship.UnblockUser" = "Blockierung von %@ aufheben"; "Common.Controls.Friendship.Unmute" = "Nicht mehr stummschalten"; "Common.Controls.Friendship.UnmuteUser" = "%@ nicht mehr stummschalten"; "Common.Controls.Keyboard.Common.ComposeNewPost" = "Neuen Beitrag verfassen"; @@ -117,16 +117,16 @@ Bitte überprüfe deine Internetverbindung."; "Common.Controls.Tabs.Search" = "Suche"; "Common.Controls.Timeline.Filtered" = "Gefiltert"; "Common.Controls.Timeline.Header.BlockedWarning" = "Das Profil dieses Benutzers - kann nicht angezeigt werden, bis er dich entsperrt."; +kann nicht angezeigt werden, bis er dich entsperrt."; "Common.Controls.Timeline.Header.BlockingWarning" = "Du kannst das Profil dieses Benutzers nicht sehen solange du den Benutzer nicht entsperrst. Dein Profil sieht für diesen Benutzer auch so aus."; "Common.Controls.Timeline.Header.NoStatusFound" = "Kein Beitrag gefunden"; "Common.Controls.Timeline.Header.SuspendedWarning" = "Dieser Nutzer wurde gesperrt."; -"Common.Controls.Timeline.Header.UserBlockedWarning" = "Du kannst das Profil von %@ nicht sehen - bis der Benutzer dich entsperrt."; +"Common.Controls.Timeline.Header.UserBlockedWarning" = "Du kannst das Profil von %@ nicht sehen +bis der Benutzer dich entsperrt."; "Common.Controls.Timeline.Header.UserBlockingWarning" = "Du kannst %@s Profil nicht sehen - solange du diesen Benutzer nicht entsperrst. +solange du diesen Benutzer nicht entsperrst. Dein Profil sieht für diesen Benutzer auch so aus."; "Common.Controls.Timeline.Header.UserSuspendedWarning" = "Das Konto von %@ wurde gesperrt."; "Common.Controls.Timeline.Loader.LoadMissingPosts" = "Fehlende Beiträge laden"; @@ -184,7 +184,7 @@ kann nicht auf Mastodon hochgeladen werden."; "Scene.ConfirmEmail.OpenEmailApp.OpenEmailClient" = "E-Mail-Client öffnen"; "Scene.ConfirmEmail.OpenEmailApp.Title" = "Überprüfe deinen Posteingang."; "Scene.ConfirmEmail.Subtitle" = "Wir haben gerade eine E-Mail an %@ gesendet, -tippe auf den Link, um Dein Konto zu bestätigen."; +tippe darin auf den Link, um Dein Konto zu bestätigen."; "Scene.ConfirmEmail.Title" = "Noch eine letzte Sache."; "Scene.Favorite.Title" = "Deine Favoriten"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "Neue Beiträge anzeigen"; @@ -234,7 +234,7 @@ tippe auf den Link, um Dein Konto zu bestätigen."; "Scene.Register.Error.Reason.TooLong" = "%@ ist zu lang"; "Scene.Register.Error.Reason.TooShort" = "%@ ist zu kurz"; "Scene.Register.Error.Reason.Unreachable" = "%@ scheint nicht zu existieren"; -"Scene.Register.Error.Special.EmailInvalid" = "Dies ist keine gültige E-Mail Adresse"; +"Scene.Register.Error.Special.EmailInvalid" = "Dies ist keine gültige E-Mail-Adresse"; "Scene.Register.Error.Special.PasswordTooShort" = "Passwort ist zu kurz (mindestens 8 Zeichen erforderlich)"; "Scene.Register.Error.Special.UsernameInvalid" = "Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten"; "Scene.Register.Error.Special.UsernameTooLong" = "Benutzername ist zu lang (darf nicht länger als 30 Zeichen sein)"; @@ -277,7 +277,7 @@ tippe auf den Link, um Dein Konto zu bestätigen."; "Scene.ServerPicker.Button.Category.All" = "Alle"; "Scene.ServerPicker.Button.Category.AllAccessiblityDescription" = "Kategorie: Alle"; "Scene.ServerPicker.Button.Category.Art" = "Kunst"; -"Scene.ServerPicker.Button.Category.Food" = "Kochen"; +"Scene.ServerPicker.Button.Category.Food" = "Essen"; "Scene.ServerPicker.Button.Category.Furry" = "Furry"; "Scene.ServerPicker.Button.Category.Games" = "Spiele"; "Scene.ServerPicker.Button.Category.General" = "Allgemein"; @@ -288,7 +288,7 @@ tippe auf den Link, um Dein Konto zu bestätigen."; "Scene.ServerPicker.Button.Category.Tech" = "Technologie"; "Scene.ServerPicker.Button.SeeLess" = "Weniger anzeigen"; "Scene.ServerPicker.Button.SeeMore" = "Mehr anzeigen"; -"Scene.ServerPicker.EmptyState.BadNetwork" = "Da ist etwas schief gelaufen. Bitte versuche es erneut oder überprüfe deine Internetverbindung."; +"Scene.ServerPicker.EmptyState.BadNetwork" = "Beim Laden der Daten ist etwas schief gelaufen. Überprüfe deine Internetverbindung."; "Scene.ServerPicker.EmptyState.FindingServers" = "Verfügbare Server werden gesucht..."; "Scene.ServerPicker.EmptyState.NoResults" = "Keine Ergebnisse"; "Scene.ServerPicker.Input.Placeholder" = "Finde einen Server oder trete deinem eigenen bei..."; @@ -332,8 +332,8 @@ beliebigen Server."; "Scene.Settings.Section.SpicyZone.Signout" = "Abmelden"; "Scene.Settings.Section.SpicyZone.Title" = "Der Gefährliche Bereich"; "Scene.Settings.Title" = "Einstellungen"; -"Scene.SuggestionAccount.FollowExplain" = "Wenn du jemandem folgst, siehst du deren Beiträge dann in deinem Home-Feed."; -"Scene.SuggestionAccount.Title" = "Entdecke Benutzer zum Folgen"; +"Scene.SuggestionAccount.FollowExplain" = "Wenn du jemandem folgst, dann siehst du deren Beiträge in deinem Home-Feed."; +"Scene.SuggestionAccount.Title" = "Finde Personen zum Folgen"; "Scene.Thread.BackTitle" = "Beitrag"; "Scene.Thread.Title" = "Beitrag von %@"; "Scene.Welcome.Slogan" = "Soziale Netzwerke wieder in deinen Händen."; \ No newline at end of file diff --git a/Mastodon/Resources/de.lproj/Localizable.stringsdict b/Mastodon/Resources/de.lproj/Localizable.stringsdict index e0e798625..e89bdb074 100644 --- a/Mastodon/Resources/de.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/de.lproj/Localizable.stringsdict @@ -5,7 +5,7 @@ a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + Eingabelimit überschritten %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 Zeichen other - %ld characters + %ld Zeichen a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + Eingabelimit eingehalten %#@character_count@ character_count NSStringFormatSpecTypeKey @@ -29,9 +29,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 Zeichen other - %ld characters + %ld Zeichen plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 Beitrag other - %ld posts + %ld Beiträge plural.count.favorite @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 following + 1 folgt other - %ld following + %ld folgen plural.count.follower @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 Follower other - %ld followers + %ld Follower date.year.left @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + noch 1 Jahr übrig other - %ld years left + noch %ld Jahre übrig date.month.left @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + noch 1 Monat übrig other - %ld months left + noch %ld Monate übrig date.day.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + noch 1 Tag übrig other - %ld days left + noch %ld Tage übrig date.hour.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + noch 1 Stunde übrig other - %ld hours left + noch %ld Stunden übrig date.minute.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + noch 1 Minute übrig other - %ld minutes left + noch %ld Minuten übrig date.second.left @@ -269,9 +269,105 @@ NSStringFormatValueTypeKey ld one - 1 second left + noch 1 Sekunde übrig other - %ld seconds left + noch %ld Sekunden übrig + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Jahr + other + vor %ld Jahren + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 M + other + vor %ld Monaten + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Tag + other + vor %ld Tagen + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Stunde + other + vor %ld Stunden + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Minute + other + vor %ld Minuten + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + vor 1 Sekunde + other + vor %ld Sekuden diff --git a/Mastodon/Resources/en.lproj/Localizable.strings b/Mastodon/Resources/en.lproj/Localizable.strings index be3e63ad5..4ebc5aa15 100644 --- a/Mastodon/Resources/en.lproj/Localizable.strings +++ b/Mastodon/Resources/en.lproj/Localizable.strings @@ -117,16 +117,16 @@ Please check your internet connection."; "Common.Controls.Tabs.Search" = "Search"; "Common.Controls.Timeline.Filtered" = "Filtered"; "Common.Controls.Timeline.Header.BlockedWarning" = "You can’t view this user’s profile - until they unblock you."; +until they unblock you."; "Common.Controls.Timeline.Header.BlockingWarning" = "You can’t view this user's profile - until you unblock them. +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 can’t view %@’s profile - until they unblock you."; +until they unblock you."; "Common.Controls.Timeline.Header.UserBlockingWarning" = "You can’t view %@’s profile - until you unblock them. +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"; diff --git a/Mastodon/Resources/en.lproj/Localizable.stringsdict b/Mastodon/Resources/en.lproj/Localizable.stringsdict index 42c07cec9..c7c84d074 100644 --- a/Mastodon/Resources/en.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/en.lproj/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Mastodon/Resources/es-419.lproj/Localizable.strings b/Mastodon/Resources/es-419.lproj/Localizable.strings index a5a12a4f2..7fcae8325 100644 --- a/Mastodon/Resources/es-419.lproj/Localizable.strings +++ b/Mastodon/Resources/es-419.lproj/Localizable.strings @@ -22,7 +22,7 @@ Por favor, revisá tu conexión a Internet."; "Common.Alerts.SignOut.Message" = "¿Estás seguro que querés cerrar la sesión?"; "Common.Alerts.SignOut.Title" = "Cerrar sesión"; "Common.Alerts.SignUpFailure.Title" = "Error al registrarse"; -"Common.Alerts.VoteFailure.PollEnded" = "La encuesta ha terminado"; +"Common.Alerts.VoteFailure.PollEnded" = "La encuesta finalizó"; "Common.Alerts.VoteFailure.Title" = "Error al votar"; "Common.Controls.Actions.Add" = "Agregar"; "Common.Controls.Actions.Back" = "Volver"; diff --git a/Mastodon/Resources/es-419.lproj/Localizable.stringsdict b/Mastodon/Resources/es-419.lproj/Localizable.stringsdict index d1c258f4b..f98962ccb 100644 --- a/Mastodon/Resources/es-419.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/es-419.lproj/Localizable.stringsdict @@ -5,7 +5,7 @@ a11y.plural.count.input_limit_exceeds NSStringLocalizedFormatKey - Input limit exceeds %#@character_count@ + El límite de entrada excede %#@character_count@ caracteres character_count NSStringFormatSpecTypeKey @@ -13,15 +13,15 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres a11y.plural.count.input_limit_remains NSStringLocalizedFormatKey - Input limit remains %#@character_count@ + El límite de entrada permite %#@character_count@ caracteres character_count NSStringFormatSpecTypeKey @@ -29,9 +29,9 @@ NSStringFormatValueTypeKey ld one - 1 character + 1 caracter other - %ld characters + %ld caracteres plural.count.metric_formatted.post @@ -61,9 +61,9 @@ NSStringFormatValueTypeKey ld one - 1 post + 1 mensaje other - %ld posts + %ld mensajes plural.count.favorite @@ -157,9 +157,9 @@ NSStringFormatValueTypeKey ld one - 1 following + siguiendo a 1 other - %ld following + siguiendo a %ld plural.count.follower @@ -173,9 +173,9 @@ NSStringFormatValueTypeKey ld one - 1 follower + 1 seguidor other - %ld followers + %ld seguidores date.year.left @@ -189,9 +189,9 @@ NSStringFormatValueTypeKey ld one - 1 year left + 1 año restante other - %ld years left + %ld años restantes date.month.left @@ -205,9 +205,9 @@ NSStringFormatValueTypeKey ld one - 1 months left + 1 mes restante other - %ld months left + %ld meses restantes date.day.left @@ -221,9 +221,9 @@ NSStringFormatValueTypeKey ld one - 1 day left + 1 día restante other - %ld days left + %ld días restantes date.hour.left @@ -237,9 +237,9 @@ NSStringFormatValueTypeKey ld one - 1 hour left + 1 hora restante other - %ld hours left + %ld horas restantes date.minute.left @@ -253,9 +253,9 @@ NSStringFormatValueTypeKey ld one - 1 minute left + 1 minuto restante other - %ld minutes left + %ld minutos restantes date.second.left @@ -269,9 +269,105 @@ NSStringFormatValueTypeKey ld one - 1 second left + 1 segundo restante other - %ld seconds left + %ld segundos restantes + + + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 año + other + hace %ld años + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 mes + other + hace %ld meses + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 día + other + hace %ld días + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 hora + other + hace %ld horas + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 minuto + other + hace %ld minutos + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + hace 1 segundo + other + hace %ld segundos diff --git a/Mastodon/Resources/es.lproj/Localizable.stringsdict b/Mastodon/Resources/es.lproj/Localizable.stringsdict index 9097a22c4..21036aac5 100644 --- a/Mastodon/Resources/es.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/es.lproj/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Mastodon/Resources/fr.lproj/Localizable.stringsdict b/Mastodon/Resources/fr.lproj/Localizable.stringsdict index 56e176d1e..d6fb911f3 100644 --- a/Mastodon/Resources/fr.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/fr.lproj/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Mastodon/Resources/ja.lproj/InfoPlist.strings b/Mastodon/Resources/ja.lproj/InfoPlist.strings index b923598c6..467c1d476 100644 --- a/Mastodon/Resources/ja.lproj/InfoPlist.strings +++ b/Mastodon/Resources/ja.lproj/InfoPlist.strings @@ -1,4 +1,4 @@ "NSCameraUsageDescription" = "投稿用の写真撮影に使用します"; "NSPhotoLibraryAddUsageDescription" = "写真をフォトライブラリーに保存するときに使用します"; -"NewPostShortcutItemTitle" = "トゥートする"; +"NewPostShortcutItemTitle" = "新規投稿"; "SearchShortcutItemTitle" = "検索"; \ No newline at end of file diff --git a/Mastodon/Resources/ja.lproj/Localizable.strings b/Mastodon/Resources/ja.lproj/Localizable.strings index cee195ced..779c9c7e1 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.strings +++ b/Mastodon/Resources/ja.lproj/Localizable.strings @@ -5,14 +5,14 @@ "Common.Alerts.Common.PleaseTryAgain" = "もう一度お試しください。"; "Common.Alerts.Common.PleaseTryAgainLater" = "後でもう一度お試しください。"; "Common.Alerts.DeletePost.Delete" = "消去"; -"Common.Alerts.DeletePost.Title" = "このトゥートを消去しますか?"; +"Common.Alerts.DeletePost.Title" = "この投稿を消去しますか?"; "Common.Alerts.DiscardPostContent.Message" = "この操作は取り消しできません。下書きは失われます。"; -"Common.Alerts.DiscardPostContent.Title" = "トゥートを破棄しますか?"; +"Common.Alerts.DiscardPostContent.Title" = "投稿を破棄しますか?"; "Common.Alerts.EditProfileFailure.Message" = "プロフィールを編集できません。もう一度お試しください。"; "Common.Alerts.EditProfileFailure.Title" = "プロフィールを編集できませんでした"; "Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "複数の動画を添付することはできません。"; "Common.Alerts.PublishPostFailure.AttachmentsMessage.VideoAttachWithPhoto" = "すでに画像が含まれている投稿に、動画を添付することができません。"; -"Common.Alerts.PublishPostFailure.Message" = "トゥートに失敗しました。 +"Common.Alerts.PublishPostFailure.Message" = "投稿に失敗しました。 インターネットに接続されているか確認してください。"; "Common.Alerts.PublishPostFailure.Title" = "失敗"; "Common.Alerts.SavePhotoFailure.Message" = "写真を保存するには、フォトライブラリのアクセス許可を有効にしてください。"; @@ -51,7 +51,7 @@ "Common.Controls.Actions.SeeMore" = "もっと見る"; "Common.Controls.Actions.Settings" = "設定"; "Common.Controls.Actions.Share" = "共有"; -"Common.Controls.Actions.SharePost" = "トゥートを共有"; +"Common.Controls.Actions.SharePost" = "投稿を共有"; "Common.Controls.Actions.ShareUser" = "%@を共有"; "Common.Controls.Actions.SignIn" = "サインイン"; "Common.Controls.Actions.SignUp" = "サインアップ"; @@ -77,31 +77,31 @@ "Common.Controls.Friendship.UnmuteUser" = "%@のミュートを解除"; "Common.Controls.Keyboard.Common.ComposeNewPost" = "新しい投稿を作成"; "Common.Controls.Keyboard.Common.OpenSettings" = "設定を開く"; -"Common.Controls.Keyboard.Common.ShowFavorites" = "いいねを表示"; +"Common.Controls.Keyboard.Common.ShowFavorites" = "お気に入りを表示"; "Common.Controls.Keyboard.Common.SwitchToTab" = "%@に切り替え"; "Common.Controls.Keyboard.SegmentedControl.NextSection" = "次のセクション"; "Common.Controls.Keyboard.SegmentedControl.PreviousSection" = "前のセクション"; "Common.Controls.Keyboard.Timeline.NextStatus" = "次の投稿"; "Common.Controls.Keyboard.Timeline.OpenAuthorProfile" = "プロフィールを見る"; -"Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "リブロガーのプロフィールを開く"; +"Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "ブーストした人のプロフィールを開く"; "Common.Controls.Keyboard.Timeline.OpenStatus" = "投稿を開く"; "Common.Controls.Keyboard.Timeline.PreviewImage" = "画像をプレビュー"; -"Common.Controls.Keyboard.Timeline.PreviousStatus" = "前のトゥート"; -"Common.Controls.Keyboard.Timeline.ReplyStatus" = "トゥートにリプライ"; +"Common.Controls.Keyboard.Timeline.PreviousStatus" = "前の投稿"; +"Common.Controls.Keyboard.Timeline.ReplyStatus" = "投稿に返信"; "Common.Controls.Keyboard.Timeline.ToggleContentWarning" = "閲覧注意を切り替える"; -"Common.Controls.Keyboard.Timeline.ToggleFavorite" = "いいねを切り替える"; +"Common.Controls.Keyboard.Timeline.ToggleFavorite" = "お気に入り登録を切り替える"; "Common.Controls.Keyboard.Timeline.ToggleReblog" = "ブーストを切り替える"; -"Common.Controls.Status.Actions.Favorite" = "いいね"; +"Common.Controls.Status.Actions.Favorite" = "お気に入り"; "Common.Controls.Status.Actions.Menu" = "メニュー"; "Common.Controls.Status.Actions.Reblog" = "ブースト"; "Common.Controls.Status.Actions.Reply" = "リプライ"; -"Common.Controls.Status.Actions.Unfavorite" = "いいねと取り消す"; +"Common.Controls.Status.Actions.Unfavorite" = "お気に入り登録を取り消す"; "Common.Controls.Status.Actions.Unreblog" = "ブーストを戻す"; "Common.Controls.Status.ContentWarning" = "コンテンツ警告"; "Common.Controls.Status.MediaContentWarning" = "どこかをタップして表示"; "Common.Controls.Status.Poll.Closed" = "クローズド"; "Common.Controls.Status.Poll.Vote" = "投票"; -"Common.Controls.Status.ShowPost" = "トゥートを見る"; +"Common.Controls.Status.ShowPost" = "投稿を見る"; "Common.Controls.Status.ShowUserProfile" = "プロフィールを見る"; "Common.Controls.Status.Tag.Email" = "メール"; "Common.Controls.Status.Tag.Emoji" = "絵文字"; @@ -119,13 +119,13 @@ "Common.Controls.Timeline.Header.BlockedWarning" = "ブロックされているようです..."; "Common.Controls.Timeline.Header.BlockingWarning" = "ブロックを解除するまでこのユーザーをみることはできません。 そういうことです。"; -"Common.Controls.Timeline.Header.NoStatusFound" = "トゥートが見つかりません"; +"Common.Controls.Timeline.Header.NoStatusFound" = "投稿が見つかりません"; "Common.Controls.Timeline.Header.SuspendedWarning" = "このユーザーは停止されています。"; "Common.Controls.Timeline.Header.UserBlockedWarning" = "%@がブロックを解除しない限りプロフィールをみることはできません。"; "Common.Controls.Timeline.Header.UserBlockingWarning" = "%@がブロックを解除しない限りプロフィールをみることはできません。 そういうことです。"; "Common.Controls.Timeline.Header.UserSuspendedWarning" = "%@のアカウントは停止されました。"; -"Common.Controls.Timeline.Loader.LoadMissingPosts" = "不足しているトゥートを読み込む"; +"Common.Controls.Timeline.Loader.LoadMissingPosts" = "不足している投稿を読み込む"; "Common.Controls.Timeline.Loader.LoadingMissingPosts" = "読込中..."; "Common.Controls.Timeline.Loader.ShowMoreReplies" = "リプライをもっとみる"; "Common.Controls.Timeline.Timestamp.Now" = "今"; @@ -142,12 +142,12 @@ "Scene.Compose.Attachment.Photo" = "写真"; "Scene.Compose.Attachment.Video" = "動画"; "Scene.Compose.AutoComplete.SpaceToAdd" = "スペースを追加"; -"Scene.Compose.ComposeAction" = "トゥート"; +"Scene.Compose.ComposeAction" = "投稿"; "Scene.Compose.ContentInputPlaceholder" = "気になることを入力またはペースト"; "Scene.Compose.ContentWarning.Placeholder" = "ここに正確な警告を書いてください..."; "Scene.Compose.Keyboard.AppendAttachmentEntry" = "アタッチメントを追加 - %@"; -"Scene.Compose.Keyboard.DiscardPost" = "トゥートを破棄"; -"Scene.Compose.Keyboard.PublishPost" = "トゥート"; +"Scene.Compose.Keyboard.DiscardPost" = "投稿を破棄"; +"Scene.Compose.Keyboard.PublishPost" = "投稿する"; "Scene.Compose.Keyboard.SelectVisibilityEntry" = "公開設定を選択 - %@"; "Scene.Compose.Keyboard.ToggleContentWarning" = "閲覧注意を切り替える"; "Scene.Compose.Keyboard.TogglePoll" = "投票を切り替える"; @@ -163,9 +163,9 @@ "Scene.Compose.Poll.ThirtyMinutes" = "30分"; "Scene.Compose.Poll.ThreeDays" = "3日"; "Scene.Compose.ReplyingToUser" = "%@にリプライ"; -"Scene.Compose.Title.NewPost" = "新しいトゥート"; +"Scene.Compose.Title.NewPost" = "新しい投稿"; "Scene.Compose.Title.NewReply" = "新しいリプライ"; -"Scene.Compose.Visibility.Direct" = "メンションしてる人のみ"; +"Scene.Compose.Visibility.Direct" = "ダイレクト"; "Scene.Compose.Visibility.Private" = "フォロワーのみ"; "Scene.Compose.Visibility.Public" = "パブリック"; "Scene.Compose.Visibility.Unlisted" = "非表示"; @@ -180,18 +180,18 @@ "Scene.ConfirmEmail.OpenEmailApp.Title" = "インボックスをチェック"; "Scene.ConfirmEmail.Subtitle" = "先程 %@ にメールを送信しました。リンクをタップしてアカウントを確認してください。"; "Scene.ConfirmEmail.Title" = "さいごにもうひとつ。"; -"Scene.Favorite.Title" = "あなたのいいね"; -"Scene.HomeTimeline.NavigationBarState.NewPosts" = "新しいトゥートを見る"; +"Scene.Favorite.Title" = "お気に入り"; +"Scene.HomeTimeline.NavigationBarState.NewPosts" = "新しい投稿を見る"; "Scene.HomeTimeline.NavigationBarState.Offline" = "オフライン"; -"Scene.HomeTimeline.NavigationBarState.Published" = "トゥートしました!"; -"Scene.HomeTimeline.NavigationBarState.Publishing" = "トゥートちう..."; +"Scene.HomeTimeline.NavigationBarState.Published" = "投稿しました!"; +"Scene.HomeTimeline.NavigationBarState.Publishing" = "投稿中..."; "Scene.HomeTimeline.Title" = "ホーム"; -"Scene.Notification.Action.Favourite" = "あなたがいいねしたトゥート"; +"Scene.Notification.Action.Favourite" = "がお気に入りに登録"; "Scene.Notification.Action.Follow" = "フォローされました"; "Scene.Notification.Action.FollowRequest" = "フォローリクエスト"; "Scene.Notification.Action.Mention" = "メンションされました"; "Scene.Notification.Action.Poll" = "投票が終了しました"; -"Scene.Notification.Action.Reblog" = "あなたの投稿をリブログしました。"; +"Scene.Notification.Action.Reblog" = "がブーストしました"; "Scene.Notification.Keyobard.ShowEverything" = "すべて見る"; "Scene.Notification.Keyobard.ShowMentions" = "メンションを見る"; "Scene.Notification.Title.Everything" = "すべて"; @@ -200,8 +200,8 @@ "Scene.Preview.Keyboard.ShowNext" = "次を見る"; "Scene.Preview.Keyboard.ShowPrevious" = "前を見る"; "Scene.Profile.Dashboard.Followers" = "フォロワー"; -"Scene.Profile.Dashboard.Following" = "フォロー中"; -"Scene.Profile.Dashboard.Posts" = "トゥート"; +"Scene.Profile.Dashboard.Following" = "フォロー"; +"Scene.Profile.Dashboard.Posts" = "投稿"; "Scene.Profile.Fields.AddRow" = "行追加"; "Scene.Profile.Fields.Placeholder.Content" = "コンテンツ"; "Scene.Profile.Fields.Placeholder.Label" = "ラベル"; @@ -210,7 +210,7 @@ "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "%@をミュートしますか?"; "Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Title" = "ミュートを解除"; "Scene.Profile.SegmentedControl.Media" = "メディア"; -"Scene.Profile.SegmentedControl.Posts" = "トゥート"; +"Scene.Profile.SegmentedControl.Posts" = "投稿"; "Scene.Profile.SegmentedControl.Replies" = "リプライ"; "Scene.Register.Error.Item.Agreement" = "契約"; "Scene.Register.Error.Item.Email" = "メール"; @@ -241,7 +241,7 @@ "Scene.Register.Input.Username.DuplicatePrompt" = "このユーザー名は使用されています"; "Scene.Register.Input.Username.Placeholder" = "ユーザー名"; "Scene.Register.Title" = "あなたのことを教えてください"; -"Scene.Report.Content1" = "他に報告したいトゥートはありますか?"; +"Scene.Report.Content1" = "他に報告したい投稿はありますか?"; "Scene.Report.Content2" = "この報告についてモデレーターに言いたいことはありますか?"; "Scene.Report.Send" = "報告を送信"; "Scene.Report.SkipToSend" = "コメントなしで送信"; @@ -264,7 +264,7 @@ "Scene.Search.Searching.Segment.All" = "すべて"; "Scene.Search.Searching.Segment.Hashtags" = "ハッシュタグ"; "Scene.Search.Searching.Segment.People" = "人々"; -"Scene.Search.Searching.Segment.Posts" = "トゥート"; +"Scene.Search.Searching.Segment.Posts" = "投稿"; "Scene.Search.Title" = "検索"; "Scene.ServerPicker.Button.Category.Academia" = "アカデミア"; "Scene.ServerPicker.Button.Category.Activism" = "アクティビズム"; @@ -307,7 +307,7 @@ "Scene.Settings.Section.BoringZone.Terms" = "利用規約"; "Scene.Settings.Section.BoringZone.Title" = "アプリについて"; "Scene.Settings.Section.Notifications.Boosts" = "ブースト"; -"Scene.Settings.Section.Notifications.Favorites" = "いいね"; +"Scene.Settings.Section.Notifications.Favorites" = "お気に入り登録"; "Scene.Settings.Section.Notifications.Follows" = "フォロー"; "Scene.Settings.Section.Notifications.Mentions" = "メンション"; "Scene.Settings.Section.Notifications.Title" = "通知"; @@ -327,7 +327,7 @@ "Scene.Settings.Title" = "設定"; "Scene.SuggestionAccount.FollowExplain" = "誰かをフォローすると、その人の投稿がタイムラインに表示されるようになります。"; "Scene.SuggestionAccount.Title" = "フォローする人を探す"; -"Scene.Thread.BackTitle" = "トゥート"; -"Scene.Thread.Title" = "%@のトゥート"; +"Scene.Thread.BackTitle" = "投稿"; +"Scene.Thread.Title" = "%@の投稿"; "Scene.Welcome.Slogan" = "Social networking back in your hands."; \ No newline at end of file diff --git a/Mastodon/Resources/ja.lproj/Localizable.stringsdict b/Mastodon/Resources/ja.lproj/Localizable.stringsdict index 82230ebcd..e3699b6ba 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/ja.lproj/Localizable.stringsdict @@ -41,7 +41,7 @@ NSStringFormatValueTypeKey ld other - posts + 投稿 plural.count.post @@ -69,7 +69,7 @@ NSStringFormatValueTypeKey ld other - %ld favorites + %ld お気に入り plural.count.reblog @@ -83,7 +83,7 @@ NSStringFormatValueTypeKey ld other - %ld reblogs + %ld ブースト plural.count.vote @@ -139,7 +139,7 @@ NSStringFormatValueTypeKey ld other - %ld following + %ld フォロー plural.count.follower @@ -153,7 +153,7 @@ NSStringFormatValueTypeKey ld other - %ld followers + %ld フォロワー date.year.left @@ -240,5 +240,89 @@ %ld seconds left + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ld 年前 + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + diff --git a/Mastodon/Resources/nl.lproj/Localizable.stringsdict b/Mastodon/Resources/nl.lproj/Localizable.stringsdict index e69582f04..1726606b4 100644 --- a/Mastodon/Resources/nl.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/nl.lproj/Localizable.stringsdict @@ -274,5 +274,101 @@ %ld seconden resterend + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1y ago + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1M ago + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1d ago + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1h ago + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1m ago + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + 1s ago + other + %lds ago + + diff --git a/Mastodon/Resources/zh-Hans.lproj/Localizable.stringsdict b/Mastodon/Resources/zh-Hans.lproj/Localizable.stringsdict index bb8064914..b7c1398f7 100644 --- a/Mastodon/Resources/zh-Hans.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/zh-Hans.lproj/Localizable.stringsdict @@ -240,5 +240,89 @@ 剩余 %ld 秒 + date.year.ago.abbr + + NSStringLocalizedFormatKey + %#@count_year_ago_abbr@ + count_year_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldy ago + + + date.month.ago.abbr + + NSStringLocalizedFormatKey + %#@count_month_ago_abbr@ + count_month_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldM ago + + + date.day.ago.abbr + + NSStringLocalizedFormatKey + %#@count_day_ago_abbr@ + count_day_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldd ago + + + date.hour.ago.abbr + + NSStringLocalizedFormatKey + %#@count_hour_ago_abbr@ + count_hour_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldh ago + + + date.minute.ago.abbr + + NSStringLocalizedFormatKey + %#@count_minute_ago_abbr@ + count_minute_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %ldm ago + + + date.second.ago.abbr + + NSStringLocalizedFormatKey + %#@count_second_ago_abbr@ + count_second_ago_abbr + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %lds ago + + diff --git a/Mastodon/Scene/Notification/TableViewCell/NotificationStatusTableViewCell.swift b/Mastodon/Scene/Notification/TableViewCell/NotificationStatusTableViewCell.swift index 804fc081a..1712468a9 100644 --- a/Mastodon/Scene/Notification/TableViewCell/NotificationStatusTableViewCell.swift +++ b/Mastodon/Scene/Notification/TableViewCell/NotificationStatusTableViewCell.swift @@ -49,13 +49,8 @@ final class NotificationStatusTableViewCell: UITableViewCell, StatusCell { let contentStackView = UIStackView() - let actionLabel: UILabel = { - let label = UILabel() - label.textColor = Asset.Colors.Label.secondary.color - label.font = UIFontMetrics(forTextStyle: .body).scaledFont(for: .systemFont(ofSize: 15, weight: .regular), maximumPointSize: 20) - label.lineBreakMode = .byTruncatingTail - return label - }() + let titleLabel = MetaLabel(style: .notificationTitle) + let dotLabel: UILabel = { let label = UILabel() label.textColor = Asset.Colors.Label.secondary.color @@ -70,7 +65,6 @@ final class NotificationStatusTableViewCell: UITableViewCell, StatusCell { return label }() - let nameLabel = MetaLabel(style: .notificationName) let buttonStackView = UIStackView() @@ -181,17 +175,15 @@ extension NotificationStatusTableViewCell { actionStackView.distribution = .fill actionStackView.spacing = 4 - actionStackView.addArrangedSubview(nameLabel) - actionStackView.addArrangedSubview(actionLabel) + actionStackView.addArrangedSubview(titleLabel) actionStackView.addArrangedSubview(dotLabel) actionStackView.addArrangedSubview(timestampLabel) let timestampPaddingView = UIView() actionStackView.addArrangedSubview(timestampPaddingView) - nameLabel.setContentHuggingPriority(.required - 3, for: .horizontal) - nameLabel.setContentHuggingPriority(.required - 1, for: .vertical) - nameLabel.setContentCompressionResistancePriority(.required - 3, for: .horizontal) - nameLabel.setContentCompressionResistancePriority(.required - 1, for: .vertical) - actionLabel.setContentHuggingPriority(.defaultLow, for: .horizontal) + titleLabel.setContentHuggingPriority(.required - 3, for: .horizontal) + titleLabel.setContentHuggingPriority(.required - 1, for: .vertical) + titleLabel.setContentCompressionResistancePriority(.required - 3, for: .horizontal) + titleLabel.setContentCompressionResistancePriority(.required - 1, for: .vertical) dotLabel.setContentHuggingPriority(.required - 2, for: .horizontal) dotLabel.setContentCompressionResistancePriority(.required - 2, for: .horizontal) timestampLabel.setContentHuggingPriority(.required - 1, for: .horizontal) @@ -255,7 +247,7 @@ extension NotificationStatusTableViewCell { avatarButton.addTarget(self, action: #selector(NotificationStatusTableViewCell.avatarButtonDidPressed(_:)), for: .touchUpInside) let authorNameLabelTapGestureRecognizer = UITapGestureRecognizer.singleTapGestureRecognizer authorNameLabelTapGestureRecognizer.addTarget(self, action: #selector(NotificationStatusTableViewCell.authorNameLabelTapGestureRecognizerHandler(_:))) - nameLabel.addGestureRecognizer(authorNameLabelTapGestureRecognizer) + titleLabel.addGestureRecognizer(authorNameLabelTapGestureRecognizer) resetSeparatorLineLayout() @@ -303,7 +295,7 @@ extension NotificationStatusTableViewCell { @objc private func authorNameLabelTapGestureRecognizerHandler(_ sender: UITapGestureRecognizer) { os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function) - delegate?.notificationStatusTableViewCell(self, authorNameLabelDidPressed: nameLabel) + delegate?.notificationStatusTableViewCell(self, authorNameLabelDidPressed: titleLabel) } } diff --git a/Mastodon/Scene/Share/View/Content/StatusView.swift b/Mastodon/Scene/Share/View/Content/StatusView.swift index 664939fc4..7afabd3a9 100644 --- a/Mastodon/Scene/Share/View/Content/StatusView.swift +++ b/Mastodon/Scene/Share/View/Content/StatusView.swift @@ -386,10 +386,10 @@ extension StatusView { contentWarningOverlayView.translatesAutoresizingMaskIntoConstraints = false containerStackView.addSubview(contentWarningOverlayView) NSLayoutConstraint.activate([ - statusContainerStackView.topAnchor.constraint(equalTo: contentWarningOverlayView.topAnchor).priority(.defaultHigh + 10), - statusContainerStackView.leftAnchor.constraint(equalTo: contentWarningOverlayView.leftAnchor).priority(.defaultHigh), - contentWarningOverlayView.rightAnchor.constraint(equalTo: statusContainerStackView.rightAnchor).priority(.defaultHigh), - contentWarningOverlayView.bottomAnchor.constraint(equalTo: statusContainerStackView.bottomAnchor).priority(.defaultHigh), + statusContainerStackView.topAnchor.constraint(equalTo: contentWarningOverlayView.topAnchor).priority(.required - 10), + statusContainerStackView.leftAnchor.constraint(equalTo: contentWarningOverlayView.leftAnchor).priority(.required - 1), + contentWarningOverlayView.rightAnchor.constraint(equalTo: statusContainerStackView.rightAnchor).priority(.required - 1), + contentWarningOverlayView.bottomAnchor.constraint(equalTo: statusContainerStackView.bottomAnchor).priority(.required - 1), ]) // avoid overlay behind other views defer { diff --git a/Mastodon/Scene/Share/View/Content/ThreadMetaView.swift b/Mastodon/Scene/Share/View/Content/ThreadMetaView.swift index ff2f94a0e..d6f1b01a9 100644 --- a/Mastodon/Scene/Share/View/Content/ThreadMetaView.swift +++ b/Mastodon/Scene/Share/View/Content/ThreadMetaView.swift @@ -13,6 +13,8 @@ final class ThreadMetaView: UIView { let label = UILabel() label.font = UIFontMetrics(forTextStyle: .body).scaledFont(for: .systemFont(ofSize: 15, weight: .regular)) label.text = "Date" + label.adjustsFontSizeToFitWidth = true + label.minimumScaleFactor = 0.5 return label }() @@ -75,8 +77,10 @@ extension ThreadMetaView { actionButtonStackView.addArrangedSubview(favoriteButton) dateLabel.setContentHuggingPriority(.defaultLow, for: .horizontal) - reblogButton.setContentHuggingPriority(.required - 2, for: .horizontal) - favoriteButton.setContentHuggingPriority(.required - 1, for: .horizontal) + reblogButton.titleLabel?.setContentHuggingPriority(.required - 2, for: .horizontal) + favoriteButton.titleLabel?.setContentHuggingPriority(.required - 1, for: .horizontal) + reblogButton.setContentCompressionResistancePriority(.required - 2, for: .horizontal) + favoriteButton.setContentCompressionResistancePriority(.required - 1, for: .horizontal) updateContainerLayout() diff --git a/MastodonIntent/Base.lproj/Intents.intentdefinition b/MastodonIntent/Base.lproj/Intents.intentdefinition index df98e3ab2..6ccb0318c 100644 --- a/MastodonIntent/Base.lproj/Intents.intentdefinition +++ b/MastodonIntent/Base.lproj/Intents.intentdefinition @@ -53,7 +53,7 @@ INIntentDefinitionNamespace BvMBE4 INIntentDefinitionSystemVersion - 20G71 + 20G80 INIntentDefinitionToolsBuildVersion 12E507 INIntentDefinitionToolsVersion @@ -85,8 +85,6 @@ Post ${content} on Mastodon INIntentParameterCombinationTitleID WCIR3D - INIntentParameterCombinationUpdatesLinked - INIntentName @@ -102,7 +100,7 @@ INIntentParameterCombinationSupportsBackgroundExecution INIntentParameterCombinationTitle - Post + Post on Mastodon INIntentParameterCombinationTitleID CsR7G2 @@ -117,7 +115,7 @@ INIntentParameterCombinationSupportsBackgroundExecution INIntentParameterCombinationTitle - Post + Post on Mastodon INIntentParameterCombinationTitleID dUyuGg @@ -247,7 +245,7 @@ INIntentResponseCodeConciseFormatStringID k7dbKQ INIntentResponseCodeFormatString - Post was sent successfully. + Post was sent successfully. INIntentResponseCodeFormatStringID ryJLwG INIntentResponseCodeName diff --git a/MastodonIntent/de.lproj/Intents.strings b/MastodonIntent/de.lproj/Intents.strings index e19069797..db8062fbc 100644 --- a/MastodonIntent/de.lproj/Intents.strings +++ b/MastodonIntent/de.lproj/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Auf Mastodon schreiben"; -"751xkl" = "Text Content"; +"751xkl" = "Textinhalt"; "CsR7G2" = "Post"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "Welcher Inhalt soll gepostet werden?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Posten fehlgeschlagen"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Fehlerursache"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Beitrag mit Textinhalt posten"; -"RxSqsb" = "Post"; +"RxSqsb" = "Beitrag"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Schreibe ${content} auf Mastodon"; "ZKJSNu" = "Post"; -"ZS1XaK" = "${content}"; +"ZS1XaK" = "Inhalt: ${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Sichtbarkeit"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Sichtbarkeit des Beitrags"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "Es gibt ${count} Optionen, die zu ''öffentlich\" passen."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "Es gibt ${count} Optionen, die zu ''nur für Follower\" passen."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, öffentlich"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, nur für Follower"; "dUyuGg" = "Post"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Öffentlich"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Nur für Follower"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Senden fehlgeschlagen. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "Beitrag wurde erfolgreich gesendet."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Nur zur Bestätigung, du wolltest \"Öffentlich\"?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Nur zur Bestätigung, du wolltest \"Nur für Follower\"?"; "rM6dvp" = "URL"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "Beitrag wurde erfolgreich gesendet. "; diff --git a/MastodonIntent/en.lproj/Intents.strings b/MastodonIntent/en.lproj/Intents.strings index e19069797..6877490ba 100644 --- a/MastodonIntent/en.lproj/Intents.strings +++ b/MastodonIntent/en.lproj/Intents.strings @@ -2,7 +2,7 @@ "751xkl" = "Text Content"; -"CsR7G2" = "Post"; +"CsR7G2" = "Post on Mastodon"; "HZSGTr" = "What content to post?"; @@ -32,7 +32,7 @@ "ayoYEb-ehFLjY" = "${content}, Followers Only"; -"dUyuGg" = "Post"; +"dUyuGg" = "Post on Mastodon"; "dYQ5NN" = "Public"; diff --git a/MastodonIntent/en.lproj/Intents.stringsdict b/MastodonIntent/en.lproj/Intents.stringsdict new file mode 100644 index 000000000..5a39d5e64 --- /dev/null +++ b/MastodonIntent/en.lproj/Intents.stringsdict @@ -0,0 +1,54 @@ + + + + + There are ${count} options matching ‘${content}’. - 2 + + NSStringLocalizedFormatKey + There are %#@count_option@ matching ‘${content}’. + count_option + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + %ld + zero + 0 options + one + 1 option + two + 2 options + few + %ld options + many + %ld options + other + %ld options + + + There are ${count} options matching ‘${visibility}’. + + NSStringLocalizedFormatKey + There are %#@count_option@ matching ‘${visibility}’. + count_option + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + %ld + zero + 0 options + one + 1 option + two + 2 options + few + %ld options + many + %ld options + other + %ld options + + + + diff --git a/MastodonIntent/es-419.lproj/Intents.strings b/MastodonIntent/es-419.lproj/Intents.strings index e19069797..64c0376c0 100644 --- a/MastodonIntent/es-419.lproj/Intents.strings +++ b/MastodonIntent/es-419.lproj/Intents.strings @@ -1,51 +1,51 @@ -"16wxgf" = "Post on Mastodon"; +"16wxgf" = "Enviar a Mastodon"; -"751xkl" = "Text Content"; +"751xkl" = "Contenido del texto"; -"CsR7G2" = "Post"; +"CsR7G2" = "Enviar"; -"HZSGTr" = "What content to post?"; +"HZSGTr" = "¿Qué contenido enviar?"; -"HdGikU" = "Posting failed"; +"HdGikU" = "Error al enviar mensaje"; -"KDNTJ4" = "Failure Reason"; +"KDNTJ4" = "Motivo del error"; -"RHxKOw" = "Send Post with text content"; +"RHxKOw" = "Enviar mensaje con contenido de texto"; -"RxSqsb" = "Post"; +"RxSqsb" = "Enviar"; -"WCIR3D" = "Post ${content} on Mastodon"; +"WCIR3D" = "Enviar ${content} a Mastodon"; -"ZKJSNu" = "Post"; +"ZKJSNu" = "Enviar"; "ZS1XaK" = "${content}"; -"ZbSjzC" = "Visibility"; +"ZbSjzC" = "Visibilidad"; -"Zo4jgJ" = "Post Visibility"; +"Zo4jgJ" = "Visibilidad del mensaje"; -"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; +"apSxMG-dYQ5NN" = "Hay ${count} opciones que coinciden con \"Público\"."; -"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; +"apSxMG-ehFLjY" = "Hay ${count} opciones que coinciden con \"Sólo para seguidores\"."; -"ayoYEb-dYQ5NN" = "${content}, Public"; +"ayoYEb-dYQ5NN" = "${content}, público"; -"ayoYEb-ehFLjY" = "${content}, Followers Only"; +"ayoYEb-ehFLjY" = "${content}, sólo para seguidores"; -"dUyuGg" = "Post"; +"dUyuGg" = "Enviar"; -"dYQ5NN" = "Public"; +"dYQ5NN" = "Público"; -"ehFLjY" = "Followers Only"; +"ehFLjY" = "Sólo para seguidores"; -"gfePDu" = "Posting failed. ${failureReason}"; +"gfePDu" = "Error al enviar mensaje. ${failureReason}"; -"k7dbKQ" = "Post was sent successfully."; +"k7dbKQ" = "El mensaje se envió exitosamente."; -"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; +"oGiqmY-dYQ5NN" = "Sólo para confirmar, ¿querías que este mensaje sea PÚBLICO?"; -"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; +"oGiqmY-ehFLjY" = "Sólo para confirmar, ¿querías que este mensaje sea SÓLO PARA SEGUIDORES?"; -"rM6dvp" = "URL"; +"rM6dvp" = "Dirección web"; -"ryJLwG" = "Post was sent successfully. "; +"ryJLwG" = "El mensaje se envió exitosamente. "; diff --git a/MastodonUITests/MastodonUITests.swift b/MastodonUITests/MastodonUITests.swift index dbfca415e..df1f6b907 100644 --- a/MastodonUITests/MastodonUITests.swift +++ b/MastodonUITests/MastodonUITests.swift @@ -21,8 +21,8 @@ class MastodonUITests: XCTestCase { override func tearDownWithError() throws { // Put teardown code here. This method is called after the invocation of each test method in the class. } - - func testExample() throws { + + func testSmoke() throws { // UI tests must launch the application that they test. let app = XCUIApplication() app.launch() diff --git a/crowdin.yml b/crowdin.yml index 3612e371e..38421efa6 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -7,6 +7,7 @@ files: [ # Source files filter # e.g. "/resources/en/*.json" # + # App strings template "source" : "/Localization/app.json", # @@ -23,18 +24,27 @@ files: [ # }, { + # App info plist strings template "source" : "/Localization/ios-infoPlist.json", "translation" : "/Localization/StringsConvertor/input/%locale_with_underscore%/%original_file_name%", "update_option" : "update_as_unapproved", }, { + # App strings dict "source" : "/Localization/Localizable.stringsdict", "translation" : "/Localization/StringsConvertor/input/%locale_with_underscore%/%original_file_name%", "update_option" : "update_as_unapproved", }, { + # intents strings "source" : "/MastodonIntent/en.lproj/Intents.strings", "translation" : "/Localization/StringsConvertor/Intents/input/%locale_with_underscore%/%original_file_name%", "update_option" : "update_as_unapproved", - } + }, + { + # intents strings dict + "source" : "/MastodonIntent/en.lproj/Intents.stringsdict", + "translation" : "/Localization/StringsConvertor/Intents/input/%locale_with_underscore%/%original_file_name%", + "update_option" : "update_as_unapproved", + }, ] \ No newline at end of file