From 68d6c79e47f8fa370b9446a0e12d52f5fe6b89eb Mon Sep 17 00:00:00 2001 From: kcw-grunt Date: Sat, 22 Aug 2026 18:55:32 +0100 Subject: [PATCH 1/4] update game --- Private/bw-gdlib | 2 +- brainwallet/Localizations/Localizable.xcstrings | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Private/bw-gdlib b/Private/bw-gdlib index 68b03cba..e06af016 160000 --- a/Private/bw-gdlib +++ b/Private/bw-gdlib @@ -1 +1 @@ -Subproject commit 68b03cbaf79b573ad364bdf70be72f315dad8b13 +Subproject commit e06af016d25a61320bb1828709eae18fa1f6d819 diff --git a/brainwallet/Localizations/Localizable.xcstrings b/brainwallet/Localizations/Localizable.xcstrings index 671cccbb..01cb1b4a 100644 --- a/brainwallet/Localizations/Localizable.xcstrings +++ b/brainwallet/Localizations/Localizable.xcstrings @@ -1044,6 +1044,7 @@ } }, "%@ %lld" : { + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -5856,6 +5857,9 @@ } } } + }, + "BUY / RECEIVE" : { + }, "Buy Gift Cards with LTC!" : { "localizations" : { @@ -8462,6 +8466,9 @@ } } } + }, + "COPY NEW ADDRESS" : { + }, "Copy Wallet Addresses" : { "localizations" : { @@ -21122,6 +21129,9 @@ } } } + }, + "POWERED BY MOONPAY" : { + }, "Re-Enter PIN" : { "extractionState" : "stale", @@ -34161,6 +34171,7 @@ } }, "via" : { + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { From 3ad8f077fcb781405fa33168e9ccb89e5842cbba Mon Sep 17 00:00:00 2001 From: kcw-grunt Date: Sat, 22 Aug 2026 19:00:56 +0100 Subject: [PATCH 2/4] Restore translations for COPY NEW ADDRESS Cherry-picked from release/v3.9.17, where this string had full translations but was empty on develop. Co-Authored-By: grunt-claude-bot Co-Authored-By: kcw-grunt --- .../Localizations/Localizable.xcstrings | 130 +++++++++++++++++- 1 file changed, 129 insertions(+), 1 deletion(-) diff --git a/brainwallet/Localizations/Localizable.xcstrings b/brainwallet/Localizations/Localizable.xcstrings index 01cb1b4a..8178cecc 100644 --- a/brainwallet/Localizations/Localizable.xcstrings +++ b/brainwallet/Localizations/Localizable.xcstrings @@ -8468,7 +8468,135 @@ } }, "COPY NEW ADDRESS" : { - + "extractionState" : "manual", + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "نسخ العنوان الجديد" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "NEUE ADRESSE KOPIEREN" + } + }, + "es-419" : { + "stringUnit" : { + "state" : "translated", + "value" : "COPIAR NUEVA DIRECCIÓN" + } + }, + "fa-IR" : { + "stringUnit" : { + "state" : "translated", + "value" : "کپی آدرس جدید" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "COPIER NOUVELLE ADRESSE" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "नया पता कॉपी करें" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "SALIN ALAMAT BARU" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "COPIA NUOVO INDIRIZZO" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "新しいアドレスをコピー" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "새 주소 복사" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "NIEUW ADRES KOPIËREN" + } + }, + "pa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ਨਵਾਂ ਪਤਾ ਕਾਪੀ ਕਰੋ" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "KOPIUJ NOWY ADRES" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "COPIAR NOVO ENDEREÇO" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "КОПИРОВАТЬ НОВЫЙ АДРЕС" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "KOPIERA NY ADRESS" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "คัดลอกที่อยู่ใหม่" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "YENİ ADRESİ KOPYALA" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "КОПІЮВАТИ НОВУ АДРЕСУ" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "复制新地址" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "複製新地址" + } + } + } }, "Copy Wallet Addresses" : { "localizations" : { From 3940725d6ffe4be6d90a2c55d411dc22f6fed778 Mon Sep 17 00:00:00 2001 From: kcw-grunt Date: Sat, 22 Aug 2026 19:17:30 +0100 Subject: [PATCH 3/4] version bumped --- brainwallet.xcodeproj/project.pbxproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/brainwallet.xcodeproj/project.pbxproj b/brainwallet.xcodeproj/project.pbxproj index 924ec27e..87cfbe80 100644 --- a/brainwallet.xcodeproj/project.pbxproj +++ b/brainwallet.xcodeproj/project.pbxproj @@ -244,13 +244,11 @@ C312D2EA2D7DC27700BB97A4 /* ForgotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D24D2D7DC27700BB97A4 /* ForgotView.swift */; }; C312D2EC2D7DC27700BB97A4 /* AnimatableIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D1D32D7DC27700BB97A4 /* AnimatableIcon.swift */; }; C312D2F12D7DC27700BB97A4 /* UITableViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D2C22D7DC27700BB97A4 /* UITableViewExtension.swift */; }; - FF9BADE3A170F008C98BDA4D /* UIPickerView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 556F43635FF15DBD8CE79E53 /* UIPickerView+Extension.swift */; }; C312D2FC2D7DC27700BB97A4 /* GradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D1E72D7DC27700BB97A4 /* GradientView.swift */; }; C312D3072D7DC27700BB97A4 /* CGRect+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D06E2D7DC27700BB97A4 /* CGRect+Additions.swift */; }; C312D3112D7DC27700BB97A4 /* UIViewControllerContextTransitioning+BRAdditions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D0872D7DC27700BB97A4 /* UIViewControllerContextTransitioning+BRAdditions.swift */; }; C312D3122D7DC27700BB97A4 /* UIApplication+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D2C12D7DC27700BB97A4 /* UIApplication+Extension.swift */; }; C312D3132D7DC27700BB97A4 /* UserDefaultsUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D2C62D7DC27700BB97A4 /* UserDefaultsUpdater.swift */; }; - C74016995BF8E51D0570D4A3 /* VariableBlurView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D907D0CB963306B3055BAA1B /* VariableBlurView.swift */; }; C312D3152D7DC27700BB97A4 /* UILabel+BRWAdditions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D07C2D7DC27700BB97A4 /* UILabel+BRWAdditions.swift */; }; C312D3172D7DC27700BB97A4 /* BiometricsSpendingLimitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D1B92D7DC27700BB97A4 /* BiometricsSpendingLimitViewController.swift */; }; C312D3192D7DC27700BB97A4 /* Rate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C312D0982D7DC27700BB97A4 /* Rate.swift */; }; @@ -391,6 +389,8 @@ C3FACF6C2F9E023700886FAD /* GameHubCarouselBentoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3FACF6B2F9E023700886FAD /* GameHubCarouselBentoView.swift */; }; C3FACF6E2F9E025300886FAD /* MoonPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3FACF6D2F9E025300886FAD /* MoonPayView.swift */; }; C3FACF702F9E026500886FAD /* SocialsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3FACF6F2F9E026500886FAD /* SocialsView.swift */; }; + C74016995BF8E51D0570D4A3 /* VariableBlurView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D907D0CB963306B3055BAA1B /* VariableBlurView.swift */; }; + FF9BADE3A170F008C98BDA4D /* UIPickerView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 556F43635FF15DBD8CE79E53 /* UIPickerView+Extension.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -801,6 +801,7 @@ 24F5BD572E04711E0010D340 /* CurrencyPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyPickerView.swift; sourceTree = ""; }; 24F64C1F2DAFBD94001DC9B6 /* WelcomMojiDemoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomMojiDemoView.swift; sourceTree = ""; }; 24FBB8692E035E07002B5F84 /* SettingsHostingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsHostingController.swift; sourceTree = ""; }; + 556F43635FF15DBD8CE79E53 /* UIPickerView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIPickerView+Extension.swift"; sourceTree = ""; }; 5C3F1465DCBE495A8993C1FD /* BalanceBentoReviewPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BalanceBentoReviewPolicy.swift; sourceTree = ""; }; 755CD9D11DAA197C0075898E /* libBRCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBRCore.a; sourceTree = BUILT_PRODUCTS_DIR; }; 75A2A7901DA5934300A983D8 /* Brainwallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Brainwallet.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -935,10 +936,8 @@ C312D2C02D7DC27700BB97A4 /* TransferAmountViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransferAmountViewModel.swift; sourceTree = ""; }; C312D2C12D7DC27700BB97A4 /* UIApplication+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+Extension.swift"; sourceTree = ""; }; C312D2C22D7DC27700BB97A4 /* UITableViewExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITableViewExtension.swift; sourceTree = ""; }; - 556F43635FF15DBD8CE79E53 /* UIPickerView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIPickerView+Extension.swift"; sourceTree = ""; }; C312D2C32D7DC27700BB97A4 /* UnsafeMutablePointerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnsafeMutablePointerExtension.swift; sourceTree = ""; }; C312D2C62D7DC27700BB97A4 /* UserDefaultsUpdater.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsUpdater.swift; sourceTree = ""; }; - D907D0CB963306B3055BAA1B /* VariableBlurView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlurView.swift; sourceTree = ""; }; C312D2C72D7DC27700BB97A4 /* View+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extension.swift"; sourceTree = ""; }; C312D2C82D7DC27700BB97A4 /* WalletCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletCoordinator.swift; sourceTree = ""; }; C312D2C92D7DC27700BB97A4 /* WalletManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletManager.swift; sourceTree = ""; }; @@ -973,6 +972,7 @@ C3FACF6B2F9E023700886FAD /* GameHubCarouselBentoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameHubCarouselBentoView.swift; sourceTree = ""; }; C3FACF6D2F9E025300886FAD /* MoonPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoonPayView.swift; sourceTree = ""; }; C3FACF6F2F9E026500886FAD /* SocialsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocialsView.swift; sourceTree = ""; }; + D907D0CB963306B3055BAA1B /* VariableBlurView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlurView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -3217,7 +3217,7 @@ "$(FRAMEWORK_SEARCH_PATHS)", ); LIBRARY_SEARCH_PATHS = "$(SRCROOT)/bw-gdlib/"; - MARKETING_VERSION = 3.9.16; + MARKETING_VERSION = 3.9.17; ONLY_ACTIVE_ARCH = YES; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "$(inherited)", @@ -3418,7 +3418,7 @@ "$(FRAMEWORK_SEARCH_PATHS)", ); LIBRARY_SEARCH_PATHS = "$(SRCROOT)/bw-gdlib/"; - MARKETING_VERSION = 3.9.16; + MARKETING_VERSION = 3.9.17; ONLY_ACTIVE_ARCH = YES; "OTHER_LDFLAGS[arch=*]" = "-ObjC"; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( From 30dfbf7ce51676e8260a205c4ee0275d2f29f38e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 22 Aug 2026 21:07:00 +0000 Subject: [PATCH 4/4] chore(i18n): auto-translate missing iOS xcstrings [skip ci] Languages: ar, de, es-419, fa-IR, fr, hi, id, it, ja, ko, pa, pl, pt-BR, nl, ru, sv, th, tr, uk, zh-Hans, zh-Hant Triggered by: 7b62ea859a4b89c284854ca436037ac81bc10c42 --- .../Localizations/Localizable.xcstrings | 258 +++++++++++++++++- 1 file changed, 256 insertions(+), 2 deletions(-) diff --git a/brainwallet/Localizations/Localizable.xcstrings b/brainwallet/Localizations/Localizable.xcstrings index 8178cecc..25336e0c 100644 --- a/brainwallet/Localizations/Localizable.xcstrings +++ b/brainwallet/Localizations/Localizable.xcstrings @@ -5859,7 +5859,134 @@ } }, "BUY / RECEIVE" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "شراء / استقبال" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "KAUFEN / EMPFANGEN" + } + }, + "es-419" : { + "stringUnit" : { + "state" : "translated", + "value" : "COMPRAR / RECIBIR" + } + }, + "fa-IR" : { + "stringUnit" : { + "state" : "translated", + "value" : "خرید / دریافت" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ACHETER / RECEVOIR" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "खरीदें / प्राप्त करें" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "BELI / TERIMA" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "ACQUISTA / RICEVI" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "購入 / 受け取り" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구매 / 수신" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "KOPEN / ONTVANGEN" + } + }, + "pa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ਖਰੀਦੋ / ਪ੍ਰਾਪਤ ਕਰੋ" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "KUP / ODBIERZ" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "COMPRAR / RECEBER" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "КУПИТЬ / ПОЛУЧИТЬ" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "KÖP / MOTTA" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ซื้อ / รับ" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "SATINALMA / ALMA" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "КУПИТИ / ОТРИМАТИ" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "购买 / 接收" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "購買 / 接收" + } + } + } }, "Buy Gift Cards with LTC!" : { "localizations" : { @@ -21259,7 +21386,134 @@ } }, "POWERED BY MOONPAY" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "مدعوم من MOONPAY" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "POWERED BY MOONPAY" + } + }, + "es-419" : { + "stringUnit" : { + "state" : "translated", + "value" : "IMPULSADO POR MOONPAY" + } + }, + "fa-IR" : { + "stringUnit" : { + "state" : "translated", + "value" : "درخشش از طریق MOONPAY" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "POWERED BY MOONPAY" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "MOONPAY द्वारा संचालित" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "DIDUKUNG OLEH MOONPAY" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "POWERED BY MOONPAY" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "POWERED BY MOONPAY" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "MOONPAY 제공" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "MOGELIJK GEMAAKT DOOR MOONPAY" + } + }, + "pa" : { + "stringUnit" : { + "state" : "translated", + "value" : "MOONPAY ਦੁਆਰਾ ਸੰਚਾਲਿਤ" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "OBSŁUGIWANE PRZEZ MOONPAY" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "POWERED BY MOONPAY" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "POWERED BY MOONPAY" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "DRIVEN AV MOONPAY" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ขับเคลื่อนโดย MOONPAY" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "MOONPAY TARAFINDAN SUNULMAKTADIR" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "НА ПЛАТФОРМІ MOONPAY" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "由 MOONPAY 提供支持" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "由 MOONPAY 提供支持" + } + } + } }, "Re-Enter PIN" : { "extractionState" : "stale",