damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

commit d01e7c059540cc4986a1fd269638631767c46599
parent 4f9cef541b9c74a56168ccac757a7e565ed19318
Author: Terry Yiu <963907+tyiu@users.noreply.github.com>
Date:   Fri, 13 Jan 2023 23:35:43 -0500

Fix localization bugs and export localizations

Changelog-Fixes: Fix some localization bugs
Closes: #320

Diffstat:
Mdamus Localizations/en-US.xcloc/Localized Contents/en-US.xliff | 229++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
Mdamus Localizations/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings | 0
Mdamus Localizations/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict | 102++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
Mdamus Localizations/es-419.xcloc/Localized Contents/es-419.xliff | 187++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
Mdamus Localizations/es-419.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings | 0
Mdamus Localizations/es-419.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict | 102++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
Mdamus/Models/FollowersModel.swift | 6+++---
Mdamus/Views/ActionBar/EventActionBar.swift | 4++--
Mdamus/Views/ActionBar/EventDetailBar.swift | 15+++------------
Mdamus/Views/ConfigView.swift | 2+-
Mdamus/Views/ProfileView.swift | 7++++---
Mdamus/Views/PubkeyView.swift | 2+-
Mdamus/Views/ReactionsView.swift | 2+-
Mdamus/Views/ReplyQuoteView.swift | 2+-
Mdamus/Views/SaveKeysView.swift | 2+-
Mdamus/Views/SetupView.swift | 2+-
Mdamus/Views/SideMenuView.swift | 14+++++++-------
Mdamus/en-US.lproj/Localizable.stringsdict | 102++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
Mdamus/es-419.lproj/Localizable.stringsdict | 6+++---
19 files changed, 664 insertions(+), 122 deletions(-)

diff --git a/damus Localizations/en-US.xcloc/Localized Contents/en-US.xliff b/damus Localizations/en-US.xcloc/Localized Contents/en-US.xliff @@ -35,12 +35,14 @@ <trans-unit id="%@" xml:space="preserve"> <source>%@</source> <target>%@</target> - <note>Number of people following a user.</note> + <note>Amount of time that has passed since reply quote event occurred. +Abbreviated version of a nostr public key.</note> </trans-unit> <trans-unit id="%@ %@" xml:space="preserve"> <source>%@ %@</source> <target>%@ %@</target> - <note>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'.</note> + <note>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'. +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'.</note> </trans-unit> <trans-unit id="%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." xml:space="preserve"> <source>%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction.</source> @@ -60,18 +62,14 @@ <trans-unit id="%lld" xml:space="preserve"> <source>%lld</source> <target>%lld</target> - <note>Number of profiles a user is following.</note> + <note>Number of reposts. +Number of profiles a user is following.</note> </trans-unit> <trans-unit id="%lld/%lld" xml:space="preserve"> <source>%lld/%lld</source> <target>%lld/%lld</target> <note>Fraction of how many of the user's relay servers that are operational.</note> </trans-unit> - <trans-unit id="&amp;nbsp;" xml:space="preserve"> - <source>&amp;nbsp;</source> - <target>&amp;nbsp;</target> - <note>No comment provided by engineer.</note> - </trans-unit> <trans-unit id="'%@' at '%@' will be used for verification" xml:space="preserve"> <source>'%@' at '%@' will be used for verification</source> <target>'%@' at '%@' will be used for verification</target> @@ -148,10 +146,15 @@ <target>Any</target> <note>Any amount of sats</note> </trans-unit> - <trans-unit id="Are you sure you want to boost this post?" xml:space="preserve"> - <source>Are you sure you want to boost this post?</source> - <target>Are you sure you want to boost this post?</target> - <note>Alert message to ask if user wants to boost a post.</note> + <trans-unit id="Are you sure you want to repost this?" xml:space="preserve"> + <source>Are you sure you want to repost this?</source> + <target>Are you sure you want to repost this?</target> + <note>Alert message to ask if user wants to repost a post.</note> + </trans-unit> + <trans-unit id="Banner Image" xml:space="preserve"> + <source>Banner Image</source> + <target>Banner Image</target> + <note>Label for Banner Image section of user profile form.</note> </trans-unit> <trans-unit id="Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." xml:space="preserve"> <source>Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus.</source> @@ -178,17 +181,6 @@ <target>Blue Wallet</target> <note>Dropdown option label for Lightning wallet, Blue Wallet.</note> </trans-unit> - <trans-unit id="Boost" xml:space="preserve"> - <source>Boost</source> - <target>Boost</target> - <note>Button to confirm boosting a post. - Title of alert for confirming to boost a post.</note> - </trans-unit> - <trans-unit id="Boosted" xml:space="preserve"> - <source>Boosted</source> - <target>Boosted</target> - <note>Text indicating that the post was boosted (i.e. re-shared).</note> - </trans-unit> <trans-unit id="Breez" xml:space="preserve"> <source>Breez</source> <target>Breez</target> @@ -203,6 +195,7 @@ <source>Cancel</source> <target>Cancel</target> <note>Button to cancel out of posting a note. + Button to cancel out of reposting a post. Button to cancel out of view adding user inputted relay. Cancel out of logging out the user.</note> </trans-unit> @@ -342,11 +335,6 @@ <target>Edit</target> <note>Button to edit user's profile.</note> </trans-unit> - <trans-unit id="Edit Profile" xml:space="preserve"> - <source>Edit Profile</source> - <target>Edit Profile</target> - <note>Title of navigation view for Edit Profile.</note> - </trans-unit> <trans-unit id="Encrypted" xml:space="preserve"> <source>Encrypted</source> <target>Encrypted</target> @@ -428,6 +416,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no <target>LNLink</target> <note>Dropdown option label for Lightning wallet, LNLink.</note> </trans-unit> + <trans-unit id="Left Handed" xml:space="preserve"> + <source>Left Handed</source> + <target>Left Handed</target> + <note>Moves the post button to the left side of the screen</note> + </trans-unit> <trans-unit id="Let's go!" xml:space="preserve"> <source>Let's go!</source> <target>Let's go!</target> @@ -451,7 +444,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no <trans-unit id="Login" xml:space="preserve"> <source>Login</source> <target>Login</target> - <note>Button to log into account.</note> + <note>Button to log into account. + Button to log into an account.</note> </trans-unit> <trans-unit id="Logout" xml:space="preserve"> <source>Logout</source> @@ -530,6 +524,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no <target>PrivateKey</target> <note>Title of the secure field that holds the user's private key.</note> </trans-unit> + <trans-unit id="Profile" xml:space="preserve"> + <source>Profile</source> + <target>Profile</target> + <note>Sidebar menu label for Profile view.</note> + </trans-unit> <trans-unit id="Profile Picture" xml:space="preserve"> <source>Profile Picture</source> <target>Profile Picture</target> @@ -555,6 +554,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no <target>Public key</target> <note>Label indicating that the text is a user's public account key.</note> </trans-unit> + <trans-unit id="Reactions" xml:space="preserve"> + <source>Reactions</source> + <target>Reactions</target> + <note>Navigation bar title for Reactions view.</note> + </trans-unit> <trans-unit id="Recommended Relays" xml:space="preserve"> <source>Recommended Relays</source> <target>Recommended Relays</target> @@ -568,8 +572,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no <trans-unit id="Relays" xml:space="preserve"> <source>Relays</source> <target>Relays</target> - <note>Header text for relay server list for configuration. -Part of a larger sentence to describe how many relay servers a user is connected.</note> + <note>Sidebar menu label for Relay servers view</note> </trans-unit> <trans-unit id="Reply to self" xml:space="preserve"> <source>Reply to self</source> @@ -586,11 +589,27 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>Replying to:</target> <note>Indicating that the user is replying to the following listed people.</note> </trans-unit> + <trans-unit id="Repost" xml:space="preserve"> + <source>Repost</source> + <target>Repost</target> + <note>Button to confirm reposting a post. + Title of alert for confirming to repost a post.</note> + </trans-unit> + <trans-unit id="Reposted" xml:space="preserve"> + <source>Reposted</source> + <target>Reposted</target> + <note>Text indicating that the post was reposted (i.e. re-shared).</note> + </trans-unit> <trans-unit id="Reset" xml:space="preserve"> <source>Reset</source> <target>Reset</target> <note>Section title for resetting the user</note> </trans-unit> + <trans-unit id="Retry" xml:space="preserve"> + <source>Retry</source> + <target>Retry</target> + <note>Button to retry completing account creation after an error occurred.</note> + </trans-unit> <trans-unit id="River" xml:space="preserve"> <source>River</source> <target>River</target> @@ -644,7 +663,8 @@ Part of a larger sentence to describe how many relay servers a user is connected <trans-unit id="Settings" xml:space="preserve"> <source>Settings</source> <target>Settings</target> - <note>Navigation title for Settings view.</note> + <note>Navigation title for Settings view. + Sidebar menu label for accessing the app settings</note> </trans-unit> <trans-unit id="Share" xml:space="preserve"> <source>Share</source> @@ -661,6 +681,11 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>Show wallet selector</target> <note>Toggle to show or hide selection of wallet.</note> </trans-unit> + <trans-unit id="Sign out" xml:space="preserve"> + <source>Sign out</source> + <target>Sign out</target> + <note>Sidebar menu label to sign out of the account.</note> + </trans-unit> <trans-unit id="Strike" xml:space="preserve"> <source>Strike</source> <target>Strike</target> @@ -723,6 +748,11 @@ Part of a larger sentence to describe how many relay servers a user is connected <note>Label for Username section of user profile form. Label to prompt username entry.</note> </trans-unit> + <trans-unit id="Wallet" xml:space="preserve"> + <source>Wallet</source> + <target>Wallet</target> + <note>Sidebar menu label for Wallet view.</note> + </trans-unit> <trans-unit id="Wallet Of Satoshi" xml:space="preserve"> <source>Wallet Of Satoshi</source> <target>Wallet Of Satoshi</target> @@ -768,6 +798,11 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>collapsed_event_view_other_notes</target> <note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped. (Key in .stringsdict)</note> </trans-unit> + <trans-unit id="followers_count" translate="no" xml:space="preserve"> + <source>followers_count</source> + <target>followers_count</target> + <note>Part of a larger sentence to describe how many people are following a user. (Key in .stringsdict)</note> + </trans-unit> <trans-unit id="https://example.com/pic.jpg" xml:space="preserve"> <source>https://example.com/pic.jpg</source> <target>https://example.com/pic.jpg</target> @@ -803,6 +838,16 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>optional</target> <note>Label indicating that a form input is optional.</note> </trans-unit> + <trans-unit id="reactions_count" translate="no" xml:space="preserve"> + <source>reactions_count</source> + <target>reactions_count</target> + <note>Part of a larger sentence to describe how many reactions there are on a post. (Key in .stringsdict)</note> + </trans-unit> + <trans-unit id="relays_count" translate="no" xml:space="preserve"> + <source>relays_count</source> + <target>relays_count</target> + <note>Part of a larger sentence to describe how many relay servers a user is connected. (Key in .stringsdict)</note> + </trans-unit> <trans-unit id="replying_to_one_and_others" translate="no" xml:space="preserve"> <source>replying_to_one_and_others</source> <target>replying_to_one_and_others</target> @@ -813,11 +858,26 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>replying_to_two_and_others</target> <note>Label to indicate that the user is replying to 2 users and others. (Key in .stringsdict)</note> </trans-unit> + <trans-unit id="reposts_count" translate="no" xml:space="preserve"> + <source>reposts_count</source> + <target>reposts_count</target> + <note>Part of a larger sentence to describe how many reposts there are. (Key in .stringsdict)</note> + </trans-unit> <trans-unit id="satoshi" xml:space="preserve"> <source>satoshi</source> <target>satoshi</target> <note>Example username of Bitcoin creator(s), Satoshi Nakamoto.</note> </trans-unit> + <trans-unit id="tips_count" translate="no" xml:space="preserve"> + <source>tips_count</source> + <target>tips_count</target> + <note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note> + </trans-unit> + <trans-unit id="u{00A0}" xml:space="preserve"> + <source>u{00A0}</source> + <target>u{00A0}</target> + <note>Non-breaking space character to fill in blank space next to event action button icons.</note> + </trans-unit> <trans-unit id="wss://some.relay.com" xml:space="preserve"> <source>wss://some.relay.com</source> <target>wss://some.relay.com</target> @@ -828,11 +888,6 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>you</target> <note>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.</note> </trans-unit> - <trans-unit id="馃" xml:space="preserve"> - <source>馃</source> - <target>馃</target> - <note>Button with emoji to like an event.</note> - </trans-unit> </body> </file> <file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="en-US" datatype="plaintext"> @@ -860,6 +915,66 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>路路路 %#@NOTES@ 路路路</target> <note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note> </trans-unit> + <trans-unit id="/followers_count:dict/FOLLOWERS:dict/one:dict/:string" xml:space="preserve"> + <source>Follower</source> + <target>Follower</target> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/followers_count:dict/FOLLOWERS:dict/other:dict/:string" xml:space="preserve"> + <source>Followers</source> + <target>Followers</target> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/followers_count:dict/FOLLOWERS:dict/zero:dict/:string" xml:space="preserve"> + <source>Followers</source> + <target>Followers</target> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/followers_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@FOLLOWERS@</source> + <target>%#@FOLLOWERS@</target> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@REACTIONS@</source> + <target>%#@REACTIONS@</target> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/REACTIONS:dict/one:dict/:string" xml:space="preserve"> + <source>Reaction</source> + <target>Reaction</target> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/REACTIONS:dict/other:dict/:string" xml:space="preserve"> + <source>Reactions</source> + <target>Reactions</target> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/REACTIONS:dict/zero:dict/:string" xml:space="preserve"> + <source>Reactions</source> + <target>Reactions</target> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@RELAYS@</source> + <target>%#@RELAYS@</target> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/RELAYS:dict/one:dict/:string" xml:space="preserve"> + <source>Relay</source> + <target>Relay</target> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/RELAYS:dict/other:dict/:string" xml:space="preserve"> + <source>Relays</source> + <target>Relays</target> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/RELAYS:dict/zero:dict/:string" xml:space="preserve"> + <source>Relays</source> + <target>Relays</target> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> <trans-unit id="/replying_to_one_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> <source>Replying to %@%#@OTHERS@</source> <target>Replying to %@%#@OTHERS@</target> @@ -900,6 +1015,46 @@ Part of a larger sentence to describe how many relay servers a user is connected <target/> <note>Label to indicate that the user is replying to 2 users and others.</note> </trans-unit> + <trans-unit id="/reposts_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@REPOSTS@</source> + <target>%#@REPOSTS@</target> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/reposts_count:dict/REPOSTS:dict/one:dict/:string" xml:space="preserve"> + <source>Repost</source> + <target>Repost</target> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/reposts_count:dict/REPOSTS:dict/other:dict/:string" xml:space="preserve"> + <source>Reposts</source> + <target>Reposts</target> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/reposts_count:dict/REPOSTS:dict/zero:dict/:string" xml:space="preserve"> + <source>Reposts</source> + <target>Reposts</target> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@TIPS@</source> + <target>%#@TIPS@</target> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve"> + <source>Tip</source> + <target>Tip</target> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve"> + <source>Tips</source> + <target>Tips</target> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/TIPS:dict/zero:dict/:string" xml:space="preserve"> + <source>Tips</source> + <target>Tips</target> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> </body> </file> </xliff> diff --git a/damus Localizations/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus Localizations/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings Binary files differ. diff --git a/damus Localizations/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict b/damus Localizations/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict @@ -2,6 +2,78 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>collapsed_event_view_other_notes</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>路路路 %#@NOTES@ 路路路</string> + <key>NOTES</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>0 other notes</string> + <key>one</key> + <string>1 other note</string> + <key>other</key> + <string>%d other notes</string> + </dict> + </dict> + <key>followers_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@FOLLOWERS@</string> + <key>FOLLOWERS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Followers</string> + <key>one</key> + <string>Follower</string> + <key>other</key> + <string>Followers</string> + </dict> + </dict> + <key>reactions_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@REACTIONS@</string> + <key>REACTIONS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Reactions</string> + <key>one</key> + <string>Reaction</string> + <key>other</key> + <string>Reactions</string> + </dict> + </dict> + <key>relays_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@RELAYS@</string> + <key>RELAYS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Relays</string> + <key>one</key> + <string>Relay</string> + <key>other</key> + <string>Relays</string> + </dict> + </dict> <key>replying_to_one_and_others</key> <dict> <key>NSStringLocalizedFormatKey</key> @@ -38,22 +110,40 @@ <string> &amp; %d others</string> </dict> </dict> - <key>collapsed_event_view_other_notes</key> + <key>reposts_count</key> <dict> <key>NSStringLocalizedFormatKey</key> - <string>路路路 %#@NOTES@ 路路路</string> - <key>NOTES</key> + <string>%#@REPOSTS@</string> + <key>REPOSTS</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> - <string>0 other notes</string> + <string>Reposts</string> <key>one</key> - <string>1 other note</string> + <string>Repost</string> <key>other</key> - <string>%d other notes</string> + <string>Reposts</string> + </dict> + </dict> + <key>tips_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@TIPS@</string> + <key>TIPS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Tips</string> + <key>one</key> + <string>Tip</string> + <key>other</key> + <string>Tips</string> </dict> </dict> </dict> diff --git a/damus Localizations/es-419.xcloc/Localized Contents/es-419.xliff b/damus Localizations/es-419.xcloc/Localized Contents/es-419.xliff @@ -30,11 +30,13 @@ </trans-unit> <trans-unit id="%@" xml:space="preserve"> <source>%@</source> - <note>Number of people following a user.</note> + <note>Amount of time that has passed since reply quote event occurred. +Abbreviated version of a nostr public key.</note> </trans-unit> <trans-unit id="%@ %@" xml:space="preserve"> <source>%@ %@</source> - <note>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'.</note> + <note>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'. +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'.</note> </trans-unit> <trans-unit id="%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." xml:space="preserve"> <source>%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction.</source> @@ -50,16 +52,13 @@ </trans-unit> <trans-unit id="%lld" xml:space="preserve"> <source>%lld</source> - <note>Number of profiles a user is following.</note> + <note>Number of reposts. +Number of profiles a user is following.</note> </trans-unit> <trans-unit id="%lld/%lld" xml:space="preserve"> <source>%lld/%lld</source> <note>Fraction of how many of the user's relay servers that are operational.</note> </trans-unit> - <trans-unit id="&amp;nbsp;" xml:space="preserve"> - <source>&amp;nbsp;</source> - <note>No comment provided by engineer.</note> - </trans-unit> <trans-unit id="'%@' at '%@' will be used for verification" xml:space="preserve"> <source>'%@' at '%@' will be used for verification</source> <note>Description of how the nip05 identifier would be used for verification.</note> @@ -121,9 +120,13 @@ <source>Any</source> <note>Any amount of sats</note> </trans-unit> - <trans-unit id="Are you sure you want to boost this post?" xml:space="preserve"> - <source>Are you sure you want to boost this post?</source> - <note>Alert message to ask if user wants to boost a post.</note> + <trans-unit id="Are you sure you want to repost this?" xml:space="preserve"> + <source>Are you sure you want to repost this?</source> + <note>Alert message to ask if user wants to repost a post.</note> + </trans-unit> + <trans-unit id="Banner Image" xml:space="preserve"> + <source>Banner Image</source> + <note>Label for Banner Image section of user profile form.</note> </trans-unit> <trans-unit id="Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." xml:space="preserve"> <source>Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus.</source> @@ -145,15 +148,6 @@ <source>Blue Wallet</source> <note>Dropdown option label for Lightning wallet, Blue Wallet.</note> </trans-unit> - <trans-unit id="Boost" xml:space="preserve"> - <source>Boost</source> - <note>Button to confirm boosting a post. - Title of alert for confirming to boost a post.</note> - </trans-unit> - <trans-unit id="Boosted" xml:space="preserve"> - <source>Boosted</source> - <note>Text indicating that the post was boosted (i.e. re-shared).</note> - </trans-unit> <trans-unit id="Breez" xml:space="preserve"> <source>Breez</source> <note>Dropdown option label for Lightning wallet, Breez.</note> @@ -165,6 +159,7 @@ <trans-unit id="Cancel" xml:space="preserve"> <source>Cancel</source> <note>Button to cancel out of posting a note. + Button to cancel out of reposting a post. Button to cancel out of view adding user inputted relay. Cancel out of logging out the user.</note> </trans-unit> @@ -277,10 +272,6 @@ <source>Edit</source> <note>Button to edit user's profile.</note> </trans-unit> - <trans-unit id="Edit Profile" xml:space="preserve"> - <source>Edit Profile</source> - <note>Title of navigation view for Edit Profile.</note> - </trans-unit> <trans-unit id="Encrypted" xml:space="preserve"> <source>Encrypted</source> <note>Heading indicating that this application keeps private messaging end-to-end encrypted.</note> @@ -346,6 +337,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no <source>LNLink</source> <note>Dropdown option label for Lightning wallet, LNLink.</note> </trans-unit> + <trans-unit id="Left Handed" xml:space="preserve"> + <source>Left Handed</source> + <note>Moves the post button to the left side of the screen</note> + </trans-unit> <trans-unit id="Let's go!" xml:space="preserve"> <source>Let's go!</source> <note>Button to complete account creation and start using the app.</note> @@ -364,7 +359,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no </trans-unit> <trans-unit id="Login" xml:space="preserve"> <source>Login</source> - <note>Button to log into account.</note> + <note>Button to log into account. + Button to log into an account.</note> </trans-unit> <trans-unit id="Logout" xml:space="preserve"> <source>Logout</source> @@ -428,6 +424,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no <source>PrivateKey</source> <note>Title of the secure field that holds the user's private key.</note> </trans-unit> + <trans-unit id="Profile" xml:space="preserve"> + <source>Profile</source> + <note>Sidebar menu label for Profile view.</note> + </trans-unit> <trans-unit id="Profile Picture" xml:space="preserve"> <source>Profile Picture</source> <note>Label for Profile Picture section of user profile form.</note> @@ -448,6 +448,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no <source>Public key</source> <note>Label indicating that the text is a user's public account key.</note> </trans-unit> + <trans-unit id="Reactions" xml:space="preserve"> + <source>Reactions</source> + <note>Navigation bar title for Reactions view.</note> + </trans-unit> <trans-unit id="Recommended Relays" xml:space="preserve"> <source>Recommended Relays</source> <note>Section title for recommend relay servers that could be added as part of configuration</note> @@ -458,8 +462,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no </trans-unit> <trans-unit id="Relays" xml:space="preserve"> <source>Relays</source> - <note>Header text for relay server list for configuration. -Part of a larger sentence to describe how many relay servers a user is connected.</note> + <note>Sidebar menu label for Relay servers view</note> </trans-unit> <trans-unit id="Reply to self" xml:space="preserve"> <source>Reply to self</source> @@ -473,10 +476,23 @@ Part of a larger sentence to describe how many relay servers a user is connected <source>Replying to:</source> <note>Indicating that the user is replying to the following listed people.</note> </trans-unit> + <trans-unit id="Repost" xml:space="preserve"> + <source>Repost</source> + <note>Button to confirm reposting a post. + Title of alert for confirming to repost a post.</note> + </trans-unit> + <trans-unit id="Reposted" xml:space="preserve"> + <source>Reposted</source> + <note>Text indicating that the post was reposted (i.e. re-shared).</note> + </trans-unit> <trans-unit id="Reset" xml:space="preserve"> <source>Reset</source> <note>Section title for resetting the user</note> </trans-unit> + <trans-unit id="Retry" xml:space="preserve"> + <source>Retry</source> + <note>Button to retry completing account creation after an error occurred.</note> + </trans-unit> <trans-unit id="River" xml:space="preserve"> <source>River</source> <note>Dropdown option label for Lightning wallet, River</note> @@ -519,7 +535,8 @@ Part of a larger sentence to describe how many relay servers a user is connected </trans-unit> <trans-unit id="Settings" xml:space="preserve"> <source>Settings</source> - <note>Navigation title for Settings view.</note> + <note>Navigation title for Settings view. + Sidebar menu label for accessing the app settings</note> </trans-unit> <trans-unit id="Share" xml:space="preserve"> <source>Share</source> @@ -533,6 +550,10 @@ Part of a larger sentence to describe how many relay servers a user is connected <source>Show wallet selector</source> <note>Toggle to show or hide selection of wallet.</note> </trans-unit> + <trans-unit id="Sign out" xml:space="preserve"> + <source>Sign out</source> + <note>Sidebar menu label to sign out of the account.</note> + </trans-unit> <trans-unit id="Strike" xml:space="preserve"> <source>Strike</source> <note>Dropdown option label for Lightning wallet, Strike.</note> @@ -583,6 +604,10 @@ Part of a larger sentence to describe how many relay servers a user is connected <note>Label for Username section of user profile form. Label to prompt username entry.</note> </trans-unit> + <trans-unit id="Wallet" xml:space="preserve"> + <source>Wallet</source> + <note>Sidebar menu label for Wallet view.</note> + </trans-unit> <trans-unit id="Wallet Of Satoshi" xml:space="preserve"> <source>Wallet Of Satoshi</source> <note>Dropdown option label for Lightning wallet, Wallet Of Satoshi.</note> @@ -619,6 +644,10 @@ Part of a larger sentence to describe how many relay servers a user is connected <source>collapsed_event_view_other_notes</source> <note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped. (Key in .stringsdict)</note> </trans-unit> + <trans-unit id="followers_count" translate="no" xml:space="preserve"> + <source>followers_count</source> + <note>Part of a larger sentence to describe how many people are following a user. (Key in .stringsdict)</note> + </trans-unit> <trans-unit id="https://example.com/pic.jpg" xml:space="preserve"> <source>https://example.com/pic.jpg</source> <note>Placeholder example text for profile picture URL.</note> @@ -647,6 +676,14 @@ Part of a larger sentence to describe how many relay servers a user is connected <source>optional</source> <note>Label indicating that a form input is optional.</note> </trans-unit> + <trans-unit id="reactions_count" translate="no" xml:space="preserve"> + <source>reactions_count</source> + <note>Part of a larger sentence to describe how many reactions there are on a post. (Key in .stringsdict)</note> + </trans-unit> + <trans-unit id="relays_count" translate="no" xml:space="preserve"> + <source>relays_count</source> + <note>Part of a larger sentence to describe how many relay servers a user is connected. (Key in .stringsdict)</note> + </trans-unit> <trans-unit id="replying_to_one_and_others" translate="no" xml:space="preserve"> <source>replying_to_one_and_others</source> <note>Label to indicate that the user is replying to 1 user and others. (Key in .stringsdict)</note> @@ -655,10 +692,22 @@ Part of a larger sentence to describe how many relay servers a user is connected <source>replying_to_two_and_others</source> <note>Label to indicate that the user is replying to 2 users and others. (Key in .stringsdict)</note> </trans-unit> + <trans-unit id="reposts_count" translate="no" xml:space="preserve"> + <source>reposts_count</source> + <note>Part of a larger sentence to describe how many reposts there are. (Key in .stringsdict)</note> + </trans-unit> <trans-unit id="satoshi" xml:space="preserve"> <source>satoshi</source> <note>Example username of Bitcoin creator(s), Satoshi Nakamoto.</note> </trans-unit> + <trans-unit id="tips_count" translate="no" xml:space="preserve"> + <source>tips_count</source> + <note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note> + </trans-unit> + <trans-unit id="u{00A0}" xml:space="preserve"> + <source>u{00A0}</source> + <note>Non-breaking space character to fill in blank space next to event action button icons.</note> + </trans-unit> <trans-unit id="wss://some.relay.com" xml:space="preserve"> <source>wss://some.relay.com</source> <note>Placeholder example for relay server address.</note> @@ -667,10 +716,6 @@ Part of a larger sentence to describe how many relay servers a user is connected <source>you</source> <note>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.</note> </trans-unit> - <trans-unit id="馃" xml:space="preserve"> - <source>馃</source> - <note>Button with emoji to like an event.</note> - </trans-unit> </body> </file> <file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="es-419" datatype="plaintext"> @@ -698,6 +743,54 @@ Part of a larger sentence to describe how many relay servers a user is connected <target>路路路 %#@NOTES@ 路路路</target> <note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note> </trans-unit> + <trans-unit id="/followers_count:dict/FOLLOWERS:dict/one:dict/:string" xml:space="preserve"> + <source>Follower</source> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/followers_count:dict/FOLLOWERS:dict/other:dict/:string" xml:space="preserve"> + <source>Followers</source> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/followers_count:dict/FOLLOWERS:dict/zero:dict/:string" xml:space="preserve"> + <source>Followers</source> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/followers_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@FOLLOWERS@</source> + <note>Part of a larger sentence to describe how many people are following a user.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@REACTIONS@</source> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/REACTIONS:dict/one:dict/:string" xml:space="preserve"> + <source>Reaction</source> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/REACTIONS:dict/other:dict/:string" xml:space="preserve"> + <source>Reactions</source> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/reactions_count:dict/REACTIONS:dict/zero:dict/:string" xml:space="preserve"> + <source>Reactions</source> + <note>Part of a larger sentence to describe how many reactions there are on a post.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@RELAYS@</source> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/RELAYS:dict/one:dict/:string" xml:space="preserve"> + <source>Relay</source> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/RELAYS:dict/other:dict/:string" xml:space="preserve"> + <source>Relays</source> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> + <trans-unit id="/relays_count:dict/RELAYS:dict/zero:dict/:string" xml:space="preserve"> + <source>Relays</source> + <note>Part of a larger sentence to describe how many relay servers a user is connected.</note> + </trans-unit> <trans-unit id="/replying_to_one_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> <source>Replying to %@%#@OTHERS@</source> <target>Replying to %@%#@OTHERS@</target> @@ -738,6 +831,38 @@ Part of a larger sentence to describe how many relay servers a user is connected <target/> <note>Label to indicate that the user is replying to 2 users and others.</note> </trans-unit> + <trans-unit id="/reposts_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@REPOSTS@</source> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/reposts_count:dict/REPOSTS:dict/one:dict/:string" xml:space="preserve"> + <source>Repost</source> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/reposts_count:dict/REPOSTS:dict/other:dict/:string" xml:space="preserve"> + <source>Reposts</source> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/reposts_count:dict/REPOSTS:dict/zero:dict/:string" xml:space="preserve"> + <source>Reposts</source> + <note>Part of a larger sentence to describe how many reposts there are.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve"> + <source>%#@TIPS@</source> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve"> + <source>Tip</source> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve"> + <source>Tips</source> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> + <trans-unit id="/tips_count:dict/TIPS:dict/zero:dict/:string" xml:space="preserve"> + <source>Tips</source> + <note>Part of a larger sentence to describe how many tip payments there are on a post.</note> + </trans-unit> </body> </file> </xliff> diff --git a/damus Localizations/es-419.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus Localizations/es-419.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings Binary files differ. diff --git a/damus Localizations/es-419.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict b/damus Localizations/es-419.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict @@ -2,6 +2,78 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>collapsed_event_view_other_notes</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>路路路 %#@NOTES@ 路路路</string> + <key>NOTES</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>0 other notes</string> + <key>one</key> + <string>1 other note</string> + <key>other</key> + <string>%d other notes</string> + </dict> + </dict> + <key>followers_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@FOLLOWERS@</string> + <key>FOLLOWERS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Followers</string> + <key>one</key> + <string>Follower</string> + <key>other</key> + <string>Followers</string> + </dict> + </dict> + <key>reactions_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@REACTIONS@</string> + <key>REACTIONS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Reactions</string> + <key>one</key> + <string>Reaction</string> + <key>other</key> + <string>Reactions</string> + </dict> + </dict> + <key>relays_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@RELAYS@</string> + <key>RELAYS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Relays</string> + <key>one</key> + <string>Relay</string> + <key>other</key> + <string>Relays</string> + </dict> + </dict> <key>replying_to_one_and_others</key> <dict> <key>NSStringLocalizedFormatKey</key> @@ -38,22 +110,40 @@ <string> &amp; %d others</string> </dict> </dict> - <key>collapsed_event_view_other_notes</key> + <key>reposts_count</key> <dict> <key>NSStringLocalizedFormatKey</key> - <string>路路路 %#@NOTES@ 路路路</string> - <key>NOTES</key> + <string>%#@REPOSTS@</string> + <key>REPOSTS</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> - <string>0 other notes</string> + <string>Reposts</string> <key>one</key> - <string>1 other note</string> + <string>Repost</string> <key>other</key> - <string>%d other notes</string> + <string>Reposts</string> + </dict> + </dict> + <key>tips_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@TIPS@</string> + <key>TIPS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Tips</string> + <key>one</key> + <string>Tip</string> + <key>other</key> + <string>Tips</string> </dict> </dict> </dict> diff --git a/damus/Models/FollowersModel.swift b/damus/Models/FollowersModel.swift @@ -18,11 +18,11 @@ class FollowersModel: ObservableObject { let sub_id: String = UUID().description let profiles_id: String = UUID().description - var count_display: String { + var count: Int? { guard let contacts = self.contacts else { - return "?" + return nil } - return "\(contacts.count)"; + return contacts.count } init(damus_state: DamusState, target: String) { diff --git a/damus/Views/ActionBar/EventActionBar.swift b/damus/Views/ActionBar/EventActionBar.swift @@ -98,7 +98,7 @@ struct EventActionBar: View { } } .alert(NSLocalizedString("Repost", comment: "Title of alert for confirming to repost a post."), isPresented: $confirm_boost) { - Button("Cancel") { + Button(NSLocalizedString("Cancel", comment: "Button to cancel out of reposting a post.")) { confirm_boost = false } Button(NSLocalizedString("Repost", comment: "Button to confirm reposting a post.")) { @@ -149,7 +149,7 @@ struct EventActionBar: View { func EventActionButton(img: String, col: Color?, action: @escaping () -> ()) -> some View { Button(action: action) { - Label("&nbsp;", systemImage: img) + Label(NSLocalizedString("\u{00A0}", comment: "Non-breaking space character to fill in blank space next to event action button icons."), systemImage: img) .font(.footnote.weight(.medium)) .foregroundColor(col == nil ? Color.gray : col!) } diff --git a/damus/Views/ActionBar/EventDetailBar.swift b/damus/Views/ActionBar/EventDetailBar.swift @@ -15,27 +15,18 @@ struct EventDetailBar: View { var body: some View { HStack { if bar.boosts > 0 { - Text("\(bar.boosts)") - .font(.body.bold()) - Text("Reposts") - .foregroundColor(.gray) + Text("\(Text("\(bar.boosts)", comment: "Number of reposts.").font(.body.bold())) \(Text(String(format: NSLocalizedString("reposts_count", comment: "Part of a larger sentence to describe how many reposts there are."), bar.boosts)).foregroundColor(.gray))", 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'.") } if bar.likes > 0 { NavigationLink(destination: ReactionsView(damus_state: state, model: ReactionsModel(state: state, target: target))) { - Text("\(bar.likes)") - .font(.body.bold()) - Text("Reactions") - .foregroundColor(.gray) + Text("\(Text("\(bar.likes)", comment: "Number of reactions on a post.").font(.body.bold())) \(Text(String(format: NSLocalizedString("reactions_count", comment: "Part of a larger sentence to describe how many reactions there are on a post."), bar.likes)).foregroundColor(.gray))", 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()) } if bar.tips > 0 { - Text("\(bar.tips)") - .font(.body.bold()) - Text("Tips") - .foregroundColor(.gray) + Text("\(Text("\(bar.tips)", comment: "Number of tip payments on a post.").font(.body.bold())) \(Text(String(format: NSLocalizedString("tips_count", comment: "Part of a larger sentence to describe how many tip payments there are on a post."), bar.boosts)).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.") } } } diff --git a/damus/Views/ConfigView.swift b/damus/Views/ConfigView.swift @@ -142,7 +142,7 @@ struct ConfigView: View { Button(NSLocalizedString("Cancel", comment: "Cancel out of logging out the user.")) { confirm_logout = false } - Button(NSLocalizedString("Logout", comment: "Button for logging out the user.")) { + Button(NSLocalizedString("Logout", comment: "Button for logging out the user.")) { notify(.logout, ()) } } message: { diff --git a/damus/Views/ProfileView.swift b/damus/Views/ProfileView.swift @@ -282,7 +282,7 @@ struct ProfileView: View { if let relays = profile.relays { NavigationLink(destination: UserRelaysView(state: damus_state, pubkey: profile.pubkey, relays: Array(relays.keys).sorted())) { - Text("\(Text("\(relays.keys.count)", comment: "Number of relay servers a user is connected.").font(.subheadline.weight(.medium))) \(Text("Relays", comment: "Part of a larger sentence to describe how many relay servers a user is connected.").font(.subheadline).foregroundColor(.gray))", 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 'Relays'.") + Text("\(Text("\(relays.keys.count)", comment: "Number of relay servers a user is connected.").font(.subheadline.weight(.medium))) \(Text(String(format: NSLocalizedString("relays_count", comment: "Part of a larger sentence to describe how many relay servers a user is connected."), relays.keys.count)).font(.subheadline).foregroundColor(.gray))", 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'.") } .buttonStyle(PlainButtonStyle()) } @@ -296,13 +296,14 @@ struct ProfileView: View { var FollowersCount: some View { HStack { - if followers.count_display == "?" { + if followers.count == nil { Image(systemName: "square.and.arrow.down") Text("Followers", comment: "Label describing followers of a user.") .font(.subheadline) .foregroundColor(.gray) } else { - Text("\(Text("\(followers.count_display)", comment: "Number of people following a user.").font(.subheadline.weight(.medium))) \(Text("Followers", comment: "Part of a larger sentence to describe how many people are following a user.").font(.subheadline).foregroundColor(.gray))", 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 'Followers'.") + let followerCount = followers.count! + Text("\(Text("\(followerCount)", comment: "Number of people following a user.").font(.subheadline.weight(.medium))) \(Text(String(format: NSLocalizedString("followers_count", comment: "Part of a larger sentence to describe how many people are following a user."), followerCount)).font(.subheadline).foregroundColor(.gray))", 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'.") } } } diff --git a/damus/Views/PubkeyView.swift b/damus/Views/PubkeyView.swift @@ -14,7 +14,7 @@ struct PubkeyView: View { var body: some View { let color: Color = id_to_color(pubkey) ZStack { - Text("\(abbrev_pubkey(pubkey))") + Text("\(abbrev_pubkey(pubkey))", comment: "Abbreviated version of a nostr public key.") .foregroundColor(color) } } diff --git a/damus/Views/ReactionsView.swift b/damus/Views/ReactionsView.swift @@ -20,7 +20,7 @@ struct ReactionsView: View { } .padding() } - .navigationBarTitle("Reactions") + .navigationBarTitle(NSLocalizedString("Reactions", comment: "Navigation bar title for Reactions view.")) .onAppear { model.subscribe() } diff --git a/damus/Views/ReplyQuoteView.swift b/damus/Views/ReplyQuoteView.swift @@ -28,7 +28,7 @@ struct ReplyQuoteView: View { ProfilePicView(pubkey: event.pubkey, size: 16, highlight: .reply, profiles: profiles) Text(Profile.displayName(profile: profiles.lookup(id: event.pubkey), pubkey: event.pubkey)) .foregroundColor(.accentColor) - Text("\(format_relative_time(event.created_at))") + Text("\(format_relative_time(event.created_at))", comment: "Amount of time that has passed since reply quote event occurred.") .foregroundColor(.gray) } diff --git a/damus/Views/SaveKeysView.swift b/damus/Views/SaveKeysView.swift @@ -63,7 +63,7 @@ struct SaveKeysView: View { } else if let err = error { Text("Error: \(err)", comment: "Error message indicating why saving keys failed.") .foregroundColor(.red) - DamusWhiteButton("Retry") { + DamusWhiteButton(NSLocalizedString("Retry", comment: "Button to retry completing account creation after an error occurred.")) { complete_account_creation(account) } } else { diff --git a/damus/Views/SetupView.swift b/damus/Views/SetupView.swift @@ -64,7 +64,7 @@ struct SetupView: View { self.state = .create_account } - Button("Login") { + Button(NSLocalizedString("Login", comment: "Button to log into an account.")) { self.state = .login } .padding([.top, .bottom], 20) diff --git a/damus/Views/SideMenuView.swift b/damus/Views/SideMenuView.swift @@ -92,7 +92,7 @@ struct SideMenuView: View { let profile_model = ProfileModel(pubkey: damus_state.pubkey, damus: damus_state) NavigationLink(destination: ProfileView(damus_state: damus_state, profile: profile_model, followers: followers)) { - Label("Profile", systemImage: "person") + Label(NSLocalizedString("Profile", comment: "Sidebar menu label for Profile view."), systemImage: "person") .font(.title2) .foregroundColor(textColor()) } @@ -102,7 +102,7 @@ struct SideMenuView: View { /* NavigationLink(destination: EmptyView()) { - Label("Relays", systemImage: "xserve") + Label(NSLocalizedString("Relays", comment: "Sidebar menu label for Relay servers view"), systemImage: "xserve") .font(.title2) .foregroundColor(textColor()) } @@ -113,7 +113,7 @@ struct SideMenuView: View { /* NavigationLink(destination: EmptyView()) { - Label("Wallet", systemImage: "bolt") + Label(NSLocalizedString("Wallet", comment: "Sidebar menu label for Wallet view."), systemImage: "bolt") .font(.title2) .foregroundColor(textColor()) } @@ -137,7 +137,7 @@ struct SideMenuView: View { //ConfigView(state: damus_state) confirm_logout = true }, label: { - Label("Sign out", systemImage: "pip.exit") + Label(NSLocalizedString("Sign out", comment: "Sidebar menu label to sign out of the account."), systemImage: "pip.exit") .font(.title3) .foregroundColor(textColor()) }) @@ -153,14 +153,14 @@ struct SideMenuView: View { isSidebarVisible.toggle() } .alert("Logout", isPresented: $confirm_logout) { - Button("Cancel") { + Button(NSLocalizedString("Cancel", comment: "Cancel out of logging out the user.")) { confirm_logout = false } - Button("Logout") { + Button(NSLocalizedString("Logout", comment: "Button for logging out the user.")) { notify(.logout, ()) } } message: { - Text("Make sure your nsec account key is saved before you logout or you will lose access to this account") + Text("Make sure your nsec account key is saved before you logout or you will lose access to this account", comment: "Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out.") } Spacer() diff --git a/damus/en-US.lproj/Localizable.stringsdict b/damus/en-US.lproj/Localizable.stringsdict @@ -2,6 +2,78 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>collapsed_event_view_other_notes</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>路路路 %#@NOTES@ 路路路</string> + <key>NOTES</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>0 other notes</string> + <key>one</key> + <string>1 other note</string> + <key>other</key> + <string>%d other notes</string> + </dict> + </dict> + <key>followers_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@FOLLOWERS@</string> + <key>FOLLOWERS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Followers</string> + <key>one</key> + <string>Follower</string> + <key>other</key> + <string>Followers</string> + </dict> + </dict> + <key>reactions_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@REACTIONS@</string> + <key>REACTIONS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Reactions</string> + <key>one</key> + <string>Reaction</string> + <key>other</key> + <string>Reactions</string> + </dict> + </dict> + <key>relays_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@RELAYS@</string> + <key>RELAYS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Relays</string> + <key>one</key> + <string>Relay</string> + <key>other</key> + <string>Relays</string> + </dict> + </dict> <key>replying_to_one_and_others</key> <dict> <key>NSStringLocalizedFormatKey</key> @@ -38,22 +110,40 @@ <string> &amp; %d others</string> </dict> </dict> - <key>collapsed_event_view_other_notes</key> + <key>reposts_count</key> <dict> <key>NSStringLocalizedFormatKey</key> - <string>路路路 %#@NOTES@ 路路路</string> - <key>NOTES</key> + <string>%#@REPOSTS@</string> + <key>REPOSTS</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> - <string>0 other notes</string> + <string>Reposts</string> <key>one</key> - <string>1 other note</string> + <string>Repost</string> <key>other</key> - <string>%d other notes</string> + <string>Reposts</string> + </dict> + </dict> + <key>tips_count</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@TIPS@</string> + <key>TIPS</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>zero</key> + <string>Tips</string> + <key>one</key> + <string>Tip</string> + <key>other</key> + <string>Tips</string> </dict> </dict> </dict> diff --git a/damus/es-419.lproj/Localizable.stringsdict b/damus/es-419.lproj/Localizable.stringsdict @@ -49,11 +49,11 @@ <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> - <string>0 notes</string> + <string>0 other notes</string> <key>one</key> - <string>1 note</string> + <string>1 other note</string> <key>other</key> - <string>%d notes</string> + <string>%d other notes</string> </dict> </dict> </dict>