From 6e5af48e4f4671ffa061b50b774f5e404067d0f6 Mon Sep 17 00:00:00 2001 From: pranavharshith Date: Tue, 28 Jul 2026 20:18:51 +0530 Subject: [PATCH] Address theme PR review: locale coverage and palette polish Fill the five new appearance keys across all catalog locales so LocalizationCoverageTests pass. Dim Nord dark secondary for text hierarchy and restore a muted alertRed on monochrome so errors stay distinct without leaving the high-contrast look. --- bitchat/Localizable.xcstrings | 870 ++++++++++++++++++++++++++++++++++ bitchat/Utils/Theme.swift | 4 +- 2 files changed, 872 insertions(+), 2 deletions(-) diff --git a/bitchat/Localizable.xcstrings b/bitchat/Localizable.xcstrings index d4298398..98673b09 100644 --- a/bitchat/Localizable.xcstrings +++ b/bitchat/Localizable.xcstrings @@ -3213,55 +3213,925 @@ "app_info.appearance.nord" : { "extractionState" : "manual", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "nord" } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "nord" + } } } }, "app_info.appearance.dracula" : { "extractionState" : "manual", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "dracula" } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "dracula" + } } } }, "app_info.appearance.solarized_dark" : { "extractionState" : "manual", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "solarized dark" } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "solarized dark" + } } } }, "app_info.appearance.tokyo_night" : { "extractionState" : "manual", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "tokyo night" } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "tokyo night" + } } } }, "app_info.appearance.monochrome" : { "extractionState" : "manual", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "monochrome" } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "monochrome" + } } } }, diff --git a/bitchat/Utils/Theme.swift b/bitchat/Utils/Theme.swift index ff78246a..138f2eaf 100644 --- a/bitchat/Utils/Theme.swift +++ b/bitchat/Utils/Theme.swift @@ -140,7 +140,7 @@ struct ThemePalette { return ThemePalette( background: isDark ? Color(red: 0.18, green: 0.20, blue: 0.25) : Color(red: 0.93, green: 0.94, blue: 0.96), primary: isDark ? Color(red: 0.93, green: 0.94, blue: 0.96) : Color(red: 0.18, green: 0.20, blue: 0.25), - secondary: isDark ? Color(red: 0.85, green: 0.87, blue: 0.91) : Color(red: 0.30, green: 0.34, blue: 0.40), + secondary: isDark ? Color(red: 0.61, green: 0.66, blue: 0.74) : Color(red: 0.30, green: 0.34, blue: 0.40), accent: isDark ? Color(red: 0.53, green: 0.75, blue: 0.82) : Color(red: 0.37, green: 0.51, blue: 0.67), locationAccent: isDark ? Color(red: 0.64, green: 0.75, blue: 0.55) : Color(red: 0.40, green: 0.55, blue: 0.31), accentBlue: isDark ? Color(red: 0.51, green: 0.63, blue: 0.76) : Color(red: 0.51, green: 0.63, blue: 0.76), @@ -200,7 +200,7 @@ struct ThemePalette { accent: isDark ? .white : .black, locationAccent: isDark ? Color(white: 0.75) : Color(white: 0.25), accentBlue: isDark ? Color(white: 0.75) : Color(white: 0.25), - alertRed: isDark ? Color(white: 0.55) : Color(white: 0.55), + alertRed: isDark ? Color(red: 0.82, green: 0.32, blue: 0.32) : Color(red: 0.72, green: 0.18, blue: 0.18), divider: isDark ? Color(white: 0.25) : Color(white: 0.80) ) }