diff --git a/CHANGELOG.md b/CHANGELOG.md index 29a715a4..7fa89a6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ - Local zap notifications (Swift) - Add support for video uploads (Swift) - Auto Translation (Terry Yiu) +- Portuguese (Brazil) translations (Andressa Munturo) +- Spanish (Spain) translations (Max Pleb) +- Vietnamese translations (ShiryoRyo) ### Fixed @@ -72,6 +75,10 @@ - Add image uploader (Swift) - Add option to always show images (never blur) (William Casarin) +- Canadian French (Pierre - synoptic_okubo) +- Hungarian translations (Zoltan) +- Korean translations (sogoagain) +- Swedish translations (Pextar) ### Changed @@ -94,6 +101,9 @@ - Extend user tagging search to all local profiles (William Casarin) - Vibrate when a zap is received (Swift) - New and Improved Share sheet (ericholguin) +- Bulgarian translations (elsat) +- Persian translations (Mahdi Taghizadeh) +- Ukrainian translations (Valeriia Khudiakova, Tony B) ### Changed @@ -192,6 +202,8 @@ - Customized zaps (William Casarin) - Add new Notifications View (William Casarin) - Bookmarking (Joel Klabo) +- Chinese, Traditional (Hong Kong) translations (rasputin) +- Chinese, Traditional (Taiwan) translations (rasputin) ### Changed @@ -217,6 +229,9 @@ - Added the ability to select text on posts (OlegAba) - Added Posts or Post & Replies selector to Profile (ericholguin) - Improved profile navbar (OlegAba) +- Czech translations (Martin Gabrhel) +- Indonesian translations (johnybergzy) +- Russian translations (Tony B) ### Changed @@ -265,7 +280,6 @@ ### Added - Relay Filtering (William Casarin) -- Japanese translations (Terry Yiu) - Add password autofill on account login and creation (Terry Yiu) - Show if relay is paid (William Casarin) - Add "Follows You" indicator on profile (William Casarin) @@ -278,6 +292,10 @@ - Copy invoice button (Joel Klabo) - Receive Lightning Zaps (William Casarin) - Allow text selection in bio (Suhail Saqan) +- Chinese, Simplified (China mainland) translations (haolong, rasputin) +- Dutch translations (Heimen Stoffels - Vistaus) +- Greek translations (milicode) +- Japanese translations (akiomik, foxytanuki, Guetsu Ren - Nighthaven, h3y6e, middlingphys) ### Changed @@ -312,6 +330,7 @@ - LibreTranslate note translations (Terry Yiu) - Added support for account deletion (William Casarin) - User tagging and autocompletion in posts (Swift) +- Polish translations (pysiak) ### Changed @@ -334,7 +353,8 @@ ### Added -- Added Arabic and Portuguese translations (Barodane, Antonio Chagas) +- Arabic translations (Barodane) +- Portuguese translations (Antonio Chagas) - Add QRCode view for sharing your pubkey (ericholguin) - Added nostr: uri handling (William Casarin) @@ -361,7 +381,8 @@ ### Added - Reposts view (Terry Yiu) -- Translations for it_IT, it_CH, fr_FR, de_DE, de_AT and lv_LV (Nicolò Carcagnì, Solobalbo, Gregor, Peter Gerstbach, SYX) +- Italian translations (Nicolò Carcagnì) +- Latvian translations (SYX) - Added ability to block users (William Casarin) - Added a way to report content (William Casarin) - Stretchable profile cover header (Swift) @@ -388,7 +409,9 @@ - Show website on profiles (William Casarin) - Add the ability to choose participants when replying (Joel Klabo) -- Translations for de_AT, de_DE, tr_TR, fr_FR (Gregor, Peter Gerstbach, Taylan Benli, Solobalbo) +- German translations (Gregor, Peter Gerstbach) +- Turkish translations (Taylan Benli) +- French (France) translations (Solobalbo) - Add DM Message Requests (William Casarin) diff --git a/damus/ContentView.swift b/damus/ContentView.swift index a7661b27..534825ce 100644 --- a/damus/ContentView.swift +++ b/damus/ContentView.swift @@ -147,22 +147,8 @@ struct ContentView: View { } var timelineNavItem: Text { - switch selected_timeline { - case .home: - return Text("Home", comment: "Navigation bar title for Home view where posts and replies appear from those who the user is following.") - .bold() - case .dms: - return Text("DMs", comment: "Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.") - .bold() - case .notifications: - return Text("Notifications", comment: "Toolbar label for Notifications view.") - .bold() - case .search: - return Text("Universe 🛸", comment: "Toolbar label for the universal view where posts from all connected relay servers appear.") - .bold() - case .none: - return Text(verbatim: "") - } + return Text(timeline_name(selected_timeline)) + .bold() } func MainContent(damus: DamusState) -> some View { @@ -831,12 +817,12 @@ func timeline_name(_ timeline: Timeline?) -> String { } switch timeline { case .home: - return "Home" + return NSLocalizedString("Home", comment: "Navigation bar title for Home view where posts and replies appear from those who the user is following.") case .notifications: - return "Notifications" + return NSLocalizedString("Notifications", comment: "Toolbar label for Notifications view.") case .search: - return "Universe 🛸" + return NSLocalizedString("Universe 🛸", comment: "Toolbar label for the universal view where posts from all connected relay servers appear.") case .dms: - return "DMs" + return NSLocalizedString("DMs", comment: "Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.") } } diff --git a/damus/Models/HomeModel.swift b/damus/Models/HomeModel.swift index 1f549cf7..543b96d5 100644 --- a/damus/Models/HomeModel.swift +++ b/damus/Models/HomeModel.swift @@ -933,30 +933,37 @@ func zap_vibrate(zap_amount: Int64) { vibration_generator.impactOccurred() } -func describe_zap_type(_ zap: Zap) -> String? { +func zap_notification_title(_ zap: Zap) -> String { if zap.private_request != nil { - return "Private" + return NSLocalizedString("Private Zap", comment: "Title of notification when a private zap is received.") + } else { + return NSLocalizedString("Zap", comment: "Title of notification when a non-private zap is received.") } - - return nil } -func create_in_app_zap_notification(profiles: Profiles, zap: Zap) { - let content = UNMutableNotificationContent() - let typ = describe_zap_type(zap).map({ "\($0) " }) ?? "" - - content.title = typ + "Zap" - let satString = zap.invoice.amount == 1000 ? "sat" : "sats" - +func zap_notification_body(profiles: Profiles, zap: Zap, locale: Locale = Locale.current) -> String { let src = zap.private_request ?? zap.request.ev let anon = event_is_anonymous(ev: src) let pk = anon ? "anon" : src.pubkey let profile = profiles.lookup(id: pk) - let sats = format_msats_abbrev(zap.invoice.amount) + let sats = NSNumber(value: (Double(zap.invoice.amount) / 1000.0)) + let formattedSats = format_msats_abbrev(zap.invoice.amount) let name = Profile.displayName(profile: profile, pubkey: pk).display_name - let message = src.content.count == 0 ? "" : ": \"\(src.content)\"" - - content.body = "You received \(sats) \(satString) from \(name)\(message)" + + if src.content.isEmpty { + let format = localizedStringFormat(key: "zap_notification_no_message", locale: locale) + return String(format: format, locale: locale, sats.decimalValue as NSDecimalNumber, formattedSats, name) + } else { + let format = localizedStringFormat(key: "zap_notification_with_message", locale: locale) + return String(format: format, locale: locale, sats.decimalValue as NSDecimalNumber, formattedSats, name, src.content) + } +} + +func create_in_app_zap_notification(profiles: Profiles, zap: Zap, locale: Locale = Locale.current) { + let content = UNMutableNotificationContent() + + content.title = zap_notification_title(zap) + content.body = zap_notification_body(profiles: profiles, zap: zap, locale: locale) content.sound = UNNotificationSound.default let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false) diff --git a/damus/Util/DisplayName.swift b/damus/Util/DisplayName.swift index 6086b17b..14998fc1 100644 --- a/damus/Util/DisplayName.swift +++ b/damus/Util/DisplayName.swift @@ -39,7 +39,7 @@ enum DisplayName { func parse_display_name(profile: Profile?, pubkey: String) -> DisplayName { if pubkey == "anon" { - return .one("Anonymous") + return .one(NSLocalizedString("Anonymous", comment: "Placeholder display name of anonymous user.")) } guard let profile else { diff --git a/damus/Views/Notifications/EventGroupView.swift b/damus/Views/Notifications/EventGroupView.swift index 5d23fccb..11da278f 100644 --- a/damus/Views/Notifications/EventGroupView.swift +++ b/damus/Views/Notifications/EventGroupView.swift @@ -73,7 +73,7 @@ func event_group_author_name(profiles: Profiles, ind: Int, group: EventGroupType } if zap.is_anon { - return "Anonymous" + return NSLocalizedString("Anonymous", comment: "Placeholder author name of the anonymous person who zapped an event.") } return event_author_name(profiles: profiles, pubkey: zap.request.ev.pubkey) diff --git a/damus/Views/UserRelaysView.swift b/damus/Views/UserRelaysView.swift index 83a3e98e..70147274 100644 --- a/damus/Views/UserRelaysView.swift +++ b/damus/Views/UserRelaysView.swift @@ -36,15 +36,15 @@ struct UserRelaysView: View { .onReceive(handle_notify(.relays_changed)) { _ in self.relay_state = UserRelaysView.make_relay_state(pool: state.pool, relays: self.relays) } - .navigationBarTitle("Relays") + .navigationBarTitle(NSLocalizedString("Relays", comment: "Navigation bar title that shows the list of relays for a user.")) .toolbar{ if state.keypair.privkey != nil { if showAddButton { - Button("Done") { + Button(NSLocalizedString("Done", comment: "Button that, when tapped, will finish adding a different user's relays to your relay by hiding the + buttons next to the relays.")) { showAddButton.toggle() } } else { - Button("Show Add") { + Button(NSLocalizedString("Show +", comment: "Button that, when tapped, will show + buttons next to a user's relays.")) { showAddButton.toggle() } } diff --git a/damus/de.lproj/Localizable.strings b/damus/de.lproj/Localizable.strings index 471a466a..849a4639 100644 Binary files a/damus/de.lproj/Localizable.strings and b/damus/de.lproj/Localizable.strings differ diff --git a/damus/de.lproj/Localizable.stringsdict b/damus/de.lproj/Localizable.stringsdict index 76fa5ccf..1c0c4756 100644 --- a/damus/de.lproj/Localizable.stringsdict +++ b/damus/de.lproj/Localizable.stringsdict @@ -226,6 +226,38 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Du hast %2$@ Sat von %3$@ erhalten + other + Du hast %2$@ Sats von %3$@ erhalten + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Du hast %2$@ Sat von %3$@ erhalten: "%4$@" + other + Du hast %2$@ Sats von %3$@ erhalten: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/en-US.lproj/Localizable.stringsdict b/damus/en-US.lproj/Localizable.stringsdict index 1761de95..56645f1a 100644 --- a/damus/en-US.lproj/Localizable.stringsdict +++ b/damus/en-US.lproj/Localizable.stringsdict @@ -226,6 +226,38 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + You received %2$@ sat from %3$@ + other + You received %2$@ sats from %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + You received %2$@ sat from %3$@: "%4$@" + other + You received %2$@ sats from %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff index f26b5f6d..904e084f 100644 --- a/damus/en-US.xcloc/Localized Contents/en-US.xliff +++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff @@ -2,7 +2,7 @@
- +
@@ -15,11 +15,21 @@ damus Bundle name + + Damus needs access to your camera if you want to upload photos from it + Damus needs access to your camera if you want to upload photos from it + Privacy - Camera Usage Description + Local authentication to access private key Local authentication to access private key Privacy - Face ID Usage Description + + Damus needs access to your microphone if you want to upload recorded videos from it + Damus needs access to your microphone if you want to upload recorded videos from it + Privacy - Microphone Usage Description + Granting Damus access to your photos allows you to save images. Granting Damus access to your photos allows you to save images. @@ -29,7 +39,7 @@
- +
@@ -138,12 +148,6 @@ Sentence composed of 2 variables to describe how many people are following a use Add Bookmark Button text to add bookmark to a note. Context menu option for adding a note bookmark. - - - Add Relay - Add Relay - Button to add recommended relay server. - Label for section for adding a relay server. Add all @@ -168,7 +172,8 @@ Sentence composed of 2 variables to describe how many people are following a use Anonymous Anonymous - Picker option to indicate that a zap should be sent anonymously and not identify the user as who sent it. + Placeholder author name of the anonymous person who zapped an event. + Placeholder display name of anonymous user. Any @@ -180,6 +185,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. + + Automatically translate notes + Automatically translate notes + Toggle to automatically translate notes. + Awesome post! Awesome post! @@ -296,6 +306,21 @@ Sentence composed of 2 variables to describe how many people are following a use 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. + + Connect + Connect + Button to connect to recommended relay server. + + + Connect To Relay + Connect To Relay + Label for section for adding a relay server. + + + Connected Relays + Connected Relays + Section title for relay servers that are connected. + Contact Contact @@ -411,7 +436,8 @@ Sentence composed of 2 variables to describe how many people are following a use DMs DMs Navigation title for DMs view, where DM is the English abbreviation for Direct Message. - Navigation title for view of DMs, where DM is an English abbreviation for Direct Message. + Navigation title for view of DMs, where DM is an English abbreviation for Direct Message. + Toolbar label for DMs view, where DM is the English abbreviation for Direct Message. Damus @@ -437,7 +463,6 @@ Sentence composed of 2 variables to describe how many people are following a use Delete Delete Button for deleting the users account. - Button to delete a relay server that the user connects to. Button to remove a user from their blocklist. @@ -460,6 +485,16 @@ Sentence composed of 2 variables to describe how many people are following a use Disable animations Button to disable image animation + + Disconnect + Disconnect + Button to disconnect from a relay server. + + + Disconnect From Relay + Disconnect From Relay + Button to disconnect from the relay. + Dismiss Dismiss @@ -473,7 +508,7 @@ Sentence composed of 2 variables to describe how many people are following a use Done Done - Button to dismiss wallet selection view for paying Lightning invoice. + Button that, when tapped, will finish adding a different user's relays to your relay by hiding the + buttons next to the relays. EULA @@ -838,6 +873,11 @@ Picker option to indicate that a zap should be sent privately and not identify t Private Key Title of the secure field that holds the user's private key. + + Private Zap + Private Zap + Title of notification when a private zap is received. + Pro Pro @@ -902,7 +942,9 @@ Picker option to indicate that a zap should be sent privately and not identify t Relays Relays - Sidebar menu label for Relays view. + Navigation bar title that shows the list of relays for a user. + Sidebar menu label for Relays view. + Title of relays view Relays have been notified and clients will be able to use this information to filter content. Thank you! @@ -1086,6 +1128,11 @@ Picker option to indicate that a zap should be sent privately and not identify t Button to show a post from a user who has been blocked. Toggle to show or hide user's secret account login key. + + Show + + Show + + Button that, when tapped, will show + buttons next to a user's relays. + Show API Key Show API Key @@ -1097,6 +1144,11 @@ Picker option to indicate that a zap should be sent privately and not identify t Show more Button to show entire note. + + Show only preferred languages on Universe feed + Show only preferred languages on Universe feed + Toggle to show notes that are only in the device's preferred languages on the Universe feed and hide notes that are in other languages. + Show wallet selector Show wallet selector @@ -1325,7 +1377,8 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. Zap Zap Accessibility label for zap button - Button to send a zap. + Button to send a zap. + Title of notification when a non-private zap is received. Zap Amount @@ -1531,7 +1584,7 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
- +
@@ -1744,6 +1797,36 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. %2$@ sats + + You received %2$@ sat from %3$@ + You received %2$@ sat from %3$@ + + + + You received %2$@ sats from %3$@ + You received %2$@ sats from %3$@ + + + + %1$#@NOTIFICATION@ + %1$#@NOTIFICATION@ + + + + You received %2$@ sat from %3$@: "%4$@" + You received %2$@ sat from %3$@: "%4$@" + + + + You received %2$@ sats from %3$@: "%4$@" + You received %2$@ sats from %3$@: "%4$@" + + + + %1$#@NOTIFICATION@ + %1$#@NOTIFICATION@ + + %#@ZAPPED@ %#@ZAPPED@ diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings index adb97316..2f58dbfa 100644 --- a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings +++ b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings @@ -2,7 +2,11 @@ "CFBundleDisplayName" = "Damus"; /* Bundle name */ "CFBundleName" = "damus"; +/* Privacy - Camera Usage Description */ +"NSCameraUsageDescription" = "Damus needs access to your camera if you want to upload photos from it"; /* Privacy - Face ID Usage Description */ "NSFaceIDUsageDescription" = "Local authentication to access private key"; +/* Privacy - Microphone Usage Description */ +"NSMicrophoneUsageDescription" = "Damus needs access to your microphone if you want to upload recorded videos from it"; /* Privacy - Photo Library Additions Usage Description */ "NSPhotoLibraryAddUsageDescription" = "Granting Damus access to your photos allows you to save images."; 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 a5e84c6d..26972180 100644 Binary files a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings and b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings differ 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 1761de95..56645f1a 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 @@ -226,6 +226,38 @@ %2$@ sats
+ zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + You received %2$@ sat from %3$@ + other + You received %2$@ sats from %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + You received %2$@ sat from %3$@: "%4$@" + other + You received %2$@ sats from %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/en-US.xcloc/contents.json b/damus/en-US.xcloc/contents.json index 7d5a83e2..eede7b93 100644 --- a/damus/en-US.xcloc/contents.json +++ b/damus/en-US.xcloc/contents.json @@ -3,10 +3,10 @@ "project" : "damus.xcodeproj", "targetLocale" : "en-US", "toolInfo" : { - "toolBuildNumber" : "14C18", + "toolBuildNumber" : "14E222b", "toolID" : "com.apple.dt.xcode", "toolName" : "Xcode", - "toolVersion" : "14.2" + "toolVersion" : "14.3" }, "version" : "1.0" } \ No newline at end of file diff --git a/damus/es-419.lproj/Localizable.strings b/damus/es-419.lproj/Localizable.strings index 90a7016a..3507ff8f 100644 Binary files a/damus/es-419.lproj/Localizable.strings and b/damus/es-419.lproj/Localizable.strings differ diff --git a/damus/es-419.lproj/Localizable.stringsdict b/damus/es-419.lproj/Localizable.stringsdict index db643b1a..80708162 100644 --- a/damus/es-419.lproj/Localizable.stringsdict +++ b/damus/es-419.lproj/Localizable.stringsdict @@ -254,6 +254,42 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Recibiste %2$@ sat de %3$@ + many + Recibiste %2$@ sats de %3$@ + other + Recibiste %2$@ sats de %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Recibiste %2$@ sat de %3$@: "%4$@" + many + Recibiste %2$@ sats de %3$@: "%4$@" + other + Recibiste %2$@ sats de %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/fr-CA.lproj/Localizable.strings b/damus/fr-CA.lproj/Localizable.strings index 8d6e1222..746ec34e 100644 Binary files a/damus/fr-CA.lproj/Localizable.strings and b/damus/fr-CA.lproj/Localizable.strings differ diff --git a/damus/fr-CA.lproj/Localizable.stringsdict b/damus/fr-CA.lproj/Localizable.stringsdict index b24dadeb..34d23236 100644 --- a/damus/fr-CA.lproj/Localizable.stringsdict +++ b/damus/fr-CA.lproj/Localizable.stringsdict @@ -254,6 +254,42 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Vous avez reçu %2$@ sat de %3$@ + many + Vous avez reçu %2$@ sats de %3$@ + other + Vous avez reçu %2$@ sats de %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + You received %2$@ sat from %3$@: "%4$@" + many + You received %2$@ sats from %3$@: "%4$@" + other + You received %2$@ sats from %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/fr-FR.lproj/Localizable.strings b/damus/fr-FR.lproj/Localizable.strings index a77689f4..382d56ab 100644 Binary files a/damus/fr-FR.lproj/Localizable.strings and b/damus/fr-FR.lproj/Localizable.strings differ diff --git a/damus/fr-FR.lproj/Localizable.stringsdict b/damus/fr-FR.lproj/Localizable.stringsdict index 6a98ad6d..ba36c7c7 100644 --- a/damus/fr-FR.lproj/Localizable.stringsdict +++ b/damus/fr-FR.lproj/Localizable.stringsdict @@ -254,6 +254,42 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Vous avez reçu %2$@ sat de %3$@ + many + Vous avez reçu %2$@ sats de %3$@ + other + Vous avez reçu %2$@ sats de %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Vous avez reçu %2$@ sat de %3$@: "%4$@" + many + Vous avez reçu %2$@ sats de %3$@: "%4$@" + other + Vous avez reçu %2$@ sats de %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/hu-HU.lproj/Localizable.strings b/damus/hu-HU.lproj/Localizable.strings index 015e9666..3573f85c 100644 Binary files a/damus/hu-HU.lproj/Localizable.strings and b/damus/hu-HU.lproj/Localizable.strings differ diff --git a/damus/hu-HU.lproj/Localizable.stringsdict b/damus/hu-HU.lproj/Localizable.stringsdict index 91db6d7a..09b4cd01 100644 --- a/damus/hu-HU.lproj/Localizable.stringsdict +++ b/damus/hu-HU.lproj/Localizable.stringsdict @@ -226,6 +226,38 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + %2$@ sat kaptál %3$@-tól + other + %2$@ sats kaptál %3$@-tól + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + %2$@ sat kaptál %3$@: "%4$@"-tól + other + %2$@ sats kaptál %3$@: "%4$@"-tól + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/ja.lproj/Localizable.strings b/damus/ja.lproj/Localizable.strings index 3dc6a547..ce3d68e4 100644 Binary files a/damus/ja.lproj/Localizable.strings and b/damus/ja.lproj/Localizable.strings differ diff --git a/damus/ja.lproj/Localizable.stringsdict b/damus/ja.lproj/Localizable.stringsdict index 1d41824c..1802d7cc 100644 --- a/damus/ja.lproj/Localizable.stringsdict +++ b/damus/ja.lproj/Localizable.stringsdict @@ -198,6 +198,34 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + %3$@ から %2$@ sats を受け取りました + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + %3$@ から %2$@ sats を受け取りました: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings index 7effd23b..fe2c9029 100644 Binary files a/damus/nl.lproj/Localizable.strings and b/damus/nl.lproj/Localizable.strings differ diff --git a/damus/nl.lproj/Localizable.stringsdict b/damus/nl.lproj/Localizable.stringsdict index 99c43178..2bf8ad23 100644 --- a/damus/nl.lproj/Localizable.stringsdict +++ b/damus/nl.lproj/Localizable.stringsdict @@ -226,6 +226,38 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Je hebt %2$@ sat ontvangen van %3$@ + other + Je hebt %2$@ sats ontvangen van %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Je hebt %2$@ sat ontvangen van %3$@: “%4$@” + other + Je hebt %2$@ sats ontvangen van %3$@: “%4$@” + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings index 447c1ccc..791f1879 100644 Binary files a/damus/pl-PL.lproj/Localizable.strings and b/damus/pl-PL.lproj/Localizable.strings differ diff --git a/damus/pl-PL.lproj/Localizable.stringsdict b/damus/pl-PL.lproj/Localizable.stringsdict index 24bd0b3b..58d777ad 100644 --- a/damus/pl-PL.lproj/Localizable.stringsdict +++ b/damus/pl-PL.lproj/Localizable.stringsdict @@ -282,6 +282,46 @@ %2$@ satsa + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Otrzymano %2$@ sat od %3$@ + few + Otrzymano %2$@ satsy od %3$@ + many + Otrzymano %2$@ satsów od %3$@ + other + Otrzymano %2$@ satsa od %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Otrzymano %2$@ sat od %3$@: "%4$@" + few + Otrzymano %2$@ satsy od %3$@: "%4$@" + many + Otrzymano %2$@ satsów od %3$@: "%4$@" + other + Otrzymano %2$@ satsa od %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/pt-BR.lproj/Localizable.strings b/damus/pt-BR.lproj/Localizable.strings index f2baad88..440338f0 100644 Binary files a/damus/pt-BR.lproj/Localizable.strings and b/damus/pt-BR.lproj/Localizable.strings differ diff --git a/damus/pt-BR.lproj/Localizable.stringsdict b/damus/pt-BR.lproj/Localizable.stringsdict index ccf22192..bb78dd85 100644 --- a/damus/pt-BR.lproj/Localizable.stringsdict +++ b/damus/pt-BR.lproj/Localizable.stringsdict @@ -254,6 +254,42 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Você recebeu %2$@ sats de %3$@ + many + Você recebeu %2$@ sats de %3$@ + other + Você recebeu %2$@ sats de %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Você recebeu %2$@ sats de %3$@: "%4$@" + many + Você recebeu %2$@ sats de %3$@: "%4$@" + other + Você recebeu %2$@ sats de %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/ru.lproj/Localizable.strings b/damus/ru.lproj/Localizable.strings index e0d60e2d..b6d530b0 100644 Binary files a/damus/ru.lproj/Localizable.strings and b/damus/ru.lproj/Localizable.strings differ diff --git a/damus/ru.lproj/Localizable.stringsdict b/damus/ru.lproj/Localizable.stringsdict index 022e3842..8761cda0 100644 --- a/damus/ru.lproj/Localizable.stringsdict +++ b/damus/ru.lproj/Localizable.stringsdict @@ -275,13 +275,53 @@ one %2$@ сат few - %2$@ sats + %2$@ сат many - %2$@ sats + %2$@ сат other %2$@ сат + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Вы получили %2$@ сат от %3$@ + few + Вы получили %2$@ сат от %3$@ + many + Вы получили %2$@ сат от %3$@ + other + Вы получили %2$@ сат от %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Вы получили %2$@ сат от %3$@: "%4$@" + few + Вы получили %2$@ сат от %3$@: "%4$@" + many + Вы получили %2$@ сат от %3$@: "%4$@" + other + Вы получили %2$@ сат от %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/sv-SE.lproj/Localizable.strings b/damus/sv-SE.lproj/Localizable.strings index 544ab10e..f0daf9bb 100644 Binary files a/damus/sv-SE.lproj/Localizable.strings and b/damus/sv-SE.lproj/Localizable.strings differ diff --git a/damus/sv-SE.lproj/Localizable.stringsdict b/damus/sv-SE.lproj/Localizable.stringsdict index 4db52d5c..d19d108c 100644 --- a/damus/sv-SE.lproj/Localizable.stringsdict +++ b/damus/sv-SE.lproj/Localizable.stringsdict @@ -226,6 +226,38 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Du fick %2$@ sat från %3$@ + other + Du fick %2$@ sats från %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + one + Du fick %2$@ sat från %3$@: "%4$@" + other + Du fick %2$@ sats från %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/vi.lproj/Localizable.strings b/damus/vi.lproj/Localizable.strings index 2b6322a6..e5e1235c 100644 Binary files a/damus/vi.lproj/Localizable.strings and b/damus/vi.lproj/Localizable.strings differ diff --git a/damus/vi.lproj/Localizable.stringsdict b/damus/vi.lproj/Localizable.stringsdict index 7a810ec6..4d16bd82 100644 --- a/damus/vi.lproj/Localizable.stringsdict +++ b/damus/vi.lproj/Localizable.stringsdict @@ -198,6 +198,34 @@ %2$@ sats + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + Bạn đã nhận được %2$@ sats từ %3$@ + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + Bạn đã nhận được %2$@ sats từ %3$@: "%4$@" + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/zh-CN.lproj/InfoPlist.strings b/damus/zh-CN.lproj/InfoPlist.strings index 77008a38..f727001b 100644 Binary files a/damus/zh-CN.lproj/InfoPlist.strings and b/damus/zh-CN.lproj/InfoPlist.strings differ diff --git a/damus/zh-CN.lproj/Localizable.strings b/damus/zh-CN.lproj/Localizable.strings index 4387bd79..69591713 100644 Binary files a/damus/zh-CN.lproj/Localizable.strings and b/damus/zh-CN.lproj/Localizable.strings differ diff --git a/damus/zh-CN.lproj/Localizable.stringsdict b/damus/zh-CN.lproj/Localizable.stringsdict index 14ae50dc..84a8f29a 100644 --- a/damus/zh-CN.lproj/Localizable.stringsdict +++ b/damus/zh-CN.lproj/Localizable.stringsdict @@ -198,6 +198,34 @@ %2$@ 聪 + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + 你从 %3$@ 收到了 %2$@ 聪 + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + 你从 %3$@: "%4$@" 收到了 %2$@ 聪 + + zapped_tagged_in_3 NSStringLocalizedFormatKey @@ -223,7 +251,7 @@ NSStringFormatValueTypeKey d other - %2$@ 和 %1$d 个其他用户电击了你的推文 + %2$@ 和 %1$d 个其他用户电击了你的便条 zapped_your_profile_3 diff --git a/damus/zh-HK.lproj/Localizable.strings b/damus/zh-HK.lproj/Localizable.strings index 7276d305..05bf467a 100644 Binary files a/damus/zh-HK.lproj/Localizable.strings and b/damus/zh-HK.lproj/Localizable.strings differ diff --git a/damus/zh-HK.lproj/Localizable.stringsdict b/damus/zh-HK.lproj/Localizable.stringsdict index 6c02f678..5f446ca9 100644 --- a/damus/zh-HK.lproj/Localizable.stringsdict +++ b/damus/zh-HK.lproj/Localizable.stringsdict @@ -198,6 +198,34 @@ %2$@ 聰 + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + 你從 %3$@ 收到了%2$@ 聰 + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + 你從 %3$@: "%4$@" 收到了%2$@ 聰 + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damus/zh-TW.lproj/Localizable.strings b/damus/zh-TW.lproj/Localizable.strings index dda3387a..b74fc30b 100644 Binary files a/damus/zh-TW.lproj/Localizable.strings and b/damus/zh-TW.lproj/Localizable.strings differ diff --git a/damus/zh-TW.lproj/Localizable.stringsdict b/damus/zh-TW.lproj/Localizable.stringsdict index 6c02f678..5f446ca9 100644 --- a/damus/zh-TW.lproj/Localizable.stringsdict +++ b/damus/zh-TW.lproj/Localizable.stringsdict @@ -198,6 +198,34 @@ %2$@ 聰 + zap_notification_no_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + 你從 %3$@ 收到了%2$@ 聰 + + + zap_notification_with_message + + NSStringLocalizedFormatKey + %1$#@NOTIFICATION@ + NOTIFICATION + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + @ + other + 你從 %3$@: "%4$@" 收到了%2$@ 聰 + + zapped_tagged_in_3 NSStringLocalizedFormatKey diff --git a/damusTests/ZapTests.swift b/damusTests/ZapTests.swift index c99339c7..fb7191dd 100644 --- a/damusTests/ZapTests.swift +++ b/damusTests/ZapTests.swift @@ -65,6 +65,9 @@ final class ZapTests: XCTestCase { XCTAssertEqual(zap.zapper, "9630f464cca6a5147aa8a35f0bcdd3ce485324e732fd39e09233b1d848238f31") XCTAssertEqual(zap.target, ZapTarget.profile("32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")) + + XCTAssertEqual(zap_notification_title(zap), "Zap") + XCTAssertEqual(zap_notification_body(profiles: Profiles(), zap: zap), "You received 1k sats from 107jk7ht:2qlu3nfm") } }