diff --git a/damus Localizations/en.xcloc/Localized Contents/en.xliff b/damus Localizations/en.xcloc/Localized Contents/en.xliff new file mode 100644 index 00000000..962b071f --- /dev/null +++ b/damus Localizations/en.xcloc/Localized Contents/en.xliff @@ -0,0 +1,839 @@ + + + +
+ +
+ + + Damus + Damus + Bundle display name + + + damus + damus + Bundle name + + + "Granting Damus access to your photo library allows you to save photos. + "Granting Damus access to your photo library allows you to save photos. + Privacy - Photo Library Additions Usage Description + + +
+ +
+ +
+ + + + + No comment provided by engineer. + + + %@ + %@ + No comment provided by engineer. + + + %@ following + %@ following + No comment provided by engineer. + + + %@'s Followers + %@'s Followers + No comment provided by engineer. + + + %@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction. + %@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction. + No comment provided by engineer. + + + %@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs + %@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs + No comment provided by engineer. + + + %@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet. + %@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet. + No comment provided by engineer. + + + %lld + %lld + No comment provided by engineer. + + + %lld/%lld + %lld/%lld + No comment provided by engineer. + + + &nbsp; + &nbsp; + No comment provided by engineer. + + + '%1$@' at '%2$@' will be used for verification + '%1$@' at '%2$@' will be used for verification + Description of how the nip05 identifier would be used for verification. + + + '%@' is an invalid nip05 identifier. It should look like an email. + '%@' is an invalid nip05 identifier. It should look like an email. + Description of why the nip05 identifier is invalid. + + + < e > + < e > + No comment provided by engineer. + + + @ + @ + No comment provided by engineer. + + + About + About + Label to prompt for about text entry for user to describe about themself. + + + About Me + About Me + No comment provided by engineer. + + + Absolute Boss + Absolute Boss + Placeholder text for About Me description. + + + Account ID + Account ID + Label to indicate the public ID of the account. + + + Add + Add + No comment provided by engineer. + + + Add Relay + Add Relay + No comment provided by engineer. + + + Are you sure you want to boost this post? + Are you sure you want to boost this post? + No comment provided by engineer. + + + 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. + 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. + No comment provided by engineer. + + + Bitcoin Beach + Bitcoin Beach + Dropdown option label for Lightning wallet, Bitcoin Beach. + + + Bitcoin Lightning Tips + Bitcoin Lightning Tips + No comment provided by engineer. + + + Blixt Wallet + Blixt Wallet + Dropdown option label for Lightning wallet, Blixt Wallet + + + Blue Wallet + Blue Wallet + Dropdown option label for Lightning wallet, Blue Wallet. + + + Boost + Boost + No comment provided by engineer. + + + Boosted + Boosted + No comment provided by engineer. + + + Breez + Breez + Dropdown option label for Lightning wallet, Breez. + + + Broadcast + Broadcast + No comment provided by engineer. + + + Cancel + Cancel + No comment provided by engineer. + + + Cash App + Cash App + Dropdown option label for Lightning wallet, Cash App. + + + Clear + Clear + No comment provided by engineer. + + + Clear Cache + Clear Cache + No comment provided by engineer. + + + Copied + Copied + No comment provided by engineer. + + + Copy + Copy + No comment provided by engineer. + + + Copy Account ID + Copy Account ID + No comment provided by engineer. + + + Copy Image + Copy Image + No comment provided by engineer. + + + Copy Image URL + Copy Image URL + No comment provided by engineer. + + + Copy LNUrl + Copy LNUrl + No comment provided by engineer. + + + Copy Note ID + Copy Note ID + No comment provided by engineer. + + + Copy Note JSON + Copy Note JSON + No comment provided by engineer. + + + Copy Text + Copy Text + No comment provided by engineer. + + + Copy User ID + Copy User ID + No comment provided by engineer. + + + Copy invoice + Copy invoice + No comment provided by engineer. + + + Create + Create + Button to create account. + + + Create Account + Create Account + Button to create an account. + + + Creator(s) of Bitcoin. Absolute legend. + Creator(s) of Bitcoin. Absolute legend. + Example description about Bitcoin creator(s), Satoshi Nakamoto. + + + DM + DM + No comment provided by engineer. + + + Damus + Damus + No comment provided by engineer. + + + Default Wallet + Default Wallet + No comment provided by engineer. + + + Delete + Delete + No comment provided by engineer. + + + Dismiss + Dismiss + No comment provided by engineer. + + + Display Name + Display Name + Label to prompt display name entry. + + + Done + Done + No comment provided by engineer. + + + Earn Money + Earn Money + No comment provided by engineer. + + + Edit + Edit + No comment provided by engineer. + + + Edit Profile + Edit Profile + No comment provided by engineer. + + + Encrypted + Encrypted + No comment provided by engineer. + + + Encrypted DMs + Encrypted DMs + No comment provided by engineer. + + + Enter your account key to login: + Enter your account key to login: + No comment provided by engineer. + + + Error: %@ + Error: %@ + No comment provided by engineer. + + + Filter State + Filter State + No comment provided by engineer. + + + Follow + Follow + Button to follow a user. + + + Followers + Followers + No comment provided by engineer. + + + Following + Following + No comment provided by engineer. + + + Following... + Following... + Label to indicate that the user is in the process of following another user. + + + Follows + Follows + No comment provided by engineer. + + + Global + Global + No comment provided by engineer. + + + Goto post %@ + Goto post %@ + No comment provided by engineer. + + + Goto profile %@ + Goto profile %@ + No comment provided by engineer. + + + Home + Home + No comment provided by engineer. + + + LNLink + LNLink + Dropdown option label for Lightning wallet, LNLink. + + + Let's go! + Let's go! + Button to complete account creation and start using the app. + + + Lightning Address or LNURL + Lightning Address or LNURL + No comment provided by engineer. + + + Lightning Invoice + Lightning Invoice + No comment provided by engineer. + + + Local default + Local default + Dropdown option label for system default for Lightning wallet. + + + Login + Login + No comment provided by engineer. + + + Logout + Logout + No comment provided by engineer. + + + Make sure your nsec account key is saved before you logout or you will lose access to this account + Make sure your nsec account key is saved before you logout or you will lose access to this account + No comment provided by engineer. + + + Muun + Muun + Dropdown option label for Lightning wallet, Muun. + + + NIP-05 Verification + NIP-05 Verification + No comment provided by engineer. + + + Nothing to see here. Check back later! + Nothing to see here. Check back later! + No comment provided by engineer. + + + Notifications + Notifications + No comment provided by engineer. + + + Pay + Pay + No comment provided by engineer. + + + Pay the lightning invoice + Pay the lightning invoice + No comment provided by engineer. + + + Phoenix + Phoenix + Dropdown option label for Lightning wallet, Phoenix. + + + Post + Post + No comment provided by engineer. + + + Posts + Posts + No comment provided by engineer. + + + Posts & Replies + Posts & Replies + No comment provided by engineer. + + + Private + Private + No comment provided by engineer. + + + Private Key + Private Key + No comment provided by engineer. + + + PrivateKey + PrivateKey + No comment provided by engineer. + + + Profile Picture + Profile Picture + No comment provided by engineer. + + + Public Account ID + Public Account ID + No comment provided by engineer. + + + Public Key + Public Key + No comment provided by engineer. + + + Public Key? + Public Key? + No comment provided by engineer. + + + Public key + Public key + No comment provided by engineer. + + + Recommended Relays + Recommended Relays + No comment provided by engineer. + + + Relay + Relay + No comment provided by engineer. + + + Relays + Relays + No comment provided by engineer. + + + Reply to self + Reply to self + Label to indicate that the user is replying to themself. + + + Replying to %1$@ & %2$@ + Replying to %1$@ & %2$@ + Label to indicate that the user is replying to 2 users. + + + Replying to: + Replying to: + No comment provided by engineer. + + + Reset + Reset + No comment provided by engineer. + + + River + River + Dropdown option label for Lightning wallet, River + + + Satoshi Nakamoto + Satoshi Nakamoto + Name of Bitcoin creator(s). + + + Save + Save + No comment provided by engineer. + + + Save Image + Save Image + No comment provided by engineer. + + + Search hashtag: #%@ + Search hashtag: #%@ + No comment provided by engineer. + + + Search... + Search... + No comment provided by engineer. + + + Secret Account Login Key + Secret Account Login Key + No comment provided by engineer. + + + Select a lightning wallet + Select a lightning wallet + No comment provided by engineer. + + + Select default wallet + Select default wallet + No comment provided by engineer. + + + Send a message to start the conversation... + Send a message to start the conversation... + No comment provided by engineer. + + + Settings + Settings + No comment provided by engineer. + + + Share + Share + No comment provided by engineer. + + + Show + Show + No comment provided by engineer. + + + Show wallet selector + Show wallet selector + No comment provided by engineer. + + + Strike + Strike + Dropdown option label for Lightning wallet, Strike. + + + This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective. + This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective. + No comment provided by engineer. + + + This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key. + This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key. + No comment provided by engineer. + + + This is your account ID, you can give this to your friends so that they can follow you. Click to copy. + This is your account ID, you can give this to your friends so that they can follow you. Click to copy. + No comment provided by engineer. + + + This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe! + This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe! + No comment provided by engineer. + + + Thread + Thread + No comment provided by engineer. + + + Type your post here... + Type your post here... + Text box prompt to ask user to type their post. + + + Unfollow + Unfollow + Button to unfollow a user. + + + Unfollowing + Unfollowing + No comment provided by engineer. + + + Unfollowing... + Unfollowing... + Label to indicate that the user is in the process of unfollowing another user. + + + Unfollows + Unfollows + No comment provided by engineer. + + + Username + Username + Label to prompt username entry. + + + Wallet Of Satoshi + Wallet Of Satoshi + Dropdown option label for Lightning wallet, Wallet Of Satoshi. + + + Wallet Selector + Wallet Selector + No comment provided by engineer. + + + Website + Website + No comment provided by engineer. + + + Welcome to the social network %@ control. + Welcome to the social network %@ control. + No comment provided by engineer. + + + Welcome, %@! + Welcome, %@! + No comment provided by engineer. + + + Your Name + Your Name + No comment provided by engineer. + + + Zebedee + Zebedee + Dropdown option label for Lightning wallet, Zebedee. + + + Zeus LN + Zeus LN + Dropdown option label for Lightning wallet, Zeus LN. + + + https://example.com/pic.jpg + https://example.com/pic.jpg + No comment provided by engineer. + + + https://jb55.com + https://jb55.com + No comment provided by engineer. + + + jb55@jb55.com + jb55@jb55.com + No comment provided by engineer. + + + none + none + No comment provided by engineer. + + + now + now + String indicating that a given timestamp just occurred + + + optional + optional + No comment provided by engineer. + + + replying_to_one_and_others + replying_to_one_and_others + Label to indicate that the user is replying to 1 user and others. (Key in .stringsdict) + + + replying_to_two_and_others + replying_to_two_and_others + Label to indicate that the user is replying to 2 users and others. (Key in .stringsdict) + + + satoshi + satoshi + Example username of Bitcoin creator(s), Satoshi Nakamoto. + + + wss://some.relay.com + wss://some.relay.com + No comment provided by engineer. + + + you + you + No comment provided by engineer. + + + ··· %lld other notes ··· + ··· %lld other notes ··· + No comment provided by engineer. + + + 🤙 + 🤙 + No comment provided by engineer. + + +
+ +
+ +
+ + + Replying to %@%#@others@ + Replying to %@%#@others@ + Label to indicate that the user is replying to 1 user and others. + + + & 1 other + & 1 other + Label to indicate that the user is replying to 1 user and others. + + + & %d others + & %d others + Label to indicate that the user is replying to 1 user and others. + + + + + Label to indicate that the user is replying to 1 user and others. + + + Replying to %@, %@%#@others@ + Replying to %@, %@%#@others@ + Label to indicate that the user is replying to 2 users and others. + + + & 1 other + & 1 other + Label to indicate that the user is replying to 2 users and others. + + + & %d others + & %d others + Label to indicate that the user is replying to 2 users and others. + + + + + Label to indicate that the user is replying to 2 users and others. + + +
+
diff --git a/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings new file mode 100644 index 00000000..59906e58 --- /dev/null +++ b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings @@ -0,0 +1,6 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Damus"; +/* Bundle name */ +"CFBundleName" = "damus"; +/* Privacy - Photo Library Additions Usage Description */ +"NSPhotoLibraryAddUsageDescription" = "\"Granting Damus access to your photo library allows you to save photos."; diff --git a/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.strings b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.strings new file mode 100644 index 00000000..f4d91bda Binary files /dev/null and b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.strings differ diff --git a/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict new file mode 100644 index 00000000..53570fc5 --- /dev/null +++ b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict @@ -0,0 +1,42 @@ + + + + + replying_to_one_and_others + + NSStringLocalizedFormatKey + Replying to %@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + replying_to_two_and_others + + NSStringLocalizedFormatKey + Replying to %@, %@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + + diff --git a/damus Localizations/en.xcloc/contents.json b/damus Localizations/en.xcloc/contents.json new file mode 100644 index 00000000..5004efaf --- /dev/null +++ b/damus Localizations/en.xcloc/contents.json @@ -0,0 +1,12 @@ +{ + "developmentRegion" : "en", + "project" : "damus.xcodeproj", + "targetLocale" : "en", + "toolInfo" : { + "toolBuildNumber" : "14C18", + "toolID" : "com.apple.dt.xcode", + "toolName" : "Xcode", + "toolVersion" : "14.2" + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/damus Localizations/es.xcloc/Localized Contents/es.xliff b/damus Localizations/es.xcloc/Localized Contents/es.xliff new file mode 100644 index 00000000..5b755921 --- /dev/null +++ b/damus Localizations/es.xcloc/Localized Contents/es.xliff @@ -0,0 +1,676 @@ + + + +
+ +
+ + + Damus + Bundle display name + + + damus + Bundle name + + + "Granting Damus access to your photo library allows you to save photos. + Privacy - Photo Library Additions Usage Description + + +
+ +
+ +
+ + + + No comment provided by engineer. + + + %@ + No comment provided by engineer. + + + %@ following + No comment provided by engineer. + + + %@'s Followers + No comment provided by engineer. + + + %@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction. + No comment provided by engineer. + + + %@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs + No comment provided by engineer. + + + %@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet. + No comment provided by engineer. + + + %lld + No comment provided by engineer. + + + %lld/%lld + No comment provided by engineer. + + + &nbsp; + No comment provided by engineer. + + + '%1$@' at '%2$@' will be used for verification + Description of how the nip05 identifier would be used for verification. + + + '%@' is an invalid nip05 identifier. It should look like an email. + Description of why the nip05 identifier is invalid. + + + < e > + No comment provided by engineer. + + + @ + No comment provided by engineer. + + + About + Label to prompt for about text entry for user to describe about themself. + + + About Me + No comment provided by engineer. + + + Absolute Boss + Placeholder text for About Me description. + + + Account ID + Label to indicate the public ID of the account. + + + Add + No comment provided by engineer. + + + Add Relay + No comment provided by engineer. + + + Are you sure you want to boost this post? + No comment provided by engineer. + + + 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. + No comment provided by engineer. + + + Bitcoin Beach + Dropdown option label for Lightning wallet, Bitcoin Beach. + + + Bitcoin Lightning Tips + No comment provided by engineer. + + + Blixt Wallet + Dropdown option label for Lightning wallet, Blixt Wallet + + + Blue Wallet + Dropdown option label for Lightning wallet, Blue Wallet. + + + Boost + No comment provided by engineer. + + + Boosted + No comment provided by engineer. + + + Breez + Dropdown option label for Lightning wallet, Breez. + + + Broadcast + No comment provided by engineer. + + + Cancel + No comment provided by engineer. + + + Cash App + Dropdown option label for Lightning wallet, Cash App. + + + Clear + No comment provided by engineer. + + + Clear Cache + No comment provided by engineer. + + + Copied + No comment provided by engineer. + + + Copy + No comment provided by engineer. + + + Copy Account ID + No comment provided by engineer. + + + Copy Image + No comment provided by engineer. + + + Copy Image URL + No comment provided by engineer. + + + Copy LNUrl + No comment provided by engineer. + + + Copy Note ID + No comment provided by engineer. + + + Copy Note JSON + No comment provided by engineer. + + + Copy Text + No comment provided by engineer. + + + Copy User ID + No comment provided by engineer. + + + Copy invoice + No comment provided by engineer. + + + Create + Button to create account. + + + Create Account + Button to create an account. + + + Creator(s) of Bitcoin. Absolute legend. + Example description about Bitcoin creator(s), Satoshi Nakamoto. + + + DM + No comment provided by engineer. + + + Damus + No comment provided by engineer. + + + Default Wallet + No comment provided by engineer. + + + Delete + No comment provided by engineer. + + + Dismiss + No comment provided by engineer. + + + Display Name + Label to prompt display name entry. + + + Done + No comment provided by engineer. + + + Earn Money + No comment provided by engineer. + + + Edit + No comment provided by engineer. + + + Edit Profile + No comment provided by engineer. + + + Encrypted + No comment provided by engineer. + + + Encrypted DMs + No comment provided by engineer. + + + Enter your account key to login: + No comment provided by engineer. + + + Error: %@ + No comment provided by engineer. + + + Filter State + No comment provided by engineer. + + + Follow + Button to follow a user. + + + Followers + No comment provided by engineer. + + + Following + No comment provided by engineer. + + + Following... + Label to indicate that the user is in the process of following another user. + + + Follows + No comment provided by engineer. + + + Global + No comment provided by engineer. + + + Goto post %@ + No comment provided by engineer. + + + Goto profile %@ + No comment provided by engineer. + + + Home + No comment provided by engineer. + + + LNLink + Dropdown option label for Lightning wallet, LNLink. + + + Let's go! + Button to complete account creation and start using the app. + + + Lightning Address or LNURL + No comment provided by engineer. + + + Lightning Invoice + No comment provided by engineer. + + + Local default + Dropdown option label for system default for Lightning wallet. + + + Login + No comment provided by engineer. + + + Logout + No comment provided by engineer. + + + Make sure your nsec account key is saved before you logout or you will lose access to this account + No comment provided by engineer. + + + Muun + Dropdown option label for Lightning wallet, Muun. + + + NIP-05 Verification + No comment provided by engineer. + + + Nothing to see here. Check back later! + No comment provided by engineer. + + + Notifications + No comment provided by engineer. + + + Pay + No comment provided by engineer. + + + Pay the lightning invoice + No comment provided by engineer. + + + Phoenix + Dropdown option label for Lightning wallet, Phoenix. + + + Post + No comment provided by engineer. + + + Posts + No comment provided by engineer. + + + Posts & Replies + No comment provided by engineer. + + + Private + No comment provided by engineer. + + + Private Key + No comment provided by engineer. + + + PrivateKey + No comment provided by engineer. + + + Profile Picture + No comment provided by engineer. + + + Public Account ID + No comment provided by engineer. + + + Public Key + No comment provided by engineer. + + + Public Key? + No comment provided by engineer. + + + Public key + No comment provided by engineer. + + + Recommended Relays + No comment provided by engineer. + + + Relay + No comment provided by engineer. + + + Relays + No comment provided by engineer. + + + Reply to self + Label to indicate that the user is replying to themself. + + + Replying to %1$@ & %2$@ + Label to indicate that the user is replying to 2 users. + + + Replying to: + No comment provided by engineer. + + + Reset + No comment provided by engineer. + + + River + Dropdown option label for Lightning wallet, River + + + Satoshi Nakamoto + Name of Bitcoin creator(s). + + + Save + No comment provided by engineer. + + + Save Image + No comment provided by engineer. + + + Search hashtag: #%@ + No comment provided by engineer. + + + Search... + No comment provided by engineer. + + + Secret Account Login Key + No comment provided by engineer. + + + Select a lightning wallet + No comment provided by engineer. + + + Select default wallet + No comment provided by engineer. + + + Send a message to start the conversation... + No comment provided by engineer. + + + Settings + No comment provided by engineer. + + + Share + No comment provided by engineer. + + + Show + No comment provided by engineer. + + + Show wallet selector + No comment provided by engineer. + + + Strike + Dropdown option label for Lightning wallet, Strike. + + + This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective. + No comment provided by engineer. + + + This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key. + No comment provided by engineer. + + + This is your account ID, you can give this to your friends so that they can follow you. Click to copy. + No comment provided by engineer. + + + This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe! + No comment provided by engineer. + + + Thread + No comment provided by engineer. + + + Type your post here... + Text box prompt to ask user to type their post. + + + Unfollow + Button to unfollow a user. + + + Unfollowing + No comment provided by engineer. + + + Unfollowing... + Label to indicate that the user is in the process of unfollowing another user. + + + Unfollows + No comment provided by engineer. + + + Username + Label to prompt username entry. + + + Wallet Of Satoshi + Dropdown option label for Lightning wallet, Wallet Of Satoshi. + + + Wallet Selector + No comment provided by engineer. + + + Website + No comment provided by engineer. + + + Welcome to the social network %@ control. + No comment provided by engineer. + + + Welcome, %@! + No comment provided by engineer. + + + Your Name + No comment provided by engineer. + + + Zebedee + Dropdown option label for Lightning wallet, Zebedee. + + + Zeus LN + Dropdown option label for Lightning wallet, Zeus LN. + + + https://example.com/pic.jpg + No comment provided by engineer. + + + https://jb55.com + No comment provided by engineer. + + + jb55@jb55.com + No comment provided by engineer. + + + none + No comment provided by engineer. + + + now + String indicating that a given timestamp just occurred + + + optional + No comment provided by engineer. + + + replying_to_one_and_others + Label to indicate that the user is replying to 1 user and others. (Key in .stringsdict) + + + replying_to_two_and_others + Label to indicate that the user is replying to 2 users and others. (Key in .stringsdict) + + + satoshi + Example username of Bitcoin creator(s), Satoshi Nakamoto. + + + wss://some.relay.com + No comment provided by engineer. + + + you + No comment provided by engineer. + + + ··· %lld other notes ··· + No comment provided by engineer. + + + 🤙 + No comment provided by engineer. + + +
+ +
+ +
+ + + Replying to %@%#@others@ + Label to indicate that the user is replying to 1 user and others. + + + & 1 other + Label to indicate that the user is replying to 1 user and others. + + + & %d others + Label to indicate that the user is replying to 1 user and others. + + + + Label to indicate that the user is replying to 1 user and others. + + + Replying to %@, %@%#@others@ + Label to indicate that the user is replying to 2 users and others. + + + & 1 other + Label to indicate that the user is replying to 2 users and others. + + + & %d others + Label to indicate that the user is replying to 2 users and others. + + + + Label to indicate that the user is replying to 2 users and others. + + +
+
diff --git a/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings b/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings new file mode 100644 index 00000000..59906e58 --- /dev/null +++ b/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings @@ -0,0 +1,6 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Damus"; +/* Bundle name */ +"CFBundleName" = "damus"; +/* Privacy - Photo Library Additions Usage Description */ +"NSPhotoLibraryAddUsageDescription" = "\"Granting Damus access to your photo library allows you to save photos."; diff --git a/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/Localizable.strings b/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/Localizable.strings new file mode 100644 index 00000000..f4d91bda Binary files /dev/null and b/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/Localizable.strings differ diff --git a/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict b/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict new file mode 100644 index 00000000..53570fc5 --- /dev/null +++ b/damus Localizations/es.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict @@ -0,0 +1,42 @@ + + + + + replying_to_one_and_others + + NSStringLocalizedFormatKey + Replying to %@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + replying_to_two_and_others + + NSStringLocalizedFormatKey + Replying to %@, %@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + + diff --git a/damus Localizations/es.xcloc/contents.json b/damus Localizations/es.xcloc/contents.json new file mode 100644 index 00000000..a17ac860 --- /dev/null +++ b/damus Localizations/es.xcloc/contents.json @@ -0,0 +1,12 @@ +{ + "developmentRegion" : "en", + "project" : "damus.xcodeproj", + "targetLocale" : "es", + "toolInfo" : { + "toolBuildNumber" : "14C18", + "toolID" : "com.apple.dt.xcode", + "toolName" : "Xcode", + "toolVersion" : "14.2" + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj index dad64561..b393bed7 100644 --- a/damus.xcodeproj/project.pbxproj +++ b/damus.xcodeproj/project.pbxproj @@ -12,6 +12,8 @@ 3169CAED294FCCFC00EE4006 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3169CAEC294FCCFC00EE4006 /* Constants.swift */; }; 31D2E847295218AF006D67F8 /* Shimmer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31D2E846295218AF006D67F8 /* Shimmer.swift */; }; 3A4325A82961E11400BFCD9D /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 3A4325AA2961E11400BFCD9D /* Localizable.stringsdict */; }; + 3AB18056296375CA00FD1BD8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3AB18052296375CA00FD1BD8 /* InfoPlist.strings */; }; + 3AB18057296375CA00FD1BD8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3AB18054296375CA00FD1BD8 /* Localizable.strings */; }; 3ACBCB78295FE5C70037388A /* TimeAgoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */; }; 4C06670128FC7C5900038D2A /* RelayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C06670028FC7C5900038D2A /* RelayView.swift */; }; 4C06670428FC7EC500038D2A /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 4C06670328FC7EC500038D2A /* Kingfisher */; }; @@ -170,6 +172,9 @@ 3169CAEC294FCCFC00EE4006 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = damus/Util/Constants.swift; sourceTree = SOURCE_ROOT; }; 31D2E846295218AF006D67F8 /* Shimmer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shimmer.swift; sourceTree = ""; }; 3A4325A92961E11400BFCD9D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; + 3AB1803D29636FB100FD1BD8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = es; path = es.lproj/Localizable.stringsdict; sourceTree = ""; }; + 3AB18058296377E500FD1BD8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; + 3AB18059296377E700FD1BD8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; 3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeAgoTests.swift; sourceTree = ""; }; 4C06670028FC7C5900038D2A /* RelayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayView.swift; sourceTree = ""; }; 4C06670528FCB08600038D2A /* ImageCarousel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCarousel.swift; sourceTree = ""; }; @@ -606,6 +611,8 @@ 4CE6DEE827F7A08100C66700 /* ContentView.swift */, 4CE6DEEA27F7A08200C66700 /* Assets.xcassets */, 4CE6DEEC27F7A08200C66700 /* Preview Content */, + 3AB18052296375CA00FD1BD8 /* InfoPlist.strings */, + 3AB18054296375CA00FD1BD8 /* Localizable.strings */, 3A4325AA2961E11400BFCD9D /* Localizable.stringsdict */, ); path = damus; @@ -742,6 +749,7 @@ hasScannedForEncodings = 0; knownRegions = ( en, + es, Base, ); mainGroup = 4CE6DEDA27F7A08100C66700; @@ -768,7 +776,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3AB18057296375CA00FD1BD8 /* Localizable.strings in Resources */, 4CE6DEEE27F7A08200C66700 /* Preview Assets.xcassets in Resources */, + 3AB18056296375CA00FD1BD8 /* InfoPlist.strings in Resources */, 4CE6DEEB27F7A08200C66700 /* Assets.xcassets in Resources */, 3A4325A82961E11400BFCD9D /* Localizable.stringsdict in Resources */, ); @@ -963,10 +973,27 @@ isa = PBXVariantGroup; children = ( 3A4325A92961E11400BFCD9D /* en */, + 3AB1803D29636FB100FD1BD8 /* es */, ); name = Localizable.stringsdict; sourceTree = ""; }; + 3AB18052296375CA00FD1BD8 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 3AB18058296377E500FD1BD8 /* es */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 3AB18054296375CA00FD1BD8 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 3AB18059296377E700FD1BD8 /* es */, + ); + name = Localizable.strings; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -974,6 +1001,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; @@ -1035,6 +1063,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; diff --git a/damus/Views/EditMetadataView.swift b/damus/Views/EditMetadataView.swift index a93cf52d..ceaa259d 100644 --- a/damus/Views/EditMetadataView.swift +++ b/damus/Views/EditMetadataView.swift @@ -160,9 +160,9 @@ struct EditMetadataView: View { Text("NIP-05 Verification") }, footer: { if let parts = nip05_parts { - Text(String.localizedStringWithFormat("'%@' at '%@' will be used for verification", parts.username, parts.host)) + Text(String(format: NSLocalizedString("'%@' at '%@' will be used for verification", comment: "Description of how the nip05 identifier would be used for verification."), parts.username, parts.host)) } else { - Text(String.localizedStringWithFormat("'%@' is an invalid nip05 identifier. It should look like an email.", nip05)) + Text(String(format: NSLocalizedString("'%@' is an invalid nip05 identifier. It should look like an email.", comment: "Description of why the nip05 identifier is invalid."), nip05)) } }) diff --git a/damus/Views/EventView.swift b/damus/Views/EventView.swift index 4a373ebe..79e4faee 100644 --- a/damus/Views/EventView.swift +++ b/damus/Views/EventView.swift @@ -380,13 +380,13 @@ func reply_desc(profiles: Profiles, event: NostrEvent) -> String { if names.count == 2 { if n > 2 { let othersCount = n - pubkeys.count - return String(format: NSLocalizedString("replying_to_two_and_others", comment: "Label to indicate that the user is replying to 2 users and others."), othersCount, names[0], names[1]) + return String(format: NSLocalizedString("replying_to_two_and_others", comment: "Label to indicate that the user is replying to 2 users and others."), names[0], names[1], othersCount) } - return String.localizedStringWithFormat("Replying to %@ & %@", names[0], names[1]) + return String(format: NSLocalizedString("Replying to %@ & %@", comment: "Label to indicate that the user is replying to 2 users."), names[0], names[1]) } let othersCount = n - pubkeys.count - return String(format: NSLocalizedString("replying_to_one_and_others", comment: "Label to indicate that the user is replying to 1 user and others."), othersCount, names[0]) + return String(format: NSLocalizedString("replying_to_one_and_others", comment: "Label to indicate that the user is replying to 1 user and others."), names[0], othersCount) } diff --git a/damus/en.lproj/InfoPlist.strings b/damus/en.lproj/InfoPlist.strings new file mode 100644 index 00000000..b5e9b532 --- /dev/null +++ b/damus/en.lproj/InfoPlist.strings @@ -0,0 +1,4 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Damus"; +/* Bundle name */ +"CFBundleName" = "damus"; diff --git a/damus/en.lproj/Localizable.strings b/damus/en.lproj/Localizable.strings new file mode 100644 index 00000000..d0abc3b5 Binary files /dev/null and b/damus/en.lproj/Localizable.strings differ diff --git a/damus/en.lproj/Localizable.stringsdict b/damus/en.lproj/Localizable.stringsdict index 69fa736a..53570fc5 100644 --- a/damus/en.lproj/Localizable.stringsdict +++ b/damus/en.lproj/Localizable.stringsdict @@ -5,7 +5,7 @@ replying_to_one_and_others NSStringLocalizedFormatKey - Replying to %2$@%#@others@ + Replying to %@%#@others@ others NSStringFormatSpecTypeKey @@ -23,7 +23,7 @@ replying_to_two_and_others NSStringLocalizedFormatKey - Replying to %2$@, %3$@%#@others@ + Replying to %@, %@%#@others@ others NSStringFormatSpecTypeKey diff --git a/transifex.yml b/transifex.yml new file mode 100644 index 00000000..83f4fe0f --- /dev/null +++ b/transifex.yml @@ -0,0 +1,10 @@ +git: + filters: + - filter_type: file + file_format: XLIFF + source_language: en + source_file: damus Localizations/en.xcloc/Localized Contents/en.xliff + translation_files_expression: damus Localizations/.xcloc/Localized Contents/.xliff + + settings: + pr_branch_name: tx_translations_