From 9d42715d76c985b14283c49ab5749e4623865a5f Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:49:07 -0800 Subject: [PATCH] Fix localization issues and export strings for translation --- damus/Views/LoginView.swift | 2 +- damus/Views/NoteContentView.swift | 2 +- damus/Views/Search/PullDownSearch.swift | 4 +- .../Settings/DeveloperSettingsView.swift | 6 +- damus/Views/SuggestedHashtagsView.swift | 9 +- damus/Views/Video/DamusVideoPlayer.swift | 2 +- damus/en-US.lproj/Localizable.stringsdict | 16 + .../Localized Contents/en-US.xliff | 366 ++++++++++++++++-- .../InfoPlist.xcstrings | 42 ++ .../Localizable.xcstrings | 33 ++ .../damus/en-US.lproj/InfoPlist.strings | 4 +- .../damus/en-US.lproj/Localizable.strings | Bin 213328 -> 119040 bytes .../damus/en-US.lproj/Localizable.stringsdict | 16 + damus/en-US.xcloc/contents.json | 4 +- 14 files changed, 463 insertions(+), 43 deletions(-) create mode 100644 damus/en-US.xcloc/Source Contents/DamusNotificationService/InfoPlist.xcstrings create mode 100644 damus/en-US.xcloc/Source Contents/DamusNotificationService/Localizable.xcstrings diff --git a/damus/Views/LoginView.swift b/damus/Views/LoginView.swift index cd9e741e..d264b904 100644 --- a/damus/Views/LoginView.swift +++ b/damus/Views/LoginView.swift @@ -361,7 +361,7 @@ struct SignInEntry: View { shouldSaveKey: shouldSaveKey, privKeyFound: $privKeyFound) if privKeyFound { - Toggle("Save Key in Secure Keychain", isOn: shouldSaveKey) + Toggle(NSLocalizedString("Save Key in Secure Keychain", comment: "Toggle to save private key to the Apple secure keychain."), isOn: shouldSaveKey) } } } diff --git a/damus/Views/NoteContentView.swift b/damus/Views/NoteContentView.swift index 6aed0b05..d46b0565 100644 --- a/damus/Views/NoteContentView.swift +++ b/damus/Views/NoteContentView.swift @@ -188,7 +188,7 @@ struct NoteContentView: View { .frame(height: 1) switch artifacts.media[index] { case .image(let url), .video(let url): - Text("\(url)") + Text(url.absoluteString) .font(eventviewsize_to_font(size, font_size: damus_state.settings.font_size)) .foregroundStyle(DamusColors.neutral6) .multilineTextAlignment(.leading) diff --git a/damus/Views/Search/PullDownSearch.swift b/damus/Views/Search/PullDownSearch.swift index fc1c75a6..e23ba1dd 100644 --- a/damus/Views/Search/PullDownSearch.swift +++ b/damus/Views/Search/PullDownSearch.swift @@ -55,7 +55,7 @@ struct PullDownSearchView: View { var body: some View { VStack(alignment: .leading) { HStack { - TextField("Search", text: $search_text) + TextField(NSLocalizedString("Search", comment: "Title of the text field for searching."), text: $search_text) .textFieldStyle(RoundedBorderTextFieldStyle()) .onChange(of: search_text) { query in debouncer.debounce { @@ -75,7 +75,7 @@ struct PullDownSearchView: View { end_editing() on_cancel() }, label: { - Text("Cancel") + Text("Cancel", comment: "Button to cancel out of search text entry mode.") }) } } diff --git a/damus/Views/Settings/DeveloperSettingsView.swift b/damus/Views/Settings/DeveloperSettingsView.swift index 8ed6c119..110fa3e4 100644 --- a/damus/Views/Settings/DeveloperSettingsView.swift +++ b/damus/Views/Settings/DeveloperSettingsView.swift @@ -17,12 +17,12 @@ struct DeveloperSettingsView: View { Toggle(NSLocalizedString("Developer Mode", comment: "Setting to enable developer mode"), isOn: $settings.developer_mode) .toggleStyle(.switch) if settings.developer_mode { - Toggle("Always show onboarding", isOn: $settings.always_show_onboarding_suggestions) + Toggle(NSLocalizedString("Always show onboarding", comment: "Developer mode setting to always show onboarding suggestions."), isOn: $settings.always_show_onboarding_suggestions) - Toggle("Enable experimental push notifications", isOn: $settings.enable_experimental_push_notifications) + Toggle(NSLocalizedString("Enable experimental push notifications", comment: "Developer mode setting to enable experimental push notifications."), isOn: $settings.enable_experimental_push_notifications) .toggleStyle(.switch) - Toggle("Send device token to localhost", isOn: $settings.send_device_token_to_localhost) + Toggle(NSLocalizedString("Send device token to localhost", comment: "Developer mode setting to send device token metadata to a local server instead of the damus.io server."), isOn: $settings.send_device_token_to_localhost) .toggleStyle(.switch) } } diff --git a/damus/Views/SuggestedHashtagsView.swift b/damus/Views/SuggestedHashtagsView.swift index dfccd86b..84bcb4d9 100644 --- a/damus/Views/SuggestedHashtagsView.swift +++ b/damus/Views/SuggestedHashtagsView.swift @@ -102,14 +102,11 @@ struct SuggestedHashtagsView: View { SingleCharacterAvatar(character: "#") VStack(alignment: .leading, spacing: 10) { - Text("#\(hashtag)") + Text(verbatim: "#\(hashtag)") .bold() - Text(self.count != 1 ? String( - format: NSLocalizedString("%d users talking about it", comment: "A label indicating how many users have been talking about a hashtag"), - self.count - ) : NSLocalizedString("1 user talking about it", comment: "A label indicating 1 user has been talking about a hashtag")) - .foregroundStyle(.secondary) + Text(pluralizedString(key: "users_talking_about_it", count: self.count)) + .foregroundStyle(.secondary) } Spacer() diff --git a/damus/Views/Video/DamusVideoPlayer.swift b/damus/Views/Video/DamusVideoPlayer.swift index 9e6ab57f..f27253de 100644 --- a/damus/Views/Video/DamusVideoPlayer.swift +++ b/damus/Views/Video/DamusVideoPlayer.swift @@ -100,7 +100,7 @@ struct DamusVideoPlayer: View { private var live_indicator: some View { VStack { HStack { - Text("LIVE") + Text("LIVE", comment: "Text indicator that the video is a livestream.") .bold() .foregroundColor(.red) .padding(.horizontal) diff --git a/damus/en-US.lproj/Localizable.stringsdict b/damus/en-US.lproj/Localizable.stringsdict index fd4cc98f..755c5ace 100644 --- a/damus/en-US.lproj/Localizable.stringsdict +++ b/damus/en-US.lproj/Localizable.stringsdict @@ -258,6 +258,22 @@ %2$@ sats + users_talking_about_it + + NSStringLocalizedFormatKey + %#@USERS@ + USERS + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %d user talking about it + other + %d users talking about it + + word_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 ec028eaa..75cc32ea 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 @@
- +
@@ -21,8 +21,8 @@ Privacy - Media Library Usage Description - Damus needs access to your camera if you want to scan QR codes and upload photos - Damus needs access to your camera if you want to scan QR codes and upload photos + Damus needs access to your camera in order to upload photos and scan QR codes. + Damus needs access to your camera in order to upload photos and scan QR codes. Privacy - Camera Usage Description @@ -31,8 +31,8 @@ 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 + Damus needs access to your microphone for creating video recording posts + Damus needs access to your microphone for creating video recording posts Privacy - Microphone Usage Description @@ -44,7 +44,7 @@
- +
@@ -160,6 +160,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Add all Button label to re-add all original participants as profiles to reply to in a note + + Add an external link + Add an external link + Placeholder as an example of what the user could set so that the link is opened when the status is tapped. + Add bookmark Add bookmark @@ -170,6 +175,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Add relay Title text to indicate user to an add a relay. + + Add your first post + Add your first post + Prompt given to the user during onboarding, suggesting them to write their first post + Additional information Additional information @@ -185,6 +195,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English All Label for filter for all notifications. + + All recent notes + All recent notes + A label indicating that the notes being displayed below it are all recent notes + Already on Nostr? Already on Nostr? @@ -195,6 +210,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Always show images Setting to always show and never blur images + + Always show onboarding + Always show onboarding + Developer mode setting to always show onboarding suggestions. + An additional percentage of each zap will be sent to support Damus development An additional percentage of each zap will be sent to support Damus development @@ -237,6 +257,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Are you sure you want to attach this wallet? Prompt to ask user if they want to attach their Nostr Wallet Connect lightning wallet. + + Are you sure you want to clear the cache? This will free space, but images may take longer to load again. + Are you sure you want to clear the cache? This will free space, but images may take longer to load again. + Message explaining what it means to clear the cache, asking if user wants to proceed. + Are you sure you want to delete all of your bookmarks? Are you sure you want to delete all of your bookmarks? @@ -309,11 +334,17 @@ Sentence composed of 2 variables to describe how many reposts. In source English Broadcast music playing on Apple Music Toggle to enable or disable broadcasting what music is being played on Apple Music in their profile status. + + Cache has been cleared + Cache has been cleared + Message indicating that the cache was successfully cleared. + Cancel Cancel Alert button to cancel out of alert for muting a user. Button to cancel a repost. + Button to cancel any interaction with the QRCode link. Button to cancel out of alert that creates a new mutelist. Button to cancel out of posting a note. Button to cancel out of view adding user inputted emoji. @@ -323,6 +354,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Cancel out of logging out the user. Text for button to cancel out of connecting Nostr Wallet Connect lightning ewallet. + + Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed? + Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed? + Message explaining consequences of changing the 'enable animation' setting + Choose from Library Choose from Library @@ -343,6 +379,16 @@ Sentence composed of 2 variables to describe how many reposts. In source English Clear status Label to prompt user to select an expiration time for the profile status to clear. + + Clearing Cache + Clearing Cache + Loading message indicating that the cache is being cleared. + + + Confirmation + Confirmation + Confirmation dialog title + Connect To Relay Connect To Relay @@ -380,6 +426,7 @@ Sentence composed of 2 variables to describe how many reposts. In source English Copy Button to copy a relay server address. Button to copy an emoji reaction + Button to copy the value found. Context menu option for copying the version of damus. @@ -547,6 +594,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Disconnect Wallet Text for button to disconnect from Nostr Wallet Connect lightning wallet. + + Dismiss + Dismiss + Button to dismiss alert + Display name Display name @@ -587,6 +639,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Emoji Reactions Section title for emoji reactions that are currently added. + + Enable experimental push notifications + Enable experimental push notifications + Developer mode setting to enable experimental push notifications. + Encrypted Encrypted @@ -632,11 +689,6 @@ Sentence composed of 2 variables to describe how many reposts. In source English Failed to parse NostrScript error message when it fails to parse a script. - - Filter - Filter - Button label text for filtering relay servers. - Follow Follow @@ -707,6 +759,22 @@ Sentence composed of 2 variables to describe how many reposts. In source English Font Size Section label for font size settings. + + For #Introductions! I’m a software developer. + +My side interests include languages and I am striving to be a #polyglot - I am a native English speaker and can speak French, German and Japanese. + For #Introductions! I’m a software developer. + +My side interests include languages and I am striving to be a #polyglot - I am a native English speaker and can speak French, German and Japanese. + First post example given to the user during onboarding, as a suggestion as to what they could post first + + + Found + (qrCodeValue) + Found + (qrCodeValue) + Alert message asking if the user wants to open the link. + Free Free @@ -720,13 +788,27 @@ Sentence composed of 2 variables to describe how many reposts. In source English Get API Key with BTC/Lightning Get API Key with BTC/Lightning - Button to navigate to nokyctranslate website to get a translation API key. + Button to navigate to nokyctranslate website to get a translation API key. + Button to navigate to translate.nostr.wine to get a translation API key. Hashtags Hashtags Label for filter for seeing only hashtag follows. + + Hello everybody! + +This is my first post on Damus, I am happy to meet you all 🤙. What’s up? + +#introductions + Hello everybody! + +This is my first post on Damus, I am happy to meet you all 🤙. What’s up? + +#introductions + First post example given to the user during onboarding, as a suggestion as to what they could post first + Help build the future of decentralized communication on the web. Help build the future of decentralized communication on the web. @@ -752,6 +834,15 @@ Sentence composed of 2 variables to describe how many reposts. In source English Home Navigation bar title for Home view where notes and replies appear from those who the user is following. + + Howdy! I’m a graphic designer during the day and coder at night, but I’m also trying to spend more time outdoors. + +Hope to meet folks who are on their own journeys to a peaceful and free life! + Howdy! I’m a graphic designer during the day and coder at night, but I’m also trying to spend more time outdoors. + +Hope to meet folks who are on their own journeys to a peaceful and free life! + First post example given to the user during onboarding, as a suggestion as to what they could post first + Illegal Content Illegal Content @@ -798,6 +889,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Navigation title for managing keys. Settings section for managing keys + + LIVE + LIVE + Text indicator that the video is a livestream. + Learn more about Nostr Learn more about Nostr @@ -843,6 +939,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Likes Setting to enable Like Local Notification + + Load media + Load media + Button to show media in note. + Local Notifications Local Notifications @@ -889,6 +990,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English Make sure your nsec account key is saved before you logout or you will lose access to this account Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. + + Media previews + Media previews + Setting to show media + Mentioned by %@ Mentioned by %@ @@ -899,6 +1005,16 @@ Sentence composed of 2 variables to describe how many reposts. In source English Mentions Setting to enable Mention Local Notification + + Merch + Merch + Sidebar menu label for merch store link. + + + Message + Message + Button label that allows the user to start a direct message conversation with the user shown on-screen + Mute Mute @@ -980,6 +1096,11 @@ Sentence composed of 2 variables to describe how many reposts. In source English No one will see that you zapped Description of anonymous zap type where the zap is sent anonymously and does not identify the user who sent it. + + No results + No results + A label indicating that note search resulted in no results + No zaps will be sent, only a lightning payment. No zaps will be sent, only a lightning payment. @@ -1028,8 +1149,7 @@ Sentence composed of 2 variables to describe how many reposts. In source English Notes Notes - Label for filter for seeing only your notes (instead of notes and replies). -Label for filter for seeing only notes (instead of notes and replies). + A label indicating that the notes being displayed below it are from a timeline, not search results Notes & Replies @@ -1068,6 +1188,12 @@ Label for filter for seeing notes and replies (instead of only notes). Nudity Description of report type for nudity. + + OK + OK + Button label indicating user wants to proceed. + Button label to dismiss an error dialog + Ok Ok @@ -1098,6 +1224,16 @@ Label for filter for seeing notes and replies (instead of only notes). OnlyZaps mode Setting toggle to hide reactions. + + Open in browser + Open in browser + Button to open the value found in browser. + + + Open in wallet + Open in wallet + Button to open the value found in browser. + Optional Optional @@ -1184,6 +1320,16 @@ Label for filter for seeing notes and replies (instead of only notes). Profile Picture Label for Profile Picture section of user profile form. + + Profile action sheets allow you to follow, zap, or DM profiles more quickly without having to view their full profile + Profile action sheets allow you to follow, zap, or DM profiles more quickly without having to view their full profile + Section footer clarifying what the profile action sheet feature does + + + Profiles + Profiles + Section title for profile view configuration. + Public Public @@ -1386,21 +1532,41 @@ Label for filter for seeing notes and replies (instead of only notes). Save Image Context menu option to save an image. + + Save Key in Secure Keychain + Save Key in Secure Keychain + Toggle to save private key to the Apple secure keychain. + Scan Code Scan Code Button to switch to scan QR Code page. + + Scan Your Private Key QR + Scan Your Private Key QR + Text to prompt scanning a QR code of a user's privkey to login to their profile. + Scan a user's pubkey Scan a user's pubkey Text to prompt scanning a QR code of a user's pubkey to open their profile. + + Scan for QR Code + Scan for QR Code + Context menu option to scan image for a QR Code. + Scan the code Scan the code Text on QR code view to prompt viewer to scan the QR code on screen with their device camera. + + Search + Search + Title of the text field for searching. + Search hashtag: #%@ Search hashtag: #%@ @@ -1447,6 +1613,11 @@ Label for filter for seeing notes and replies (instead of only notes). Send a message with your zap... Placeholder text for a comment to send as part of a zap to the user. + + Send device token to localhost + Send device token to localhost + Developer mode setting to send device token metadata to a local server instead of the damus.io server. + Server Server @@ -1522,6 +1693,16 @@ Label for filter for seeing notes and replies (instead of only notes). 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 profile action sheets + Show profile action sheets + Setting to show profile action sheets when clicking on a user's profile picture + + + Show recommended relays + Show recommended relays + Button to show recommended relays. + Show wallet selector Show wallet selector @@ -1563,6 +1744,16 @@ Label for filter for seeing notes and replies (instead of only notes). Description of report type for spam. Section header for Universe/Search spam + + Staying humble... + Staying humble... + Placeholder as an example of what the user could set as their profile status. + + + Suggested hashtags + Suggested hashtags + A label indicating that the items below it are suggested hashtags + Support Damus Support Damus @@ -1615,6 +1806,15 @@ You're all set! This is a public key, you will not be able to make notes or interact in any way. This is used for viewing accounts from their perspective. Warning that the inputted account key is a public key and the result of what happens because of it. + + This is my first post on Nostr 💜. I love drawing and folding Origami! + +Nice to meet you all! #introductions #plebchain + This is my first post on Nostr 💜. I love drawing and folding Origami! + +Nice to meet you all! #introductions #plebchain + First post example given to the user during onboarding, as a suggestion as to what they could post first + 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. @@ -1635,6 +1835,11 @@ You're all set! Top Zap Text indicating that this zap is the one with the highest amount of sats. + + Top hits + Top hits + A label indicating that the notes being displayed below it are all top note search results + Translate DMs Translate DMs @@ -1686,6 +1891,11 @@ You're all set! URL Example URL to LibreTranslate server + + Unable to find a QR Code + Unable to find a QR Code + Alert message letting user know a QR Code was not found. + Unfollow Unfollow @@ -1757,6 +1967,11 @@ You're all set! View QR Code Button to switch to view users QR Code + + View full profile + View full profile + A button label that allows the user to see the full profile of the profile they are previewing + View multiple events per user View multiple events per user @@ -1870,6 +2085,7 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. Zap Zap Accessibility label for zap button + Button label that allows the user to zap (i.e. send a Bitcoin tip via the lightning network) the user shown on-screen Title of notification when a non-private zap is received. @@ -1892,11 +2108,27 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. Zap attempt from connected wallet was canceled. Message to display when a zap from the user's connected wallet was canceled. + + Zap failed + Zap failed + Button label indicating that a zap action was unsuccessful (i.e. the user was unable to send a Bitcoin tip via the lightning network to the user shown on-screen) + Title of an alert indicating that a zap action failed + Zap type Zap type Text to indicate that the buttons below it is for choosing the type of zap to send. + + Zapped! + Zapped! + Button label indicating that a zap action was successful (i.e. the user is successfully sent a Bitcoin tip via the lightning network to the user shown on-screen) + + + Zapping + Zapping + Button label indicating that a zap action is in progress (i.e. the user is currently sending a Bitcoin tip via the lightning network to the user shown on-screen) + Zapping... Zapping... @@ -1911,11 +2143,6 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. Setting to enable Zap Local Notification Title for section in zap settings that controls general zap preferences. - - https://example.com - https://example.com - Placeholder as an example of what the user could set so that the link is opened when the status is tapped. - https://example.com/pic.jpg https://example.com/pic.jpg @@ -2026,6 +2253,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. self Part of a larger sentence 'Replying to self' in US English. 'self' indicates that the user is replying to themself and no one else. + + translate.nostr.wine (DeepL, Pay with BTC) + translate.nostr.wine (DeepL, Pay with BTC) + Dropdown option for selecting translate.nostr.wine as the translation service. + wallet wallet @@ -2076,16 +2308,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. Placeholder example for an emoji reaction - - 📋 Working - 📋 Working - Placeholder as an example of what the user could set as their profile status. -
- +
@@ -2328,6 +2555,21 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. %2$@ sats + + %#@USERS@ + %#@USERS@ + + + + %d user talking about it + %d user talking about it + + + + %d users talking about it + %d users talking about it + + %#@WORDS@ %#@WORDS@ @@ -2435,4 +2677,78 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
+ +
+ +
+ + + DamusNotificationService + DamusNotificationService + Bundle display name + + + DamusNotificationService + DamusNotificationService + Bundle name + + + + + Copyright (human-readable) + + +
+ +
+ +
+ + + (Contents are encrypted) + (Contents are encrypted) + Label on push notification indicating that the contents of the message are encrypted + + + Anonymous + Anonymous + Placeholder display name of anonymous user. + + + Any + Any + Any amount of sats + + + New message + New message + Title label for push notifications where a direct message was sent to the user + + + New note reaction + New note reaction + Title label for push notifications where someone reacted to the user's post with a specific emoji + + + Someone posted a note + Someone posted a note + Title label for push notification where someone posted a note + + + Someone reacted to your note + Someone reacted to your note + Generic title label for push notifications where someone reacted to the user's post + + + Someone reacted to your note with %@ + Someone reacted to your note with %@ + Body label for push notifications where someone reacted to the user's post with a specific emoji + + + Someone zapped you ⚡️ + Someone zapped you ⚡️ + Title label for a push notification where someone zapped the user + + +
diff --git a/damus/en-US.xcloc/Source Contents/DamusNotificationService/InfoPlist.xcstrings b/damus/en-US.xcloc/Source Contents/DamusNotificationService/InfoPlist.xcstrings new file mode 100644 index 00000000..12b79d00 --- /dev/null +++ b/damus/en-US.xcloc/Source Contents/DamusNotificationService/InfoPlist.xcstrings @@ -0,0 +1,42 @@ +{ + "sourceLanguage" : "en-US", + "strings" : { + "CFBundleDisplayName" : { + "comment" : "Bundle display name", + "extractionState" : "extracted_with_value", + "localizations" : { + "en-US" : { + "stringUnit" : { + "state" : "new", + "value" : "DamusNotificationService" + } + } + } + }, + "CFBundleName" : { + "comment" : "Bundle name", + "extractionState" : "extracted_with_value", + "localizations" : { + "en-US" : { + "stringUnit" : { + "state" : "new", + "value" : "DamusNotificationService" + } + } + } + }, + "NSHumanReadableCopyright" : { + "comment" : "Copyright (human-readable)", + "extractionState" : "extracted_with_value", + "localizations" : { + "en-US" : { + "stringUnit" : { + "state" : "new", + "value" : "" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/damus/en-US.xcloc/Source Contents/DamusNotificationService/Localizable.xcstrings b/damus/en-US.xcloc/Source Contents/DamusNotificationService/Localizable.xcstrings new file mode 100644 index 00000000..3ede2e3a --- /dev/null +++ b/damus/en-US.xcloc/Source Contents/DamusNotificationService/Localizable.xcstrings @@ -0,0 +1,33 @@ +{ + "sourceLanguage" : "en-US", + "strings" : { + "(Contents are encrypted)" : { + "comment" : "Label on push notification indicating that the contents of the message are encrypted" + }, + "Anonymous" : { + "comment" : "Placeholder display name of anonymous user." + }, + "Any" : { + "comment" : "Any amount of sats" + }, + "New message" : { + "comment" : "Title label for push notifications where a direct message was sent to the user" + }, + "New note reaction" : { + "comment" : "Title label for push notifications where someone reacted to the user's post with a specific emoji" + }, + "Someone posted a note" : { + "comment" : "Title label for push notification where someone posted a note" + }, + "Someone reacted to your note" : { + "comment" : "Generic title label for push notifications where someone reacted to the user's post" + }, + "Someone reacted to your note with %@" : { + "comment" : "Body label for push notifications where someone reacted to the user's post with a specific emoji" + }, + "Someone zapped you ⚡️" : { + "comment" : "Title label for a push notification where someone zapped the user" + } + }, + "version" : "1.0" +} \ No newline at end of file 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 a2d5814b..89a491dc 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 @@ -5,10 +5,10 @@ /* Privacy - Media Library Usage Description */ "NSAppleMusicUsageDescription" = "Damus needs access to your media library for playback statuses"; /* Privacy - Camera Usage Description */ -"NSCameraUsageDescription" = "Damus needs access to your camera if you want to upload photos from it"; +"NSCameraUsageDescription" = "Damus needs access to your camera in order to upload photos and scan QR codes."; /* 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"; +"NSMicrophoneUsageDescription" = "Damus needs access to your microphone for creating video recording posts"; /* 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 91518b9d30175c177dbc4b3e64ac8fa879fc8118..a94f7f5a5d3695eaeac014a32d92d6a498996abe 100644 GIT binary patch delta 2656 zcmbVOZA?>V6n@|LmbP5lQs@^ID3|#$bqJ{2{D_<4*!Dx`K*Sj(ThZ3Ej!MwkOD=R9~`{bVRcxu^3BiRt8s>R~&eF9rwbu z`t#7e#ew29_hz+_We7``^HK=bJET(L@a8`R^c-^HgCXwKi+-`|E`IOorF%ghQ`!i~Ih%28ye(25NU3r72r3QQSOUZf2j~7%zNAD>(U; z3)cL&N_SR>jioTwSHNSKw@C5eEjKsMmHuNCGir=rBmI&c>!i2sG;B176uSlcYQ#&} ze^UhP61Wg)NX;nlsDJT#vTvk!ngME3HZhG;NE09Eec2H2Her8|=VSRDq1I=*P0##W z8KL4vDxDNK%(^JGi2yTbLE9l$B5?5sjwb{!*CP$0(h5gIHmqJC+?LcvQqxQ9T`WS5 zWwo?caBQdq2766-wvc<#d4OASWSOEu|9vao4be^nhcq}fR5Ycl>~U9kZ&0{klQkf% z$%P`!JdTTdxQjQ!=v7a4m;j5h_gNH2L$pDybm)M8mU`gIH>!PuQK&}qka~*?k8np~ zU}(^StIqLCiyqRE6eNPTojDM^V8iPx6|dg>ktnjD zI-fhA*J!q;THbW_+bQ!H>w=5uTK%@MuCk_NWhoi8U-oJu>uL0`HYhwWQtSTTk?oT_ zV(It7|JbX(a$byQEX0c=MckwZj)*NQ;M&T3OFLCZ+XJ;<`&Vd$z3fGYFx|dw^6Ms$iekD8oY*RC(k#rxSUqpY{xP*J2!E9dz zU#16M{>K13vh;$)@+(l}k(i1$J|yFaQ7m delta 1830 zcmbVMYfMx}6rQuLmt|eH*JXK#y1gh8Tyb5slDZ16(V&S4NDZ|{VDV93WTgtRrdGH1 z@ke6F9>Zx&B@}HXDOKvUjv<6tni~3ywWKjd?N$@hHm#ASY5ieL&%J`8ef#6ioilUh z%$)B#=Zm!`o!ghvH82eghaGiQESF9%(&CLlJTxbU#tNO>A#mf5PsC7(DrsKs=oEW$}r;gL$wmjtV zGsR=2_H}bICO)=H-{tclV+pU#M6Tpo1cNX7IQtwdJ?6y3)%keyN>E<9wtbY0{BS0T z>Z`zxk-jW>dvITh2`nZq=U~qP=Lb!okHOfRn%d)nr5ZJ7aiXQ)X>`#G7pN;A@~J!- z>{RK6dJ0y8PUSPftJ5-d zi&sIGs*6GoQ+gNf5Z!tn;?{#>FTgJ@t}d^N><6!AmTmxV#5L6#hu^pu7$J8HoYKr0 zg8Bm=nvEF^&`+IEp~~NZDBQ310y-XGaN_U6`BYWe2a~w1mN>EP zh+lQ~L$?K(Wwm|*Ye!*!z{k~ALBH;T(6qt}pItJ<(+>b~zla~$#hU)K;hs&KET)L? zh;p}V%C3Y|ESRuK-u8qt&=}0cobjHdMuwG}gT5+&aeEs?EqBW><_249`SM1_-JBa@ z6OTK1H2pTR?H4nIlP{XW92o3ph2qh$JpL}yX5PJ@#)z}IO!$8|Otn><3HJ+y3&1W{ z`FAr#gSjx1P8@~DA32GcBU1Q32|RSp$JqQs<~Y`oIwY(UbgO{y^}@xFk1xGCak82G zPR4f||D#OH1`F2)%QiKPI{*iJGUS!Q4&x!wj660%D%)~~#qs*MIfhsx^2BqD?II4e zp2L(_4YO5D7nO;6UXAjlbwfJ~FuN=55l=4MyNrdjB73+TarODUk%2$@ sats
+ users_talking_about_it + + NSStringLocalizedFormatKey + %#@USERS@ + USERS + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + %d user talking about it + other + %d users talking about it + + word_count NSStringLocalizedFormatKey diff --git a/damus/en-US.xcloc/contents.json b/damus/en-US.xcloc/contents.json index cbdca296..baba11ab 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" : "15A240d", + "toolBuildNumber" : "15A507", "toolID" : "com.apple.dt.xcode", "toolName" : "Xcode", - "toolVersion" : "15.0" + "toolVersion" : "15.0.1" }, "version" : "1.0" } \ No newline at end of file