From 523e1b9cc64955127c896f8a6f5858f712b49887 Mon Sep 17 00:00:00 2001 From: jdavin Date: Fri, 20 Jun 2025 14:18:25 +0200 Subject: [PATCH 1/2] feat(localization): open strings to be localized from the main bundle --- .../Localization/LocalizedString.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift b/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift index 53d1ff8..0147fdd 100644 --- a/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift +++ b/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift @@ -45,9 +45,16 @@ public func CameraKitLocalizedString( table: String? = nil ) -> String { let resolvedBundle = bundle ?? bestBundle(forPreferredLanguages: preferredLanguages) + let mainBundle = Bundle.main let fallbackBundle = bestBundle(forPreferredLanguages: ["en-US"]) + let mainBundleResolvedString = mainBundle.localizedString(forKey: key, value: nil, table: table) let resolvedString = resolvedBundle.localizedString(forKey: key, value: nil, table: table) let fallbackString = fallbackBundle.localizedString(forKey: key, value: nil, table: table) + + if mainBundleResolvedString != key { + // The requested string has been localized in the main bundle. + return mainBundleResolvedString + } if resolvedString == key, fallbackString != key { // The localizedString call for the specified bundle returned the key (ie: it hasn't been localized) but the English bundle doesn't. // This indicates that the requested string has not been localized, and we should fall back to the English value instead of showing the user the key. From adc82bd0032a59c03521810aaaeb9d72a93d939f Mon Sep 17 00:00:00 2001 From: jdavin Date: Fri, 20 Jun 2025 15:40:28 +0200 Subject: [PATCH 2/2] Update LocalizedString.swift --- .../Localization/LocalizedString.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift b/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift index 0147fdd..79f1627 100644 --- a/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift +++ b/Sources/SCSDKCameraKitReferenceUI/Localization/LocalizedString.swift @@ -45,7 +45,7 @@ public func CameraKitLocalizedString( table: String? = nil ) -> String { let resolvedBundle = bundle ?? bestBundle(forPreferredLanguages: preferredLanguages) - let mainBundle = Bundle.main + let mainBundle = bundle ?? Bundle.main let fallbackBundle = bestBundle(forPreferredLanguages: ["en-US"]) let mainBundleResolvedString = mainBundle.localizedString(forKey: key, value: nil, table: table) let resolvedString = resolvedBundle.localizedString(forKey: key, value: nil, table: table)