From 86819283c07223442f46f346ee4a3d60123b1d50 Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 17 Mar 2021 11:37:01 -0400 Subject: [PATCH 1/6] improve locae check behavior --- MVMCore/MVMCore/Models/Model/ModelRegistry.swift | 1 - MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift index 93407d1..791e70e 100644 --- a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift +++ b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift @@ -7,7 +7,6 @@ // Copyright © 2019 myverizon. All rights reserved. // -import Foundation public struct ModelRegistry { diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m index b48f34e..308016f 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m @@ -19,8 +19,13 @@ } + (BOOL)userPrefersSpanish { - // This should be enough for us to look at what the user prefers. - return [[[[[NSLocale preferredLanguages] objectAtIndex:0] substringToIndex:2] lowercaseString] isEqualToString:@"es"]; + // Gets preferences based on what the user wants and the app provides. + NSString *languageCode = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]; + if (languageCode && [languageCode length] > 2) { + return [[[languageCode substringToIndex:2] lowercaseString] isEqualToString:@"es"]; + } else { + return [[languageCode lowercaseString] isEqualToString:@"es"]; + } } + (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key { From 63abf3d35e596b7ad49e931b6b4d828c4072752a Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 17 Mar 2021 11:46:09 -0400 Subject: [PATCH 2/6] updated comment --- MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m index 308016f..8c76ba8 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m @@ -19,7 +19,7 @@ } + (BOOL)userPrefersSpanish { - // Gets preferences based on what the user wants and the app provides. + // Gets language code based on what the user prefers and the app provides. NSString *languageCode = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]; if (languageCode && [languageCode length] > 2) { return [[[languageCode substringToIndex:2] lowercaseString] isEqualToString:@"es"]; @@ -35,7 +35,6 @@ } else { return [[NSBundle bundleWithPath:[[MVMCoreGetterUtility bundleForMVMCore] pathForResource:@"en" ofType:@"lproj"]] localizedStringForKey:key value:@"" table:nil]; - } } From e13530f5b45ed4cb5f03aa42392e2c3d12373524 Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 17 Mar 2021 13:52:20 -0400 Subject: [PATCH 3/6] updating func --- .../Utility/Helpers/MVMCoreGetterUtility.h | 6 ++++++ .../Utility/Helpers/MVMCoreGetterUtility.m | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h index 262cc75..df18405 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h @@ -19,6 +19,12 @@ // Returns the hardcoded string from the string file. + (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key; +// Return current system language ++ (nullable NSString *)getSystemLanguage; + +// Return current preferred system language ++ (nullable NSString *)getPreferredAvailableLanguage; + // Returns true if the user's language is Spanish + (BOOL)userPrefersSpanish; diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m index 8c76ba8..0d2f8ef 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m @@ -18,15 +18,27 @@ return [NSBundle bundleWithIdentifier:@"com.vzw.MVMCore"]; } +// Confirms that the preferred user language is for spanish users. + (BOOL)userPrefersSpanish { - // Gets language code based on what the user prefers and the app provides. - NSString *languageCode = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]; + + NSString *languageCode = [MVMCoreGetterUtility getPreferredAvailableLanguage]; if (languageCode && [languageCode length] > 2) { return [[[languageCode substringToIndex:2] lowercaseString] isEqualToString:@"es"]; } else { return [[languageCode lowercaseString] isEqualToString:@"es"]; } } + +// Gets language code based on what the user prefers and the app provides. ++ (NSString *)getPreferredAvailableLanguage { + + return [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]; +} + ++ (NSString *)getSystemLanguage { + + return [[NSLocale preferredLanguages] objectAtIndex:0]; +} + (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key { // If the app language is not english... force load from the english file anyway. From 7581c6609f2043f458f10ec1932fd53a047e13fb Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Thu, 18 Mar 2021 11:46:07 -0400 Subject: [PATCH 4/6] providing redirect --- .../Utility/Helpers/MVMCoreGetterUtility.h | 3 +++ .../Utility/Helpers/MVMCoreGetterUtility.m | 15 +++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h index df18405..64feae8 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.h @@ -19,6 +19,9 @@ // Returns the hardcoded string from the string file. + (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key; +// Returns the hardcoded string from the string file based on module. ++ (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key bundle:(nullable NSBundle *)bundle; + // Return current system language + (nullable NSString *)getSystemLanguage; diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m index 0d2f8ef..a132316 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m @@ -35,19 +35,22 @@ return [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]; } +// Returns the preferred language set system wide. + (NSString *)getSystemLanguage { return [[NSLocale preferredLanguages] objectAtIndex:0]; } + (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key { + // Redirect key with relevant module. + return [MVMCoreGetterUtility hardcodedStringWithKey:key bundle:[MVMCoreGetterUtility bundleForMVMCore]]; +} + ++ (nullable NSString *)hardcodedStringWithKey:(nonnull NSString *)key bundle:(nullable NSBundle *)bundle { + // If the app language is not english... force load from the english file anyway. - if ([MVMCoreGetterUtility userPrefersSpanish]) { - return [[NSBundle bundleWithPath:[[MVMCoreGetterUtility bundleForMVMCore] pathForResource:@"es" ofType:@"lproj"]] localizedStringForKey:key value:@"" table:nil]; - - } else { - return [[NSBundle bundleWithPath:[[MVMCoreGetterUtility bundleForMVMCore] pathForResource:@"en" ofType:@"lproj"]] localizedStringForKey:key value:@"" table:nil]; - } + NSString *languageCode = [MVMCoreGetterUtility userPrefersSpanish] ? @"es" : @"en"; + return [[NSBundle bundleWithPath:[bundle pathForResource:languageCode ofType:@"lproj"]] localizedStringForKey:key value:@"" table:nil]; } + (nonnull UIColor *)getColorForHexString:(nonnull NSString *)hexString { From ff0bde3fbff7bee3e5b99f78891819a1e4989a8e Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Thu, 18 Mar 2021 13:41:52 -0400 Subject: [PATCH 5/6] refactored --- MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m index a132316..044f2d5 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m @@ -21,11 +21,11 @@ // Confirms that the preferred user language is for spanish users. + (BOOL)userPrefersSpanish { - NSString *languageCode = [MVMCoreGetterUtility getPreferredAvailableLanguage]; + NSString *languageCode = [[MVMCoreGetterUtility getPreferredAvailableLanguage] lowercaseString]; if (languageCode && [languageCode length] > 2) { - return [[[languageCode substringToIndex:2] lowercaseString] isEqualToString:@"es"]; + return [[languageCode substringToIndex:2] isEqualToString:@"es"]; } else { - return [[languageCode lowercaseString] isEqualToString:@"es"]; + return [languageCode isEqualToString:@"es"]; } } From f36f1e5142acf5d32eb3344a376fd5eac3d94f96 Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Thu, 18 Mar 2021 15:09:15 -0400 Subject: [PATCH 6/6] simpifying check --- MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m index 044f2d5..c5a8570 100644 --- a/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m +++ b/MVMCore/MVMCore/Utility/Helpers/MVMCoreGetterUtility.m @@ -21,12 +21,7 @@ // Confirms that the preferred user language is for spanish users. + (BOOL)userPrefersSpanish { - NSString *languageCode = [[MVMCoreGetterUtility getPreferredAvailableLanguage] lowercaseString]; - if (languageCode && [languageCode length] > 2) { - return [[languageCode substringToIndex:2] isEqualToString:@"es"]; - } else { - return [languageCode isEqualToString:@"es"]; - } + return [[[MVMCoreGetterUtility getPreferredAvailableLanguage] lowercaseString] hasPrefix:@"es"]; } // Gets language code based on what the user prefers and the app provides.