From 77bcd1b715c92ef15ea962b2ec673356b99c18cd Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Mon, 27 Feb 2023 07:01:23 +1300 Subject: [PATCH 01/47] Fix localization and add tests for EventGroupView --- damus.xcodeproj/project.pbxproj | 6 + damus/Util/LocalizationUtil.swift | 8 +- .../Views/Notifications/EventGroupView.swift | 95 ++++--- damus/en-US.lproj/Localizable.strings | Bin 0 -> 4782 bytes damus/en-US.lproj/Localizable.stringsdict | 144 +++++++++++ .../Localized Contents/en-US.xliff | 235 ++++++++++++++++++ .../damus/en-US.lproj/Localizable.strings | Bin 60936 -> 65928 bytes .../damus/en-US.lproj/Localizable.stringsdict | 144 +++++++++++ damusTests/EventGroupViewTests.swift | 42 ++++ devtools/export-source-translation.sh | 2 +- 10 files changed, 638 insertions(+), 38 deletions(-) create mode 100644 damus/en-US.lproj/Localizable.strings create mode 100644 damusTests/EventGroupViewTests.swift diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj index fdf1096e..c76341d3 100644 --- a/damus.xcodeproj/project.pbxproj +++ b/damus.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 3A3040EF29A8FEE9008A0F29 /* EventDetailBarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A3040EE29A8FEE9008A0F29 /* EventDetailBarTests.swift */; }; 3A3040F129A8FF97008A0F29 /* LocalizationUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A3040F029A8FF97008A0F29 /* LocalizationUtil.swift */; }; 3A3040F329A91366008A0F29 /* ProfileViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A3040F229A91366008A0F29 /* ProfileViewTests.swift */; }; + 3A30410129AB12AA008A0F29 /* EventGroupViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A30410029AB12AA008A0F29 /* EventGroupViewTests.swift */; }; 3A4325A82961E11400BFCD9D /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 3A4325AA2961E11400BFCD9D /* Localizable.stringsdict */; }; 3AA247FD297E3CFF0090C62D /* RepostsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA247FC297E3CFF0090C62D /* RepostsModel.swift */; }; 3AA247FF297E3D900090C62D /* RepostsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA247FE297E3D900090C62D /* RepostsView.swift */; }; @@ -280,6 +281,8 @@ 3A3040FC29A91F31008A0F29 /* zh-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-TW"; path = "zh-TW.lproj/InfoPlist.strings"; sourceTree = ""; }; 3A3040FD29A91F31008A0F29 /* zh-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-TW"; path = "zh-TW.lproj/Localizable.stringsdict"; sourceTree = ""; }; 3A3040FE29A91F31008A0F29 /* zh-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-TW"; path = "zh-TW.lproj/Localizable.strings"; sourceTree = ""; }; + 3A3040FF29AB02D1008A0F29 /* en-US */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-US"; path = "en-US.lproj/Localizable.strings"; sourceTree = ""; }; + 3A30410029AB12AA008A0F29 /* EventGroupViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventGroupViewTests.swift; sourceTree = ""; }; 3A41E559299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/InfoPlist.strings; sourceTree = ""; }; 3A41E55A299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = ""; }; 3A41E55B299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = id; path = id.lproj/Localizable.stringsdict; sourceTree = ""; }; @@ -1032,6 +1035,7 @@ 3A3040EC29A5CB86008A0F29 /* ReplyDescriptionTests.swift */, 3A3040EE29A8FEE9008A0F29 /* EventDetailBarTests.swift */, 3A3040F229A91366008A0F29 /* ProfileViewTests.swift */, + 3A30410029AB12AA008A0F29 /* EventGroupViewTests.swift */, ); path = damusTests; sourceTree = ""; @@ -1490,6 +1494,7 @@ buildActionMask = 2147483647; files = ( 3A3040ED29A5CB86008A0F29 /* ReplyDescriptionTests.swift in Sources */, + 3A30410129AB12AA008A0F29 /* EventGroupViewTests.swift in Sources */, 3ACBCB78295FE5C70037388A /* TimeAgoTests.swift in Sources */, DD597CBD2963D85A00C64D32 /* MarkdownTests.swift in Sources */, 3A3040EF29A8FEE9008A0F29 /* EventDetailBarTests.swift in Sources */, @@ -1604,6 +1609,7 @@ 3A827A19299FC69D00C4D171 /* ru */, 3A3040FA29A91EFC008A0F29 /* zh-HK */, 3A3040FE29A91F31008A0F29 /* zh-TW */, + 3A3040FF29AB02D1008A0F29 /* en-US */, ); name = Localizable.strings; sourceTree = ""; diff --git a/damus/Util/LocalizationUtil.swift b/damus/Util/LocalizationUtil.swift index de496d60..9f729b34 100644 --- a/damus/Util/LocalizationUtil.swift +++ b/damus/Util/LocalizationUtil.swift @@ -7,8 +7,12 @@ import Foundation -func bundleForLocale(locale: Locale) -> Bundle { - let path = Bundle.main.path(forResource: locale.identifier, ofType: "lproj") +func bundleForLocale(locale: Locale?) -> Bundle { + if locale == nil { + return Bundle.main + } + + let path = Bundle.main.path(forResource: locale!.identifier, ofType: "lproj") return path != nil ? (Bundle(path: path!) ?? Bundle.main) : Bundle.main } diff --git a/damus/Views/Notifications/EventGroupView.swift b/damus/Views/Notifications/EventGroupView.swift index ee36dd1e..d2b466a3 100644 --- a/damus/Views/Notifications/EventGroupView.swift +++ b/damus/Views/Notifications/EventGroupView.swift @@ -46,62 +46,86 @@ func determine_reacting_to(our_pubkey: String, ev: NostrEvent?) -> ReactingTo { return .tagged_in } -func determine_reacting_to_text(_ r: ReactingTo) -> String { - switch r { - case .tagged_in: - return "a post you were tagged in" - case .your_post: - return "your post" - case .your_profile: - return "your profile" - } -} - func event_author_name(profiles: Profiles, _ ev: NostrEvent) -> String { let alice_pk = ev.pubkey let alice_prof = profiles.lookup(id: alice_pk) return Profile.displayName(profile: alice_prof, pubkey: alice_pk) } -func reacting_to_text(profiles: Profiles, our_pubkey: String, group: EventGroupType, ev: NostrEvent?) -> String { +/** + Returns a notification string describing user actions in response to an event group type. + + The localization keys read by this function are the following (although some keys may not actually be used in practice): + + "??" - returned when there are no events associated with the specified event group type. + + "reacted_tagged_in_1" - returned when 1 reaction occurred to a post that the current user was tagged in + "reacted_tagged_in_2" - returned when 2 reactions occurred to a post that the current user was tagged in + "reacted_tagged_in_3" - returned when 3 or more reactions occurred to a post that the current user was tagged in + "reacted_your_post_1" - returned when 1 reaction occurred to the current user's post + "reacted_your_post_2" - returned when 2 reactions occurred to the current user's post + "reacted_your_post_3" - returned when 3 or more reactions occurred to the current user's post + "reacted_your_profile_1" - returned when 1 reaction occurred to the current user's profile + "reacted_your_profile_2" - returned when 2 reactions occurred to the current user's profile + "reacted_your_profile_3" - returned when 3 or more reactions occurred to the current user's profile + + "reposted_tagged_in_1" - returned when 1 repost occurred to a post that the current user was tagged in + "reposted_tagged_in_2" - returned when 2 reposts occurred to a post that the current user was tagged in + "reposted_tagged_in_3" - returned when 3 or more reposts occurred to a post that the current user was tagged in + "reposted_your_post_1" - returned when 1 repost occurred to the current user's post + "reposted_your_post_2" - returned when 2 reposts occurred to the current user's post + "reposted_your_post_3" - returned when 3 or more reposts occurred to the current user's post + "reposted_your_profile_1" - returned when 1 repost occurred to the current user's profile + "reposted_your_profile_2" - returned when 2 reposts occurred to the current user's profile + "reposted_your_profile_3" - returned when 3 or more reposts occurred to the current user's profile + + "zapped_tagged_in_1" - returned when 1 zap occurred to a post that the current user was tagged in + "zapped_tagged_in_2" - returned when 2 zaps occurred to a post that the current user was tagged in + "zapped_tagged_in_3" - returned when 3 or more zaps occurred to a post that the current user was tagged in + "zapped_your_post_1" - returned when 1 zap occurred to the current user's post + "zapped_your_post_2" - returned when 2 zaps occurred to the current user's post + "zapped_your_post_3" - returned when 3 or more zaps occurred to the current user's post + "zapped_your_profile_1" - returned when 1 zap occurred to the current user's profile + "zapped_your_profile_2" - returned when 2 zaps occurred to the current user's profile + "zapped_your_profile_3" - returned when 3 or more zaps occurred to the current user's profile + */ +func reacting_to_text(profiles: Profiles, our_pubkey: String, group: EventGroupType, ev: NostrEvent?, locale: Locale? = nil) -> String { let verb = reacting_to_verb(group: group) - let reacting_to = determine_reacting_to(our_pubkey: our_pubkey, ev: ev) - let target = determine_reacting_to_text(reacting_to) - - if group.events.count == 1 { + let localization_key = "\(verb)_\(reacting_to)_\(min(group.events.count, 3))" + let bundle = bundleForLocale(locale: locale) + + switch group.events.count { + case 0: + return NSLocalizedString("??", comment: "") + case 1: let ev = group.events.first! let profile = profiles.lookup(id: ev.pubkey) let display_name = Profile.displayName(profile: profile, pubkey: ev.pubkey) - return String(format: "%@ is %@ %@", display_name, verb, target) - } - - if group.events.count == 2 { + + return String(format: bundle.localizedString(forKey: localization_key, value: bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: localization_key, value: nil, table: nil), table: nil), locale: locale, display_name) + case 2: let alice_name = event_author_name(profiles: profiles, group.events[0]) let bob_name = event_author_name(profiles: profiles, group.events[1]) - - return String(format: "%@ and %@ are %@ %@", alice_name, bob_name, verb, target) - } - - if group.events.count > 2 { + + return String(format: bundle.localizedString(forKey: localization_key, value: bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: localization_key, value: nil, table: nil), table: nil), locale: locale, alice_name, bob_name) + default: let alice_name = event_author_name(profiles: profiles, group.events.first!) let count = group.events.count - 1 - - return String(format: "%@ and %d other people are %@ %@", alice_name, count, verb, target) + + return String(format: bundle.localizedString(forKey: localization_key, value: bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: localization_key, value: nil, table: nil), table: nil), locale: locale, count, alice_name) } - - return "??" } func reacting_to_verb(group: EventGroupType) -> String { switch group { case .reaction: - return "reacting" + return "reacted" case .repost: - return "reposting" + return "reposted" case .zap: fallthrough case .profile_zap: - return "zapping" + return "zapped" } } @@ -111,7 +135,7 @@ struct EventGroupView: View { let group: EventGroupType var GroupDescription: some View { - Text(reacting_to_text(profiles: state.profiles, our_pubkey: state.pubkey, group: group, ev: event)) + Text(verbatim: "\(reacting_to_text(profiles: state.profiles, our_pubkey: state.pubkey, group: group, ev: event))") } func ZapIcon(_ zapgrp: ZapGroup) -> some View { @@ -168,8 +192,9 @@ struct EventGroupView: View { } let test_encoded_post = "{\"id\": \"8ba545ab96959fe0ce7db31bc10f3ac3aa5353bc4428dbf1e56a7be7062516db\",\"pubkey\": \"7e27509ccf1e297e1df164912a43406218f8bd80129424c3ef798ca3ef5c8444\",\"created_at\": 1677013417,\"kind\": 1,\"tags\": [],\"content\": \"hello\",\"sig\": \"93684f15eddf11f42afbdd81828ee9fc35350344d8650c78909099d776e9ad8d959cd5c4bff7045be3b0b255144add43d0feef97940794a1bc9c309791bebe4a\"}" -let test_repost = NostrEvent(id: "", content: test_encoded_post, pubkey: "", kind: 6, tags: [], createdAt: 1) -let test_reposts = [test_repost, test_repost] +let test_repost_1 = NostrEvent(id: "", content: test_encoded_post, pubkey: "pk1", kind: 6, tags: [], createdAt: 1) +let test_repost_2 = NostrEvent(id: "", content: test_encoded_post, pubkey: "pk2", kind: 6, tags: [], createdAt: 1) +let test_reposts = [test_repost_1, test_repost_2] let test_event_group = EventGroup(events: test_reposts) struct EventGroupView_Previews: PreviewProvider { diff --git a/damus/en-US.lproj/Localizable.strings b/damus/en-US.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..17fd6e3eb5baeacc07a884900e88a76448314ba5 GIT binary patch literal 4782 zcmdT`?P|h65ZvEB#Sth4|498?3VnjULI~EjLQ#o|*oSXBcj213uJ0(we zXL2Xcc*bOULe2-+9uZgD>)dN>Ww0}OL>3d|65FvkaBPLTwwO%ney8i%yw$S;z0|DU zx`S=aS#?$V7+-H3uaDx`uX!%gsjVxEF_gyf{N0Mt8l$A?ovX7ioc%3cDKy5h{2gmg zH1Followers + reacted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to a post you were tagged in + other + %2$@ and %1$d others reacted to a post you were tagged in + + + reacted_your_post_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your post + other + %2$@ and %1$d others reacted to your post + + + reacted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your profile + other + %2$@ and %1$d others reacted to your profile + + reactions_count NSStringLocalizedFormatKey @@ -82,6 +130,54 @@ Replying to %2$@, %3$@ & %1$d others + reposted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted a post you were tagged in + other + %2$@ and %1$d others reposted a post you were tagged in + + + reposted_your_post_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your post + other + %2$@ and %1$d others reposted your post + + + reposted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your profile + other + %2$@ and %1$d others reposted your profile + + reposts_count NSStringLocalizedFormatKey @@ -114,6 +210,54 @@ %2$@ sats + zapped_tagged_in_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped a post you were tagged in + other + %2$@ and %1$d others zapped a post you were tagged in + + + zapped_your_post_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your post + other + %2$@ and %1$d others zapped your post + + + zapped_your_profile_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your profile + other + %2$@ and %1$d others zapped your profile + + zaps_count NSStringLocalizedFormatKey diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index e9a01b82..acd00a92 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -32,6 +32,11 @@ + + %@ + %@ + No comment provided by engineer. + %@ %@ %@ %@ @@ -73,6 +78,11 @@ Sentence composed of 2 variables to describe how many people are following a use '%@' is an invalid NIP-05 identifier. It should look like an email. Description of why the nip05 identifier is invalid. + + ?? + ?? + No comment provided by engineer. + API Key (optional) API Key (optional) @@ -1209,6 +1219,66 @@ Label for filter for seeing your posts and replies (instead of only your posts). optional Label indicating that a form input is optional. + + %@ reacted to a post you were tagged in + %@ reacted to a post you were tagged in + Notification that a user reacted to a post that the current user was tagged in + + + %@ and %@ reacted to a post you were tagged in + %@ and %@ reacted to a post you were tagged in + Notification that 2 users reacted to a post that the current user was tagged in + + + %@ reacted to your post + %@ reacted to your post + Notification that a user reacted to the current user's post + + + %@ and %@ reacted to your post + %@ and %@ reacted to your post + Notification that 2 users reacted to the current user's profile + + + %@ reacted to your profile + %@ reacted to your profile + Notification that a user reacted to the current user's profile + + + %@ and %@ reacted to your profile + %@ and %@ reacted to your profile + Notification that 2 users reacted to the current user's profile + + + %@ reposted a post you were tagged in + %@ reposted a post you were tagged in + Notification that a user reposted a post that the current user was tagged in + + + %@ and %@ reposted a post you were tagged in + %@ and %@ reposted a post you were tagged in + Notification that 2 users reposted a post that the current user was tagged in + + + %@ reposted your post + %@ reposted your post + Notification that a user reposted the current user's post + + + %@ and %@ reposted your post + %@ and %@ reposted your post + Notification that 2 users reposted the current user's post + + + %@ reposted your profile + %@ reposted your profile + Notification that a user reposted the current user's profile + + + %@ and %@ reposted your profile + %@ and %@ reposted your profile + Notification that 2 users reposted the current user's profile + satoshi satoshi @@ -1224,6 +1294,36 @@ Label for filter for seeing your posts and replies (instead of only your posts). you You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. + + %@ zapped a post you were tagged in + %@ zapped a post you were tagged in + Notification that a user zapped a post that the current user was tagged in + + + %@ and %@ zapped a post you were tagged in + %@ and %@ zapped a post you were tagged in + Notification that 2 users zapped a post that the current user was tagged in + + + %@ zapped your post + %@ zapped your post + Notification that a user zapped the current user's post + + + %@ and %@ zapped your post + %@ and %@ zapped your post + Notification that 2 users zapped the current user's post + + + %@ zapped your profile + %@ zapped your profile + Notification that a user zapped the current user's profile + + + %@ and %@ zapped your profile + %@ and %@ zapped your profile + Notification that 2 users zapped the current user's profile + ⚡️ %@ ⚡️ %@ @@ -1266,6 +1366,51 @@ Label for filter for seeing your posts and replies (instead of only your posts). %#@FOLLOWERS@ + + %#@REACTED@ + %#@REACTED@ + + + + %2$@ and %1$d other reacted to a post you were tagged in + %2$@ and %1$d other reacted to a post you were tagged in + + + + %2$@ and %1$d others reacted to a post you were tagged in + %2$@ and %1$d others reacted to a post you were tagged in + + + + %#@REACTED@ + %#@REACTED@ + + + + %2$@ and %1$d other reacted to your post + %2$@ and %1$d other reacted to your post + + + + %2$@ and %1$d others reacted to your post + %2$@ and %1$d others reacted to your post + + + + %#@REACTED@ + %#@REACTED@ + + + + %2$@ and %1$d other reacted to your profile + %2$@ and %1$d other reacted to your profile + + + + %2$@ and %1$d others reacted to your profile + %2$@ and %1$d others reacted to your profile + + %#@REACTIONS@ %#@REACTIONS@ @@ -1311,6 +1456,51 @@ Label for filter for seeing your posts and replies (instead of only your posts). Replying to %2$@, %3$@ & %1$d others + + %#@REPOSTED@ + %#@REPOSTED@ + + + + %2$@ and %1$d other reposted a post you were tagged in + %2$@ and %1$d other reposted a post you were tagged in + + + + %2$@ and %1$d others reposted a post you were tagged in + %2$@ and %1$d others reposted a post you were tagged in + + + + %#@REPOSTED@ + %#@REPOSTED@ + + + + %2$@ and %1$d other reposted your post + %2$@ and %1$d other reposted your post + + + + %2$@ and %1$d others reposted your post + %2$@ and %1$d others reposted your post + + + + %#@REPOSTED@ + %#@REPOSTED@ + + + + %2$@ and %1$d other reposted your profile + %2$@ and %1$d other reposted your profile + + + + %2$@ and %1$d others reposted your profile + %2$@ and %1$d others reposted your profile + + %#@REPOSTS@ %#@REPOSTS@ @@ -1341,6 +1531,51 @@ Label for filter for seeing your posts and replies (instead of only your posts). %2$@ sats + + %#@ZAPPED@ + %#@ZAPPED@ + + + + %2$@ and %1$d other zapped a post you were tagged in + %2$@ and %1$d other zapped a post you were tagged in + + + + %2$@ and %1$d others zapped a post you were tagged in + %2$@ and %1$d others zapped a post you were tagged in + + + + %#@ZAPPED@ + %#@ZAPPED@ + + + + %2$@ and %1$d other zapped your post + %2$@ and %1$d other zapped your post + + + + %2$@ and %1$d others zapped your post + %2$@ and %1$d others zapped your post + + + + %#@ZAPPED@ + %#@ZAPPED@ + + + + %2$@ and %1$d other zapped your profile + %2$@ and %1$d other zapped your profile + + + + %2$@ and %1$d others zapped your profile + %2$@ and %1$d others zapped your profile + + %#@ZAPS@ %#@ZAPS@ diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index d13f961a855c88e6b2b16bad68579d7b08a31241..3bf2ad9956ab1e2238f98d006a90db60e2f87f48 100644 GIT binary patch delta 3216 zcmb_eK}#D^5FXK9YyvUHR2wYYU@6!`YD(!rOT2mz!PbgYS%XcrQreJcMU5ErB1o$+ zzd*crDip6C{Rtj=C`JE5e?Z%LFIh9$yxsS9m1Xmm-8VDeeBaFE?fq)s+wHjX?{5YM zF-U?KWFjn6?(r&S8eA9_(Zz~ zAp@O|cKNZ%Ph+nQVy_KDw9kTGB8n;&`)Y^62 zrU||peMHr5&-~Q#2wjnvd8)5bDTP#ZurEv#G0PHaXl) ztGIJm65U|eJIRDSW~XBAiHaibJ z+_uisTyRV}j(8Lgeti2BvHGd^+A# zeaX=J_M_x%ieq9`>gq)k)|fRi3?VvEB3lT9%!DrwoPsN54@xxS4jNXe0XbrpoS%T* zC(*nOiblta3tKz=58>D3tEf1>UZ3Fc>U%dFollowers + reacted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to a post you were tagged in + other + %2$@ and %1$d others reacted to a post you were tagged in + + + reacted_your_post_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your post + other + %2$@ and %1$d others reacted to your post + + + reacted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your profile + other + %2$@ and %1$d others reacted to your profile + + reactions_count NSStringLocalizedFormatKey @@ -82,6 +130,54 @@ Replying to %2$@, %3$@ & %1$d others + reposted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted a post you were tagged in + other + %2$@ and %1$d others reposted a post you were tagged in + + + reposted_your_post_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your post + other + %2$@ and %1$d others reposted your post + + + reposted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your profile + other + %2$@ and %1$d others reposted your profile + + reposts_count NSStringLocalizedFormatKey @@ -114,6 +210,54 @@ %2$@ sats + zapped_tagged_in_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped a post you were tagged in + other + %2$@ and %1$d others zapped a post you were tagged in + + + zapped_your_post_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your post + other + %2$@ and %1$d others zapped your post + + + zapped_your_profile_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your profile + other + %2$@ and %1$d others zapped your profile + + zaps_count NSStringLocalizedFormatKey diff --git a/damusTests/EventGroupViewTests.swift b/damusTests/EventGroupViewTests.swift new file mode 100644 index 00000000..6ccdcf6c --- /dev/null +++ b/damusTests/EventGroupViewTests.swift @@ -0,0 +1,42 @@ +// +// EventGroupViewTests.swift +// damusTests +// +// Created by Terry Yiu on 2/26/23. +// + +import XCTest +@testable import damus + +final class EventGroupViewTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testReactingToText() throws { + let enUsLocale = Locale(identifier: "en-US") + let damusState = test_damus_state() + + let encodedPost = "{\"id\": \"8ba545ab96959fe0ce7db31bc10f3ac3aa5353bc4428dbf1e56a7be7062516db\",\"pubkey\": \"7e27509ccf1e297e1df164912a43406218f8bd80129424c3ef798ca3ef5c8444\",\"created_at\": 1677013417,\"kind\": 1,\"tags\": [],\"content\": \"hello\",\"sig\": \"93684f15eddf11f42afbdd81828ee9fc35350344d8650c78909099d776e9ad8d959cd5c4bff7045be3b0b255144add43d0feef97940794a1bc9c309791bebe4a\"}" + let repost1 = NostrEvent(id: "", content: encodedPost, pubkey: "pk1", kind: NostrKind.boost.rawValue, tags: [], createdAt: 1) + let repost2 = NostrEvent(id: "", content: encodedPost, pubkey: "pk2", kind: NostrKind.boost.rawValue, tags: [], createdAt: 1) + + XCTAssertEqual(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [])), ev: test_event, locale: enUsLocale), "??") + XCTAssertEqual(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [repost1])), ev: test_event, locale: enUsLocale), "pk1:pk1 reposted a post you were tagged in") + XCTAssertEqual(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [repost1, repost2])), ev: test_event, locale: enUsLocale), "pk1:pk1 and pk2:pk2 reposted a post you were tagged in") + XCTAssertEqual(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [repost1, repost2, repost2])), ev: test_event, locale: enUsLocale), "pk1:pk1 and 2 others reposted a post you were tagged in") + + Bundle.main.localizations.map { Locale(identifier: $0) }.forEach { + XCTAssertNoThrow(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [])), ev: test_event, locale: $0), "??") + XCTAssertNoThrow(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [repost1])), ev: test_event, locale: $0)) + XCTAssertNoThrow(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [repost1, repost2])), ev: test_event, locale: $0)) + XCTAssertNoThrow(reacting_to_text(profiles: damusState.profiles, our_pubkey: damusState.pubkey, group: .repost(EventGroup(events: [repost1, repost2, repost2])), ev: test_event, locale: $0)) + } + } + +} diff --git a/devtools/export-source-translation.sh b/devtools/export-source-translation.sh index b1a9b49f..e443317d 100755 --- a/devtools/export-source-translation.sh +++ b/devtools/export-source-translation.sh @@ -4,4 +4,4 @@ xcodebuild -exportLocalizations -project damus.xcodeproj -localizationPath "damus" -exportLanguage en-US # Generates all SwiftUI Text() wrapped localized strings. -genstrings -o "damus/en-US.xcloc/Source Contents/damus/en-US.lproj/" -SwiftUI **/*.swift +genstrings -a -d -o "damus/en-US.xcloc/Source Contents/damus/en-US.lproj/" -SwiftUI **/*.swift From f840fe9c80b6d0c29f5e0c3dc771973813f9e37b Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Sat, 25 Feb 2023 10:29:55 +1300 Subject: [PATCH 02/47] Update source English strings per feedback from translators --- damus/Views/Events/EventMenu.swift | 6 ++-- .../Localized Contents/en-US.xliff | 20 +++++------ .../damus/en-US.lproj/Localizable.strings | Bin 60936 -> 60986 bytes transifex.yml | 34 +++++++++--------- 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/damus/Views/Events/EventMenu.swift b/damus/Views/Events/EventMenu.swift index 57228d91..1669241a 100644 --- a/damus/Views/Events/EventMenu.swift +++ b/damus/Views/Events/EventMenu.swift @@ -47,9 +47,9 @@ struct EventMenuContext: View { notify(.update_bookmarks, event) } label: { let imageName = isBookmarked ? "bookmark.fill" : "bookmark" - let unBookmarkString = NSLocalizedString("Un-Bookmark", comment: "Context menu option for un-bookmarking a note") - let bookmarkString = NSLocalizedString("Bookmark", comment: "Context menu option for bookmarking a note") - Label(isBookmarked ? unBookmarkString : bookmarkString, systemImage: imageName) + let removeBookmarkString = NSLocalizedString("Remove Bookmark", comment: "Context menu option for removing a note bookmark.") + let addBookmarkString = NSLocalizedString("Add Bookmark", comment: "Context menu option for adding a note bookmark.") + Label(isBookmarked ? removeBookmarkString : addBookmarkString, systemImage: imageName) } .onAppear { DispatchQueue.main.asyncAfter(deadline: .now() + 1) { diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index e9a01b82..0ce1a9f5 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -119,6 +119,11 @@ Sentence composed of 2 variables to describe how many people are following a use Button to add recommended relay server. Button to confirm adding user inputted relay. + + Add Bookmark + Add Bookmark + Context menu option for adding a note bookmark. + Add Relay Add Relay @@ -201,11 +206,6 @@ Sentence composed of 2 variables to describe how many people are following a use Blue Wallet Dropdown option label for Lightning wallet, Blue Wallet. - - Bookmark - Bookmark - Context menu option for bookmarking a note - Bookmarks Bookmarks @@ -785,6 +785,11 @@ Label for filter for seeing your posts and replies (instead of only your posts). Relays have been notified and clients will be able to use this information to filter content. Thank you! Description of what was done as a result of sending a report to relay servers. + + Remove Bookmark + Remove Bookmark + Context menu option for removing a note bookmark. + Remove all Remove all @@ -1052,11 +1057,6 @@ Label for filter for seeing your posts and replies (instead of only your posts). URL Example URL to LibreTranslate server - - Un-Bookmark - Un-Bookmark - Context menu option for un-bookmarking a note - Unfollow Unfollow diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index d13f961a855c88e6b2b16bad68579d7b08a31241..cf836b489db95f455ee4da1c973a1dab660d6a27 100644 GIT binary patch delta 151 zcmeCU!@TPb^9Bvs$pvNxlS5>MCeOLbHM!-vfU+Kg0)rNVJ_8qn5`!Z{3J@wVI5Fe{ zVKzf9Ln1>FL-u4wS>efXI&zaAsETa1kzK_%`GKb1=2bdZ3c;owSj57b3she=x&Nv- i$jr$`^Q8FE%?O+)2{L1I-MlkqlLaJ2HnUx0k^lg|w=bjs delta 131 zcmdmWhq>bp^9Bvs$rIE>HouWw#W&f(%3yMdtia@^3bDy=WH=@Z&6fgVp~+`tc_vTL z(%XDQ=Stz^I9-Fy9rNdyfmDl@GUPGnG9)qN17S8pE<++i5kvOm#tLzee%4Ts>}0|D S(r}hA*en4_k.lproj/ + source_file_dir: 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/' + translation_files_expression: 'damus/.lproj/' - filter_type: dir file_format: STRINGS source_file_extension: strings source_language: en_US - source_file_dir: damus/en-US.xcloc/Source Contents/damus/en-US.lproj/ - translation_files_expression: damus/.lproj/ + source_file_dir: 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/' + translation_files_expression: 'damus/.lproj/' -settings: - language_mapping: - de_AT: de-AT - el_GR: el-GR - es_419: es-419 - fr_FR: fr-FR - it_IT: it-IT - lv_LV: lv-LV - pl_PL: pl-PL - pt_PT: pt-PT - tr_TR: tr-TR - zh_CN: zh-CN + settings: + language_mapping: + en_US: en-US + el_GR: el-GR + es_419: es-419 + fr_FR: fr-FR + it_IT: it-IT + lv_LV: lv-LV + pl_PL: pl-PL + pt_PT: pt-PT + tr_TR: tr-TR + zh_CN: zh-CN + zh_HK: zh-HK + zh_TW: zh-TW \ No newline at end of file From 16156f4d9ae04f30ae8ff44b9ccc5ef3a3876042 Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Sun, 26 Feb 2023 08:21:33 +1300 Subject: [PATCH 03/47] Fix number formatting for Arabic and other languages --- damus/Util/LocalizationUtil.swift | 6 ------ damus/Views/ActionBar/EventDetailBar.swift | 9 +++------ damus/Views/ProfileView.swift | 9 +++------ .../Localized Contents/en-US.xliff | 5 +++++ .../damus/en-US.lproj/Localizable.strings | Bin 60986 -> 61370 bytes 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/damus/Util/LocalizationUtil.swift b/damus/Util/LocalizationUtil.swift index de496d60..3abb3e9a 100644 --- a/damus/Util/LocalizationUtil.swift +++ b/damus/Util/LocalizationUtil.swift @@ -11,9 +11,3 @@ func bundleForLocale(locale: Locale) -> Bundle { let path = Bundle.main.path(forResource: locale.identifier, ofType: "lproj") return path != nil ? (Bundle(path: path!) ?? Bundle.main) : Bundle.main } - -func formatInt(_ int: Int) -> String { - let numberFormatter = NumberFormatter() - numberFormatter.numberStyle = .decimal - return numberFormatter.string(from: NSNumber(integerLiteral: int)) ?? "\(int)" -} diff --git a/damus/Views/ActionBar/EventDetailBar.swift b/damus/Views/ActionBar/EventDetailBar.swift index c9005855..799f0925 100644 --- a/damus/Views/ActionBar/EventDetailBar.swift +++ b/damus/Views/ActionBar/EventDetailBar.swift @@ -26,18 +26,16 @@ struct EventDetailBar: View { HStack { if bar.boosts > 0 { NavigationLink(destination: RepostsView(damus_state: state, model: RepostsModel(state: state, target: target))) { - let count = Text(verbatim: "\(formatInt(bar.boosts))").font(.body.bold()) let noun = Text(verbatim: "\(repostsCountString(bar.boosts))").foregroundColor(.gray) - Text("\(count) \(noun)", comment: "Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.") + Text("\(Text("\(bar.boosts)").font(.body.bold())) \(noun)", comment: "Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.") } .buttonStyle(PlainButtonStyle()) } if bar.likes > 0 { NavigationLink(destination: ReactionsView(damus_state: state, model: ReactionsModel(state: state, target: target))) { - let count = Text(verbatim: "\(formatInt(bar.likes))").font(.body.bold()) let noun = Text(verbatim: "\(reactionsCountString(bar.likes))").foregroundColor(.gray) - Text("\(count) \(noun)", comment: "Sentence composed of 2 variables to describe how many reactions there are on a post. In source English, the first variable is the number of reactions, and the second variable is 'Reaction' or 'Reactions'.") + Text("\(Text("\(bar.likes)").font(.body.bold())) \(noun)", comment: "Sentence composed of 2 variables to describe how many reactions there are on a post. In source English, the first variable is the number of reactions, and the second variable is 'Reaction' or 'Reactions'.") } .buttonStyle(PlainButtonStyle()) } @@ -45,9 +43,8 @@ struct EventDetailBar: View { if bar.zaps > 0 { let dst = ZapsView(state: state, target: .note(id: target, author: target_pk)) NavigationLink(destination: dst) { - let count = Text(verbatim: "\(formatInt(bar.zaps))").font(.body.bold()) let noun = Text(verbatim: "\(zapsCountString(bar.zaps))").foregroundColor(.gray) - Text("\(count) \(noun)", comment: "Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.") + Text("\(Text("\(bar.zaps)").font(.body.bold())) \(noun)", comment: "Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.") } .buttonStyle(PlainButtonStyle()) } diff --git a/damus/Views/ProfileView.swift b/damus/Views/ProfileView.swift index 7fe3b55c..8e4c3272 100644 --- a/damus/Views/ProfileView.swift +++ b/damus/Views/ProfileView.swift @@ -342,9 +342,8 @@ struct ProfileView: View { .foregroundColor(.gray) } else { let followerCount = followers.count! - let count_text = Text(verbatim: "\(formatInt(followerCount))").font(.subheadline.weight(.medium)) let noun_text = Text(verbatim: "\(followersCountString(followerCount))").font(.subheadline).foregroundColor(.gray) - Text("\(count_text) \(noun_text)", comment: "Sentence composed of 2 variables to describe how many people are following a user. In source English, the first variable is the number of followers, and the second variable is 'Follower' or 'Followers'.") + Text("\(Text("\(followerCount)").font(.subheadline.weight(.medium))) \(noun_text)", comment: "Sentence composed of 2 variables to describe how many people are following a user. In source English, the first variable is the number of followers, and the second variable is 'Follower' or 'Followers'.") } } } @@ -368,9 +367,8 @@ struct ProfileView: View { let following_model = FollowingModel(damus_state: damus_state, contacts: contacts) NavigationLink(destination: FollowingView(damus_state: damus_state, following: following_model, whos: profile.pubkey)) { HStack { - let count_text = Text(verbatim: "\(formatInt(profile.following))").font(.subheadline.weight(.medium)) let noun_text = Text("Following", comment: "Text on the user profile page next to the number of accounts a user is following.").font(.subheadline).foregroundColor(.gray) - Text("\(count_text) \(noun_text)", comment: "Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.") + Text("\(Text("\(profile.following)").font(.subheadline.weight(.medium))) \(noun_text)", comment: "Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.") } } .buttonStyle(PlainButtonStyle()) @@ -393,9 +391,8 @@ struct ProfileView: View { if let relays = profile.relays { // Only open relay config view if the user is logged in with private key and they are looking at their own profile. - let count_text = Text(verbatim: "\(formatInt(relays.keys.count))").font(.subheadline.weight(.medium)) let noun_text = Text(verbatim: "\(relaysCountString(relays.keys.count))").font(.subheadline).foregroundColor(.gray) - let relay_text = Text("\(count_text) \(noun_text)", comment: "Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.") + let relay_text = Text("\(Text("\(relays.keys.count)").font(.subheadline.weight(.medium))) \(noun_text)", comment: "Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.") if profile.pubkey == damus_state.pubkey && damus_state.is_privkey_user { NavigationLink(destination: RelayConfigView(state: damus_state)) { relay_text diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index 0ce1a9f5..686f43af 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -58,6 +58,11 @@ Sentence composed of 2 variables to describe how many people are following a use %@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet. Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. + + %lld + %lld + No comment provided by engineer. + %lld/%lld %lld/%lld diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index cf836b489db95f455ee4da1c973a1dab660d6a27..c4ac875aab91ec67f8ec58d23d45ed17451c0b0d 100644 GIT binary patch delta 383 zcmdmWhk4h1W~TrDCQlFx5L9JwU{GREV6X*ZB?cgGa$}qH*sR30jbm~` z3(Mpcj2WBPF)v}<{EclIle!*58bdxq9zzL(27?|$5|Ew3Pzhz_0NEN0njkp2n^V$| zNVP!gRT+#JRDcc$Y!L?9m$k9XhIz7vzS!mrRx!p<1qLk!eFiRw8-Z3KJD`}M6zGTy zhE#?`pyfFXnLwwd0@aiQ$xMcHpbW&Jxj=pjP^6S07vaD_Dw&1wz~+-e&6$%IWZ6u< ZSCcS#K?2+4pqhZm6WVw-d)0m@005xCSjGSV delta 79 zcmdmWpLy3EW~TrDHm~E`z`Xe%=K{vfaY8zblRX4VHqYXo#WeYWu*75s5sAqH9XuQB j1UNTGh?HbbR!Cx-oL3hxSs}+}GDlqkNOJS3x(@{aA?P2y From 01630d0a4ce6ff49cf1dc1dd09b231186b4e83f1 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 00:27:17 +0000 Subject: [PATCH 04/47] Apply translations in zh_CN translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'zh_CN' language. --- damus/zh-CN.lproj/Localizable.strings | Bin 55408 -> 55968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/zh-CN.lproj/Localizable.strings b/damus/zh-CN.lproj/Localizable.strings index e62687a6bfdafe0be128b22a41d839afa6be5618..c6d1a9bcd8003ec716e0e653b3486badf9b41d94 100644 GIT binary patch delta 945 zcmZWnKTK0$5WiA{*Gg-BQHoZ|;{}^Sp-={micK}dU?N0;#?&}aq_oxkOKB-hFksZl zp-s<_*f6wC4i1nHjRP@m>LlpmV2Fc*ql3`_L%pwHUoE-3_uYMW_q)5_cRyCtg%|4j z(oSgyvyE|P)j8FyK`5y3?0YSX8DteMX%p9iA4 z7xaRburI(Ai3AsGVwCFJ;lk)C--n0jIwrFR<~kkbJME_0_!+{Og&_DKg~cbWL$x)l z{8iQWqbPNG%`+Zc%sJUho6vwG4(s84sCduO-Yn4+Ard7waP51RJ$H1-IDcEf!JGYf zwfP3lyPMEzG~ll>5zSxjM4?F|X`l?=Fyntq@Zfy_@+tecWR!ub9Mq z{!Sa;6%8-LTbaep4dbC2o^d#5l55{e0o_hdE%Dc4i@8589LV>fJ$YoI27`v;V?^mc zSsrO`TS({o_irCP6pm0o6I=&!;o8lo2t7SteOx`kAf75&oCRD!6bB`^?Av{cd* zO;KEe2$80S8l$F${(@+1NjtxklBR};%f0u!IOlV}_vnIqJ>z7Bd?Ak+qlG=GLKV!# z)kxW!Voz$dLlD9cf>p4A9cIX$g|(6;kZl8AT)3mE=YLrXCVa0opo%+Ll-8dE+z3NZp$fH|0^!2&E2)*RI&=v;(($`m1&$)BZ243@v) z#{Q^R5uT0L<~Yop=&|ac35^prOnQ4ZCrJ$tL`b6`jTb)QM35+~kT*@bx#<+~Y!oT4 z>j%@1NatrneDD(0uYp*RpeKf@o2a;zZWD}>FVG5$BH*33`d=Bg;@j)ZZZizfhpFk? z+DV+l6GKT84_;~18c~xXH;)pZPH!gaA=+jr%K$ok7EFy)q4QYD9J;I=H(XjwwJ6z9 zqqLF*_&x=mCM|5x@zRPLyK2mN?Q#!^8NvPgZVc-5X{j5t8YLyPX}^N?`Y!9(<9tI0 R26zX%#hml2;nK{vPA#@ From 8cc561b8c6fa6fe881399c29a203eaabd7c9e1a4 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 03:07:55 +0000 Subject: [PATCH 05/47] Apply translations in ja translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ja' language. --- damus/ja.lproj/Localizable.strings | Bin 57160 -> 57786 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ja.lproj/Localizable.strings b/damus/ja.lproj/Localizable.strings index b2b85e53bbebb4391b079c215a94a380226d1921..bce557ecbddc9baa6ac786e126f1c51bd87192a3 100644 GIT binary patch delta 1011 zcmZuwUr1A76hFFIx4GF|x>?P38wtZ~9_%5A8Y)9WMZ>I!qMBv8Y@5xi=8Gfnp)4>w zVPFp}7(Ga0@jYcBfe=E3L7-?L6xBmdRu6$J?cD3X+l-HU@ArMb-}gJ``<-(q#|>i> z2IKP5@)Bi9QSrp$Gl*U(o<_q{CR(^}7K>JU8s%gvLN*Ph(`R!Yxh;7V_n67&w$b9d zW6#?XTgAL>(m=AXk#j0b_;=1_(0IZ__YO-`<+9P;8B=v5M0m792m%o0uNPz}gkms( z8_M7^4;ji+IBwoM%8whSaRNti9+UiT6`8J&7W!W3-JN=%oynaLgeK@BS17+WHK-0} z=34m8D*q2mL%~8a?#~hS1ADfRT$x45fJAd8w(L!D=y%CpgA8T#W3Yh6{QH>Y6N3l8 zxyc)r=xLRmN-sF6FJ`7M_F76dm}%gYhvJV)w7uRuf3ArWR7V3}<_0J{i$IvND{^W6 zj@8k|E;chFLwFrmAVN1yE=vF|@rXbNV+z%6FQy~6BysL^;|_W)tTcVXdgvO%0k%BI zlx7wQ@j9x>HL-t9>Op9SB1XEPh1V;XLf1dI$hysWUeD4OvSw9Rh5{(n>2COW5^rNG zuHl)-!dO;W46 zk%O+8=y9ckhJ(AbvQ|9!Sx&w>BxiR{EH#kYI_xmN8#VdWHsiV4xofR-h8Z2aZee>> zBh~t>ocXu=Rkd!$70qO|6sn4%nH}O;kcwyX$?BE-8)^68MbxE^HCT>)*n?-0FdYS( k_y$Mt1zY(E-{M#PSE||UKmGA~T6pQ9_d!Y2%q5L~0pa`=+i@95X{?^E)j$w#|Kp z9?FvwLhV=sfB{)Fx$u_ZWD^dJ$wEvvo6m%032!#Zj?mfcFhj|CQjf^yeRuw_003XZ Bs#*X5 From a448f610c0b626a9172c2e9aa9171917cbf4e724 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 10:05:36 +0000 Subject: [PATCH 06/47] Apply translations in nl translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'nl' language. --- damus/nl.lproj/Localizable.strings | Bin 61466 -> 62216 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings index 79d1271b0c528f26a9e1dbf578136fcc0bd54575..49bfa7b0babdb62d4d64af41414530c4e98b5395 100644 GIT binary patch delta 1071 zcmah|O=wd=5S}zPrfE!GlG;W|$fhxZwST7|YOqxl)Pku5N+qDFeb#9Hn!MJZOM|DP zAea#kJw@=M2SFCWlMoP3Ry=r7|sUEzxb>^jMVp5UECcCpU-^_g9>{7+J_{F$$ zV|`P&WpOuenM~yPqQ8M5mUl&$BndA?L(|~POP1-t_+VI0JH!3zaW>>Df$QI4= zoojFhR$e>h{k;(rX2Zj1@jJt5$bbea2$-T>2ChR2;*g{NL9+G15LloWMq!#h0muLL z!EyiYphh;1kJFddagwx~h8vK8YjB(Ha*)Tz2Lkx}h+A6xRy%$j7_>J-&A#eEt>~O+ zE+bEn^8}?5V7;KGXvkBM0>ZR?vs{fST}7XQCXW(G61hxff~cLLm=v9J zI*v-LsASd95pfwby!hFN!tNR0vQx>85{_*m2?)YS15%y0G0Mcb1fgd1Y`UlXne`6y zyi9UpE`a5zmJ{D}{{IA>--_i~X_60@&w70V<_MRGnc7Z3xmJ348ZX_mU?I967dveD zt6*Aa5s|`qAQ^-c)h0*P`>KueBzery?N#cRS*&*4`UF_?TXe5MKkb+sW=EqqCPF|0 zpMLXVA#7f#vv`v95j6HZ{QMkhT(bJC*FV}L`v9$Zs!Y|n=Z916rPc?N&6$~^%j8Ge V(}`y(Wui?Q=J=J#x8I}fe*hNV`1$|< delta 764 zcmchT(JMo76vvOD2f6b=GsB(D*rbFvo}`^pL}^JW z5A-XKp8ORan35L}Z=S~ajfcyVJm^=yd(QWs&iC{CZaxTmIl=gzf6wD{w>xtiU~VyE z$!r)|K#&aV&Aemqcp(CDn1e--!3z^qhhh1v(x{ffQ#dXhDt9#eavBegoMeLmA$p$f z67V`FV&X(%Gp5QSytmr?dd~$&k#7_xVVwLlm?oM@B3Pn(8m8#aCtHmAFexdB>6!fB znf|@3YM1D{x;=f!Co54nN9F6g6PqZ8)=V24`zuMC_ZT_Bhu#v~EdqI0-Jmq`^~ zsxoee#A2S!C%*?@$13nNBsz4OZqp*(IcreKS#ir{VUj~JW3JwgSG6|OdM!+;mP&Co z+r)ajiaE1kL)(Cz`Pw3Ncy=w~;fRFoYNIJgK_{{0u^C$}GL{)S(XHBXeay^GL-}&H RKW}YftJ&jzcK8%EeE`eDzF7bO From 7d852eb33bb6da526e7d76817cf7a046e7a943ba Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 10:05:42 +0000 Subject: [PATCH 07/47] Apply translations in nl translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'nl' language. From b4fcb58bcb94377417b41e29a1d72aef0405bda6 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 10:06:11 +0000 Subject: [PATCH 08/47] Apply translations in nl translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'nl' language. --- damus/nl.lproj/Localizable.strings | Bin 62216 -> 62216 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings index 49bfa7b0babdb62d4d64af41414530c4e98b5395..fee819d4162ce103ea4095dfc836e93f2eb50416 100644 GIT binary patch delta 46 zcmV+}0MY-5<^zc41F$GClm1Eu2Xg>$0CE6jlaZDalR$|KldvchlTa}nlkhMMvyd=& E!lG&s-2eap delta 46 zcmeBp#@z9Yd4q-le<(vHLkU9_Ln=caLkdIc Date: Sat, 25 Feb 2023 12:18:05 +0000 Subject: [PATCH 09/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 59388 -> 60198 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index 4dc7b22580ab735993121d7acb46c46cda289d9e..30cd8ffb40d0ea5bf068c2f81999fb241a0419da 100644 GIT binary patch delta 1121 zcmaJ=OHWf#5FRX^lnS+69tA|XsYz)IcL6koNs0}KAB#wnzFYx zw>GueyhW3?W}eT|n)2OQn%QDC@q49&Yvzi%=TvwRi_bw$;S){~ z5GRC6L9U)DIN%gP5fatHEgE^nU%>Cm3bi&hY~_b;&%q2w{C&yJ_s5j_%p@k@JV`N% z(i9{kolNUz4=VChq>u`@9`|Ys9+%)npOvp(H}mZ}CI27iTv~s$B0zDh)JsC5R-D2s zq`MXo8jmNtk-0=#`{_^ne>0Ic_xu>+M z$byXJx`ga+Py*5@jd1nzB0lofW*-C1gV3lnva3(fD6iyKaLrpq%f4bMm2$Nx)$93Z<=!xPsK@;SLW{QSz-qt0g%$+$6m(x+{b#2@6tI~05O7ojy z!v!uvA_6W9j8W-`SQ_zrWDDiUa5AMNKTg_XnKY*dyl5b?|F50Wix3iFQ72l_N_%Q7 zBHGEPFT(uewS~WRRbI@7Wqawc?^@qCqH{9*ktzww%fQ~U)n6)HuLzFT-9r5@uHF8!=e2pE==BYVz? z=Ss>V;JpQM%kF*Jgo$S0DuI9%duNIQjX{pwSQv3r7PdWK@ zawL7q!9gjdT(}SpS}8|4O2YG*`H_36>E|}`oUupq2H>_d|`la#R zsU8UfS28|mbk7-28_X4h3b>&aWN<(;^wPBN40$LJ$2i0xLi3Z5Ai6kdrs++<82x!? zO;H}BN&!+|jQ&6BRoa0&%&H!JC+&C>l<|JZhDTxR(z+S5F5}z?SrdXB88%7~$r7T# z$wQX12$?uQuYgpk@?F;j%8!btR1s@WkbVY)Vwx7sP&Z+}lfDXQlqczAgcWntGEe>~ z&`s9?{mjjrOl6%cz!dm@IMXK`+E4n*25EQ`mMg{ZcX}7@MCG!n#1628@3! Date: Sat, 25 Feb 2023 12:24:17 +0000 Subject: [PATCH 10/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 60198 -> 60190 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index 30cd8ffb40d0ea5bf068c2f81999fb241a0419da..3b3d777c6f8f497bbb3ed549745306f20d65338d 100644 GIT binary patch delta 26 icmZ2>jd|WR<_%dolV_dcn(XmZXmXS+-{v_wUHbs0H4Ezi delta 26 icmbPtjd|HM<_%dolfAlxCVR*#OrDn`vw4F~-aY`Db_+rP From c635f3d77a9853ed7612672adfdfc081a1e65362 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 12:24:29 +0000 Subject: [PATCH 11/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 60190 -> 60194 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index 3b3d777c6f8f497bbb3ed549745306f20d65338d..f306372174e12e15b60301ca8158bf98a92448b4 100644 GIT binary patch delta 24 gcmbPtjd{^E<_&Jfoa$^wZ0c+-Y?_ Date: Sat, 25 Feb 2023 12:24:37 +0000 Subject: [PATCH 12/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 60194 -> 60198 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index f306372174e12e15b60301ca8158bf98a92448b4..a6058b0ee011e06ed86f4d0972a73d4b02195c2f 100644 GIT binary patch delta 18 acmZ2jd{^E<_$%2SzXzT*>pEo&t2^c09y?RGXMYp From 9f22234926f7552308032f05a8ae65d57efe2c34 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 12:28:56 +0000 Subject: [PATCH 13/47] Apply translations in cs translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'cs' language. --- damus/cs.lproj/Localizable.strings | Bin 61358 -> 62064 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/cs.lproj/Localizable.strings b/damus/cs.lproj/Localizable.strings index 6a8ba2d8b9d2b5c5bee1fb0baaf09d1a87022d6f..e4521ae6e60d786d113ab548106410fe71e781a4 100644 GIT binary patch delta 1015 zcmZWo-%C?*6hAlDm`hz=e{AZ~yNO{Y+k&zm5^j6yhnbKNjtOme$+fvHch&Sk3wr7$ z>h#n@C_VKej{6b>QP3aILr;OG5SgN6&_hqN&-c3A+_>Cv&-a|q=X}oRd$#ngV)uK6 zX)m{z(+6snEA&^D3zD9z?UwkbP17$OdwGN();V|$@14_C+`1CVrr%rizjca<2S;Rm zxw+HKX}^z6E}4@XR$G)(c;Ylp5t^VlXWQy(6$+M|UUxNB&(b<2a6Tu+X_5mYExdHf z@_JjbvFC-yR*LYxwexmHzEQ$Y8B%D9Vx-bEzPiXuR&tm2LzNrZ%Xr-sD)eP(F`zqr zXU+WiaU*Y?lWWW9`B_hUdjLWcMHIJ;@n$iiX0(q;svhY1)xp7NEBn4WdAF&P|AZa< z#L>)3sESu@X6_GnJQ z_{%3*{}H}c579O3cFMiN#R!eUg(N@<#HHZ90ITpu#i<4dx)D#)7~=h$CcgQM?fmWH zDi5muyV#%SRj7mfMZ5(s2hg`#+5x*TViZw=B8Uxy?z;cmE0&{DG!&wyII>|cTakAQ zExjezUF7vm&S7_rm!A7@7&^g#G)NLt70&3e6y|8LkTN1&iS*2307=eVZrv!$r${!K)BBHQF)q z;!?-4hnmr2PFe>(Nt-|xk2Yhlr)gMHsD2RkUkyQ;naVQlxy}wQ{Tku)X PMl8U=A50Hz4ITXlYV-L( delta 744 zcmchU!Ak;B5XL80#XM9<7DmA$imRlScv1|52s#uS6hul;WF>8FWhS1gOSeu#5!9(` z5XI|Q(f`mj45CvIdGrw4w-#8p4iUq?_h#O=GryTvewNN3C3CG>tFl_sgvWks6GKv) zNmQ(dCSQmaNT*fWB!xmWhx0rYzfKy?3i%D={bpCFmaShKW{zthQ&4_zP*v!eZ2%n@BexHtPr!gIsHZZdVl-KHT21t(9;LT!=V^|G51(EN% z7}EZX^wuLr!^_YY$xsx~qK<6F3;3|hGz?#Z>BbN^p6bzM`cDd(`_Bf^zv^r}oKgRi z)X%#ar^^k_1U`42?CS=8j&IUIwvV<5cW0MXlzZA+dFHK8RDw|}R}Va*6utKH&Qu4- tQhgQ`liT3qmwt}g6u#woT@nnxIUMEC22 Date: Sat, 25 Feb 2023 12:38:58 +0000 Subject: [PATCH 14/47] Apply translations in el_GR translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'el_GR' language. --- damus/el-GR.lproj/Localizable.strings | Bin 62948 -> 63660 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/el-GR.lproj/Localizable.strings b/damus/el-GR.lproj/Localizable.strings index 165342676d6e22f821e8d4bfd59b74c9538b4dae..1953dae1ec44e22be08e19a19919fcb04155b027 100644 GIT binary patch delta 1062 zcma)5-Aj{E7=QGr%{ATY9NMPkJF^fGzk()~qS8fCN(4m(`90FwSGu$$^gjsX2?Z%K zuw7}n4x)ml<{$(KFZvIPZh~4D-DvW15shD)C$6JhDHI+~!zYW^>NAn5RzFZ9X z&t^)$wK0vgHWNo)XUNuq8yS4{d?`m747}~I)O*QC0dgTj7gj#HPaf)|e*7z7E2By> zB6kz@;L)l1?=$?saooHi!XhMe3JHn-8o#`0$F-4J3>_mQZqhx=MCc*JiNxG@DDE_MAiMxy9)?qGJ{}x!L0^;*sfN ztiLFc@14(2^QSWguItWYul)iWZ8fZSnAqP|#Z#5a=1w=FC!JI7n`?<2sd#`tfVRTl zh2dSW1~6hd_CwT*eash7YtGRMcrL53JMm;9OIP-C$CMGz9oI-uY>9R7wJA2l0yt9& z(rHc1!@3092K-^Q<1t6B3=Tx9_Qf))8d1$EhGMOEBJ}^{bL}8j4VuhoyuC>XC@f~s zj6{2}7WZV8Di(OP$tK6Aw=eUWG_w7-o!{Ixaa~sSsOsXdfR&!WN7SS0?rX~xmGZu{ zZ{fs4czZ#MA|N)?zq37tKM*BHQK&9Nl$ccV@b#Y#?x-=e$A@_a99MwxtoVqPLRBHX uE>q_)4#m;?zH;nTtE`-P}vBIw=PRilPz4Skw%n`%@ delta 709 zcmZ4Uk@?AMW|sf|{{NdC_atYt3YQt@W*24wrp-UtrZK7OF{Cl%GvqOpFlaF7F(d)m zDGZfRRt}J@!Jr9(lY2QOiB_w)LUOVTbI!&xJLbtzhq)$yFyPso#VW=)`3j$aE3$RP z45dITGZ<1C5`k9bFk}K9k_xoE97tv|qyuFj&dLSyQ-C6+47mvBxT89qe6xVg-5e$C zz%tn`-DvW?SdGbcu}1YVK%WON6am8{4QO!=*jXSa6f+b6d5OR<@&l3}hiL#skkwf+ zD4>bxfJH!F%?7HkWB{os2YN0aXc{PV)q%7EgBy^a1BCe??@z9c<)^C~6c{El?_xf~ zyqkGH^HJs)`^JH*wgTeyhUd_plv7(YnK-by=u@VE443NKZ^8Yx)&1=NN z*d{wX71?}Cu8M!NjD7~&WQCb3n;p#Ns7;oM5u02SYrq-+47;Mqk3Ser{&rq$5|iI# hz6_4dkK$59Hv5%)FqkZ(Z?M^7*#d8{F;1VeSOFkwtP21D From b1b4b5b6c91c07f883a6651d617b187d459d4270 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 18:38:21 +0000 Subject: [PATCH 15/47] Apply translations in fa translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings' on the 'fa' language. --- damus/fa.lproj/InfoPlist.strings | Bin 0 -> 782 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 damus/fa.lproj/InfoPlist.strings diff --git a/damus/fa.lproj/InfoPlist.strings b/damus/fa.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..f153d01cbfa0f1101c5cc77dc81e7471276d4a23 GIT binary patch literal 782 zcmbV~O-chn5QX2W7Lr3Wvl$tZX~&p_hzoU+QIHT24-k#0pfQ*zc%U!1nUe(v9S0blVy=knGo^*#b(xaxDU=8(wJ?4BaUlMukDAJjFYnXfu(O<GeM)RV zO*CVFfwM!ICELEPe((WZV>csf-m$eTgZsWY74TnJ!Y!zgT8`z^v|{CJb7m+Myt{av z=4FiMmRbjNhqvGQZQ?o51J%!1PM0vbfz^-|`glTTLvJgF(|_nt=U>mh%)Pxb9;P+l zdOj-dhc+jo;R>`0iX1RMF=uSeQqO|7;NL^Z1-dQu%FJ62Z-Q2Fsdt7II#A`U@^nEp NoCoJEWkSPLegp8ec%=XU literal 0 HcmV?d00001 From 3f3e59488a9fb719682ae01588da9a7869ac8384 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:32:04 +0000 Subject: [PATCH 16/47] Apply translations in fa translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'fa' language. --- damus/fa.lproj/Localizable.strings | Bin 0 -> 61876 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 damus/fa.lproj/Localizable.strings diff --git a/damus/fa.lproj/Localizable.strings b/damus/fa.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..1eada13b2e69f5fe2e606131c5de6e1e06e9205b GIT binary patch literal 61876 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 Date: Sat, 25 Feb 2023 19:39:42 +0000 Subject: [PATCH 17/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 60198 -> 60584 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index a6058b0ee011e06ed86f4d0972a73d4b02195c2f..0e1469b87fb86419c7880190b799050717b6d344 100644 GIT binary patch delta 369 zcmZ2>jd{gQW|sf|{{NeNPc(pEmBE2Qi9vzE7KoJ?R5!2YEa#YfVI9k64`v>w%|FmXfWt8Bmvne43$t;4v?+Epb3JLdpRXFh*ZlkdBJ=MkTsJ%m@_t( z*)dP{y2&-Uz?5t9hpTLx^H_x#Llqdb81xyqK#l@B5!KvchEkwAG8j@B5`p&TFk}K< zmkLx<4kR-f(t$D%x8?%*DL|1@hFpXjJ*Z?B*bkePgdSu}evq#)Sx$pvvV)Vz9|NbukDwE#}Z?kL;J_EB#37`S9su3&!lavp1v*rq#0s$bC zKNJ^}juRG>{@7-r+6c3x6X0l*9$^NPFnv^$K-?gcpeYEGE=3fRz Date: Sat, 25 Feb 2023 19:39:53 +0000 Subject: [PATCH 18/47] Apply translations in zh_CN translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'zh_CN' language. --- damus/zh-CN.lproj/Localizable.strings | Bin 55968 -> 56352 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/zh-CN.lproj/Localizable.strings b/damus/zh-CN.lproj/Localizable.strings index c6d1a9bcd8003ec716e0e653b3486badf9b41d94..3b11b9874018de0cc1ae9d13142c3d8eeaacf9ef 100644 GIT binary patch delta 351 zcmZ3mm3hGqW|sf|{{NdiMmBE2Qi9vzE7KoJ?R5!2XoXfu1g;{`U^AEOZOzL_J zX$<)cc?=~C8Vq_2NkDcALnV}z17vG3XoBG6UQS6(BGob|O#Uk Date: Sat, 25 Feb 2023 19:40:09 +0000 Subject: [PATCH 19/47] Apply translations in cs translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'cs' language. --- damus/cs.lproj/Localizable.strings | Bin 62064 -> 62448 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/cs.lproj/Localizable.strings b/damus/cs.lproj/Localizable.strings index e4521ae6e60d786d113ab548106410fe71e781a4..8e8d13af924c5130cfdcd5a491e463140af43679 100644 GIT binary patch delta 377 zcmezHg!#jBW|sf|{{Ne7P!}Mm%HY7D#Gt@n3&ctcK;GoWySkh2aI$f3c3~D^+WdoU z8k4#nLmERqLmop3g9d{hLlTgk!cYlir@$x7*xR4TQhJ0 zp+1AwWJl)wjb(PslR4PLCLg%NvN?}ch%r=wK?^9!1#utHT4cu*Gn4`yl);e7kO*{0 z4nro;nW;cE9|NbukDwCZIZ?h^7J_EA|3ZMbAXc8;|lb8&2v!n}}0s$bC z{S+4oAOIx*G5{n1K$8LAEtB-$NU_?!2(w}o6l{|efmoApCm@raDhQJhMii5>fMSyn K-wd;Ofp~ISt|!U> From 63ab151a5e12224bd84ea832a0a8732b23a987b5 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:40:15 +0000 Subject: [PATCH 20/47] Apply translations in nl translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'nl' language. --- damus/nl.lproj/Localizable.strings | Bin 62216 -> 62600 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings index fee819d4162ce103ea4095dfc836e93f2eb50416..9f36f3056b11e638ff1fee7a49fcd102dbee935b 100644 GIT binary patch delta 357 zcmeBp#@z9endSe#|Nkb(B?a)RGB_|OF(@$D0n$HHl+V zJIiJdW*(-^KiH-*Y3ebgG2}DkF_bW9Fz7KP0of@Gl~7g=kgdU>35E)j1BJ!aiBvs# z?h;9$HIqGv%70|)>9|NbukDwA;xZ?pamJ_EDd37`S9JQ6GclO_;!vv>=d0s$bC z(G(Yx9uydpz={m9fb0mfHWUPGll~V5liYw%lioBSlkOe}la96&lXie$lfa4$vp9iJ EbJss8f&c&j From b8614f055c41ae2e9b1d2b9d5066367d1532a9b5 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:41:05 +0000 Subject: [PATCH 21/47] Apply translations in el_GR translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'el_GR' language. --- damus/el-GR.lproj/Localizable.strings | Bin 63660 -> 64044 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/el-GR.lproj/Localizable.strings b/damus/el-GR.lproj/Localizable.strings index 1953dae1ec44e22be08e19a19919fcb04155b027..df41af5f6e90c017eaac486d8c348775ba936669 100644 GIT binary patch delta 343 zcmZ4Uk$KG*W|sf|{{Ne-Cmz7B%HY7D#Gt@n3&ctcs+-qxuI1e9!YshF`3KuHCUrfA zG=_YJJcbem4F)}iBp^G5p%Ti<0kSn1G(m83FQ+8YY86*VPIh6=*;r=BJUQwx*W?cd zJe#vv#TX}F;S+F0wyv0=6li4zLn=ce(5f7UOrS$jftHs8$xMcHpbW%Wxj=pjP^6S0 z7vUUtRHu_~7SOqyqlDA)CL8oBOx|F_G1)I)WO7(j+T;U`QIiWCc{ZPDdQu7i++R~~ delta 69 zcmV-L0J{II^aHH%0|fv6|NgTu53mEXfC``iv)~de0kfzJ4g-^76d04j6d02}D-5xK bkO{Ne6lQLd;)7a~K!c)_@Inl;NQC5dNZcOk From ff1b4d724d2c9159649289eabeaadd8c24b1d29b Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:42:02 +0000 Subject: [PATCH 22/47] Apply translations in ja translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ja' language. --- damus/ja.lproj/Localizable.strings | Bin 57786 -> 58170 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ja.lproj/Localizable.strings b/damus/ja.lproj/Localizable.strings index bce557ecbddc9baa6ac786e126f1c51bd87192a3..f2f066d34601e31466fb5f1b803faf4075dd05e0 100644 GIT binary patch delta 385 zcmdmWn0ePRW|sf|{{NdC6BEFz%HY7D#Gt@n3&cv39ixRe@8jg+*zCeAz_j@X+cYM1 zJ%%)fe1<%R5(W(hJ%%J8JB6VV%E|$%w1Wk>`%B8MRp=)_c@ znsOkS$&e0|fjBr9$WH-^lrrQZ92!I=vyeQpd6%F|>f{gl3X^m=CfhlROrB7lG`XOR XZSu0^e3OOBohCof;o1DJd`~6-CP!4g delta 93 zcmV-j0HXi8#sj*;0|fv6|NgU{4X^{V?g*d(vrZ8#0h2fnbhC;IngWy15*U*(6Bv`8 zZw#@3{s*&26E Date: Sat, 25 Feb 2023 20:17:18 +0000 Subject: [PATCH 23/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 29184 -> 62606 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 4bb37cd90a8f0be995611848e0379ce5f81f444f..6441225cdf977238de8fe749f88f47eda6c33dc6 100644 GIT binary patch literal 62606 zcmdU&%aR>ecAifS7>v+FW6oe(64?qj=&;f@M}gi0;+|HHqb@J@od)==)cmCU-{_RhnZvJ+2VRLQs zD1P3KpFhOEyPMO^v-tdY^CYhPesgbgC$8OzE4MZ;<0s#L7gtZ?ue&kkVqE*%&8M5c z*!<_sUvK^~eqPx8L;Uxr{~q7`MSRanhnt7fJtT#MjsMT${zub#j{*zeO}v2T&h)J? zhVH94yh*n;Q1xaa!`GOqy?KqD$9)~u!Zp2oV20ESVP z`25)fi|`Yi&>5+?9seGMWJq42E3lq!K8_hLOn3dS`1aoPm!#-%tO{>{<21heA$SX2 z{%d@`8=r2*=!fw)vd4&{g~m$1I_v*zIzqdpc%h^JV1KT2XP�rIEu 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 literal 29184 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 From 356bd06e6ac61d965c9646041f00181ebe127b4b Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 20:18:07 +0000 Subject: [PATCH 24/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62606 -> 62596 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 6441225cdf977238de8fe749f88f47eda6c33dc6..9bd92609ad8ffc58d4ecc33f2b343b9bfc9445b1 100644 GIT binary patch delta 32 ocmeBs$=vdidBd|_&TxiGhG@ndhRn&_q0*BlJZIZ1)mM@R0M#K3YXATM delta 26 icmZp9$=vsndBd~b$*XShu@^ApGZZtFZ2s6gISl}+@(d~f From d6ae9a5d790a3bb48ba7bb26a6d0ee10437dfba2 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 20:18:34 +0000 Subject: [PATCH 25/47] Apply translations in es_419 translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'es_419' language. --- damus/es-419.lproj/Localizable.strings | Bin 62254 -> 63340 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/es-419.lproj/Localizable.strings b/damus/es-419.lproj/Localizable.strings index 4b15a951dd407382cd7d5234a8c671115e044e18..e426441d1ce01e30818311fcb768f8de93ddf5e0 100644 GIT binary patch delta 1065 zcmZWo-%FEG7=FPYe2HsQH&eIC*O!Wv*bG5o6xolPrDo+t#T0B?b2y#OO$`EFml38s z)J+hJE`w!#&{Y?88F=A8P$)ANS znsi?)I_9XKBTv&=s$%@5RsP+H1{6RBfIlORSetR7ch7DXClof~WB=2L090np&WZ9>?BVIhMY5 zVzX(;QN!D8Z{3P2p+315dVW)@eo-W{*x&;z!@lI%KVO%NPZC#3;%82{Sc% z-Hw$jHnh2I-Y9PilM!}>IdPKhxGE81+Cq}R6m_s?p2peE`4X~5m(7U{i|f|W$WD&T zlh}V)TPG1kp>~1F%ZkddnhQ}|G;4m2k67S|>q;cc&+PcHbRW%2ethewHrrFWkyp?$ zK_sZ>@V46#F3}MkMRYSC%YVJ3$pu_jxl<9YDy)ba1-twYRY!5WnmMD|zVQ0C4=eAh zu<@o1*+=%plGbx_g5e1;IrLDAybiLJr|J$zB-tM4V}y3;U@qssN1@dEfc**85^0=N zQSD%eIz{j$>xRdxEfy{_%$0(w?heoS$_e!*L?`k>ims=2y}U1aiqj9C$C#3siWO1l e91&G{V*Tco=u5&YXC)%)mbqppo!>!MM@cx7_x!tD;Yp4${8|%W*0MP0--vP zR$y=g@^gSNA1IePIXX_cUIA!hDo}==Zc$>eX5a!seFm+`Yr7pM#mP*57N;@!Tm~06 z$Qcl4Yff$y6jfCMI?Wb{mB0>!$^iMrz+g&eCDQp|1sp)yi37|e=^rHgU!zjOxPwX%v0HX&isw)tTs)7+=5r-}yp#7e#Y|rCOkuKu702WPcag~vO=*)0 Yw0SnGH7h7>=33U_1+s9n(kCxg0E~NtcmMzZ From 03030314453ea527f6d0513d512cea3fe5fab888 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 20:50:26 +0000 Subject: [PATCH 26/47] Apply translations in uk translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings' on the 'uk' language. --- damus/uk.lproj/InfoPlist.strings | Bin 0 -> 800 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 damus/uk.lproj/InfoPlist.strings diff --git a/damus/uk.lproj/InfoPlist.strings b/damus/uk.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..e9a74c71845cb5e064381f555f2d8f438c22f950 GIT binary patch literal 800 zcmbV~-Ae*d5XH~KJoVUX1j{}OrKM#kuDY&PASU$jZW$GnNovqPU;XY~YZDiWSms{l zwU+$eTRBso>y`=e*PV1=y}hvJ7t$spg!| za1Kx=WjoOMH{PK$Y(6sMy=9TrtYmfTTZ21L$vPI>0bXoJme`fg_qfl%ZDP?frMvw&7C28hlQT?C(jHSXX9~>Jzl-x@uI3y)sU Date: Sat, 25 Feb 2023 21:05:36 +0000 Subject: [PATCH 27/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62596 -> 62600 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 9bd92609ad8ffc58d4ecc33f2b343b9bfc9445b1..d52dfbcd963f8dcec095b92c5563615b6ea446b8 100644 GIT binary patch delta 64 zcmZp9$=vahdBZ#})og}xhJ1z+hC~Jhh7^VzFkJ;C3m85FWfZ`;c=Ez0(vv4R^G&{! L$+7u^*OZk2aNrcl delta 84 zcmeBp$=vdidBZ#}%_@dOh60Aq4CM?84B0?3pP>XOq5$R>16d_Nkzxj*s>uf%geOmM g=9~N=lVfs5x7lRAsT`AY%0wnF@ZsAW;%%}L06`5J+W-In From 2d3bd11d56968838153f2030b33b7dcec0634ab9 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:06:25 +0000 Subject: [PATCH 28/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62600 -> 62598 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index d52dfbcd963f8dcec095b92c5563615b6ea446b8..035f13cba25bb2e06d43329bf7724ca7a6045092 100644 GIT binary patch delta 26 hcmeBp$=vpmc|%kqyAwkZLn1@= delta 24 fcmZpB$=vahc|%kqXEkFYLkdGGL*C}ZM%7{fc9{sg From 2036d5843be019b5c429dd9182c3c5f91b9e7316 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:07:23 +0000 Subject: [PATCH 29/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62598 -> 62620 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 035f13cba25bb2e06d43329bf7724ca7a6045092..a869b77ff30391541baa72d8c7b0733fa69cb2d6 100644 GIT binary patch delta 56 zcmZpB$vo#J^M)U}iXjX|43!K?33^@#mKstvZm7$y=A1E%#n9NW$d2fUG Date: Sat, 25 Feb 2023 21:08:08 +0000 Subject: [PATCH 30/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62620 -> 62640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index a869b77ff30391541baa72d8c7b0733fa69cb2d6..b83b6c804768555c1d0cfab5e6b43a88725d043e 100644 GIT binary patch delta 22 ccmbR9l6eCV)%Z*n>QR|I!C7SU0-rz20eT$@t^fc4 delta 33 rcmV++0N($w=>weU1F(Ed0z?6mfMFt&MoSKpM9n0V@W2eS@=U&`@|F)7 From 360218913365eff41764e659d48f8cfabb18a23c Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:08:33 +0000 Subject: [PATCH 31/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62640 -> 62636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index b83b6c804768555c1d0cfab5e6b43a88725d043e..77dba70c0af3f7302e845fe685ebde5e500f57fe 100644 GIT binary patch delta 38 ucmdn+l6lQb<_!|Q{GklR45bV%j0z0d4EYRslNW9ho?M`;v^l{yU^xK%vJBe* delta 27 hcmZ4Ul6eCVN%-;vGh{O)G88kEGGsAqR`Bgv4giW02^s(Z From 990e783c306a6f1fe8f2122a77779c92959ccc58 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:08:55 +0000 Subject: [PATCH 32/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62636 -> 62634 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 77dba70c0af3f7302e845fe685ebde5e500f57fe..cd64e72be65a04e1675dd12ae6e6bda4acf9da72 100644 GIT binary patch delta 38 ucmZ4Ul6loj<_-6J`AZp!8A=)Q7%~|o8A}*aCnr9Xp8R2+(q Date: Sat, 25 Feb 2023 21:09:09 +0000 Subject: [PATCH 33/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62634 -> 62632 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index cd64e72be65a04e1675dd12ae6e6bda4acf9da72..6e022069010bfed1f9ab636db508087d598ee217 100644 GIT binary patch delta 35 rcmZ4Wl6l2T<_%&!yrm4q45bWt44Dj)jLDN5edH%SiP$`+hc5#F=`al0 delta 32 ocmZ4Sl6loj<_%&!oW%^;42cZI4Ed9*eN-nOI2f^cRu5kW0Mm&K;Q#;t From 5252e5f5bb66c2016c2141ffd9ead3c9b1bfdf98 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:09:23 +0000 Subject: [PATCH 34/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62632 -> 62628 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 6e022069010bfed1f9ab636db508087d598ee217..08f031494f8f02468d16f2b2255f03f3df32c58a 100644 GIT binary patch delta 24 gcmZ4Sl6lEX<_({2ag{O@Gn6vqF|aajy1haY0E$Bi$^ZZW delta 30 mcmZ4Tl6l2T<_({2u@^IBGbAz;PmaGMK3Ol6YqQwxK1l%8F$}5z From 1e52d958ac796dca766649a171ea4d5737051c89 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:10:18 +0000 Subject: [PATCH 35/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62628 -> 62640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 08f031494f8f02468d16f2b2255f03f3df32c58a..2f171e4d386ee4c15518cd7e479f6f5b3a09fc54 100644 GIT binary patch delta 38 rcmZ4Tl6eCVP1_ Date: Sat, 25 Feb 2023 21:11:28 +0000 Subject: [PATCH 36/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62640 -> 62644 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 2f171e4d386ee4c15518cd7e479f6f5b3a09fc54..f62d15705c9c22aaea286332dac38d2a5b297deb 100644 GIT binary patch delta 35 ocmdn+l6lKZ<_!m~h-5P)GUNfV6QcryI)f^M1CZQ&;mQMf0Oy|zoB#j- delta 31 kcmdn;l6eCV9k?Q(%HY7Dz>v+5$dCubPK=wcTzMc50KbU~P5=M^ From 5eb61f1ac12e98848eddf7d42706f827548f8b1f Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:13:18 +0000 Subject: [PATCH 37/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62644 -> 62636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index f62d15705c9c22aaea286332dac38d2a5b297deb..8d9ab3d42583480228655ae72fdf3901ce379815 100644 GIT binary patch delta 27 icmdn;l6lQb<_+7f@RT!DGUPF2GGqhs=2KT*$pZkWXbW@z delta 35 qcmZ4Ul6lKZ<_+7fh!iuFGkj*qVo+enW=Len17at}&4;eMk_Q0(K@A=N From 2b854ef9b72f1d21c3332c750c552a7aa6b92e78 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 13:22:43 +0000 Subject: [PATCH 38/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 60584 -> 60574 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index 0e1469b87fb86419c7880190b799050717b6d344..3497c904854c8786f5f2d198a1a1113812e754b0 100644 GIT binary patch delta 27 jcmZ2+lX>1v<_%o692#r^Y%Xl-Y?B2NMK&AMR^$T!fmjHb delta 22 ecmbPtlX=BW<_%o6lM`y$CJPivZC0qQ%Lf2& Date: Mon, 27 Feb 2023 07:46:39 +1300 Subject: [PATCH 39/47] Fix localization bug on RelayFilterView --- damus/Views/RelayFilterView.swift | 2 +- .../Localized Contents/en-US.xliff | 10 +++++----- .../damus/en-US.lproj/Localizable.strings | Bin 61370 -> 61338 bytes 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/damus/Views/RelayFilterView.swift b/damus/Views/RelayFilterView.swift index 8f99b5b8..d3f9efcf 100644 --- a/damus/Views/RelayFilterView.swift +++ b/damus/Views/RelayFilterView.swift @@ -26,7 +26,7 @@ struct RelayFilterView: View { } var body: some View { - Text("To filter your \(timeline.rawValue) feed, please choose applicable relays from the list below:", comment: "Instructions on how to filter a specific timeline feed by choosing relay servers to filter on.") + Text("Please choose relays from the list below to filter the current feed:", comment: "Instructions on how to filter a specific timeline feed by choosing relay servers to filter on.") .padding() .padding(.top, 20) .padding(.bottom, 0) diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index 686f43af..230552d8 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -692,6 +692,11 @@ Sentence composed of 2 variables to describe how many people are following a use Plan Prompt selection of DeepL subscription plan to perform machine translations on notes + + Please choose relays from the list below to filter the current feed: + Please choose relays from the list below to filter the current feed: + Instructions on how to filter a specific timeline feed by choosing relay servers to filter on. + Post Post @@ -1022,11 +1027,6 @@ Label for filter for seeing your posts and replies (instead of only your posts). Thread Navigation bar title for note thread. - - To filter your %@ feed, please choose applicable relays from the list below: - To filter your %@ feed, please choose applicable relays from the list below: - Instructions on how to filter a specific timeline feed by choosing relay servers to filter on. - Translate Note Translate Note diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index c4ac875aab91ec67f8ec58d23d45ed17451c0b0d..f3246d4542d03f5c83fe08ba00cfa5bb920a661a 100644 GIT binary patch delta 97 zcmdmWpLy1O<_#%blW&|m#uzZU@PhQ@MHfsa3(OarT(nd|G>st@2vZoW7?c Date: Mon, 27 Feb 2023 07:54:49 +1300 Subject: [PATCH 40/47] Fix wording in SaveKeysView to be more mobile-friendly --- damus/Views/SaveKeysView.swift | 2 +- .../Localized Contents/en-US.xliff | 6 +++--- .../damus/en-US.lproj/Localizable.strings | Bin 61338 -> 61330 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/damus/Views/SaveKeysView.swift b/damus/Views/SaveKeysView.swift index e2de28ab..875dc8b4 100644 --- a/damus/Views/SaveKeysView.swift +++ b/damus/Views/SaveKeysView.swift @@ -38,7 +38,7 @@ struct SaveKeysView: View { .foregroundColor(.white) .padding(.bottom, 10) - Text("This is your account ID, you can give this to your friends so that they can follow you. Click to copy.", comment: "Label to describe that a public key is the user's account ID and what they can do with it.") + Text("This is your account ID, you can give this to your friends so that they can follow you. Tap to copy.", comment: "Label to describe that a public key is the user's account ID and what they can do with it.") .foregroundColor(.white) .padding(.bottom, 10) diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index 230552d8..ff0cb66b 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -1012,9 +1012,9 @@ Label for filter for seeing your posts and replies (instead of only your posts). This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key. Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key. - - This is your account ID, you can give this to your friends so that they can follow you. Click to copy. - This is your account ID, you can give this to your friends so that they can follow you. Click to copy. + + This is your account ID, you can give this to your friends so that they can follow you. Tap to copy. + This is your account ID, you can give this to your friends so that they can follow you. Tap to copy. Label to describe that a public key is the user's account ID and what they can do with it. diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index f3246d4542d03f5c83fe08ba00cfa5bb920a661a..d0ceb5e9a98c43d55ec6e9c7186a5b2f1a6cea95 100644 GIT binary patch delta 30 icmbPrpLx=K<_#=oSVI^R844!zo;eF)ZGL=ayAlApxC}V} delta 38 mcmbPqpLy1O<_#=oIGq`C7%~}>8L}sHo;i!)ZN7bGyAl8iy$!bj From b7a48a24e9f2b2360a651b22e9294cba2b4b7e6f Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 19:10:41 +0000 Subject: [PATCH 41/47] Apply translations in de translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'de' language. --- damus/de.lproj/Localizable.strings | Bin 62476 -> 63594 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/de.lproj/Localizable.strings b/damus/de.lproj/Localizable.strings index b0eb6fc013f182d530493b05e588ead437461f36..1c061d63a49e6b6298a35284909d12f21bd5b35a 100644 GIT binary patch delta 1418 zcmZ`(O-NKx7`>$pqv$lfCVv{sr;aIQniU3Op(brIQ&Ga`$FUi8Xl9(8d0K8pT11PA z=99t`758il&~eh|Tv;#IA2EtW`dKtKfQ{3aSvt3RSN5E1#K_7vFei zr-t#9E_^6+n!CMK4t$uX#KI9Lu9j$6I^gV`qhRYdvKFvn^_>{c}@n}kg&z(-fj zX)&v%s8*83`5UvyFQ`F|QM0xrz8SZwt2d`5Vtz6o^@esboit985mp~mqbc-h*(CZ8 zF@{bQqV3Xl^Toav2gZ-O(0JU5`*qrubwqexSCXNtCU{EVIJZsNG!}b=uDcFzGXX~-hC+}fAxU0c+#({vxjhrGaKStRGShudC{J*Rc zoF&u{F69Xn8^^Dgvi4%|MkVb+~#R-dc$utGPk6}b{zO^pn>a;>*3T~==!YgIl5u==k$QBfSvwQev zF503E7#Z({E8xJ_WGD2h9P{INX%1qsOjN#}+RzT~oENQg2b0#8iPcYx@G^?5i5qlv zK^a7q+GRfy73338^(pOaw%CPV_WGHb><#BqRg_~VXJKk}g>ygg#4u9-Fh`@!0=7!G zf?Jssx5`)v76}c?YbObypH@$BO<;ve){b#xVTe4)N6TX$PWNS-r8hhCR!&Wp>_K`o zg2e;dwyZllD1PXzNjGh(=Kne?9S@B?o4Qy}3^UVb_sXVZ%PSQLrNMVuml`9hLQ!g* zpXn&<;!2E<$R$>?Npv-aiJ2YnCEaNJW} zP6?rCV*bmevUW73YiqYd4Xdl=J$0+0V TYzB$;W6Ho{d6_x+qjS?A2%k_@ delta 807 zcmc&y&ubG=5T2NAN!m&p@`F?nx6zO`*0L2rx**0MhzBjPv{0m5voUEciQAG*C`C|O z#gkCW;7y@=@>qQbZw2)q5RC_K9y~}vSX6o`wtnwLCH@8S*!SMdo0{(`84kT9jp*O_e8gcfzM|dC*5c#WvQE{(!YcH=YPq4S8^V)EL z^B1C=UC#5{OqbB^B)f#MIv;1P>5+5{;*Y9eaS$W+#hSp?*kOKQAB9Rnj zm0d!aBB=rM*OmQY8>5#3kw9z=yu$tm!zmL~{h@3eqGUsuj8Z^0)s>KB(^c3Pk?a1>ts_TPk)$-^On!3ekT5=u MCDfD>-$&bi0Ui6uIsgCw From 7ab95583df517744a05ac4c9663633a6b0c07da9 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:23:02 +0000 Subject: [PATCH 42/47] Apply translations in de translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'de' language. --- damus/de.lproj/Localizable.strings | Bin 63594 -> 63592 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/de.lproj/Localizable.strings b/damus/de.lproj/Localizable.strings index 1c061d63a49e6b6298a35284909d12f21bd5b35a..eea35af5293e09c00a68c9571fb9b375fc7db8df 100644 GIT binary patch delta 26 icmaF$f%(M;<_+&2afdUcGUPCnFcdK)ZvOo!UlahYz6-|y delta 28 kcmaFyf%(-3<_+&2@rE+wF=R57F{CmSF%)n9`6yo$0K-lUL;wH) From 23229015a655925fc040bcd174f0a69e8028dbb4 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:59:17 +0000 Subject: [PATCH 43/47] Apply translations in de translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'de' language. --- damus/de.lproj/Localizable.strings | Bin 63592 -> 63570 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/de.lproj/Localizable.strings b/damus/de.lproj/Localizable.strings index eea35af5293e09c00a68c9571fb9b375fc7db8df..f7a83a8a7ce5b92f26e00dadc763bd2a2ca08511 100644 GIT binary patch delta 114 zcmaFyf%(!0<_&cdCfDrYi4S5(WyoPjWT<2)W>5gqrC>S*C|U&Mr!nLMWz&JYJO+?h s9#G7OArq*k1jthWs?G(HAel_CTp~j@P^J{f&jG?zhT_ftCuF7r0On&HdH?_b delta 145 zcmccgf%(M;<_&cd>YW%e8A^aKl|g}_oZ$&W215>*oeC7s1BwL!c{vP;43$83B10)d zF_2CHiWLFrQlJWu&LSWNsr3QsDTbN_QL6)1l?&AaQj^G#4OCGIHWg?S6GPtSmlHD6 E0r=q{+5i9m From 483730af18d7064035671f946ae4b34ad78c1865 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 21:01:54 +0000 Subject: [PATCH 44/47] Apply translations in pl_PL translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'pl_PL' language. --- damus/pl-PL.lproj/Localizable.strings | Bin 62636 -> 62592 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 8d9ab3d42583480228655ae72fdf3901ce379815..0358950ac0ed48d25d83fbed0a1cfae253deb50c 100644 GIT binary patch delta 126 zcmZ4UlDXj}^M*sclZ`GPV+@$Ac}041)D@G-moAG?A&DVp^87x_SSto4pbA?c zR$_1jidKU4LQF0Knpw_}$iU910HiA!@_;sG1F-^wIs?cSb+G9mnIxbn$Q@NcxniK3 d@_{5!@8sV3vXdS96&S51H##eCR=AoV4*+eSHQoRK From 06e9a1b3924eb8d183145508b1487bfccd43e542 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 21:18:28 +0000 Subject: [PATCH 45/47] Apply translations in ar translated for the source file 'damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings' on the 'ar' language. --- damus/ar.lproj/Localizable.strings | Bin 60574 -> 60576 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings index 3497c904854c8786f5f2d198a1a1113812e754b0..215f103f96362af243f1ea0157657aa7464a7d7a 100644 GIT binary patch delta 301 zcmbPtlX<~S<_#Y@CTpEJ#uzYJ@vQXZptB~E1I~y|7AcXaPh&_0!W0H81|Oxaw3vRXh9S2j1OxD!xB4JfM#a38j4PWiknh3f36ybXGXSaJ16tq$R-y}3Vl}z2LU}Vw=OH`R z5QapCg30HPt1`Q@c})IzTs#!y8Vxp8pe@co)7^k1$OR@qwjq$M1-8$X%@QaIG7{u& sL!iAN7lPca1r*T$%4z}C>H&QTGQo+>aC7mA?aY%Wgo|wEI5$lW0J5Ao>;M1& delta 348 zcmXYsKT88a5XA=$9%w0Ir>xQQ&LfEgQMrId&D|MO+X|j~qIeMT4``*05Yt#JSc=%% z2v^uz2@2Zh3s~nP_;#__*?IGu-FfrWcOLuB>!7Q5ZpVt>-uuc>Q*t?yJvr7dpYC;x z5H+kpNd@!p;G>DEDDmMUX6_+jRN}JB@CX}J5vH(!IjplXV|fJuHc8sN&AS9GG9@uH z69X!rvjQ^nzlTNCu~am^-W)yXer#_^hvfrW%jH}$Ii`R&X3Hvfh z<&05rokR9^{#8n9xLGrmUCH(LUD&8giJi+lC614{P?@GCY0pEI#@bXhYqrJZBC5cu YkR-vZzVD6e>E{uBb2(ZJ|2$0m0cVmz-T(jq From 01522868595d17531cb32ac0d6c3fa75696391b2 Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:43:00 +1300 Subject: [PATCH 46/47] Fix missing comments on new strings --- damus/Views/Zaps/CustomizeZapView.swift | 26 ++++---- .../Localized Contents/en-US.xliff | 58 +++++++++++++++++- .../damus/en-US.lproj/Localizable.strings | Bin 61330 -> 63960 bytes 3 files changed, 70 insertions(+), 14 deletions(-) diff --git a/damus/Views/Zaps/CustomizeZapView.swift b/damus/Views/Zaps/CustomizeZapView.swift index c20a5cbd..613ad3ee 100644 --- a/damus/Views/Zaps/CustomizeZapView.swift +++ b/damus/Views/Zaps/CustomizeZapView.swift @@ -81,16 +81,16 @@ struct CustomizeZapView: View { } var ZapTypePicker: some View { - Picker("Zap Type", selection: $zap_type) { - Text("Public").tag(ZapType.pub) - Text("Anonymous").tag(ZapType.anon) - Text("Non-Zap").tag(ZapType.non_zap) + Picker(NSLocalizedString("Zap Type", comment: "Header text to indicate that the picker below it is to choose the type of zap to send."), selection: $zap_type) { + Text("Public", comment: "Picker option to indicate that a zap should be sent publicly and identify the user as who sent it.").tag(ZapType.pub) + Text("Anonymous", comment: "Picker option to indicate that a zap should be sent anonymously and not identify the user as who sent it.").tag(ZapType.anon) + Text("Non-Zap", comment: "Picker option to indicate that sats should be sent to the user's wallet as a regular Lightning payment, not as a zap.").tag(ZapType.non_zap) } .pickerStyle(.segmented) } var AmountPicker: some View { - Picker("Zap Amount", selection: $selected_amount) { + Picker(NSLocalizedString("Zap Amount", comment: "Title of picker that allows selection of predefined amounts to zap."), selection: $selected_amount) { ForEach(zap_amounts) { entry in let fmt = format_msats_abbrev(Int64(entry.amount) * 1000) HStack(alignment: .firstTextBaseline) { @@ -156,11 +156,11 @@ struct CustomizeZapView: View { Section(content: { AmountPicker }, header: { - Text("Zap Amount in sats") + Text("Zap Amount in sats", comment: "Header text to indicate that the picker below it is to choose a pre-defined amount of sats to zap.") }) Section(content: { - TextField("100000", text: $custom_amount) + TextField(String("100000"), text: $custom_amount) .keyboardType(.numberPad) .onReceive(Just(custom_amount)) { newValue in @@ -170,27 +170,27 @@ struct CustomizeZapView: View { } } }, header: { - Text("Custom Zap Amount") + Text("Custom Zap Amount", comment: "Header text to indicate that the text field below it is to enter a custom zap amount.") }) .dismissKeyboardOnTap() Section(content: { - TextField("Awesome post!", text: $comment) + TextField(NSLocalizedString("Awesome post!", comment: "Placeholder text for a comment to send as part of a zap to the user."), text: $comment) }, header: { - Text("Comment") + Text("Comment", comment: "Header text to indicate that the text field below it is a comment that will be used to send as part of a zap to the user.") }) .dismissKeyboardOnTap() Section(content: { ZapTypePicker }, header: { - Text("Zap Type") + Text("Zap Type", comment: "Header text to indicate that the picker below it is to choose the type of zap to send.") }) if zapping { - Text("Zapping...") + Text("Zapping...", comment: "Text to indicate that the app is in the process of sending a zap.") } else { - Button("Zap") { + Button(NSLocalizedString("Zap", comment: "Button to send a zap.")) { let amount = custom_amount_sats ?? selected_amount.amount send_zap(damus_state: state, event: event, lnurl: lnurl, is_custom: true, comment: comment, amount_sats: amount, zap_type: zap_type) self.zapping = true diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index ff0cb66b..33d900c7 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -32,6 +32,11 @@ + + %@ + %@ + No comment provided by engineer. + %@ %@ %@ %@ @@ -144,6 +149,11 @@ Sentence composed of 2 variables to describe how many people are following a use Admin Label to display relay contact user. + + Anonymous + Anonymous + Picker option to indicate that a zap should be sent anonymously and not identify the user as who sent it. + Any Any @@ -154,6 +164,11 @@ Sentence composed of 2 variables to describe how many people are following a use Are you sure you want to repost this? Alert message to ask if user wants to repost a post. + + Awesome post! + Awesome post! + Placeholder text for a comment to send as part of a zap to the user. + + + Comment + Comment + Header text to indicate that the text field below it is a comment that will be used to send as part of a zap to the user. + Contact Contact @@ -359,6 +379,11 @@ Sentence composed of 2 variables to describe how many people are following a use Custom Dropdown option for selecting a custom translation server. + + Custom Zap Amount + Custom Zap Amount + Header text to indicate that the text field below it is to enter a custom zap amount. + DMs DMs @@ -637,6 +662,11 @@ Sentence composed of 2 variables to describe how many people are following a use No block list found, create a new one? This will overwrite any previous block lists. Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. + + Non-Zap + Non-Zap + Picker option to indicate that sats should be sent to the user's wallet as a regular Lightning payment, not as a zap. + None None @@ -744,6 +774,11 @@ Label for filter for seeing your posts and replies (instead of only your posts). Profile Picture Label for Profile Picture section of user profile form. + + Public + Public + Picker option to indicate that a zap should be sent publicly and identify the user as who sent it. + Public Account ID Public Account ID @@ -1162,7 +1197,28 @@ Label for filter for seeing your posts and replies (instead of only your posts). Zap Zap - Accessibility label for zap button + Accessibility label for zap button + Button to send a zap. + + + Zap Amount + Zap Amount + Title of picker that allows selection of predefined amounts to zap. + + + Zap Amount in sats + Zap Amount in sats + Header text to indicate that the picker below it is to choose a pre-defined amount of sats to zap. + + + Zap Type + Zap Type + Header text to indicate that the picker below it is to choose the type of zap to send. + + + Zapping... + Zapping... + Text to indicate that the app is in the process of sending a zap. Zaps diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index d0ceb5e9a98c43d55ec6e9c7186a5b2f1a6cea95..4a98b6e8b7fc3751c64c75878099fc9c31db615d 100644 GIT binary patch delta 1513 zcmbVMO-K}B82-w#b(N)DXSeciR+FrBw-72w$)5y46hiAzr_t8jTz3a|M7BeD=@Js^ z10qSK*9bD^*bioOi8>e^tV@TE*{QqqzTfQ5?6_-C48zR#eecinKJz>?|GjAQchRb$ zqVZW3d@qXeV53UYgeq=pF%i$aJK>ZQG+DsKz=gaZ*OIZuE6{m7jR4A6=foCoZa+LNBY$(;Ge+3-sl2Ehb zIUwzQbaeW0@KM;DJv;9!1WYLi4AobHmCW9xoS*q{WT1(0yscD9yPQ*KJwa?=3Sg)w zfTO)WEcflh*7Gvlf8#Yl__k1n(+>mqe6I%a{tA5j>NS@aj$Ot2 zs~SJg&E9fgh4F4Hg6UJ`^}1|5M%+wLghAe7);X4$WhJIidpU@;*TrqRWR`t7LRkrV zT2(D4v%mRkSz65F6DvJRiLE_eNeSe-KyUX9xbYN}o!w(t{t4K8Y(t*TLf9<-9X3X! z)lhJERL2iwOiP$rT;eA@cmE#`bIG_2(w;8glEj;1kQ~nv-dyEbic`g)NY}_zo3@M? yu*+I-gXW%OgLN$HOGZ8ew_utg7SFW*;fXV>bO7+4~2uSV^illTI%nlh7Ur zlTf=9vu1;87?V(;B$Mo|5R-786tfnc3RaUIF$$Ah^CXi#Wfqf=j2x5ftq8Mn_htgp C?kMp9 From bacd9b3c388cd54eaf2ce68cf39e36252c8949c5 Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:47:05 +1300 Subject: [PATCH 47/47] Add strings for event grouped notifications --- damus/en-US.lproj/Localizable.strings | Bin 0 -> 4782 bytes damus/en-US.lproj/Localizable.stringsdict | 144 ++++++++++++++++++ .../Localized Contents/en-US.xliff | 135 ++++++++++++++++ .../damus/en-US.lproj/Localizable.strings | Bin 63960 -> 98660 bytes .../damus/en-US.lproj/Localizable.stringsdict | 144 ++++++++++++++++++ devtools/export-source-translation.sh | 2 +- 6 files changed, 424 insertions(+), 1 deletion(-) create mode 100644 damus/en-US.lproj/Localizable.strings diff --git a/damus/en-US.lproj/Localizable.strings b/damus/en-US.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..17fd6e3eb5baeacc07a884900e88a76448314ba5 GIT binary patch literal 4782 zcmdT`?P|h65ZvEB#Sth4|498?3VnjULI~EjLQ#o|*oSXBcj213uJ0(we zXL2Xcc*bOULe2-+9uZgD>)dN>Ww0}OL>3d|65FvkaBPLTwwO%ney8i%yw$S;z0|DU zx`S=aS#?$V7+-H3uaDx`uX!%gsjVxEF_gyf{N0Mt8l$A?ovX7ioc%3cDKy5h{2gmg zH1Followers + reacted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to a post you were tagged in + other + %2$@ and %1$d others reacted to a post you were tagged in + + + reacted_your_post_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your post + other + %2$@ and %1$d others reacted to your post + + + reacted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your profile + other + %2$@ and %1$d others reacted to your profile + + reactions_count NSStringLocalizedFormatKey @@ -82,6 +130,54 @@ Replying to %2$@, %3$@ & %1$d others + reposted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted a post you were tagged in + other + %2$@ and %1$d others reposted a post you were tagged in + + + reposted_your_post_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your post + other + %2$@ and %1$d others reposted your post + + + reposted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your profile + other + %2$@ and %1$d others reposted your profile + + reposts_count NSStringLocalizedFormatKey @@ -114,6 +210,54 @@ %2$@ sats + zapped_tagged_in_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped a post you were tagged in + other + %2$@ and %1$d others zapped a post you were tagged in + + + zapped_your_post_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your post + other + %2$@ and %1$d others zapped your post + + + zapped_your_profile_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your profile + other + %2$@ and %1$d others zapped your profile + + zaps_count NSStringLocalizedFormatKey diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index 33d900c7..0ccc8a9b 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -1327,6 +1327,51 @@ Label for filter for seeing your posts and replies (instead of only your posts). %#@FOLLOWERS@ + + %#@REACTED@ + %#@REACTED@ + + + + %2$@ and %1$d other reacted to a post you were tagged in + %2$@ and %1$d other reacted to a post you were tagged in + + + + %2$@ and %1$d others reacted to a post you were tagged in + %2$@ and %1$d others reacted to a post you were tagged in + + + + %#@REACTED@ + %#@REACTED@ + + + + %2$@ and %1$d other reacted to your post + %2$@ and %1$d other reacted to your post + + + + %2$@ and %1$d others reacted to your post + %2$@ and %1$d others reacted to your post + + + + %#@REACTED@ + %#@REACTED@ + + + + %2$@ and %1$d other reacted to your profile + %2$@ and %1$d other reacted to your profile + + + + %2$@ and %1$d others reacted to your profile + %2$@ and %1$d others reacted to your profile + + %#@REACTIONS@ %#@REACTIONS@ @@ -1372,6 +1417,51 @@ Label for filter for seeing your posts and replies (instead of only your posts). Replying to %2$@, %3$@ & %1$d others + + %#@REPOSTED@ + %#@REPOSTED@ + + + + %2$@ and %1$d other reposted a post you were tagged in + %2$@ and %1$d other reposted a post you were tagged in + + + + %2$@ and %1$d others reposted a post you were tagged in + %2$@ and %1$d others reposted a post you were tagged in + + + + %#@REPOSTED@ + %#@REPOSTED@ + + + + %2$@ and %1$d other reposted your post + %2$@ and %1$d other reposted your post + + + + %2$@ and %1$d others reposted your post + %2$@ and %1$d others reposted your post + + + + %#@REPOSTED@ + %#@REPOSTED@ + + + + %2$@ and %1$d other reposted your profile + %2$@ and %1$d other reposted your profile + + + + %2$@ and %1$d others reposted your profile + %2$@ and %1$d others reposted your profile + + %#@REPOSTS@ %#@REPOSTS@ @@ -1402,6 +1492,51 @@ Label for filter for seeing your posts and replies (instead of only your posts). %2$@ sats + + %#@ZAPPED@ + %#@ZAPPED@ + + + + %2$@ and %1$d other zapped a post you were tagged in + %2$@ and %1$d other zapped a post you were tagged in + + + + %2$@ and %1$d others zapped a post you were tagged in + %2$@ and %1$d others zapped a post you were tagged in + + + + %#@ZAPPED@ + %#@ZAPPED@ + + + + %2$@ and %1$d other zapped your post + %2$@ and %1$d other zapped your post + + + + %2$@ and %1$d others zapped your post + %2$@ and %1$d others zapped your post + + + + %#@ZAPPED@ + %#@ZAPPED@ + + + + %2$@ and %1$d other zapped your profile + %2$@ and %1$d other zapped your profile + + + + %2$@ and %1$d others zapped your profile + %2$@ and %1$d others zapped your profile + + %#@ZAPS@ %#@ZAPS@ diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings index 4a98b6e8b7fc3751c64c75878099fc9c31db615d..873df4c1957e4056b14d1f51b0a4c411e5802556 100644 GIT binary patch delta 488 zcmY+AUr1VU9L4$FYhiaH7rDqq#F_X|(Mn=Lv5+1LMueEKklLCIR;+rEY7i2#nrkpz zG*9%8YA$++pg;PJAc7FaU=KaW9)|P~!h#@12{vjYtb3(`J$~Vw^ZlHY%JPRJh1^vR znfo%_Eqa=h%L?FlHvrO zZxysvyI2$n8j)+zQ?y~3S3FiEEn2vDB(yf2!TrTf9nD@1(o+U_ee0enq6JQzmd$h z6XOG_j69nm9(#5h{56G?*mm*c+D!^K1DNUi&xb{{l^$Xck0g?RO=uLcOk>AsW$2g# p`|l*`KK-GT>o+6gkVuzJF#P+|cblNlYpL%%!tivsDdrjddkvK*(4GJQ delta 14 WcmaFT#CGE|Gt>WnoBP_Y{R99#Hwe)H diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict index 21ef04ab..53fbef3a 100644 --- a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict +++ b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict @@ -34,6 +34,54 @@ Followers + reacted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to a post you were tagged in + other + %2$@ and %1$d others reacted to a post you were tagged in + + + reacted_your_post_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your post + other + %2$@ and %1$d others reacted to your post + + + reacted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REACTED@ + REACTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reacted to your profile + other + %2$@ and %1$d others reacted to your profile + + reactions_count NSStringLocalizedFormatKey @@ -82,6 +130,54 @@ Replying to %2$@, %3$@ & %1$d others + reposted_tagged_in_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted a post you were tagged in + other + %2$@ and %1$d others reposted a post you were tagged in + + + reposted_your_post_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your post + other + %2$@ and %1$d others reposted your post + + + reposted_your_profile_3 + + NSStringLocalizedFormatKey + %#@REPOSTED@ + REPOSTED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other reposted your profile + other + %2$@ and %1$d others reposted your profile + + reposts_count NSStringLocalizedFormatKey @@ -114,6 +210,54 @@ %2$@ sats + zapped_tagged_in_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped a post you were tagged in + other + %2$@ and %1$d others zapped a post you were tagged in + + + zapped_your_post_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your post + other + %2$@ and %1$d others zapped your post + + + zapped_your_profile_3 + + NSStringLocalizedFormatKey + %#@ZAPPED@ + ZAPPED + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %2$@ and %1$d other zapped your profile + other + %2$@ and %1$d others zapped your profile + + zaps_count NSStringLocalizedFormatKey diff --git a/devtools/export-source-translation.sh b/devtools/export-source-translation.sh index b1a9b49f..e443317d 100755 --- a/devtools/export-source-translation.sh +++ b/devtools/export-source-translation.sh @@ -4,4 +4,4 @@ xcodebuild -exportLocalizations -project damus.xcodeproj -localizationPath "damus" -exportLanguage en-US # Generates all SwiftUI Text() wrapped localized strings. -genstrings -o "damus/en-US.xcloc/Source Contents/damus/en-US.lproj/" -SwiftUI **/*.swift +genstrings -a -d -o "damus/en-US.xcloc/Source Contents/damus/en-US.lproj/" -SwiftUI **/*.swift