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..15f4a85e --- /dev/null +++ b/damus Localizations/en.xcloc/Localized Contents/en.xliff @@ -0,0 +1,804 @@ + + + +
+ +
+ + + Damus + Damus + Bundle display name + + + damus + damus + Bundle name + + +
+ +
+ +
+ + + + + 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. + + + + + + + No comment provided by engineer. + + + < 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. + + + 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. + + + 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: + 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. + + + 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 %2$@%#@others@ + Replying to %2$@%#@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 %2$@, %3$@%#@others@ + Replying to %2$@, %3$@%#@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..b5e9b532 --- /dev/null +++ b/damus Localizations/en.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings @@ -0,0 +1,4 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Damus"; +/* Bundle name */ +"CFBundleName" = "damus"; 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..d0abc3b5 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..69fa736a --- /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 %2$@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + replying_to_two_and_others + + NSStringLocalizedFormatKey + Replying to %2$@, %3$@%#@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.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj index 4f99573f..845f393c 100644 --- a/damus.xcodeproj/project.pbxproj +++ b/damus.xcodeproj/project.pbxproj @@ -166,6 +166,7 @@ 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 = ""; }; 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 = ""; }; @@ -731,6 +732,7 @@ knownRegions = ( en, Base, + es, ); mainGroup = 4CE6DEDA27F7A08100C66700; packageReferences = ( @@ -947,6 +949,7 @@ isa = PBXVariantGroup; children = ( 3A4325A92961E11400BFCD9D /* en */, + 3AB1803D29636FB100FD1BD8 /* es */, ); name = Localizable.stringsdict; sourceTree = ""; @@ -958,6 +961,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"; @@ -1019,6 +1023,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/es.lproj/Localizable.stringsdict b/damus/es.lproj/Localizable.stringsdict new file mode 100644 index 00000000..69fa736a --- /dev/null +++ b/damus/es.lproj/Localizable.stringsdict @@ -0,0 +1,42 @@ + + + + + replying_to_one_and_others + + NSStringLocalizedFormatKey + Replying to %2$@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + replying_to_two_and_others + + NSStringLocalizedFormatKey + Replying to %2$@, %3$@%#@others@ + others + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + + one + & 1 other + other + & %d others + + + + diff --git a/transifex.yml b/transifex.yml new file mode 100644 index 00000000..3c785fad --- /dev/null +++ b/transifex.yml @@ -0,0 +1,10 @@ +git: + filters: + - filter_type: file + file_format: STRUCTURED_JSON + 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_