From 548af2bf9d9c240853a28571f5540ce9c8a51635 Mon Sep 17 00:00:00 2001 From: kernelkind Date: Tue, 2 Jan 2024 17:04:44 -0500 Subject: [PATCH] localization: add support for purple strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add string localizations so the purple landing pages can have multi language support. LNURL1DP68GURN8GHJ7EM9W3SKCCNE9E3K7MF0D3H82UNVWQHKWUN9V4HXGCTHDC6RZVGR8SW3G Closes: https://github.com/damus-io/damus/issues/1816 Signed-off-by: kernelkind Reviewed-by: William Casarin Reviewed-by: Daniel D’Aquino Signed-off-by: William Casarin --- damus/Views/Purple/DamusPurpleView.swift | 40 +++++++++---------- .../Views/Purple/DamusPurpleWelcomeView.swift | 6 +-- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/damus/Views/Purple/DamusPurpleView.swift b/damus/Views/Purple/DamusPurpleView.swift index bd101c38..444bf105 100644 --- a/damus/Views/Purple/DamusPurpleView.swift +++ b/damus/Views/Purple/DamusPurpleView.swift @@ -105,10 +105,10 @@ struct DamusPurpleView: View { isPresented: $show_settings_change_confirmation_dialog, titleVisibility: .visible ) { - Button("Yes") { + Button(NSLocalizedString("Yes", comment: "User confirm Yes")) { set_translation_settings_to_purple() }.keyboardShortcut(.defaultAction) - Button("No", role: .cancel) {} + Button(NSLocalizedString("No", comment: "User confirm No"), role: .cancel) {} } .manageSubscriptionsSheet(isPresented: $show_manage_subscriptions) } @@ -200,12 +200,12 @@ struct DamusPurpleView: View { } var ProductLoadError: some View { - Text("Ah dang there was an error loading subscription information from the AppStore. Please try again later :(") + Text(NSLocalizedString("Subscription Error", comment: "Ah dang there was an error loading subscription information from the AppStore. Please try again later :(")) .foregroundColor(.white) } var SaveText: Text { - Text("Save 14%") + Text(NSLocalizedString("Save 14%", comment: "Percentage of purchase price the user will save")) .font(.callout) .italic() .foregroundColor(DamusColors.green) @@ -250,7 +250,7 @@ struct DamusPurpleView: View { return ( AnyView( HStack(spacing: 10) { - Text("Anually") + Text(NSLocalizedString("Annually", comment: "Annual renewal of purple subscription")) Spacer() Text(verbatim: non_discounted_price(product)).strikethrough().foregroundColor(DamusColors.white.opacity(0.5)) Text(verbatim: product.displayPrice).fontWeight(.bold) @@ -261,7 +261,7 @@ struct DamusPurpleView: View { return ( AnyView( HStack(spacing: 10) { - Text("Monthly") + Text(NSLocalizedString("Monthly", comment: "Monthly renewal of purple subscription")) Spacer() Text(verbatim: product.displayPrice).fontWeight(.bold) } @@ -272,7 +272,7 @@ struct DamusPurpleView: View { func ProductsView(_ products: [Product]) -> some View { VStack(spacing: 10) { - Text("Save 20% off on an annual subscription") + Text(NSLocalizedString("Save 20% off on an annual subscription", comment: "Savings for purchasing an annual subscription")) .font(.callout.bold()) .foregroundColor(.white) ForEach(products) { product in @@ -295,21 +295,21 @@ struct DamusPurpleView: View { func PurchasedView(_ purchased: PurchasedProduct) -> some View { VStack(spacing: 10) { - Text("Purchased!") + Text(NSLocalizedString("Purchased!", comment: "User purchased a subscription")) .font(.title2) .foregroundColor(.white) price_description(product: purchased.product) .foregroundColor(.white) .opacity(0.65) .frame(width: 200) - Text("Purchased on") + Text(NSLocalizedString("Purchased on", comment: "Indicating when the user purchased the subscription")) .font(.title2) .foregroundColor(.white) Text(format_date(UInt32(purchased.tx.purchaseDate.timeIntervalSince1970))) .foregroundColor(.white) .opacity(0.65) if let expiry = purchased.tx.expirationDate { - Text("Renews on") + Text(NSLocalizedString("Renews on", comment: "Indicating when the subscription will renew")) .font(.title2) .foregroundColor(.white) Text(format_date(UInt32(expiry.timeIntervalSince1970))) @@ -319,7 +319,7 @@ struct DamusPurpleView: View { Button(action: { show_manage_subscriptions = true }, label: { - Text("Manage") + Text(NSLocalizedString("Manage", comment: "Manage the damus subscription")) }) .buttonStyle(GradientButtonStyle()) } @@ -360,7 +360,7 @@ struct DamusPurpleView: View { .shadow(radius: 5) VStack(alignment: .leading) { - Text("Purple") + Text(NSLocalizedString("Purple", comment: "Subscription service name")) .font(.system(size: 60.0).weight(.bold)) .foregroundStyle( LinearGradient( @@ -376,16 +376,16 @@ struct DamusPurpleView: View { .padding(.bottom, 30) VStack(alignment: .leading, spacing: 30) { - Subtitle("Help us stay independent in our mission for Freedom tech with our Purple subscription, and look cool doing it!") + Subtitle(NSLocalizedString("Help us stay independent in our mission for Freedom tech with our Purple subscription, and look cool doing it!", comment: "Damus purple subscription pitch")) .multilineTextAlignment(.center) HStack(spacing: 20) { IconOnBox("heart.fill") VStack(alignment: .leading) { - Title("Help Build The Future") + Title(NSLocalizedString("Help Build The Future", comment: "Title for funding future damus development")) - Subtitle("Support Damus development to help build the future of decentralized communication on the web.") + Subtitle(NSLocalizedString("Support Damus development to help build the future of decentralized communication on the web.", comment: "Reason for supporting damus development")) } } @@ -393,7 +393,7 @@ struct DamusPurpleView: View { IconOnBox("ai-3-stars.fill") VStack(alignment: .leading) { - Title("Exclusive features") + Title(NSLocalizedString("Exclusive features", comment: "Features only available on subscription service")) .padding(.bottom, -3) HStack(spacing: 3) { @@ -401,7 +401,7 @@ struct DamusPurpleView: View { .resizable() .frame(width: 15, height: 15) - Text("Coming soon") + Text(NSLocalizedString("Coming soon", comment: "Feature is still in development and will be available soon")) .font(.caption) .bold() } @@ -411,7 +411,7 @@ struct DamusPurpleView: View { .background(DamusColors.lightBackgroundPink) .cornerRadius(30.0) - Subtitle("Be the first to access upcoming premium features: Automatic translations, longer note storage, and more") + Subtitle(NSLocalizedString("Be the first to access upcoming premium features: Automatic translations, longer note storage, and more", comment: "Description of new features to be expected")) .padding(.top, 3) } } @@ -420,9 +420,9 @@ struct DamusPurpleView: View { IconOnBox("badge") VStack(alignment: .leading) { - Title("Supporter Badge") + Title(NSLocalizedString("Supporter Badge", comment: "Title for supporter badge")) - Subtitle("Get a special badge on your profile to show everyone your contribution to Freedom tech") + Subtitle(NSLocalizedString("Get a special badge on your profile to show everyone your contribution to Freedom tech", comment: "Supporter badge description")) } } diff --git a/damus/Views/Purple/DamusPurpleWelcomeView.swift b/damus/Views/Purple/DamusPurpleWelcomeView.swift index 7b7a1a23..9dd1acbb 100644 --- a/damus/Views/Purple/DamusPurpleWelcomeView.swift +++ b/damus/Views/Purple/DamusPurpleWelcomeView.swift @@ -36,7 +36,7 @@ struct DamusPurpleWelcomeView: View { .opacity(start ? 1.0 : 0.0) .animation(.content(), value: start) - Text("Welcome to Purple") + Text(NSLocalizedString("Welcome to Purple", comment: "Greeting to subscription service")) .font(.largeTitle) .fontWeight(.bold) .foregroundStyle( @@ -69,7 +69,7 @@ struct DamusPurpleWelcomeView: View { .opacity(start ? 1.0 : 0.0) .animation(Animation.snappy(duration: 2).delay(0), value: start) - Text("Thank you very much for signing up for Damus\u{00A0}Purple. Your contribution helps us continue our fight for a more Open and Free\u{00A0}internet.\n\nYou will also get access to premium features, and a star badge on your profile.\n\nEnjoy!") + Text(NSLocalizedString("Thank you very much for signing up for Damus\u{00A0}Purple. Your contribution helps us continue our fight for a more Open and Free\u{00A0}internet.\n\nYou will also get access to premium features, and a star badge on your profile.\n\nEnjoy!", comment: "Appreciation to user for purchasing subscription service")) .lineSpacing(5) .multilineTextAlignment(.center) .foregroundStyle(.white.opacity(0.8)) @@ -84,7 +84,7 @@ struct DamusPurpleWelcomeView: View { }, label: { HStack { Spacer() - Text("Continue") + Text(NSLocalizedString("Continue", comment: "Prompt to user to continue")) Spacer() } })