From 0d3c1a225b1746a9070105a555c22d79e87134b4 Mon Sep 17 00:00:00 2001
From: Terry Yiu <963907+tyiu@users.noreply.github.com>
Date: Mon, 2 Jan 2023 14:38:44 -0500
Subject: [PATCH] Export localizations and add transifex.yml config file
---
.../en.xcloc/Localized Contents/en.xliff | 804 ++++++++++++++++++
.../damus/en.lproj/InfoPlist.strings | 4 +
.../damus/en.lproj/Localizable.strings | Bin 0 -> 6184 bytes
.../damus/en.lproj/Localizable.stringsdict | 42 +
damus Localizations/en.xcloc/contents.json | 12 +
damus.xcodeproj/project.pbxproj | 36 +
damus/Views/EventView.swift | 4 +-
damus/en.lproj/InfoPlist.strings | 4 +
damus/en.lproj/Localizable.strings | Bin 0 -> 6184 bytes
damus/en.lproj/Localizable.stringsdict | 4 +-
damus/es.lproj/InfoPlist.strings | 4 +
damus/es.lproj/Localizable.strings | Bin 0 -> 6184 bytes
damus/es.lproj/Localizable.stringsdict | 42 +
damus/fr.lproj/InfoPlist.strings | 4 +
damus/fr.lproj/Localizable.strings | Bin 0 -> 6184 bytes
damus/fr.lproj/Localizable.stringsdict | 42 +
transifex.yml | 18 +
17 files changed, 1016 insertions(+), 4 deletions(-)
create mode 100644 damus Localizations/en.xcloc/Localized Contents/en.xliff
create mode 100644 damus Localizations/en.xcloc/Source Contents/damus/en.lproj/InfoPlist.strings
create mode 100644 damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.strings
create mode 100644 damus Localizations/en.xcloc/Source Contents/damus/en.lproj/Localizable.stringsdict
create mode 100644 damus Localizations/en.xcloc/contents.json
create mode 100644 damus/en.lproj/InfoPlist.strings
create mode 100644 damus/en.lproj/Localizable.strings
create mode 100644 damus/es.lproj/InfoPlist.strings
create mode 100644 damus/es.lproj/Localizable.strings
create mode 100644 damus/es.lproj/Localizable.stringsdict
create mode 100644 damus/fr.lproj/InfoPlist.strings
create mode 100644 damus/fr.lproj/Localizable.strings
create mode 100644 damus/fr.lproj/Localizable.stringsdict
create mode 100644 transifex.yml
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..68cdff8e
--- /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.
+
+
+
+
+ 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 %@%#@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..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 0000000000000000000000000000000000000000..d0abc3b55c869ae3994cec691dba1a2e4dd3249a
GIT binary patch
literal 6184
zcmcgwO;6iE5ZyDs!sXHyRiO4-^+2GNDg}z5s8TN|gpj0!7{yM3{`j`^WK(|>%({hDBYb+0zQcVBBc;bo4c_R`_cV*&dJ!$CYQ*^K#@B;>
z0_;8aC-EGST9hhV2eLhQLxDKR+%96~Cc>AFDaz`I#oF@OmpPSD6LKrFDx)W4jpkgi
zXY}lTIy?5aW%eS9<#r?sHrv!AsA^g3KO@dMzA7=3H0A8Lwxsz%*I&s(Ow#Vw%0l7;$Y`w{rEPSo&Oi1!9UUvday5>k^DkaT>P2Uer0osB@ecyQ*|O
zYeTcnb1hngm0jKeEM!k=af?h*s>EVC0W*AB2>m0k+8v9O{uiQ^Iie5k-(Yx*|LotH
zje_UW?=$zy#~k@4D_z`8yvNhS*g}EvBsim>je5+$060gzRQU5G<3a{Z)
zh3Hw<(-FJ>s$$H(N6Oqc|E@BQe(N)fwbht6o_xa`=aG0sk*D%?p`;J-
S4gX=3RftAMVw6@MQ2qzsxb&$2
literal 0
HcmV?d00001
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.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj
index 4f99573f..9546243b 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 */; };
@@ -166,6 +168,12 @@
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 = ""; };
+ 3AB1805A2963EF7E00FD1BD8 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ 3AB1805B2963EF7E00FD1BD8 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; };
+ 3AB1805C2963EF7E00FD1BD8 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fr; path = fr.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 = ""; };
@@ -595,6 +603,8 @@
4CE6DEE827F7A08100C66700 /* ContentView.swift */,
4CE6DEEA27F7A08200C66700 /* Assets.xcassets */,
4CE6DEEC27F7A08200C66700 /* Preview Content */,
+ 3AB18052296375CA00FD1BD8 /* InfoPlist.strings */,
+ 3AB18054296375CA00FD1BD8 /* Localizable.strings */,
3A4325AA2961E11400BFCD9D /* Localizable.stringsdict */,
);
path = damus;
@@ -731,6 +741,8 @@
knownRegions = (
en,
Base,
+ es,
+ fr,
);
mainGroup = 4CE6DEDA27F7A08100C66700;
packageReferences = (
@@ -756,7 +768,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 */,
);
@@ -947,10 +961,30 @@
isa = PBXVariantGroup;
children = (
3A4325A92961E11400BFCD9D /* en */,
+ 3AB1803D29636FB100FD1BD8 /* es */,
+ 3AB1805C2963EF7E00FD1BD8 /* fr */,
);
name = Localizable.stringsdict;
sourceTree = "";
};
+ 3AB18052296375CA00FD1BD8 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 3AB18058296377E500FD1BD8 /* es */,
+ 3AB1805A2963EF7E00FD1BD8 /* fr */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "";
+ };
+ 3AB18054296375CA00FD1BD8 /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 3AB18059296377E700FD1BD8 /* es */,
+ 3AB1805B2963EF7E00FD1BD8 /* fr */,
+ );
+ name = Localizable.strings;
+ sourceTree = "";
+ };
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@@ -958,6 +992,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 +1054,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/EventView.swift b/damus/Views/EventView.swift
index 26f79080..66d26568 100644
--- a/damus/Views/EventView.swift
+++ b/damus/Views/EventView.swift
@@ -412,13 +412,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])
}
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 0000000000000000000000000000000000000000..d0abc3b55c869ae3994cec691dba1a2e4dd3249a
GIT binary patch
literal 6184
zcmcgwO;6iE5ZyDs!sXHyRiO4-^+2GNDg}z5s8TN|gpj0!7{yM3{`j`^WK(|>%({hDBYb+0zQcVBBc;bo4c_R`_cV*&dJ!$CYQ*^K#@B;>
z0_;8aC-EGST9hhV2eLhQLxDKR+%96~Cc>AFDaz`I#oF@OmpPSD6LKrFDx)W4jpkgi
zXY}lTIy?5aW%eS9<#r?sHrv!AsA^g3KO@dMzA7=3H0A8Lwxsz%*I&s(Ow#Vw%0l7;$Y`w{rEPSo&Oi1!9UUvday5>k^DkaT>P2Uer0osB@ecyQ*|O
zYeTcnb1hngm0jKeEM!k=af?h*s>EVC0W*AB2>m0k+8v9O{uiQ^Iie5k-(Yx*|LotH
zje_UW?=$zy#~k@4D_z`8yvNhS*g}EvBsim>je5+$060gzRQU5G<3a{Z)
zh3Hw<(-FJ>s$$H(N6Oqc|E@BQe(N)fwbht6o_xa`=aG0sk*D%?p`;J-
S4gX=3RftAMVw6@MQ2qzsxb&$2
literal 0
HcmV?d00001
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_othersNSStringLocalizedFormatKey
- Replying to %2$@%#@others@
+ Replying to %@%#@others@othersNSStringFormatSpecTypeKey
@@ -23,7 +23,7 @@
replying_to_two_and_othersNSStringLocalizedFormatKey
- Replying to %2$@, %3$@%#@others@
+ Replying to %@, %@%#@others@othersNSStringFormatSpecTypeKey
diff --git a/damus/es.lproj/InfoPlist.strings b/damus/es.lproj/InfoPlist.strings
new file mode 100644
index 00000000..b5e9b532
--- /dev/null
+++ b/damus/es.lproj/InfoPlist.strings
@@ -0,0 +1,4 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Damus";
+/* Bundle name */
+"CFBundleName" = "damus";
diff --git a/damus/es.lproj/Localizable.strings b/damus/es.lproj/Localizable.strings
new file mode 100644
index 0000000000000000000000000000000000000000..d0abc3b55c869ae3994cec691dba1a2e4dd3249a
GIT binary patch
literal 6184
zcmcgwO;6iE5ZyDs!sXHyRiO4-^+2GNDg}z5s8TN|gpj0!7{yM3{`j`^WK(|>%({hDBYb+0zQcVBBc;bo4c_R`_cV*&dJ!$CYQ*^K#@B;>
z0_;8aC-EGST9hhV2eLhQLxDKR+%96~Cc>AFDaz`I#oF@OmpPSD6LKrFDx)W4jpkgi
zXY}lTIy?5aW%eS9<#r?sHrv!AsA^g3KO@dMzA7=3H0A8Lwxsz%*I&s(Ow#Vw%0l7;$Y`w{rEPSo&Oi1!9UUvday5>k^DkaT>P2Uer0osB@ecyQ*|O
zYeTcnb1hngm0jKeEM!k=af?h*s>EVC0W*AB2>m0k+8v9O{uiQ^Iie5k-(Yx*|LotH
zje_UW?=$zy#~k@4D_z`8yvNhS*g}EvBsim>je5+$060gzRQU5G<3a{Z)
zh3Hw<(-FJ>s$$H(N6Oqc|E@BQe(N)fwbht6o_xa`=aG0sk*D%?p`;J-
S4gX=3RftAMVw6@MQ2qzsxb&$2
literal 0
HcmV?d00001
diff --git a/damus/es.lproj/Localizable.stringsdict b/damus/es.lproj/Localizable.stringsdict
new file mode 100644
index 00000000..53570fc5
--- /dev/null
+++ b/damus/es.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/fr.lproj/InfoPlist.strings b/damus/fr.lproj/InfoPlist.strings
new file mode 100644
index 00000000..b5e9b532
--- /dev/null
+++ b/damus/fr.lproj/InfoPlist.strings
@@ -0,0 +1,4 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Damus";
+/* Bundle name */
+"CFBundleName" = "damus";
diff --git a/damus/fr.lproj/Localizable.strings b/damus/fr.lproj/Localizable.strings
new file mode 100644
index 0000000000000000000000000000000000000000..d0abc3b55c869ae3994cec691dba1a2e4dd3249a
GIT binary patch
literal 6184
zcmcgwO;6iE5ZyDs!sXHyRiO4-^+2GNDg}z5s8TN|gpj0!7{yM3{`j`^WK(|>%({hDBYb+0zQcVBBc;bo4c_R`_cV*&dJ!$CYQ*^K#@B;>
z0_;8aC-EGST9hhV2eLhQLxDKR+%96~Cc>AFDaz`I#oF@OmpPSD6LKrFDx)W4jpkgi
zXY}lTIy?5aW%eS9<#r?sHrv!AsA^g3KO@dMzA7=3H0A8Lwxsz%*I&s(Ow#Vw%0l7;$Y`w{rEPSo&Oi1!9UUvday5>k^DkaT>P2Uer0osB@ecyQ*|O
zYeTcnb1hngm0jKeEM!k=af?h*s>EVC0W*AB2>m0k+8v9O{uiQ^Iie5k-(Yx*|LotH
zje_UW?=$zy#~k@4D_z`8yvNhS*g}EvBsim>je5+$060gzRQU5G<3a{Z)
zh3Hw<(-FJ>s$$H(N6Oqc|E@BQe(N)fwbht6o_xa`=aG0sk*D%?p`;J-
S4gX=3RftAMVw6@MQ2qzsxb&$2
literal 0
HcmV?d00001
diff --git a/damus/fr.lproj/Localizable.stringsdict b/damus/fr.lproj/Localizable.stringsdict
new file mode 100644
index 00000000..53570fc5
--- /dev/null
+++ b/damus/fr.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/transifex.yml b/transifex.yml
new file mode 100644
index 00000000..61984088
--- /dev/null
+++ b/transifex.yml
@@ -0,0 +1,18 @@
+git:
+ filters:
+ - filter_type: dir
+ file_format: STRINGS
+ source_file_extensions: strings
+ source_language: en
+ source_file_dir: damus Localizations/en.xcloc/Source Contents/damus/en.lproj
+ translation_files_expression: damus/.lproj
+
+ - filter_type: dir
+ file_format: STRINGSDICT
+ source_file_extensions: stringsdict
+ source_language: en
+ source_file_dir: damus Localizations/en.xcloc/Source Contents/damus/en.lproj
+ translation_files_expression: damus/.lproj
+
+ settings:
+ pr_branch_name: tx_translations_