From b4270d007bf36fefc7b67825fe9ff268c28ef7d6 Mon Sep 17 00:00:00 2001 From: Erin Mounts Date: Fri, 20 Nov 2015 14:23:27 -0800 Subject: [PATCH 1/2] Fix misuses of NSLocalizedString --- .../Library/Categories/NSError+APCAdditions.h | 20 ++++---- .../Library/Categories/NSError+APCAdditions.m | 44 ++++++++++++------ .../Library/Categories/NSError+Bridge.m | 29 +++++++----- .../APCAppCore/Library/Insights/APCInsights.m | 36 +++++++------- .../APCMedicationFrequencyViewController.m | 32 +++++++------ .../APCMedicationColorViewController.m | 15 ++++-- .../Library/Objects/APCTasksReminderManager.m | 16 +++++-- .../Resources/en.lproj/APCAppCore.strings | Bin 39936 -> 50894 bytes .../Profile/APCSettingsViewController.m | 9 ++-- .../Profile/APCSharingOptionsViewController.m | 4 +- 10 files changed, 119 insertions(+), 86 deletions(-) diff --git a/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.h b/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.h index 3963535f..ba139aab 100644 --- a/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.h +++ b/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.h @@ -33,16 +33,16 @@ #import -FOUNDATION_EXPORT NSString * const kAPCServerBusyErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCUnexpectedConditionErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCNotConnectedErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCServerUnderMaintanenceErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCAccountAlreadyExistsErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCAccountDoesNotExistErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCBadEmailAddressErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCBadPasswordErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCNotReachableErrorMessage; -FOUNDATION_EXPORT NSString * const kAPCInvalidEmailAddressOrPasswordErrorMessage; +FOUNDATION_EXPORT NSString * kAPCServerBusyErrorMessage; +FOUNDATION_EXPORT NSString * kAPCUnexpectedConditionErrorMessage; +FOUNDATION_EXPORT NSString * kAPCNotConnectedErrorMessage; +FOUNDATION_EXPORT NSString * kAPCServerUnderMaintanenceErrorMessage; +FOUNDATION_EXPORT NSString * kAPCAccountAlreadyExistsErrorMessage; +FOUNDATION_EXPORT NSString * kAPCAccountDoesNotExistErrorMessage; +FOUNDATION_EXPORT NSString * kAPCBadEmailAddressErrorMessage; +FOUNDATION_EXPORT NSString * kAPCBadPasswordErrorMessage; +FOUNDATION_EXPORT NSString * kAPCNotReachableErrorMessage; +FOUNDATION_EXPORT NSString * kAPCInvalidEmailAddressOrPasswordErrorMessage; @interface NSError (APCAdditions) diff --git a/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m b/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m index 94a24463..9e65642a 100644 --- a/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m +++ b/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m @@ -35,22 +35,36 @@ #import "APCLog.h" #import "APCLocalization.h" -NSString * const kAPCServerBusyErrorMessage = @"Thank you for your interest in this study. We are working hard to process the large volume of interest, and should be back up momentarily. Please try again soon."; -NSString * const kAPCUnexpectedConditionErrorMessage = @"An unexpected network condition has occurred. Please try again soon."; -NSString * const kAPCNotConnectedErrorMessage = @"You are currently not connected to the Internet. Please try again when you are connected to a network."; -NSString * const kAPCServerUnderMaintanenceErrorMessage = @"The study server is currently undergoing maintanence. Please try again soon."; -NSString * const kAPCAccountAlreadyExistsErrorMessage = @"An account has already been created for this email address. Please use a different email address, or sign in using the \"already participating\" link at the bottom of the Welcome page."; -NSString * const kAPCAccountDoesNotExistErrorMessage = @"There is no account registered for this email address."; -NSString * const kAPCBadEmailAddressErrorMessage = @"The email address submitted is not a valid email address. Please correct the email address and try again."; -NSString * const kAPCBadPasswordErrorMessage = @"The password you have entered is not a valid password. Please try again."; -NSString * const kAPCNotReachableErrorMessage = @"We are currently not able to reach the study server. Please retry in a few moments."; -NSString * const kAPCInvalidEmailAddressOrPasswordErrorMessage = @"Entered email address or password is not valid. Please correct the email address or password and try again."; +NSString * kAPCServerBusyErrorMessage; +NSString * kAPCUnexpectedConditionErrorMessage; +NSString * kAPCNotConnectedErrorMessage; +NSString * kAPCServerUnderMaintanenceErrorMessage; +NSString * kAPCAccountAlreadyExistsErrorMessage; +NSString * kAPCAccountDoesNotExistErrorMessage; +NSString * kAPCBadEmailAddressErrorMessage; +NSString * kAPCBadPasswordErrorMessage; +NSString * kAPCNotReachableErrorMessage; +NSString * kAPCInvalidEmailAddressOrPasswordErrorMessage; static NSString * const oneTab = @" "; @implementation NSError (APCAdditions) ++ (void)initialize +{ + kAPCServerBusyErrorMessage = APCLocalizedString(@"Thank you for your interest in this study. We are working hard to process the large volume of interest, and should be back up momentarily. Please try again soon.", @"Error message when server is too busy to respond"); + kAPCUnexpectedConditionErrorMessage = APCLocalizedString(@"An unexpected network condition has occurred. Please try again soon.", @"Error message indicating unexpected network problem"); + kAPCNotConnectedErrorMessage = APCLocalizedString(@"You are currently not connected to the Internet. Please try again when you are connected to a network.", @"Error message when no network connection found"); + kAPCServerUnderMaintanenceErrorMessage = APCLocalizedString(@"The study server is currently undergoing maintanence. Please try again soon.", @"Error message when server is undergoing maintenance and temporarily unavailable"); + kAPCAccountAlreadyExistsErrorMessage = APCLocalizedString(@"An account has already been created for this email address. Please use a different email address, or sign in using the \"already participating\" link at the bottom of the Welcome page.", @"Error message when participant attempts to sign up for a new account using an email address already associated with an account in this study"); + kAPCAccountDoesNotExistErrorMessage = APCLocalizedString(@"There is no account registered for this email address and password combination.", @"Error message when participant attempts to sign in to an existing account with an incorrect email address or password"); + kAPCBadEmailAddressErrorMessage = APCLocalizedString(@"The email address submitted is not a valid email address. Please correct the email address and try again.", @"Error message when participant attempts to sign up using a non-valid email address"); + kAPCBadPasswordErrorMessage = APCLocalizedString(@"The password you have entered is not a valid password. Please try again.", @"Error message when participant attempts to sign up with a non-valid password"); + kAPCNotReachableErrorMessage = APCLocalizedString(@"We are currently not able to reach the study server. Please retry in a few moments.", @"Error message when the app is unable to reach the Bridge server"); + kAPCInvalidEmailAddressOrPasswordErrorMessage = APCLocalizedString(@"Entered email address or password is not valid. Please correct the email address or password and try again.", @"Error message when participant attempts to sign up with a non-valid email address or password"); +} + - (NSString*)checkMessageForNonUserTerms:(NSString*)message { if ([message containsString:@"NSError"] || @@ -79,19 +93,19 @@ - (NSString *)networkErrorMessage NSString *message; if (self.code == 409) { - message = APCLocalizedString(kAPCAccountAlreadyExistsErrorMessage, nil); + message = kAPCAccountAlreadyExistsErrorMessage; } else if (self.code == 404) { - message = APCLocalizedString(kAPCAccountDoesNotExistErrorMessage, nil); + message = kAPCAccountDoesNotExistErrorMessage; } else if (self.code >= 500 && self.code < 600) { - message = APCLocalizedString(kAPCServerBusyErrorMessage, nil); + message = kAPCServerBusyErrorMessage; } else if (self.code == kCFURLErrorDNSLookupFailed || self.code == kCFURLErrorInternationalRoamingOff) { - message = APCLocalizedString(kAPCNotConnectedErrorMessage, nil); + message = kAPCNotConnectedErrorMessage; } else { - message = APCLocalizedString(kAPCUnexpectedConditionErrorMessage, nil); + message = kAPCUnexpectedConditionErrorMessage; } return message; diff --git a/APCAppCore/APCAppCore/Library/Categories/NSError+Bridge.m b/APCAppCore/APCAppCore/Library/Categories/NSError+Bridge.m index 7f7ae0ad..c7f668aa 100644 --- a/APCAppCore/APCAppCore/Library/Categories/NSError+Bridge.m +++ b/APCAppCore/APCAppCore/Library/Categories/NSError+Bridge.m @@ -32,6 +32,7 @@ // #import "NSError+Bridge.h" +#import "NSError+APCAdditions.h" #import "APCLog.h" #import #import "APCLog.h" @@ -46,6 +47,12 @@ @implementation NSError (Bridge) ++ (void)initialize +{ + // This class depends on strings that are localized in the +initialize method of NSError+APCAdditions, so we need to + // ensure that it has been initialized before anything in this class gets used + [NSError errorWithCode:0 domain:@"APCDummyErrorDomain" failureReason:nil recoverySuggestion:nil]; +} - (NSString*)bridgeErrorMessage { @@ -62,7 +69,7 @@ - (NSString*)bridgeErrorMessage if (e.code == kCFURLErrorNotConnectedToInternet) { - message = APCLocalizedString(kAPCNotConnectedErrorMessage, nil); + message = kAPCNotConnectedErrorMessage; } else { @@ -76,44 +83,44 @@ - (NSString*)bridgeErrorMessage NSDictionary * errors = [code valueForKey: kSageErrorsKey]; if([errors valueForKey: kSageErrorEmailKey]) { - message = APCLocalizedString(kAPCBadEmailAddressErrorMessage, nil); + message = kAPCBadEmailAddressErrorMessage; } else if([errors valueForKey: kSageErrorPasswordKey]) { - message = APCLocalizedString(kAPCBadPasswordErrorMessage, nil); + message = kAPCBadPasswordErrorMessage; } else { - message = APCLocalizedString(kAPCInvalidEmailAddressOrPasswordErrorMessage, nil); + message = kAPCInvalidEmailAddressOrPasswordErrorMessage; } } else if (self.code == 409) { - message = APCLocalizedString(kAPCAccountAlreadyExistsErrorMessage, nil); + message = kAPCAccountAlreadyExistsErrorMessage; } else if (self.code == 404) { - message = APCLocalizedString(kAPCAccountDoesNotExistErrorMessage, nil); + message = kAPCAccountDoesNotExistErrorMessage; } else if ([code isEqual:@(503)] || self.code == 503) { - message = APCLocalizedString(kAPCServerBusyErrorMessage, nil); + message = kAPCServerBusyErrorMessage; } else if ([code isEqual: @(kSBBInternetNotConnected)]) { - message = APCLocalizedString(kAPCNotConnectedErrorMessage, nil); + message = kAPCNotConnectedErrorMessage; } else if ([code isEqual:@(kSBBServerNotReachable)]) { - message = APCLocalizedString(kAPCNotReachableErrorMessage, nil); + message = kAPCNotReachableErrorMessage; } else if ([code isEqual:@(kSBBServerUnderMaintenance)]) { - message = APCLocalizedString(kAPCServerUnderMaintanenceErrorMessage, nil); + message = kAPCServerUnderMaintanenceErrorMessage; } else { - message = APCLocalizedString(kAPCUnexpectedConditionErrorMessage, nil); + message = kAPCUnexpectedConditionErrorMessage; } return message; diff --git a/APCAppCore/APCAppCore/Library/Insights/APCInsights.m b/APCAppCore/APCAppCore/Library/Insights/APCInsights.m index 6fd85dc7..69685507 100644 --- a/APCAppCore/APCAppCore/Library/Insights/APCInsights.m +++ b/APCAppCore/APCAppCore/Library/Insights/APCInsights.m @@ -141,14 +141,14 @@ - (void)configureInsight { self.insightFactorName = HKQuantityTypeIdentifierDistanceWalkingRunning; self.insightFactorUnit = [HKUnit meterUnit]; - self.insightFactorCaption = APCLocalizedString(@"minutes spent active", @"{minutes} minutes spent active"); + self.insightFactorCaption = APCLocalizedString(@"%@ minutes spent active", @"Minutes spent active, to be filled in with the number of minutes"); } break; case APCInsightFactorCarbohydrateConsumption: { self.insightFactorName = HKQuantityTypeIdentifierDietaryCarbohydrates; self.insightFactorUnit = [HKUnit gramUnit]; - self.insightFactorCaption = APCLocalizedString(@"carbohydrates consumed", @"{grams} carbohydrate consumed"); + self.insightFactorCaption = APCLocalizedString(@"%@ carbohydrates consumed", @"Grams of carbohydrate consumed, to be filled in with the number of grams"); } break; case APCInsightFactorCarbohydrateCalories: @@ -157,28 +157,28 @@ - (void)configureInsight { self.insightFactorName = HKQuantityTypeIdentifierDietaryEnergyConsumed; self.insightFactorUnit = [HKUnit kilocalorieUnit]; - self.insightFactorCaption = APCLocalizedString(@"calories consumed", @"{kilo calories} calories consumed"); + self.insightFactorCaption = APCLocalizedString(@"%@ calories consumed", @"(Kilo)calories consumed, to be filled in with the number of kilocalories"); } break; case APCInsightFactorSteps: { self.insightFactorName = HKQuantityTypeIdentifierStepCount; self.insightFactorUnit = [HKUnit countUnit]; - self.insightFactorCaption = APCLocalizedString(@"Steps", @"{step value} steps taken"); + self.insightFactorCaption = APCLocalizedString(@"%@ Steps", @"Steps taken, to be filled in with the number of steps"); } break; case APCInsightFactorSugarConsumption: { self.insightFactorName = HKQuantityTypeIdentifierDietarySugar; self.insightFactorUnit = [HKUnit gramUnit]; - self.insightFactorCaption = APCLocalizedString(@"sugar consumed", @"{grams} sugar consumed"); + self.insightFactorCaption = APCLocalizedString(@"%@ sugar consumed", @"Grams of sugar consumed, to be filled in with the number of grams"); } break; case APCInsightFactorTimeSlept: { self.insightFactorName = HKCategoryTypeIdentifierSleepAnalysis; self.insightFactorUnit = [HKUnit hourUnit]; - self.insightFactorCaption = APCLocalizedString(@"slept", @"slept"); + self.insightFactorCaption = APCLocalizedString(@"%@ hours slept", @"Hours slept, to be filled in with the number of hours"); } break; default: @@ -380,20 +380,18 @@ - (void)dataPointsAreAvailableFromHealthKit:(NSArray *)insightPoints if ([self.insightFactorName isEqualToString:HKQuantityTypeIdentifierDietaryEnergyConsumed]) { if ([pointValue doubleValue] >= 1000) { - caption = [NSString stringWithFormat:@"%@ %@", - [numberFormatter stringFromNumber:pointValue], - self.insightFactorCaption]; + caption = [NSString stringWithFormat:self.insightFactorCaption, + [numberFormatter stringFromNumber:pointValue]]; } else { pointValue = @(0); } } else { - caption = [NSString stringWithFormat:@"%@ %@", - [numberFormatter stringFromNumber:pointValue], - self.insightFactorCaption]; + caption = [NSString stringWithFormat:self.insightFactorCaption, + [numberFormatter stringFromNumber:pointValue]]; } self.valueGood = pointValue; - self.captionGood = APCLocalizedString(caption, caption); + self.captionGood = caption; } if (badPoints.count > 0) { @@ -401,20 +399,18 @@ - (void)dataPointsAreAvailableFromHealthKit:(NSArray *)insightPoints if ([self.insightFactorName isEqualToString:HKQuantityTypeIdentifierDietaryEnergyConsumed]) { if ([pointValue doubleValue] >= 1000) { - caption = [NSString stringWithFormat:@"%@ %@", - [numberFormatter stringFromNumber:pointValue], - self.insightFactorCaption]; + caption = [NSString stringWithFormat:self.insightFactorCaption, + [numberFormatter stringFromNumber:pointValue]]; } else { pointValue = @(0); } } else { - caption = [NSString stringWithFormat:@"%@ %@", - [numberFormatter stringFromNumber:pointValue], - self.insightFactorCaption]; + caption = [NSString stringWithFormat:self.insightFactorCaption, + [numberFormatter stringFromNumber:pointValue]]; } self.valueBad = pointValue; - self.captionBad = APCLocalizedString(caption, caption); + self.captionBad = caption; } // Check if the difference between the good and bad vaules is at least 10%. Othewise don't show the insight. diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m index 31f1f23b..328c6945 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m @@ -40,18 +40,16 @@ #import "UIColor+APCAppearance.h" #import "NSBundle+Helper.h" -static NSString *kViewControllerName = @"Medication Frequency"; +static NSString *gViewControllerName; +static NSArray *sectionTitles; static NSString *kFrequencyTableTimesCellName = @"APCFrequencyTableViewTimesCell"; static NSString *kFrequencyEverydayTableCellName = @"APCFrequencyEverydayTableViewCell"; static NSString *kFrequencyDayTableCellName = @"APCFrequencyDayTableViewCell"; -static NSString *kEveryDayOfWeekCaption = @"Every Day"; +static NSString *gEveryDayOfWeekCaption; -static NSString *daysOfWeekNames[] = { @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday", @"Sunday" }; -static NSString *daysOfWeekNamesAbbreviated[] = { @"Mon", @"Tue", @"Wed", @"Thu", @"Fri", @"Sat", @"Sun" }; - -static NSUInteger numberOfDaysOfWeekNames = (sizeof(daysOfWeekNames) / sizeof(NSString *)); +static NSArray *daysOfWeekNames; static NSUInteger kAllDaysOfWeekCount = 7; @@ -96,6 +94,15 @@ @interface APCMedicationFrequencyViewController ( ) = kAllDaysOfWeekCount) { everydayCell.accessoryType = UITableViewCellAccessoryCheckmark; everydayCell.everydayTitle.textColor = [UIColor appPrimaryColor]; @@ -180,7 +187,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath everydayCell.accessoryType = UITableViewCellAccessoryNone; [self updateAllSelectedDaysListToState:NO]; } - for (NSUInteger day = 0; day < numberOfDaysOfWeekNames; day++) { + for (NSUInteger day = 0; day < daysOfWeekNames.count; day++) { NSIndexPath *path = [NSIndexPath indexPathForRow:day inSection:kDaysOfWeekSection]; APCFrequencyDayTableViewCell *cell = (APCFrequencyDayTableViewCell *)[tableView cellForRowAtIndexPath:path]; [self setupSelectedCell:cell toSelectedState:self.everyDayWasSelected]; @@ -201,8 +208,6 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath [self setupEverydayCellState]; } -static NSString *sectionTitles[] = { @"How many times a day do you take this medication?", @"On what days do you take this medication?", @" " }; - - (CGFloat)tableView:(UITableView *) __unused tableView heightForHeaderInSection:(NSInteger)section { return kSectionHeaderHeights[section]; @@ -226,7 +231,6 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger label.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1.0]; label.textColor = [UIColor blackColor]; NSString *title = sectionTitles[section]; - title = APCLocalizedString(title, nil); label.text = title; [view addSubview:label]; } @@ -413,7 +417,7 @@ - (void)doneButtonTapped:(UIBarButtonItem *) __unused sender UIButton *valueButton = [self findSelectedButton]; - for (NSUInteger day = 0; day < numberOfDaysOfWeekNames; day++) { + for (NSUInteger day = 0; day < daysOfWeekNames.count; day++) { NSNumber *number = self.selectedDays[day]; if ([number boolValue]) { NSString *dayName = daysOfWeekNames[day]; @@ -445,7 +449,7 @@ - (void)viewWillDisappear:(BOOL)animated - (NSString *)title { - return kViewControllerName; + return gViewControllerName; } - (void)viewDidLoad @@ -488,7 +492,7 @@ - (void)viewDidLoad [self setupEverydayCellState]; } else { self.daysAndDoses = [NSMutableDictionary dictionary]; - for (NSUInteger day = 0; day < numberOfDaysOfWeekNames; day++) { + for (NSUInteger day = 0; day < daysOfWeekNames.count; day++) { [self.daysAndDoses setObject:[NSNumber numberWithInteger:0] forKey:daysOfWeekNames[day]]; } } diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m index 225ba154..be13c03a 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m @@ -42,9 +42,9 @@ #import "APCLog.h" #import "APCLocalization.h" -static NSString *kViewControllerName = @"Medication Label Color"; +static NSString *gViewControllerName; -static NSString *kSectionHeaderTitle = @"Select a Label Color for Your Medication"; +static NSString *gSectionHeaderTitle; static NSString *kColorSwatchTableCellName = @"APCColorSwatchTableViewCell"; @@ -66,6 +66,12 @@ @interface APCMedicationColorViewController ( ) t42|NhVK7Qb067vC?A?Du{9{mlLyEDjeh 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 CFKNX9 delta 512 zcmX@t%iOSoX~Klb2~u90+jy8bfsCNZI#L>&Wu*KVft-NJ52RT(hsjp)$W}9CGh{O4 zFyu2RFeEc1f>}jCkyM6ahT6&TjH;Xp3|b8O3|tIKlM@+LCnqp*Oip4nn0!IAinp2} zouLS*Cl{=CA)_vmT0oltAq_WYI=4^Eb2cn}0<+a7})Y9Wj|BOJVZ2T(Qj@Su(tn{gQ$**_ejl_jWM`L0@^2@*`s6NlIdB+mnCiFLY{D~+ n$s4BnY`!tiixJFdS!TjFxnZZz<`3J9SSB|d3fSDS*NqbZrnQhD diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m index cdc2c4d7..b6b772e9 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m @@ -110,7 +110,7 @@ - (void)prepareContent APCTableViewSection *section = [APCTableViewSection new]; - section.sectionTitle = APCLocalizedString(@"", nil); + section.sectionTitle = @""; section.rows = [NSArray arrayWithArray:rowItems]; [items addObject:section]; } @@ -123,7 +123,7 @@ - (void)prepareContent for (APCTaskReminder *reminder in appDelegate.tasksReminder.reminders) { APCTableViewSwitchItem *field = [APCTableViewSwitchItem new]; - field.caption = APCLocalizedString(reminder.reminderBody, nil); + field.caption = reminder.reminderBody; field.identifier = kAPCSwitchCellIdentifier; field.editable = NO; @@ -181,14 +181,15 @@ -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) if (section == 1 && hasresultsSummaryKey) { footerView = [[UITableViewHeaderFooterView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(tableView.frame), tableView.sectionHeaderHeight)]; - NSString *footerText = [NSString stringWithFormat:@"%@ reminder will be sent 2 hours later.", subtaskTitle]; + NSString *footerFormat = APCLocalizedString(@"%@ reminder will be sent 2 hours later.", @"Format string for Activity Reminders view Tasks section footer describing when reminder will be sent, to be filled in with the reminder body text."); + NSString *footerText = [NSString stringWithFormat:footerFormat, subtaskTitle]; CGRect labelFrame = CGRectMake(20, 0, CGRectGetWidth(footerView.frame)-40, 50); footerView.textLabel.frame = labelFrame; UILabel *reminderLabel = [[UILabel alloc]initWithFrame:labelFrame]; reminderLabel.numberOfLines = 2; - reminderLabel.text = APCLocalizedString(footerText, nil); + reminderLabel.text = footerText; reminderLabel.textColor = [UIColor grayColor]; reminderLabel.font = [UIFont appMediumFontWithSize:14.0]; [footerView.contentView addSubview:reminderLabel]; diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m index 0c5fae79..bafb5eb9 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m @@ -78,9 +78,9 @@ - (void)prepareData [self setupDataFromJSON:@"APHConsentSection"]; self.titleLabel.text = APCLocalizedString(@"Sharing Options", @"Sharing Options"); + NSString *messageFormat = APCLocalizedString(@"%@ will receive your study data from your participation in this study.\n\nSharing your coded study data more broadly (without information such as your name) may benefit this and future research.", @"Format for string explaining data sharing during initial consent process, to be filled in with the (long form) name of the institution running the study."); - NSString *messageText = [NSString stringWithFormat:@"%@ will receive your study data from your participation in this study.\n\nSharing your coded study data more broadly (without information such as your name) may benefit this and future research.", self.instituteLongName]; - self.messageLabel.text = APCLocalizedString(messageText, @""); + self.messageLabel.text = [NSString stringWithFormat:messageFormat, self.instituteLongName]; NSMutableArray *options = [NSMutableArray new]; From a63b6e0d66f370e1ba2fbdd4a6b3e791acf59553 Mon Sep 17 00:00:00 2001 From: Erin Mounts Date: Fri, 20 Nov 2015 16:42:12 -0800 Subject: [PATCH 2/2] Fix so translation comments included in .xliff ...basically means we have to use a standard NSLocalizedString... macro with all the parameters explicitly specified each time, not a custom one where the "table" and "bundle" are handled by the macro. Apologies for the mass regex-search-and-replace... --- .../APCAppCore.xcodeproj/project.pbxproj | 181 +++++------------- .../APCAppCore/Consent/APCConsentTask.m | 6 +- .../DataSubstrate/Model/APCSmartSurveyTask.m | 2 +- .../DataSubstrate/Model/APCUser+Bridge.m | 2 +- .../DataSubstrate/Model/APCUser+UserData.m | 6 +- .../AssertionHandler/APCAssertionHandler.m | 6 +- .../Library/Categories/NSDate+Helper.m | 4 +- .../Library/Categories/NSError+APCAdditions.m | 22 +-- ...CPassiveDisplacementTrackingDataUploader.m | 4 +- .../Categories/UIAlertController+Helper.m | 2 +- .../APCAppCore/Library/Insights/APCInsights.m | 22 +-- .../Library/Localization/APCLocalization.h | 9 - ...CMedicationTrackerCalendarViewController.m | 16 +- ...APCMedicationTrackerDetailViewController.m | 4 +- .../APCMedicationDosageViewController.m | 4 +- .../APCMedicationFrequencyViewController.m | 8 +- .../APCMedicationColorViewController.m | 6 +- .../APCMedicationNameViewController.m | 4 +- .../APCMedicationTrackerSetupViewController.m | 2 +- .../Library/Objects/APCTasksReminderManager.m | 4 +- .../Parameters/APCParameters+Settings.m | 2 +- ...PCParametersDashboardTableViewController.m | 2 +- .../Permissions/APCPermissionsManager.m | 24 +-- .../Resources/de.lproj/APCAppCore.strings | Bin 39936 -> 0 bytes .../Resources/en.lproj/APCAppCore.strings | Bin 50894 -> 0 bytes .../Resources/fr.lproj/APCAppCore.strings | Bin 39936 -> 0 bytes .../APCAppCore/Startup/APCAppDelegate.m | 10 +- .../APCStudyLandingCollectionViewCell.m | 4 +- .../UI/Components/APCPieGraphView.m | 2 +- .../Components/GraphCharts/APCBaseGraphView.m | 2 +- .../APCAppCore/UI/Model/APCTableViewItem.m | 6 +- .../UI/Onboarding/APCShareViewController.m | 26 +-- ...APCStudyOverviewCollectionViewController.m | 8 +- .../APCStudyOverviewViewController.m | 4 +- .../APCChangeEmailViewController.m | 8 +- .../APCEmailVerifyViewController.m | 6 +- .../SignIn/APCForgotPasswordViewController.m | 8 +- .../SignIn/APCSignInViewController.m | 20 +- .../SignUp/APCAllSetContentViewController.m | 4 +- .../SignUp/APCEligibleViewController.m | 2 +- .../APCInclusionCriteriaViewController.m | 4 +- .../APCPermissionPrimingViewController.m | 4 +- .../APCSignUpGeneralInfoViewController.m | 52 ++--- .../SignUp/APCSignUpInfoViewController.m | 4 +- .../APCSignUpMedicalInfoViewController.m | 18 +- .../APCSignUpPermissionsViewController.m | 16 +- .../SignUp/APCSignupPasscodeViewController.m | 8 +- .../Activities/APCActivitiesViewController.m | 8 +- .../APCCorrelationsSelectorViewController.m | 4 +- .../Dashboard/APCDashboardViewController.m | 4 +- .../Dashboard/APCGraphViewController.m | 4 +- .../NewsFeed/APCNewsFeedViewController.m | 6 +- .../Profile/APCChangePasscodeViewController.m | 12 +- .../Profile/APCDownloadDataViewController.m | 8 +- .../Profile/APCProfileViewController.m | 120 ++++++------ .../Profile/APCSettingsViewController.m | 16 +- .../Profile/APCSharingOptionsViewController.m | 12 +- .../Profile/APCWithdrawSurveyViewController.m | 2 +- .../UI/TableViewCells/APCPermissionsCell.m | 4 +- .../APCDashboardMessageTableViewCell.m | 4 +- .../APCPasscodeViewController.m | 10 +- .../APCActivityTrackingStepViewController.m | 24 ++- .../Activity Tracking/APCFitnessAllocation.m | 10 +- .../APCAppCore/UI/Views/APCExampleLabel.m | 2 +- 64 files changed, 357 insertions(+), 451 deletions(-) delete mode 100644 APCAppCore/APCAppCore/Resources/de.lproj/APCAppCore.strings delete mode 100644 APCAppCore/APCAppCore/Resources/en.lproj/APCAppCore.strings delete mode 100644 APCAppCore/APCAppCore/Resources/fr.lproj/APCAppCore.strings diff --git a/APCAppCore/APCAppCore.xcodeproj/project.pbxproj b/APCAppCore/APCAppCore.xcodeproj/project.pbxproj index 6d4a2cca..612814aa 100644 --- a/APCAppCore/APCAppCore.xcodeproj/project.pbxproj +++ b/APCAppCore/APCAppCore.xcodeproj/project.pbxproj @@ -6,20 +6,6 @@ objectVersion = 46; objects = { -/* Begin PBXAggregateTarget section */ - 80A98DB71BFD1C5C0060146F /* genstrings */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 80A98DB81BFD1C5C0060146F /* Build configuration list for PBXAggregateTarget "genstrings" */; - buildPhases = ( - 80A98DBC1BFD1C710060146F /* ShellScript */, - ); - dependencies = ( - ); - name = genstrings; - productName = genstrings; - }; -/* End PBXAggregateTarget section */ - /* Begin PBXBuildFile section */ 049439811B8FC04000CAE23C /* APCDownloadDataViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0494397F1B8FC04000CAE23C /* APCDownloadDataViewController.h */; }; 049439821B8FC04000CAE23C /* APCDownloadDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 049439801B8FC04000CAE23C /* APCDownloadDataViewController.m */; }; @@ -337,7 +323,6 @@ 80A98DD71BFD49EC0060146F /* APCProfile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 80A98DD91BFD49EC0060146F /* APCProfile.storyboard */; }; 80A98DDA1BFD4A290060146F /* APCPasscode.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 80A98DDC1BFD4A290060146F /* APCPasscode.storyboard */; }; 80A98DDD1BFD517C0060146F /* APCLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = 80A98DB01BFCFE430060146F /* APCLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80A98DEC1BFD60940060146F /* APCAppCore.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80A98DEE1BFD60940060146F /* APCAppCore.strings */; }; A7CFE4B51A8B05F4009A171C /* APCStudyOverviewCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CFE4B11A8B05F4009A171C /* APCStudyOverviewCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; A7CFE4B61A8B05F4009A171C /* APCStudyOverviewCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A7CFE4B21A8B05F4009A171C /* APCStudyOverviewCollectionViewCell.m */; }; A7CFE4B71A8B05F4009A171C /* APCStudyOverviewCollectionViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CFE4B31A8B05F4009A171C /* APCStudyOverviewCollectionViewController.h */; }; @@ -754,13 +739,13 @@ /* Begin PBXFileReference section */ 045D0CBD1BBAFDC500330C7E /* APCModel 8.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "APCModel 8.xcdatamodel"; sourceTree = ""; }; 0494397F1B8FC04000CAE23C /* APCDownloadDataViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDownloadDataViewController.h; sourceTree = ""; }; - 049439801B8FC04000CAE23C /* APCDownloadDataViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDownloadDataViewController.m; sourceTree = ""; }; + 049439801B8FC04000CAE23C /* APCDownloadDataViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCDownloadDataViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 049E4CC31BE1829900E45E4D /* APCModel 9.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "APCModel 9.xcdatamodel"; sourceTree = ""; }; 04FB64451BB4883900D0A50D /* APCTaskImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCTaskImporter.h; sourceTree = ""; }; 04FB64461BB4883900D0A50D /* APCTaskImporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCTaskImporter.m; sourceTree = ""; }; 04FB64491BB4A11A00D0A50D /* APCModel 7.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "APCModel 7.xcdatamodel"; sourceTree = ""; }; 08023C4D1AA94F48008E6DDA /* APCAllSetContentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCAllSetContentViewController.h; sourceTree = ""; }; - 08023C4E1AA94F48008E6DDA /* APCAllSetContentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCAllSetContentViewController.m; sourceTree = ""; }; + 08023C4E1AA94F48008E6DDA /* APCAllSetContentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCAllSetContentViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 08023C511AAA12DF008E6DDA /* APCAllSetTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCAllSetTableViewCell.h; sourceTree = ""; }; 08023C521AAA12DF008E6DDA /* APCAllSetTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCAllSetTableViewCell.m; sourceTree = ""; }; 08027A3D1A7319AC00B358CC /* consent_01@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "consent_01@2x.png"; sourceTree = ""; }; @@ -818,11 +803,11 @@ 0894654B1A8C1F0200A983AC /* APCInsightBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCInsightBarView.h; sourceTree = ""; }; 0894654C1A8C1F0200A983AC /* APCInsightBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCInsightBarView.m; sourceTree = ""; }; 089465501A8C211100A983AC /* APCInsights.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCInsights.h; sourceTree = ""; }; - 089465511A8C211100A983AC /* APCInsights.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCInsights.m; sourceTree = ""; }; + 089465511A8C211100A983AC /* APCInsights.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCInsights.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 08970F101A8D407600EA46C3 /* APCFoodInsight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCFoodInsight.h; sourceTree = ""; }; 08970F111A8D407600EA46C3 /* APCFoodInsight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCFoodInsight.m; sourceTree = ""; }; 08BABB401AD62D5D00059C35 /* APCExampleLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCExampleLabel.h; sourceTree = ""; }; - 08BABB411AD62D5D00059C35 /* APCExampleLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCExampleLabel.m; sourceTree = ""; }; + 08BABB411AD62D5D00059C35 /* APCExampleLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCExampleLabel.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 08EA2AB11A7AD564007549C0 /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; 08EA2AB21A7AD564007549C0 /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; 360C63D01A339746002EC86C /* NSDateComponentsHelperTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDateComponentsHelperTests.m; sourceTree = ""; }; @@ -964,17 +949,17 @@ 5BD4CA051AF0E46F008D97AE /* APCNewsFeedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCNewsFeedViewController.h; sourceTree = ""; }; 5BD4CA061AF0E46F008D97AE /* APCNewsFeedViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCNewsFeedViewController.m; sourceTree = ""; }; 5BD6EBA01A9A46BB00C3BFB0 /* APCStudyLandingCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCStudyLandingCollectionViewCell.h; sourceTree = ""; }; - 5BD6EBA11A9A46BB00C3BFB0 /* APCStudyLandingCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCStudyLandingCollectionViewCell.m; sourceTree = ""; }; + 5BD6EBA11A9A46BB00C3BFB0 /* APCStudyLandingCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCStudyLandingCollectionViewCell.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 5BD6EBB31A9C77D900C3BFB0 /* APCBaseGraphView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCBaseGraphView.h; sourceTree = ""; }; - 5BD6EBB41A9C77D900C3BFB0 /* APCBaseGraphView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCBaseGraphView.m; sourceTree = ""; }; + 5BD6EBB41A9C77D900C3BFB0 /* APCBaseGraphView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCBaseGraphView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 5BD6EBB51A9C77D900C3BFB0 /* APCDiscreteGraphView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDiscreteGraphView.h; sourceTree = ""; }; 5BD6EBB61A9C77D900C3BFB0 /* APCDiscreteGraphView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDiscreteGraphView.m; sourceTree = ""; }; 5BD6EBC21A9D905100C3BFB0 /* APCPermissionPrimingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCPermissionPrimingViewController.h; sourceTree = ""; }; - 5BD6EBC31A9D905100C3BFB0 /* APCPermissionPrimingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCPermissionPrimingViewController.m; sourceTree = ""; }; + 5BD6EBC31A9D905100C3BFB0 /* APCPermissionPrimingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCPermissionPrimingViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 5BE106EE1A9EE2D900CA5A07 /* APCDashboardGraphTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardGraphTableViewCell.h; sourceTree = ""; }; 5BE106EF1A9EE2D900CA5A07 /* APCDashboardGraphTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDashboardGraphTableViewCell.m; sourceTree = ""; }; 5BFEB41B1AA72CCD0089DEF7 /* APCSharingOptionsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSharingOptionsViewController.h; sourceTree = ""; }; - 5BFEB41C1AA72CCD0089DEF7 /* APCSharingOptionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSharingOptionsViewController.m; sourceTree = ""; }; + 5BFEB41C1AA72CCD0089DEF7 /* APCSharingOptionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSharingOptionsViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 6C6AA2751B4E056C0056AD47 /* APCDataArchiveUploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDataArchiveUploader.h; sourceTree = ""; }; 6C6AA2761B4E056C0056AD47 /* APCDataArchiveUploader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDataArchiveUploader.m; sourceTree = ""; }; 6C6AA2771B4E056C0056AD47 /* APCDataEncryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDataEncryptor.h; sourceTree = ""; }; @@ -990,7 +975,7 @@ 6C7346061A7ECD3B00DA9CD8 /* APCConsentTaskViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCConsentTaskViewController.h; sourceTree = ""; }; 6C7346071A7ECD3B00DA9CD8 /* APCConsentTaskViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCConsentTaskViewController.m; sourceTree = ""; }; 6C86463E1AF8077300B46C49 /* APCCorrelationsSelectorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCCorrelationsSelectorViewController.h; sourceTree = ""; }; - 6C86463F1AF8077300B46C49 /* APCCorrelationsSelectorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCCorrelationsSelectorViewController.m; sourceTree = ""; }; + 6C86463F1AF8077300B46C49 /* APCCorrelationsSelectorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCCorrelationsSelectorViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 6CD8B6721AC5011D0061E6D6 /* APCTaskReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCTaskReminder.h; path = APCAppCore/Library/APCTaskReminder.h; sourceTree = SOURCE_ROOT; }; 6CD8B6731AC5011D0061E6D6 /* APCTaskReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = APCTaskReminder.m; path = APCAppCore/Library/APCTaskReminder.m; sourceTree = SOURCE_ROOT; }; 712AB4481A9E692400556DA2 /* APCMotionHistoryData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCMotionHistoryData.h; sourceTree = ""; }; @@ -1017,7 +1002,7 @@ 7B6C8CB11AA26ECE0007B560 /* APCConsentQuestion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCConsentQuestion.h; sourceTree = ""; }; 7B6C8CB21AA26ECE0007B560 /* APCConsentQuestion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCConsentQuestion.m; sourceTree = ""; }; 7B6C8CB31AA26ECE0007B560 /* APCConsentTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCConsentTask.h; sourceTree = ""; }; - 7B6C8CB41AA26ECE0007B560 /* APCConsentTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCConsentTask.m; sourceTree = ""; }; + 7B6C8CB41AA26ECE0007B560 /* APCConsentTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCConsentTask.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 7B6C8CB51AA26ECE0007B560 /* APCConsentTextChoiceQuestion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCConsentTextChoiceQuestion.h; sourceTree = ""; }; 7B6C8CB61AA26ECE0007B560 /* APCConsentTextChoiceQuestion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCConsentTextChoiceQuestion.m; sourceTree = ""; }; 7B6C8CC21AA26F150007B560 /* APCStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCStack.h; sourceTree = ""; }; @@ -1043,9 +1028,9 @@ 7BDF4D311AE5492400ACC1F8 /* HKWorkout+APCHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "HKWorkout+APCHelper.m"; sourceTree = ""; }; 7BEC13CE1AA3AA5B00CA316C /* APCActivityTracking.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = APCActivityTracking.storyboard; sourceTree = ""; }; 7BEC13CF1AA3AA5B00CA316C /* APCActivityTrackingStepViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCActivityTrackingStepViewController.h; sourceTree = ""; }; - 7BEC13D01AA3AA5B00CA316C /* APCActivityTrackingStepViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCActivityTrackingStepViewController.m; sourceTree = ""; }; + 7BEC13D01AA3AA5B00CA316C /* APCActivityTrackingStepViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCActivityTrackingStepViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 7BEC13D11AA3AA5B00CA316C /* APCFitnessAllocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCFitnessAllocation.h; sourceTree = ""; }; - 7BEC13D21AA3AA5B00CA316C /* APCFitnessAllocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCFitnessAllocation.m; sourceTree = ""; }; + 7BEC13D21AA3AA5B00CA316C /* APCFitnessAllocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCFitnessAllocation.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 7BEFD7D61AD596070087F46C /* APCCollectorProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCCollectorProtocol.h; path = "Data Sink/APCCollectorProtocol.h"; sourceTree = ""; }; 7BEFD7D91AD596070087F46C /* APCPassiveDataSink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCPassiveDataSink.h; path = "Data Sink/APCPassiveDataSink.h"; sourceTree = ""; }; 7BEFD7DA1AD596070087F46C /* APCPassiveDataSink.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = APCPassiveDataSink.m; path = "Data Sink/APCPassiveDataSink.m"; sourceTree = ""; }; @@ -1070,13 +1055,10 @@ 80A98DE31BFD56D70060146F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/APCEmailVerify.strings; sourceTree = ""; }; 80A98DE41BFD56D70060146F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/APCProfile.strings; sourceTree = ""; }; 80A98DE51BFD56D70060146F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/APCPasscode.strings; sourceTree = ""; }; - 80A98DEF1BFD60960060146F /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/APCAppCore.strings; sourceTree = ""; }; - 80A98DF01BFD60970060146F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/APCAppCore.strings; sourceTree = ""; }; - 80A98DF11BFE69470060146F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/APCAppCore.strings; sourceTree = ""; }; A7CFE4B11A8B05F4009A171C /* APCStudyOverviewCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCStudyOverviewCollectionViewCell.h; sourceTree = ""; }; A7CFE4B21A8B05F4009A171C /* APCStudyOverviewCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCStudyOverviewCollectionViewCell.m; sourceTree = ""; }; A7CFE4B31A8B05F4009A171C /* APCStudyOverviewCollectionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCStudyOverviewCollectionViewController.h; sourceTree = ""; }; - A7CFE4B41A8B05F4009A171C /* APCStudyOverviewCollectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCStudyOverviewCollectionViewController.m; sourceTree = ""; }; + A7CFE4B41A8B05F4009A171C /* APCStudyOverviewCollectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCStudyOverviewCollectionViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; CF03CCFF1AA23DA2000437FF /* APCMedicationDetailsTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCMedicationDetailsTableViewCell.h; path = MedicationTrackingAppComponent/APCMedicationDetailsTableViewCell.h; sourceTree = ""; }; CF03CD001AA23DA2000437FF /* APCMedicationDetailsTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = APCMedicationDetailsTableViewCell.m; path = MedicationTrackingAppComponent/APCMedicationDetailsTableViewCell.m; sourceTree = ""; }; CF03CD011AA23DA2000437FF /* APCMedicationDetailsTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = APCMedicationDetailsTableViewCell.xib; path = MedicationTrackingAppComponent/APCMedicationDetailsTableViewCell.xib; sourceTree = ""; }; @@ -1103,7 +1085,7 @@ CFFDED611A95731F00B25581 /* APCMedicationTrackerDayTitleLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCMedicationTrackerDayTitleLabel.h; path = MedicationTrackingAppComponent/APCMedicationTrackerDayTitleLabel.h; sourceTree = ""; }; CFFDED621A95731F00B25581 /* APCMedicationTrackerDayTitleLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = APCMedicationTrackerDayTitleLabel.m; path = MedicationTrackingAppComponent/APCMedicationTrackerDayTitleLabel.m; sourceTree = ""; }; CFFDED631A95731F00B25581 /* APCMedicationTrackerDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCMedicationTrackerDetailViewController.h; path = MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.h; sourceTree = ""; }; - CFFDED641A95731F00B25581 /* APCMedicationTrackerDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = APCMedicationTrackerDetailViewController.m; path = MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.m; sourceTree = ""; }; + CFFDED641A95731F00B25581 /* APCMedicationTrackerDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; name = APCMedicationTrackerDetailViewController.m; path = MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; CFFDED651A95731F00B25581 /* APCMedicationTrackerDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = APCMedicationTrackerDetailViewController.xib; path = MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.xib; sourceTree = ""; }; CFFDED661A95731F00B25581 /* APCMedicationTrackerMedicationsDisplayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APCMedicationTrackerMedicationsDisplayView.h; path = MedicationTrackingAppComponent/APCMedicationTrackerMedicationsDisplayView.h; sourceTree = ""; }; CFFDED671A95731F00B25581 /* APCMedicationTrackerMedicationsDisplayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = APCMedicationTrackerMedicationsDisplayView.m; path = MedicationTrackingAppComponent/APCMedicationTrackerMedicationsDisplayView.m; sourceTree = ""; }; @@ -1114,7 +1096,7 @@ CFFDED6C1A95731F00B25581 /* UIColor+MedicationTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+MedicationTracker.h"; path = "MedicationTrackingAppComponent/UIColor+MedicationTracker.h"; sourceTree = ""; }; CFFDED6D1A95731F00B25581 /* UIColor+MedicationTracker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+MedicationTracker.m"; path = "MedicationTrackingAppComponent/UIColor+MedicationTracker.m"; sourceTree = ""; }; CFFDED981A95734000B25581 /* APCMedicationDosageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCMedicationDosageViewController.h; sourceTree = ""; }; - CFFDED991A95734000B25581 /* APCMedicationDosageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCMedicationDosageViewController.m; sourceTree = ""; }; + CFFDED991A95734000B25581 /* APCMedicationDosageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCMedicationDosageViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; CFFDED9A1A95734000B25581 /* APCMedicationDosageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = APCMedicationDosageViewController.xib; sourceTree = ""; }; CFFDED9C1A95734000B25581 /* APCFrequencyDayTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCFrequencyDayTableViewCell.h; sourceTree = ""; }; CFFDED9D1A95734000B25581 /* APCFrequencyDayTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCFrequencyDayTableViewCell.m; sourceTree = ""; }; @@ -1123,7 +1105,7 @@ CFFDEDA01A95734000B25581 /* APCFrequencyTableViewTimesCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCFrequencyTableViewTimesCell.m; sourceTree = ""; }; CFFDEDA11A95734000B25581 /* APCFrequencyTableViewTimesCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = APCFrequencyTableViewTimesCell.xib; sourceTree = ""; }; CFFDEDA21A95734000B25581 /* APCMedicationFrequencyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCMedicationFrequencyViewController.h; sourceTree = ""; }; - CFFDEDA31A95734000B25581 /* APCMedicationFrequencyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCMedicationFrequencyViewController.m; sourceTree = ""; }; + CFFDEDA31A95734000B25581 /* APCMedicationFrequencyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCMedicationFrequencyViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; CFFDEDA41A95734000B25581 /* APCMedicationFrequencyViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = APCMedicationFrequencyViewController.xib; sourceTree = ""; }; CFFDEDA61A95734000B25581 /* APCColorSwatchTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCColorSwatchTableViewCell.h; sourceTree = ""; }; CFFDEDA71A95734000B25581 /* APCColorSwatchTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCColorSwatchTableViewCell.m; sourceTree = ""; }; @@ -1134,7 +1116,7 @@ CFFDEDAD1A95734000B25581 /* APCLozengeButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCLozengeButton.h; sourceTree = ""; }; CFFDEDAE1A95734000B25581 /* APCLozengeButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCLozengeButton.m; sourceTree = ""; }; CFFDEDB41A95734000B25581 /* APCMedicationNameViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCMedicationNameViewController.h; sourceTree = ""; }; - CFFDEDB51A95734000B25581 /* APCMedicationNameViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCMedicationNameViewController.m; sourceTree = ""; }; + CFFDEDB51A95734000B25581 /* APCMedicationNameViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCMedicationNameViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; CFFDEDB61A95734000B25581 /* APCMedicationNameViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = APCMedicationNameViewController.xib; sourceTree = ""; }; CFFDEDB81A95734000B25581 /* APCMedicationSummaryTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCMedicationSummaryTableViewCell.h; sourceTree = ""; }; CFFDEDB91A95734000B25581 /* APCMedicationSummaryTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCMedicationSummaryTableViewCell.m; sourceTree = ""; }; @@ -1208,7 +1190,7 @@ F5B9473A1A73272C0034C522 /* UIFont+APCAppearance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIFont+APCAppearance.h"; sourceTree = ""; }; F5B9473B1A73272C0034C522 /* UIFont+APCAppearance.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIFont+APCAppearance.m"; sourceTree = ""; }; F5B9473D1A73272C0034C522 /* APCAssertionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCAssertionHandler.h; sourceTree = ""; }; - F5B9473E1A73272C0034C522 /* APCAssertionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCAssertionHandler.m; sourceTree = ""; }; + F5B9473E1A73272C0034C522 /* APCAssertionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCAssertionHandler.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5B947401A73272C0034C522 /* APCDeviceHardware+APCHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCDeviceHardware+APCHelper.h"; sourceTree = ""; }; F5B947411A73272C0034C522 /* APCDeviceHardware+APCHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "APCDeviceHardware+APCHelper.m"; sourceTree = ""; }; F5B947421A73272C0034C522 /* APCStepProgressBar+Appearance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCStepProgressBar+Appearance.h"; sourceTree = ""; }; @@ -1224,7 +1206,7 @@ F5B9474C1A73272C0034C522 /* NSDictionary+APCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+APCAdditions.h"; sourceTree = ""; }; F5B9474D1A73272C0034C522 /* NSDictionary+APCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+APCAdditions.m"; sourceTree = ""; }; F5B9474E1A73272C0034C522 /* NSError+APCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+APCAdditions.h"; sourceTree = ""; }; - F5B9474F1A73272C0034C522 /* NSError+APCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+APCAdditions.m"; sourceTree = ""; }; + F5B9474F1A73272C0034C522 /* NSError+APCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "NSError+APCAdditions.m"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5B947501A73272C0034C522 /* NSManagedObject+APCHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObject+APCHelper.h"; sourceTree = ""; }; F5B947511A73272C0034C522 /* NSManagedObject+APCHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObject+APCHelper.m"; sourceTree = ""; }; F5B947521A73272C0034C522 /* NSObject+Helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+Helper.h"; sourceTree = ""; }; @@ -1232,7 +1214,7 @@ F5B947541A73272C0034C522 /* NSString+Helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Helper.h"; sourceTree = ""; }; F5B947551A73272C0034C522 /* NSString+Helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Helper.m"; sourceTree = ""; }; F5B9475A1A73272C0034C522 /* UIAlertController+Helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIAlertController+Helper.h"; sourceTree = ""; }; - F5B9475B1A73272C0034C522 /* UIAlertController+Helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIAlertController+Helper.m"; sourceTree = ""; }; + F5B9475B1A73272C0034C522 /* UIAlertController+Helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "UIAlertController+Helper.m"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5B9475C1A73272C0034C522 /* UIImage+APCHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+APCHelper.h"; sourceTree = ""; }; F5B9475D1A73272C0034C522 /* UIImage+APCHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+APCHelper.m"; sourceTree = ""; }; F5B9475E1A73272C0034C522 /* UIScrollView+Helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+Helper.h"; sourceTree = ""; }; @@ -1250,7 +1232,7 @@ F5B947771A73272C0034C522 /* APCSegmentedButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSegmentedButton.h; sourceTree = ""; }; F5B947781A73272C0034C522 /* APCSegmentedButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSegmentedButton.m; sourceTree = ""; }; F5B947791A73272C0034C522 /* APCTasksReminderManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCTasksReminderManager.h; sourceTree = ""; }; - F5B9477A1A73272C0034C522 /* APCTasksReminderManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCTasksReminderManager.m; sourceTree = ""; }; + F5B9477A1A73272C0034C522 /* APCTasksReminderManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCTasksReminderManager.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5B9477C1A73272C0034C522 /* APCDebugWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDebugWindow.h; sourceTree = ""; }; F5B9477D1A73272C0034C522 /* APCDebugWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDebugWindow.m; sourceTree = ""; }; F5B9477E1A73272C0034C522 /* APCParameters+Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCParameters+Settings.h"; sourceTree = ""; }; @@ -1263,11 +1245,11 @@ F5B947851A73272C0034C522 /* APCParametersCoreDataCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCParametersCoreDataCell.h; sourceTree = ""; }; F5B947861A73272C0034C522 /* APCParametersCoreDataCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCParametersCoreDataCell.m; sourceTree = ""; }; F5B947871A73272C0034C522 /* APCParametersDashboardTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCParametersDashboardTableViewController.h; sourceTree = ""; }; - F5B947881A73272C0034C522 /* APCParametersDashboardTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCParametersDashboardTableViewController.m; sourceTree = ""; }; + F5B947881A73272C0034C522 /* APCParametersDashboardTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCParametersDashboardTableViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5B947891A73272C0034C522 /* APCParametersUserDefaultCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCParametersUserDefaultCell.h; sourceTree = ""; }; F5B9478A1A73272C0034C522 /* APCParametersUserDefaultCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCParametersUserDefaultCell.m; sourceTree = ""; }; F5B9478F1A73272C0034C522 /* APCPermissionsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCPermissionsManager.h; sourceTree = ""; }; - F5B947901A73272C0034C522 /* APCPermissionsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCPermissionsManager.m; sourceTree = ""; }; + F5B947901A73272C0034C522 /* APCPermissionsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCPermissionsManager.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5B947921A73272C0034C522 /* APCScheduleExpression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCScheduleExpression.h; sourceTree = ""; }; F5B947931A73272C0034C522 /* APCScheduleExpression.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCScheduleExpression.m; sourceTree = ""; }; F5B947951A73272C0034C522 /* APCDayOfMonthSelector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDayOfMonthSelector.h; sourceTree = ""; }; @@ -1294,7 +1276,7 @@ F5B947AC1A73272C0034C522 /* APCScoring.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCScoring.m; sourceTree = ""; }; F5B948161A7328F30034C522 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; F5C3635E1A40E21000113129 /* APCSmartSurveyTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSmartSurveyTask.h; sourceTree = ""; }; - F5C3635F1A40E21000113129 /* APCSmartSurveyTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSmartSurveyTask.m; sourceTree = ""; }; + F5C3635F1A40E21000113129 /* APCSmartSurveyTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSmartSurveyTask.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F128831A2F78490015982C /* APCAppCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = APCAppCore.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; F5F128851A2F78490015982C /* APCDataMonitor+Bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCDataMonitor+Bridge.h"; sourceTree = ""; }; F5F128861A2F78490015982C /* APCDataMonitor+Bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCDataMonitor+Bridge.m"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; @@ -1323,9 +1305,9 @@ F5F128B01A2F78490015982C /* APCTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCTask.h; sourceTree = ""; }; F5F128B11A2F78490015982C /* APCTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCTask.m; sourceTree = ""; }; F5F128B21A2F78490015982C /* APCUser+Bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCUser+Bridge.h"; sourceTree = ""; }; - F5F128B31A2F78490015982C /* APCUser+Bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "APCUser+Bridge.m"; sourceTree = ""; }; + F5F128B31A2F78490015982C /* APCUser+Bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCUser+Bridge.m"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F128B41A2F78490015982C /* APCUser+UserData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCUser+UserData.h"; sourceTree = ""; }; - F5F128B51A2F78490015982C /* APCUser+UserData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "APCUser+UserData.m"; sourceTree = ""; }; + F5F128B51A2F78490015982C /* APCUser+UserData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCUser+UserData.m"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F128B61A2F78490015982C /* APCUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCUser.h; sourceTree = ""; }; F5F128B71A2F78490015982C /* APCUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCUser.m; sourceTree = ""; }; F5F128B81A2F78490015982C /* MODEL_README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MODEL_README.txt; sourceTree = ""; }; @@ -1339,7 +1321,7 @@ F5F129291A2F78490015982C /* APCConfirmationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCConfirmationView.h; sourceTree = ""; }; F5F1292A1A2F78490015982C /* APCConfirmationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCConfirmationView.m; sourceTree = ""; }; F5F1292B1A2F78490015982C /* APCPieGraphView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCPieGraphView.h; sourceTree = ""; }; - F5F1292C1A2F78490015982C /* APCPieGraphView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCPieGraphView.m; sourceTree = ""; }; + F5F1292C1A2F78490015982C /* APCPieGraphView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCPieGraphView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1292D1A2F78490015982C /* APCStepProgressBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCStepProgressBar.h; sourceTree = ""; }; F5F1292E1A2F78490015982C /* APCStepProgressBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCStepProgressBar.m; sourceTree = ""; }; F5F129301A2F78490015982C /* APCAxisView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCAxisView.h; sourceTree = ""; }; @@ -1373,56 +1355,56 @@ F5F1294F1A2F78490015982C /* APCStudyOverviewViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCStudyOverviewViewController.m; sourceTree = ""; }; F5F129501A2F78490015982C /* APCUserInfoConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCUserInfoConstants.h; sourceTree = ""; }; F5F129521A2F78490015982C /* APCChangeEmailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCChangeEmailViewController.h; sourceTree = ""; }; - F5F129531A2F78490015982C /* APCChangeEmailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCChangeEmailViewController.m; sourceTree = ""; }; + F5F129531A2F78490015982C /* APCChangeEmailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCChangeEmailViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129551A2F78490015982C /* APCEmailVerifyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCEmailVerifyViewController.h; sourceTree = ""; }; F5F129561A2F78490015982C /* APCEmailVerifyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCEmailVerifyViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1295E1A2F78490015982C /* APCForgotPasswordViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCForgotPasswordViewController.h; sourceTree = ""; }; - F5F1295F1A2F78490015982C /* APCForgotPasswordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCForgotPasswordViewController.m; sourceTree = ""; }; + F5F1295F1A2F78490015982C /* APCForgotPasswordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCForgotPasswordViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129601A2F78490015982C /* APCSignInViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignInViewController.h; sourceTree = ""; }; - F5F129611A2F78490015982C /* APCSignInViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSignInViewController.m; sourceTree = ""; }; + F5F129611A2F78490015982C /* APCSignInViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSignInViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129631A2F78490015982C /* APCEligibleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCEligibleViewController.h; sourceTree = ""; }; - F5F129641A2F78490015982C /* APCEligibleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCEligibleViewController.m; sourceTree = ""; }; + F5F129641A2F78490015982C /* APCEligibleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCEligibleViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129651A2F78490015982C /* APCInclusionCriteriaViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCInclusionCriteriaViewController.h; sourceTree = ""; }; - F5F129661A2F78490015982C /* APCInclusionCriteriaViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCInclusionCriteriaViewController.m; sourceTree = ""; }; + F5F129661A2F78490015982C /* APCInclusionCriteriaViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCInclusionCriteriaViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129671A2F78490015982C /* APCInEligibleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCInEligibleViewController.h; sourceTree = ""; }; F5F129681A2F78490015982C /* APCInEligibleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCInEligibleViewController.m; sourceTree = ""; }; F5F129691A2F78490015982C /* APCSignUpGeneralInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignUpGeneralInfoViewController.h; sourceTree = ""; }; - F5F1296A1A2F78490015982C /* APCSignUpGeneralInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSignUpGeneralInfoViewController.m; sourceTree = ""; }; + F5F1296A1A2F78490015982C /* APCSignUpGeneralInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSignUpGeneralInfoViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1296B1A2F78490015982C /* APCSignUpInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignUpInfoViewController.h; sourceTree = ""; }; - F5F1296C1A2F78490015982C /* APCSignUpInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSignUpInfoViewController.m; sourceTree = ""; }; + F5F1296C1A2F78490015982C /* APCSignUpInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSignUpInfoViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1296D1A2F78490015982C /* APCSignUpMedicalInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignUpMedicalInfoViewController.h; sourceTree = ""; }; - F5F1296E1A2F78490015982C /* APCSignUpMedicalInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSignUpMedicalInfoViewController.m; sourceTree = ""; }; + F5F1296E1A2F78490015982C /* APCSignUpMedicalInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSignUpMedicalInfoViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1296F1A2F78490015982C /* APCSignupPasscodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignupPasscodeViewController.h; sourceTree = ""; }; - F5F129701A2F78490015982C /* APCSignupPasscodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSignupPasscodeViewController.m; sourceTree = ""; }; + F5F129701A2F78490015982C /* APCSignupPasscodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSignupPasscodeViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129711A2F78490015982C /* APCSignUpPermissionsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignUpPermissionsViewController.h; sourceTree = ""; }; - F5F129721A2F78490015982C /* APCSignUpPermissionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSignUpPermissionsViewController.m; sourceTree = ""; }; + F5F129721A2F78490015982C /* APCSignUpPermissionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSignUpPermissionsViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129731A2F78490015982C /* APCSignUpProgressing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSignUpProgressing.h; sourceTree = ""; }; F5F129741A2F78490015982C /* APCTermsAndConditionsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCTermsAndConditionsViewController.h; sourceTree = ""; }; F5F129751A2F78490015982C /* APCTermsAndConditionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCTermsAndConditionsViewController.m; sourceTree = ""; }; F5F129781A2F78490015982C /* APCActivities.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = APCActivities.storyboard; sourceTree = ""; }; F5F129791A2F78490015982C /* APCActivitiesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCActivitiesViewController.h; sourceTree = ""; }; - F5F1297A1A2F78490015982C /* APCActivitiesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCActivitiesViewController.m; sourceTree = ""; }; + F5F1297A1A2F78490015982C /* APCActivitiesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCActivitiesViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1297C1A2F78490015982C /* APCDashboardEditViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardEditViewController.h; sourceTree = ""; }; F5F1297D1A2F78490015982C /* APCDashboardEditViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDashboardEditViewController.m; sourceTree = ""; }; F5F1297E1A2F78490015982C /* APCDashboardViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardViewController.h; sourceTree = ""; }; - F5F1297F1A2F78490015982C /* APCDashboardViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDashboardViewController.m; sourceTree = ""; }; + F5F1297F1A2F78490015982C /* APCDashboardViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCDashboardViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129801A2F78490015982C /* APCGraphViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCGraphViewController.h; sourceTree = ""; }; - F5F129811A2F78490015982C /* APCGraphViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCGraphViewController.m; sourceTree = ""; }; + F5F129811A2F78490015982C /* APCGraphViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCGraphViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129831A2F78490015982C /* APCLearn.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = APCLearn.storyboard; sourceTree = ""; }; F5F129841A2F78490015982C /* APCLearnMasterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCLearnMasterViewController.h; sourceTree = ""; }; F5F129851A2F78490015982C /* APCLearnMasterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCLearnMasterViewController.m; sourceTree = ""; }; F5F129861A2F78490015982C /* APCLearnStudyDetailsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCLearnStudyDetailsViewController.h; sourceTree = ""; }; F5F129871A2F78490015982C /* APCLearnStudyDetailsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCLearnStudyDetailsViewController.m; sourceTree = ""; }; F5F129891A2F78490015982C /* APCChangePasscodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCChangePasscodeViewController.h; sourceTree = ""; }; - F5F1298A1A2F78490015982C /* APCChangePasscodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCChangePasscodeViewController.m; sourceTree = ""; }; + F5F1298A1A2F78490015982C /* APCChangePasscodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCChangePasscodeViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1298C1A2F78490015982C /* APCProfileViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCProfileViewController.h; sourceTree = ""; }; F5F1298D1A2F78490015982C /* APCProfileViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCProfileViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1298E1A2F78490015982C /* APCSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSettingsViewController.h; sourceTree = ""; }; - F5F1298F1A2F78490015982C /* APCSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSettingsViewController.m; sourceTree = ""; }; + F5F1298F1A2F78490015982C /* APCSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCSettingsViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129901A2F78490015982C /* APCWithdrawCompleteViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCWithdrawCompleteViewController.h; sourceTree = ""; }; F5F129911A2F78490015982C /* APCWithdrawCompleteViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCWithdrawCompleteViewController.m; sourceTree = ""; }; F5F129921A2F78490015982C /* APCWithdrawSurveyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCWithdrawSurveyViewController.h; sourceTree = ""; }; - F5F129931A2F78490015982C /* APCWithdrawSurveyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCWithdrawSurveyViewController.m; sourceTree = ""; }; + F5F129931A2F78490015982C /* APCWithdrawSurveyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCWithdrawSurveyViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129951A2F78490015982C /* APCAddressTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCAddressTableViewCell.h; sourceTree = ""; }; F5F129961A2F78490015982C /* APCAddressTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCAddressTableViewCell.m; sourceTree = ""; }; F5F129971A2F78490015982C /* APCCheckTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCCheckTableViewCell.h; sourceTree = ""; }; @@ -1430,7 +1412,7 @@ F5F129991A2F78490015982C /* APCDefaultTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDefaultTableViewCell.h; sourceTree = ""; }; F5F1299A1A2F78490015982C /* APCDefaultTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDefaultTableViewCell.m; sourceTree = ""; }; F5F1299B1A2F78490015982C /* APCPermissionsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCPermissionsCell.h; sourceTree = ""; }; - F5F1299C1A2F78490015982C /* APCPermissionsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCPermissionsCell.m; sourceTree = ""; }; + F5F1299C1A2F78490015982C /* APCPermissionsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCPermissionsCell.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F1299D1A2F78490015982C /* APCPickerTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCPickerTableViewCell.h; sourceTree = ""; }; F5F1299E1A2F78490015982C /* APCPickerTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCPickerTableViewCell.m; sourceTree = ""; }; F5F1299F1A2F78490015982C /* APCSegmentedTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCSegmentedTableViewCell.h; sourceTree = ""; }; @@ -1446,7 +1428,7 @@ F5F129AC1A2F78490015982C /* APCDashboardEditTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardEditTableViewCell.h; sourceTree = ""; }; F5F129AD1A2F78490015982C /* APCDashboardEditTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDashboardEditTableViewCell.m; sourceTree = ""; }; F5F129B01A2F78490015982C /* APCDashboardMessageTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardMessageTableViewCell.h; sourceTree = ""; }; - F5F129B11A2F78490015982C /* APCDashboardMessageTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDashboardMessageTableViewCell.m; sourceTree = ""; }; + F5F129B11A2F78490015982C /* APCDashboardMessageTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCDashboardMessageTableViewCell.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129B21A2F78490015982C /* APCDashboardPieGraphTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardPieGraphTableViewCell.h; sourceTree = ""; }; F5F129B31A2F78490015982C /* APCDashboardPieGraphTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDashboardPieGraphTableViewCell.m; sourceTree = ""; }; F5F129B41A2F78490015982C /* APCDashboardProgressTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDashboardProgressTableViewCell.h; sourceTree = ""; }; @@ -1469,7 +1451,7 @@ F5F129CA1A2F78490015982C /* APCSimpleTaskSummaryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCSimpleTaskSummaryViewController.m; sourceTree = ""; }; F5F129CB1A2F78490015982C /* APCSimpleTaskSummaryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = APCSimpleTaskSummaryViewController.xib; sourceTree = ""; }; F5F129CE1A2F78490015982C /* APCPasscodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCPasscodeViewController.h; sourceTree = ""; }; - F5F129CF1A2F78490015982C /* APCPasscodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCPasscodeViewController.m; sourceTree = ""; }; + F5F129CF1A2F78490015982C /* APCPasscodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCPasscodeViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; F5F129D01A2F78490015982C /* APCUserInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCUserInfoViewController.h; sourceTree = ""; }; F5F129D11A2F78490015982C /* APCUserInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCUserInfoViewController.m; sourceTree = ""; }; F5F129D31A2F78490015982C /* APCImageButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCImageButton.h; sourceTree = ""; }; @@ -2610,7 +2592,6 @@ children = ( 5B4574C61ABFD07A00601DCC /* Licenses */, 08027A3A1A7319AC00B358CC /* Assets */, - 80A98DEE1BFD60940060146F /* APCAppCore.strings */, F5F12B1B1A2F78AE0015982C /* Info.plist */, 3624092A1A8181350005B1A7 /* get_debug_ip_address.sh */, F5F1291B1A2F78490015982C /* update_version.sh */, @@ -3440,9 +3421,6 @@ LastUpgradeCheck = 0610; ORGANIZATIONNAME = "Apple, Inc."; TargetAttributes = { - 80A98DB71BFD1C5C0060146F = { - CreatedOnToolsVersion = 7.1.1; - }; F5179B2819D09128001DCCB7 = { CreatedOnToolsVersion = 6.0.1; }; @@ -3468,7 +3446,6 @@ targets = ( F5179B2819D09128001DCCB7 /* APCAppCore */, F5179B3319D09128001DCCB7 /* APCAppCoreTests */, - 80A98DB71BFD1C5C0060146F /* genstrings */, ); }; /* End PBXProject section */ @@ -3540,7 +3517,6 @@ 08027A8A1A7319AC00B358CC /* phonetapping@2x.png in Resources */, 5B4574CC1ABFD07A00601DCC /* License_ZipZap.txt in Resources */, CF130B7A1A9E8DCD002DA023 /* APCSetupButtonTableViewCell.xib in Resources */, - 80A98DEC1BFD60940060146F /* APCAppCore.strings in Resources */, 5BD4CA071AF0E46F008D97AE /* APCNewsFeed.storyboard in Resources */, 08027A801A7319AC00B358CC /* consent_03@3x.png in Resources */, 5B4574CA1ABFD07A00601DCC /* License_BridgeSDK.txt in Resources */, @@ -3567,22 +3543,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 80A98DBC1BFD1C710060146F /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "OUT_DIR=\"APCAppCore/Resources/en.lproj\"\n# don't want to conflict with app's Localizable.strings if AppCore is included in a project as a CocoaPod\nBUILT_FILE=${OUT_DIR}/Localizable.strings\nOUT_FILE=${OUT_DIR}/APCAppCore.strings\nmkdir -p ${OUT_DIR}\nfind . -name *.m | xargs genstrings -s APCLocalizedString -o ${OUT_DIR}\nrm -f ${OUT_FILE}\nmv ${BUILT_FILE} ${OUT_FILE}"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ F5179B2419D09128001DCCB7 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -3963,48 +3923,9 @@ name = APCPasscode.storyboard; sourceTree = ""; }; - 80A98DEE1BFD60940060146F /* APCAppCore.strings */ = { - isa = PBXVariantGroup; - children = ( - 80A98DEF1BFD60960060146F /* fr */, - 80A98DF01BFD60970060146F /* de */, - 80A98DF11BFE69470060146F /* en */, - ); - name = APCAppCore.strings; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 80A98DD11BFD49180060146F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - PRODUCT_NAME = genstrings; - }; - name = Debug; - }; - 80A98DD21BFD49180060146F /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - PRODUCT_NAME = genstrings; - }; - name = Development; - }; - 80A98DD31BFD49180060146F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - PRODUCT_NAME = genstrings; - }; - name = Release; - }; F5179B3A19D09128001DCCB7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4275,16 +4196,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 80A98DB81BFD1C5C0060146F /* Build configuration list for PBXAggregateTarget "genstrings" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 80A98DD11BFD49180060146F /* Debug */, - 80A98DD21BFD49180060146F /* Development */, - 80A98DD31BFD49180060146F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; F5179B2319D09128001DCCB7 /* Build configuration list for PBXProject "APCAppCore" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/APCAppCore/APCAppCore/Consent/APCConsentTask.m b/APCAppCore/APCAppCore/Consent/APCConsentTask.m index 11ce0347..79abbde3 100644 --- a/APCAppCore/APCAppCore/Consent/APCConsentTask.m +++ b/APCAppCore/APCAppCore/Consent/APCConsentTask.m @@ -175,9 +175,9 @@ - (NSArray*)commonInitWithPropertiesFileName:(NSString*)fileName customSteps:(NS identifier:@"participant"]; ORKConsentDocument* document = [[ORKConsentDocument alloc] init]; - document.title = APCLocalizedString(@"Consent", nil); - document.signaturePageTitle = APCLocalizedString(@"Consent", nil); - document.signaturePageContent = APCLocalizedString(@"By agreeing you confirm that you read the consent and that you wish to take part in this research study.", nil); + document.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", nil); + document.signaturePageTitle = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", nil); + document.signaturePageContent = NSLocalizedStringWithDefaultValue(@"By agreeing you confirm that you read the consent and that you wish to take part in this research study.", @"APCAppCore", APCBundle(), @"By agreeing you confirm that you read the consent and that you wish to take part in this research study.", nil); document.sections = self.documentSections; document.htmlReviewContent = self.documentHtmlContent; diff --git a/APCAppCore/APCAppCore/DataSubstrate/Model/APCSmartSurveyTask.m b/APCAppCore/APCAppCore/DataSubstrate/Model/APCSmartSurveyTask.m index 39a0fdfc..16551c6e 100644 --- a/APCAppCore/APCAppCore/DataSubstrate/Model/APCSmartSurveyTask.m +++ b/APCAppCore/APCAppCore/DataSubstrate/Model/APCSmartSurveyTask.m @@ -572,7 +572,7 @@ - (ORKAnswerFormat*) rkChoiceAnswerFormat:(NSDictionary *)objectDictionary [options addObject: choice]; }]; if (localConstraints.allowOtherValue) { - [options addObject:APCLocalizedString(@"Other", @"Spinner Option")]; + [options addObject:NSLocalizedStringWithDefaultValue(@"Other", @"APCAppCore", APCBundle(), @"Other", @"Spinner Option")]; } retAnswer = [ORKAnswerFormat choiceAnswerFormatWithStyle:localConstraints.allowMultipleValue ? ORKChoiceAnswerStyleMultipleChoice : ORKChoiceAnswerStyleSingleChoice textChoices:options]; return retAnswer; diff --git a/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+Bridge.m b/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+Bridge.m index 34683c88..7b4fa425 100644 --- a/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+Bridge.m +++ b/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+Bridge.m @@ -539,6 +539,6 @@ - (NSString *)passwordForAuthManager:(id) __unused authM - (NSString *)noInternetString { - return APCLocalizedString(@"No network connection. Please connect to the internet and try again.", @"No Internet"); + return NSLocalizedStringWithDefaultValue(@"No network connection. Please connect to the internet and try again.", @"APCAppCore", APCBundle(), @"No network connection. Please connect to the internet and try again.", @"No Internet"); } @end diff --git a/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+UserData.m b/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+UserData.m index 9fa2a056..cbb868a2 100644 --- a/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+UserData.m +++ b/APCAppCore/APCAppCore/DataSubstrate/Model/APCUser+UserData.m @@ -40,16 +40,16 @@ @implementation APCUser (UserData) Biologial Sex ****************/ + (NSArray *) sexTypesInStringValue { - return @[ APCLocalizedString(@"Male", @""), APCLocalizedString(@"Female", @"")]; + return @[ NSLocalizedStringWithDefaultValue(@"Male", @"APCAppCore", APCBundle(), @"Male", @""), NSLocalizedStringWithDefaultValue(@"Female", @"APCAppCore", APCBundle(), @"Female", @"")]; } + (HKBiologicalSex) sexTypeFromStringValue:(NSString *)stringValue { HKBiologicalSex sexType; - if ([stringValue isEqualToString:APCLocalizedString(@"Male", @"")]) { + if ([stringValue isEqualToString:NSLocalizedStringWithDefaultValue(@"Male", @"APCAppCore", APCBundle(), @"Male", @"")]) { sexType = HKBiologicalSexMale; } - else if ([stringValue isEqualToString:APCLocalizedString(@"Female", @"")]) { + else if ([stringValue isEqualToString:NSLocalizedStringWithDefaultValue(@"Female", @"APCAppCore", APCBundle(), @"Female", @"")]) { sexType = HKBiologicalSexFemale; } else { diff --git a/APCAppCore/APCAppCore/Library/AssertionHandler/APCAssertionHandler.m b/APCAppCore/APCAppCore/Library/AssertionHandler/APCAssertionHandler.m index 85a75ed6..c6bf9a95 100644 --- a/APCAppCore/APCAppCore/Library/AssertionHandler/APCAssertionHandler.m +++ b/APCAppCore/APCAppCore/Library/AssertionHandler/APCAssertionHandler.m @@ -56,11 +56,11 @@ - (void) handleFailureInFunction: (NSString *) __unused functionName } - (void) exitGracefully { - NSString *alertTitle = APCLocalizedString(@"Somethings Wrong!", @""); + NSString *alertTitle = NSLocalizedStringWithDefaultValue(@"Somethings Wrong!", @"APCAppCore", APCBundle(), @"Somethings Wrong!", @""); - NSString *alertMessage = APCLocalizedString(@"Oops! Something went wrong. We are really sorry for the inconvenience. Since we are not taking any risk on your data, you may need to restart the app.", @""); + NSString *alertMessage = NSLocalizedStringWithDefaultValue(@"Oops! Something went wrong. We are really sorry for the inconvenience. Since we are not taking any risk on your data, you may need to restart the app.", @"APCAppCore", APCBundle(), @"Oops! Something went wrong. We are really sorry for the inconvenience. Since we are not taking any risk on your data, you may need to restart the app.", @""); - UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Okay", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Okay", @"APCAppCore", APCBundle(), @"Okay", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { exit(0); }]; diff --git a/APCAppCore/APCAppCore/Library/Categories/NSDate+Helper.m b/APCAppCore/APCAppCore/Library/Categories/NSDate+Helper.m index b6e83799..c518dcf5 100644 --- a/APCAppCore/APCAppCore/Library/Categories/NSDate+Helper.m +++ b/APCAppCore/APCAppCore/Library/Categories/NSDate+Helper.m @@ -147,11 +147,11 @@ -(NSString *) friendlyDescription NSString * retValue; if([date isEqual:today]) { - retValue = APCLocalizedString(@"Today", nil); + retValue = NSLocalizedStringWithDefaultValue(@"Today", @"APCAppCore", APCBundle(), @"Today", nil); } else if([date isEqual:yesterday]) { - retValue = APCLocalizedString(@"Yesterday", nil); + retValue = NSLocalizedStringWithDefaultValue(@"Yesterday", @"APCAppCore", APCBundle(), @"Yesterday", nil); } else if(([date laterDate:oneWeekAgo] == date) && ([date laterDate:tomorrow] == tomorrow)) { diff --git a/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m b/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m index 9e65642a..d3cdbfe4 100644 --- a/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m +++ b/APCAppCore/APCAppCore/Library/Categories/NSError+APCAdditions.m @@ -53,16 +53,16 @@ @implementation NSError (APCAdditions) + (void)initialize { - kAPCServerBusyErrorMessage = APCLocalizedString(@"Thank you for your interest in this study. We are working hard to process the large volume of interest, and should be back up momentarily. Please try again soon.", @"Error message when server is too busy to respond"); - kAPCUnexpectedConditionErrorMessage = APCLocalizedString(@"An unexpected network condition has occurred. Please try again soon.", @"Error message indicating unexpected network problem"); - kAPCNotConnectedErrorMessage = APCLocalizedString(@"You are currently not connected to the Internet. Please try again when you are connected to a network.", @"Error message when no network connection found"); - kAPCServerUnderMaintanenceErrorMessage = APCLocalizedString(@"The study server is currently undergoing maintanence. Please try again soon.", @"Error message when server is undergoing maintenance and temporarily unavailable"); - kAPCAccountAlreadyExistsErrorMessage = APCLocalizedString(@"An account has already been created for this email address. Please use a different email address, or sign in using the \"already participating\" link at the bottom of the Welcome page.", @"Error message when participant attempts to sign up for a new account using an email address already associated with an account in this study"); - kAPCAccountDoesNotExistErrorMessage = APCLocalizedString(@"There is no account registered for this email address and password combination.", @"Error message when participant attempts to sign in to an existing account with an incorrect email address or password"); - kAPCBadEmailAddressErrorMessage = APCLocalizedString(@"The email address submitted is not a valid email address. Please correct the email address and try again.", @"Error message when participant attempts to sign up using a non-valid email address"); - kAPCBadPasswordErrorMessage = APCLocalizedString(@"The password you have entered is not a valid password. Please try again.", @"Error message when participant attempts to sign up with a non-valid password"); - kAPCNotReachableErrorMessage = APCLocalizedString(@"We are currently not able to reach the study server. Please retry in a few moments.", @"Error message when the app is unable to reach the Bridge server"); - kAPCInvalidEmailAddressOrPasswordErrorMessage = APCLocalizedString(@"Entered email address or password is not valid. Please correct the email address or password and try again.", @"Error message when participant attempts to sign up with a non-valid email address or password"); + kAPCServerBusyErrorMessage = NSLocalizedStringWithDefaultValue(@"Thank you for your interest in this study. We are working hard to process the large volume of interest, and should be back up momentarily. Please try again soon.", @"APCAppCore", APCBundle(), @"Thank you for your interest in this study. We are working hard to process the large volume of interest, and should be back up momentarily. Please try again soon.", @"Error message when server is too busy to respond"); + kAPCUnexpectedConditionErrorMessage = NSLocalizedStringWithDefaultValue(@"An unexpected network condition has occurred. Please try again soon.", @"APCAppCore", APCBundle(), @"An unexpected network condition has occurred. Please try again soon.", @"Error message indicating unexpected network problem"); + kAPCNotConnectedErrorMessage = NSLocalizedStringWithDefaultValue(@"You are currently not connected to the Internet. Please try again when you are connected to a network.", @"APCAppCore", APCBundle(), @"You are currently not connected to the Internet. Please try again when you are connected to a network.", @"Error message when no network connection found"); + kAPCServerUnderMaintanenceErrorMessage = NSLocalizedStringWithDefaultValue(@"The study server is currently undergoing maintanence. Please try again soon.", @"APCAppCore", APCBundle(), @"The study server is currently undergoing maintanence. Please try again soon.", @"Error message when server is undergoing maintenance and temporarily unavailable"); + kAPCAccountAlreadyExistsErrorMessage = NSLocalizedStringWithDefaultValue(@"An account has already been created for this email address. Please use a different email address, or sign in using the \"already participating\" link at the bottom of the Welcome page.", @"APCAppCore", APCBundle(), @"An account has already been created for this email address. Please use a different email address, or sign in using the \"already participating\" link at the bottom of the Welcome page.", @"Error message when participant attempts to sign up for a new account using an email address already associated with an account in this study"); + kAPCAccountDoesNotExistErrorMessage = NSLocalizedStringWithDefaultValue(@"There is no account registered for this email address and password combination.", @"APCAppCore", APCBundle(), @"There is no account registered for this email address and password combination.", @"Error message when participant attempts to sign in to an existing account with an incorrect email address or password"); + kAPCBadEmailAddressErrorMessage = NSLocalizedStringWithDefaultValue(@"The email address submitted is not a valid email address. Please correct the email address and try again.", @"APCAppCore", APCBundle(), @"The email address submitted is not a valid email address. Please correct the email address and try again.", @"Error message when participant attempts to sign up using a non-valid email address"); + kAPCBadPasswordErrorMessage = NSLocalizedStringWithDefaultValue(@"The password you have entered is not a valid password. Please try again.", @"APCAppCore", APCBundle(), @"The password you have entered is not a valid password. Please try again.", @"Error message when participant attempts to sign up with a non-valid password"); + kAPCNotReachableErrorMessage = NSLocalizedStringWithDefaultValue(@"We are currently not able to reach the study server. Please retry in a few moments.", @"APCAppCore", APCBundle(), @"We are currently not able to reach the study server. Please retry in a few moments.", @"Error message when the app is unable to reach the Bridge server"); + kAPCInvalidEmailAddressOrPasswordErrorMessage = NSLocalizedStringWithDefaultValue(@"Entered email address or password is not valid. Please correct the email address or password and try again.", @"APCAppCore", APCBundle(), @"Entered email address or password is not valid. Please correct the email address or password and try again.", @"Error message when participant attempts to sign up with a non-valid email address or password"); } - (NSString*)checkMessageForNonUserTerms:(NSString*)message @@ -71,7 +71,7 @@ - (NSString*)checkMessageForNonUserTerms:(NSString*)message [message containsString:@"NSURLError"] || [message rangeOfString:@"contact somebody" options:NSCaseInsensitiveSearch].location != NSNotFound) { - return APCLocalizedString(@"An unknown error occurred", nil); + return NSLocalizedStringWithDefaultValue(@"An unknown error occurred", @"APCAppCore", APCBundle(), @"An unknown error occurred", nil); } return message; } diff --git a/APCAppCore/APCAppCore/Library/Categories/NewDataCollector/APCPassiveDisplacementTrackingDataUploader.m b/APCAppCore/APCAppCore/Library/Categories/NewDataCollector/APCPassiveDisplacementTrackingDataUploader.m index c7f3fae4..bfbd91f8 100644 --- a/APCAppCore/APCAppCore/Library/Categories/NewDataCollector/APCPassiveDisplacementTrackingDataUploader.m +++ b/APCAppCore/APCAppCore/Library/Categories/NewDataCollector/APCPassiveDisplacementTrackingDataUploader.m @@ -93,7 +93,7 @@ - (NSArray*)locationArrayWithLocationManager:(CLLocationManager*)manager } else { - speed = APCLocalizedString(@"invalid speed", nil); + speed = NSLocalizedStringWithDefaultValue(@"invalid speed", @"APCAppCore", APCBundle(), @"invalid speed", nil); } NSString* speedUnit = @"meters/second"; //Not a user facing constant @@ -102,7 +102,7 @@ - (NSArray*)locationArrayWithLocationManager:(CLLocationManager*)manager // A nil value of manager.location.floor indicates that this info is unavailable. if (manager.location.floor == nil) { - floor = APCLocalizedString(@"not available", nil); + floor = NSLocalizedStringWithDefaultValue(@"not available", @"APCAppCore", APCBundle(), @"not available", nil); } else { diff --git a/APCAppCore/APCAppCore/Library/Categories/UIAlertController+Helper.m b/APCAppCore/APCAppCore/Library/Categories/UIAlertController+Helper.m index 76278de7..57b85520 100644 --- a/APCAppCore/APCAppCore/Library/Categories/UIAlertController+Helper.m +++ b/APCAppCore/APCAppCore/Library/Categories/UIAlertController+Helper.m @@ -40,7 +40,7 @@ + (UIAlertController *) simpleAlertWithTitle:(NSString *)title message:(NSString { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *okayAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:nil]; + UIAlertAction *okayAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"OK", @"APCAppCore", APCBundle(), @"OK", @"") style:UIAlertActionStyleDefault handler:nil]; [alertController addAction:okayAction]; return alertController; diff --git a/APCAppCore/APCAppCore/Library/Insights/APCInsights.m b/APCAppCore/APCAppCore/Library/Insights/APCInsights.m index 69685507..b110d449 100644 --- a/APCAppCore/APCAppCore/Library/Insights/APCInsights.m +++ b/APCAppCore/APCAppCore/Library/Insights/APCInsights.m @@ -97,8 +97,8 @@ - (instancetype)initWithFactor:(APCInsightFactors)factor _baselineHigh = baselineHigh; _baselineHighOther = baselineOther; - _captionGood = APCLocalizedString(@"Not enough data", @"Not enough data"); - _captionBad = APCLocalizedString(@"Not enough data", @"Not enough data"); + _captionGood = NSLocalizedStringWithDefaultValue(@"Not enough data", @"APCAppCore", APCBundle(), @"Not enough data", @"Not enough data"); + _captionBad = NSLocalizedStringWithDefaultValue(@"Not enough data", @"APCAppCore", APCBundle(), @"Not enough data", @"Not enough data"); _valueGood = @(0); _valueBad = @(0); @@ -141,14 +141,14 @@ - (void)configureInsight { self.insightFactorName = HKQuantityTypeIdentifierDistanceWalkingRunning; self.insightFactorUnit = [HKUnit meterUnit]; - self.insightFactorCaption = APCLocalizedString(@"%@ minutes spent active", @"Minutes spent active, to be filled in with the number of minutes"); + self.insightFactorCaption = NSLocalizedStringWithDefaultValue(@"%@ minutes spent active", @"APCAppCore", APCBundle(), @"%@ minutes spent active", @"Minutes spent active, to be filled in with the number of minutes"); } break; case APCInsightFactorCarbohydrateConsumption: { self.insightFactorName = HKQuantityTypeIdentifierDietaryCarbohydrates; self.insightFactorUnit = [HKUnit gramUnit]; - self.insightFactorCaption = APCLocalizedString(@"%@ carbohydrates consumed", @"Grams of carbohydrate consumed, to be filled in with the number of grams"); + self.insightFactorCaption = NSLocalizedStringWithDefaultValue(@"%@ carbohydrates consumed", @"APCAppCore", APCBundle(), @"%@ carbohydrates consumed", @"Grams of carbohydrate consumed, to be filled in with the number of grams"); } break; case APCInsightFactorCarbohydrateCalories: @@ -157,28 +157,28 @@ - (void)configureInsight { self.insightFactorName = HKQuantityTypeIdentifierDietaryEnergyConsumed; self.insightFactorUnit = [HKUnit kilocalorieUnit]; - self.insightFactorCaption = APCLocalizedString(@"%@ calories consumed", @"(Kilo)calories consumed, to be filled in with the number of kilocalories"); + self.insightFactorCaption = NSLocalizedStringWithDefaultValue(@"%@ calories consumed", @"APCAppCore", APCBundle(), @"%@ calories consumed", @"(Kilo)calories consumed, to be filled in with the number of kilocalories"); } break; case APCInsightFactorSteps: { self.insightFactorName = HKQuantityTypeIdentifierStepCount; self.insightFactorUnit = [HKUnit countUnit]; - self.insightFactorCaption = APCLocalizedString(@"%@ Steps", @"Steps taken, to be filled in with the number of steps"); + self.insightFactorCaption = NSLocalizedStringWithDefaultValue(@"%@ Steps", @"APCAppCore", APCBundle(), @"%@ Steps", @"Steps taken, to be filled in with the number of steps"); } break; case APCInsightFactorSugarConsumption: { self.insightFactorName = HKQuantityTypeIdentifierDietarySugar; self.insightFactorUnit = [HKUnit gramUnit]; - self.insightFactorCaption = APCLocalizedString(@"%@ sugar consumed", @"Grams of sugar consumed, to be filled in with the number of grams"); + self.insightFactorCaption = NSLocalizedStringWithDefaultValue(@"%@ sugar consumed", @"APCAppCore", APCBundle(), @"%@ sugar consumed", @"Grams of sugar consumed, to be filled in with the number of grams"); } break; case APCInsightFactorTimeSlept: { self.insightFactorName = HKCategoryTypeIdentifierSleepAnalysis; self.insightFactorUnit = [HKUnit hourUnit]; - self.insightFactorCaption = APCLocalizedString(@"%@ hours slept", @"Hours slept, to be filled in with the number of hours"); + self.insightFactorCaption = NSLocalizedStringWithDefaultValue(@"%@ hours slept", @"APCAppCore", APCBundle(), @"%@ hours slept", @"Hours slept, to be filled in with the number of hours"); } break; default: @@ -360,7 +360,7 @@ - (void)dataPointsAreAvailableFromHealthKit:(NSArray *)insightPoints { APCLogDebug(@"Insights: %@", insightPoints); - NSString *caption = APCLocalizedString(@"Not enough data", @"Not enough data"); + NSString *caption = NSLocalizedStringWithDefaultValue(@"Not enough data", @"APCAppCore", APCBundle(), @"Not enough data", @"Not enough data"); NSNumber *pointValue = nil; NSArray *goodPoints = [insightPoints filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(%K == %@) AND (%K <> %@)", @@ -552,8 +552,8 @@ - (NSDate *)dateForSpan:(NSInteger)daySpan fromDate:(NSDate *)date - (void)resetInsight { - self.captionGood = APCLocalizedString(@"Not enough data", @"Not enough data"); - self.captionBad = APCLocalizedString(@"Not enough data", @"Not enough data"); + self.captionGood = NSLocalizedStringWithDefaultValue(@"Not enough data", @"APCAppCore", APCBundle(), @"Not enough data", @"Not enough data"); + self.captionBad = NSLocalizedStringWithDefaultValue(@"Not enough data", @"APCAppCore", APCBundle(), @"Not enough data", @"Not enough data"); self.valueGood = @(0); self.valueBad = @(0); diff --git a/APCAppCore/APCAppCore/Library/Localization/APCLocalization.h b/APCAppCore/APCAppCore/Library/Localization/APCLocalization.h index 32ce5096..3f0a85ac 100644 --- a/APCAppCore/APCAppCore/Library/Localization/APCLocalization.h +++ b/APCAppCore/APCAppCore/Library/Localization/APCLocalization.h @@ -17,12 +17,3 @@ APC_EXTERN NSBundle *APCBundle(); APC_EXTERN NSBundle *APCDefaultLocaleBundle(); -#define APCDefaultLocalizedValue(key) \ -[APCDefaultLocaleBundle() localizedStringForKey:key value:@"" table:@"APCAppCore"] - -#define APCLocalizedString(key, comment) \ -[APCBundle() localizedStringForKey:(key) value:APCDefaultLocalizedValue(key) table:@"APCAppCore"] - -#define APCLocalizedStringFromNumber(number) \ -[NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterNoStyle] - diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerCalendarViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerCalendarViewController.m index bdaf573e..77396d00 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerCalendarViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerCalendarViewController.m @@ -194,10 +194,10 @@ - (void)tableView:(UITableView *) __unused tableView didEndEditingRowAtIndexPath - (void)tableView:(UITableView *) __unused tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { - UIAlertController *alerter = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Please Confirm Removal", nil) - message:APCLocalizedString(@"This Action Cannot Be Undone", nil) + UIAlertController *alerter = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Please Confirm Removal", @"APCAppCore", APCBundle(), @"Please Confirm Removal", nil) + message:NSLocalizedStringWithDefaultValue(@"This Action Cannot Be Undone", @"APCAppCore", APCBundle(), @"This Action Cannot Be Undone", nil) preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction __unused *action) { if (self.tableViewEditingModeIsExplicit == NO) { @@ -205,7 +205,7 @@ - (void)tableView:(UITableView *) __unused tableView commitEditingStyle:(UITable } }]; [alerter addAction:cancelAction]; - UIAlertAction *deleteAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Delete", nil) style:UIAlertActionStyleDestructive + UIAlertAction *deleteAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Delete", @"APCAppCore", APCBundle(), @"Delete", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction __unused *action) { [self deleteRowFromTable:indexPath]; @@ -508,11 +508,11 @@ - (IBAction)editButtonWasTapped:(UIButton *) __unused sender if (self.tabulator.isEditing == NO) { [self.tabulator setEditing:YES animated:YES]; self.tableViewEditingModeIsExplicit = YES; - title = APCLocalizedString(@"Done", nil); + title = NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", nil); self.navigationItem.rightBarButtonItem.enabled = NO; } else { [self.tabulator setEditing:NO animated:YES]; - title = APCLocalizedString(@"Edit", nil); + title = NSLocalizedStringWithDefaultValue(@"Edit", @"APCAppCore", APCBundle(), @"Edit", nil); self.tableViewEditingModeIsExplicit = NO; self.navigationItem.rightBarButtonItem.enabled = YES; } @@ -556,11 +556,11 @@ - (void)setupHiddenStates self.exScrollibur.hidden = NO; self.weekContainer.hidden = NO; if ([self.prescriptions count] == 0) { - self.tapItemsLabel.text = APCLocalizedString(@"Tap the “+” Sign to Create Prescriptions", nil); + self.tapItemsLabel.text = NSLocalizedStringWithDefaultValue(@"Tap the “+” Sign to Create Prescriptions", @"APCAppCore", APCBundle(), @"Tap the “+” Sign to Create Prescriptions", nil); self.yourPrescriptionsView.hidden = YES; self.editButton.hidden = YES; } else { - self.tapItemsLabel.text = APCLocalizedString(@"Tap on Items Above to Log Intake", nil); + self.tapItemsLabel.text = NSLocalizedStringWithDefaultValue(@"Tap on Items Above to Log Intake", @"APCAppCore", APCBundle(), @"Tap on Items Above to Log Intake", nil); self.yourPrescriptionsView.hidden = NO; self.editButton.hidden = NO; } diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.m index f158c448..fb3aa398 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingAppComponent/APCMedicationTrackerDetailViewController.m @@ -206,7 +206,7 @@ - (UIView *)tableView:(UITableView *) __unused tableView viewForHeaderInSection: label.numberOfLines = 0; label.font = [UIFont appRegularFontWithSize:kPointSizeForDosesTakenHeader]; label.textColor = [UIColor blackColor]; - label.text = APCLocalizedString(@"Log Your Medications", nil); + label.text = NSLocalizedStringWithDefaultValue(@"Log Your Medications", @"APCAppCore", APCBundle(), @"Log Your Medications", nil); label.textAlignment = NSTextAlignmentCenter; label.lineBreakMode = NSLineBreakByWordWrapping; [container addSubview:label]; @@ -267,7 +267,7 @@ - (void)viewDidLoad self.tabulator.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; - UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:APCLocalizedString(@"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonWasTapped:)]; + UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonWasTapped:)]; self.donester = donester; self.navigationItem.rightBarButtonItem = self.donester; self.donester.enabled = YES; diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationDosage/APCMedicationDosageViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationDosage/APCMedicationDosageViewController.m index 672f3996..9a669140 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationDosage/APCMedicationDosageViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationDosage/APCMedicationDosageViewController.m @@ -188,7 +188,7 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger label.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1.0]; label.textColor = [UIColor blackColor]; label.textAlignment = NSTextAlignmentCenter; - label.text = APCLocalizedString(@"Select Your Medication's Single Dose Amount", nil); + label.text = NSLocalizedStringWithDefaultValue(@"Select Your Medication's Single Dose Amount", @"APCAppCore", APCBundle(), @"Select Your Medication's Single Dose Amount", nil); [view addSubview:label]; } return view; @@ -232,7 +232,7 @@ - (void)viewDidLoad self.tabulator.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; - UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:APCLocalizedString(@"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; + UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; self.navigationItem.rightBarButtonItem = donester; self.dosageAmounts = [NSArray array]; diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m index 328c6945..5274c48b 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationFrequency/APCMedicationFrequencyViewController.m @@ -96,9 +96,9 @@ @implementation APCMedicationFrequencyViewController + (void)initialize { - gViewControllerName = APCLocalizedString(@"Medication Frequency", @"Title for view shown to select how often medication is taken"); - gEveryDayOfWeekCaption = APCLocalizedString(@"Every Day", @"Text of choice indicating medication is taken every day"); - sectionTitles = @[ APCLocalizedString(@"How many times a day do you take this medication?", @"Title for section where user chooses how many times per day they take a medication"), APCLocalizedString(@"On what days do you take this medication?", @"Title for section where user chooses which days of the week they take a medication"), @" " ]; + gViewControllerName = NSLocalizedStringWithDefaultValue(@"Medication Frequency", @"APCAppCore", APCBundle(), @"Medication Frequency", @"Title for view shown to select how often medication is taken"); + gEveryDayOfWeekCaption = NSLocalizedStringWithDefaultValue(@"Every Day", @"APCAppCore", APCBundle(), @"Every Day", @"Text of choice indicating medication is taken every day"); + sectionTitles = @[ NSLocalizedStringWithDefaultValue(@"How many times a day do you take this medication?", @"APCAppCore", APCBundle(), @"How many times a day do you take this medication?", @"Title for section where user chooses how many times per day they take a medication"), NSLocalizedStringWithDefaultValue(@"On what days do you take this medication?", @"APCAppCore", APCBundle(), @"On what days do you take this medication?", @"Title for section where user chooses which days of the week they take a medication"), @" " ]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; daysOfWeekNames = [dateFormatter weekdaySymbols]; } @@ -458,7 +458,7 @@ - (void)viewDidLoad self.tabulator.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; - UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:APCLocalizedString(@"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; + UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; self.donester = donester; self.navigationItem.rightBarButtonItem = donester; self.donester.enabled = NO; diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m index be13c03a..ce6f38ef 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationLabel/APCMedicationColorViewController.m @@ -68,8 +68,8 @@ @implementation APCMedicationColorViewController + (void)initialize { - gViewControllerName = APCLocalizedString(@"Medication Label Color", @"Title for view shown to select color of medication label"); - gSectionHeaderTitle = APCLocalizedString(@"Select a Label Color for Your Medication", @"Prompt to select color of medication label"); + gViewControllerName = NSLocalizedStringWithDefaultValue(@"Medication Label Color", @"APCAppCore", APCBundle(), @"Medication Label Color", @"Title for view shown to select color of medication label"); + gSectionHeaderTitle = NSLocalizedStringWithDefaultValue(@"Select a Label Color for Your Medication", @"APCAppCore", APCBundle(), @"Select a Label Color for Your Medication", @"Prompt to select color of medication label"); } - (void)dealloc { @@ -233,7 +233,7 @@ - (void)viewDidLoad self.tabulator.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; - UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:APCLocalizedString(@"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; + UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; self.navigationItem.rightBarButtonItem = donester; UINib *colorSwatchTableCellNib = [UINib nibWithNibName:kColorSwatchTableCellName bundle:[NSBundle appleCoreBundle]]; diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationName/APCMedicationNameViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationName/APCMedicationNameViewController.m index 32d47451..5509d14b 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationName/APCMedicationNameViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationName/APCMedicationNameViewController.m @@ -199,7 +199,7 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger label.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1.0]; label.textColor = [UIColor blackColor]; label.textAlignment = NSTextAlignmentCenter; - label.text = APCLocalizedString(@"Select the Medication You Are Currently Taking", nil); + label.text = NSLocalizedStringWithDefaultValue(@"Select the Medication You Are Currently Taking", @"APCAppCore", APCBundle(), @"Select the Medication You Are Currently Taking", nil); [view addSubview:label]; } return view; @@ -248,7 +248,7 @@ - (void)viewDidLoad self.tabulator.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; - UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:APCLocalizedString(@"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; + UIBarButtonItem *donester = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", @"Done") style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)]; self.donester = donester; self.navigationItem.rightBarButtonItem = self.donester; self.donester.enabled = NO; diff --git a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationSetup/APCMedicationTrackerSetupViewController.m b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationSetup/APCMedicationTrackerSetupViewController.m index 84334d40..2732f649 100644 --- a/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationSetup/APCMedicationTrackerSetupViewController.m +++ b/APCAppCore/APCAppCore/Library/MedicationTrackingSetup/MedicationSetup/APCMedicationTrackerSetupViewController.m @@ -281,7 +281,7 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger label.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1.0]; label.textColor = [UIColor blackColor]; label.textAlignment = NSTextAlignmentCenter; - label.text = APCLocalizedString(@"Add Your Medication Details", nil);; + label.text = NSLocalizedStringWithDefaultValue(@"Add Your Medication Details", @"APCAppCore", APCBundle(), @"Add Your Medication Details", nil);; [view addSubview:label]; } return view; diff --git a/APCAppCore/APCAppCore/Library/Objects/APCTasksReminderManager.m b/APCAppCore/APCAppCore/Library/Objects/APCTasksReminderManager.m index 13303110..3825ed60 100644 --- a/APCAppCore/APCAppCore/Library/Objects/APCTasksReminderManager.m +++ b/APCAppCore/APCAppCore/Library/Objects/APCTasksReminderManager.m @@ -68,8 +68,8 @@ @implementation APCTasksReminderManager + (void)initialize { - gTaskReminderMessage = APCLocalizedString(@"Please complete your %@ activities today. Thank you for participating in the %@ study! %@", @"Text for daily reminder to complete activities, to be filled in with the name of the study, the name of the study again, and the concatenation of the bodies of the individual reminders of activities yet to complete."); - gTaskReminderDelayMessage = APCLocalizedString(@"Remind me in 1 hour", @"\"Snooze\" prompt for reminder notification"); + gTaskReminderMessage = NSLocalizedStringWithDefaultValue(@"Please complete your %@ activities today. Thank you for participating in the %@ study! %@", @"APCAppCore", APCBundle(), @"Please complete your %@ activities today. Thank you for participating in the %@ study! %@", @"Text for daily reminder to complete activities, to be filled in with the name of the study, the name of the study again, and the concatenation of the bodies of the individual reminders of activities yet to complete."); + gTaskReminderDelayMessage = NSLocalizedStringWithDefaultValue(@"Remind me in 1 hour", @"APCAppCore", APCBundle(), @"Remind me in 1 hour", @"\"Snooze\" prompt for reminder notification"); } - (instancetype)init { diff --git a/APCAppCore/APCAppCore/Library/Parameters/APCParameters+Settings.m b/APCAppCore/APCAppCore/Library/Parameters/APCParameters+Settings.m index a0294ad9..360b2481 100644 --- a/APCAppCore/APCAppCore/Library/Parameters/APCParameters+Settings.m +++ b/APCAppCore/APCAppCore/Library/Parameters/APCParameters+Settings.m @@ -48,7 +48,7 @@ + (NSArray *)autoLockOptionStrings NSMutableArray *options = [NSMutableArray new]; for (NSNumber *val in values) { - NSString *optionString = [NSString stringWithFormat:@"%ld %@", (long)val.integerValue, APCLocalizedString(@"minutes", nil)]; + NSString *optionString = [NSString stringWithFormat:@"%ld %@", (long)val.integerValue, NSLocalizedStringWithDefaultValue(@"minutes", @"APCAppCore", APCBundle(), @"minutes", nil)]; [options addObject:optionString]; } diff --git a/APCAppCore/APCAppCore/Library/Parameters/APCParametersDashboardTableViewController.m b/APCAppCore/APCAppCore/Library/Parameters/APCParametersDashboardTableViewController.m index ca565630..fc61c517 100644 --- a/APCAppCore/APCAppCore/Library/Parameters/APCParametersDashboardTableViewController.m +++ b/APCAppCore/APCAppCore/Library/Parameters/APCParametersDashboardTableViewController.m @@ -381,7 +381,7 @@ - (void) parameters: (APCParameters *) __unused parameters [alertController setMessage:message]; UIAlertAction *okAction = [UIAlertAction - actionWithTitle:APCLocalizedString(@"OK", @"OK action") + actionWithTitle:NSLocalizedStringWithDefaultValue(@"OK", @"APCAppCore", APCBundle(), @"OK", @"OK action") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { diff --git a/APCAppCore/APCAppCore/Library/Permissions/APCPermissionsManager.m b/APCAppCore/APCAppCore/Library/Permissions/APCPermissionsManager.m index f78a478c..96ce08a3 100644 --- a/APCAppCore/APCAppCore/Library/Permissions/APCPermissionsManager.m +++ b/APCAppCore/APCAppCore/Library/Permissions/APCPermissionsManager.m @@ -396,15 +396,15 @@ - (HKObjectType*) objectTypeFromDictionary: (NSDictionary*) dictionary - (NSString *)permissionDescriptionForType:(APCSignUpPermissionsType)type { switch (type) { case kAPCSignUpPermissionsTypeHealthKit: - return APCLocalizedString(@"Press “Allow” to individually specify which general health information the app may read from and write to HealthKit", @""); + return NSLocalizedStringWithDefaultValue(@"Press “Allow” to individually specify which general health information the app may read from and write to HealthKit", @"APCAppCore", APCBundle(), @"Press “Allow” to individually specify which general health information the app may read from and write to HealthKit", @""); case kAPCSignUpPermissionsTypeLocalNotifications: - return APCLocalizedString(@"Allowing notifications enables the app to show you reminders.", @""); + return NSLocalizedStringWithDefaultValue(@"Allowing notifications enables the app to show you reminders.", @"APCAppCore", APCBundle(), @"Allowing notifications enables the app to show you reminders.", @""); case kAPCSignUpPermissionsTypeLocation: - return APCLocalizedString(@"Using your GPS enables the app to accurately determine distances travelled. Your actual location will never be shared.", @""); + return NSLocalizedStringWithDefaultValue(@"Using your GPS enables the app to accurately determine distances travelled. Your actual location will never be shared.", @"APCAppCore", APCBundle(), @"Using your GPS enables the app to accurately determine distances travelled. Your actual location will never be shared.", @""); case kAPCSignUpPermissionsTypeCoremotion: - return APCLocalizedString(@"Using the motion co-processor allows the app to determine your activity, helping the study better understand how activity level may influence disease.", @""); + return NSLocalizedStringWithDefaultValue(@"Using the motion co-processor allows the app to determine your activity, helping the study better understand how activity level may influence disease.", @"APCAppCore", APCBundle(), @"Using the motion co-processor allows the app to determine your activity, helping the study better understand how activity level may influence disease.", @""); case kAPCSignUpPermissionsTypeMicrophone: - return APCLocalizedString(@"Access to microphone is required for your Voice Recording Activity.", @""); + return NSLocalizedStringWithDefaultValue(@"Access to microphone is required for your Voice Recording Activity.", @"APCAppCore", APCBundle(), @"Access to microphone is required for your Voice Recording Activity.", @""); case kAPCSignUpPermissionsTypeCamera: case kAPCSignUpPermissionsTypePhotoLibrary: default: @@ -419,25 +419,25 @@ - (NSError *)permissionDeniedErrorForType:(APCSignUpPermissionsType)type switch (type) { case kAPCSignUpPermissionsTypeHealthKit: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Please go to Settings -> Privacy -> Health -> %@ to re-enable.", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Please go to Settings -> Privacy -> Health -> %@ to re-enable.", @"APCAppCore", APCBundle(), @"Please go to Settings -> Privacy -> Health -> %@ to re-enable.", nil), appName]; break; case kAPCSignUpPermissionsTypeLocalNotifications: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Tap on Settings -> Notifications and enable 'Allow Notifications'", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Tap on Settings -> Notifications and enable 'Allow Notifications'", @"APCAppCore", APCBundle(), @"Tap on Settings -> Notifications and enable 'Allow Notifications'", nil), appName]; break; case kAPCSignUpPermissionsTypeLocation: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Tap on Settings -> Location and check 'Always'", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Tap on Settings -> Location and check 'Always'", @"APCAppCore", APCBundle(), @"Tap on Settings -> Location and check 'Always'", nil), appName]; break; case kAPCSignUpPermissionsTypeCoremotion: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Tap on Settings and enable Motion Activity.", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Tap on Settings and enable Motion Activity.", @"APCAppCore", APCBundle(), @"Tap on Settings and enable Motion Activity.", nil), appName]; break; case kAPCSignUpPermissionsTypeMicrophone: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Tap on Settings and enable Microphone", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Tap on Settings and enable Microphone", @"APCAppCore", APCBundle(), @"Tap on Settings and enable Microphone", nil), appName]; break; case kAPCSignUpPermissionsTypeCamera: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Tap on Settings and enable Camera", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Tap on Settings and enable Camera", @"APCAppCore", APCBundle(), @"Tap on Settings and enable Camera", nil), appName]; break; case kAPCSignUpPermissionsTypePhotoLibrary: - message = [NSString localizedStringWithFormat:APCLocalizedString(@"Tap on Settings and enable Photos", nil), appName]; + message = [NSString localizedStringWithFormat:NSLocalizedStringWithDefaultValue(@"Tap on Settings and enable Photos", @"APCAppCore", APCBundle(), @"Tap on Settings and enable Photos", nil), appName]; break; default: message = @""; diff --git a/APCAppCore/APCAppCore/Resources/de.lproj/APCAppCore.strings b/APCAppCore/APCAppCore/Resources/de.lproj/APCAppCore.strings deleted file mode 100644 index e308ca4bf447aac2b1518dd6be7aa58216577e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39936 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 E0j2-zx&QzG diff --git a/APCAppCore/APCAppCore/Resources/en.lproj/APCAppCore.strings b/APCAppCore/APCAppCore/Resources/en.lproj/APCAppCore.strings deleted file mode 100644 index 5c4f16ede7e3a6a34dcec936effd9b8c9eb8ffd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50894 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 CFKNX9 diff --git a/APCAppCore/APCAppCore/Resources/fr.lproj/APCAppCore.strings b/APCAppCore/APCAppCore/Resources/fr.lproj/APCAppCore.strings deleted file mode 100644 index e308ca4bf447aac2b1518dd6be7aa58216577e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39936 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 E0j2-zx&QzG diff --git a/APCAppCore/APCAppCore/Startup/APCAppDelegate.m b/APCAppCore/APCAppCore/Startup/APCAppDelegate.m index 3abec0b8..1363b6e2 100644 --- a/APCAppCore/APCAppCore/Startup/APCAppDelegate.m +++ b/APCAppCore/APCAppCore/Startup/APCAppDelegate.m @@ -774,7 +774,7 @@ - (void)showTabBar { //Activities Tab - UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:APCLocalizedString(@"Activities", nil) image:[UIImage imageNamed:@"tab_activities"] selectedImage:[UIImage imageNamed:@"tab_activities_selected"]]; + UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Activities", @"APCAppCore", APCBundle(), @"Activities", nil) image:[UIImage imageNamed:@"tab_activities"] selectedImage:[UIImage imageNamed:@"tab_activities_selected"]]; [tabBarItems addObject:item]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:kActivitiesStoryBoardKey bundle:[NSBundle appleCoreBundle]]; @@ -784,7 +784,7 @@ - (void)showTabBar { //Dashboard Tab - UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:APCLocalizedString(@"Dashboard", nil) image:[UIImage imageNamed:@"tab_dashboard"] selectedImage:[UIImage imageNamed:@"tab_dashboard_selected"]]; + UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Dashboard", @"APCAppCore", APCBundle(), @"Dashboard", nil) image:[UIImage imageNamed:@"tab_dashboard"] selectedImage:[UIImage imageNamed:@"tab_dashboard_selected"]]; [tabBarItems addObject:item]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:kDashBoardStoryBoardKey bundle:[NSBundle mainBundle]]; @@ -794,7 +794,7 @@ - (void)showTabBar BOOL newsFeedTab = [self.initializationOptions[kNewsFeedTabKey] boolValue]; if (newsFeedTab) { - UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:APCLocalizedString(@"News Feed", nil) image:[UIImage imageNamed:@"tab_newsfeed"] selectedImage:[UIImage imageNamed:@"tab_newsfeed_selected"]]; + UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"News Feed", @"APCAppCore", APCBundle(), @"News Feed", nil) image:[UIImage imageNamed:@"tab_newsfeed"] selectedImage:[UIImage imageNamed:@"tab_newsfeed_selected"]]; [tabBarItems addObject:item]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:kNewsFeedStoryBoardKey bundle:[NSBundle appleCoreBundle]]; @@ -804,7 +804,7 @@ - (void)showTabBar { //Learn Tab - UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:APCLocalizedString(@"Learn", nil) image:[UIImage imageNamed:@"tab_learn"] selectedImage:[UIImage imageNamed:@"tab_learn_selected"]]; + UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Learn", @"APCAppCore", APCBundle(), @"Learn", nil) image:[UIImage imageNamed:@"tab_learn"] selectedImage:[UIImage imageNamed:@"tab_learn_selected"]]; [tabBarItems addObject:item]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:kLearnStoryBoardKey bundle:[NSBundle appleCoreBundle]]; @@ -814,7 +814,7 @@ - (void)showTabBar { //Profile Tab - UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:APCLocalizedString(@"Profile", nil) image:[UIImage imageNamed:@"tab_profile"] selectedImage:[UIImage imageNamed:@"tab_profile_selected"]]; + UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Profile", @"APCAppCore", APCBundle(), @"Profile", nil) image:[UIImage imageNamed:@"tab_profile"] selectedImage:[UIImage imageNamed:@"tab_profile_selected"]]; [tabBarItems addObject:item]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:kHealthProfileStoryBoardKey bundle:[NSBundle appleCoreBundle]]; diff --git a/APCAppCore/APCAppCore/UI/CollectionViewCells/APCStudyLandingCollectionViewCell.m b/APCAppCore/APCAppCore/UI/CollectionViewCells/APCStudyLandingCollectionViewCell.m index 69ddbfe6..5a4a31e5 100644 --- a/APCAppCore/APCAppCore/UI/CollectionViewCells/APCStudyLandingCollectionViewCell.m +++ b/APCAppCore/APCAppCore/UI/CollectionViewCells/APCStudyLandingCollectionViewCell.m @@ -64,9 +64,9 @@ - (void)setupAppearance self.swipeLabel.textColor = [UIColor appSecondaryColor3]; self.swipeLabel.font = [UIFont appMediumFontWithSize:15.f]; - [self.emailConsentButton setTitle:APCLocalizedString(@"Email Consent Document", @"Email Consent Document") forState:UIControlStateNormal]; + [self.emailConsentButton setTitle:NSLocalizedStringWithDefaultValue(@"Email Consent Document", @"APCAppCore", APCBundle(), @"Email Consent Document", @"Email Consent Document") forState:UIControlStateNormal]; - [self.readConsentButton setTitle:APCLocalizedString(@"Read Consent Document", @"Read Consent Document") forState:UIControlStateNormal]; + [self.readConsentButton setTitle:NSLocalizedStringWithDefaultValue(@"Read Consent Document", @"APCAppCore", APCBundle(), @"Read Consent Document", @"Read Consent Document") forState:UIControlStateNormal]; [self.readConsentButton setTitleColor:[UIColor appPrimaryColor] forState:UIControlStateNormal]; } diff --git a/APCAppCore/APCAppCore/UI/Components/APCPieGraphView.m b/APCAppCore/APCAppCore/UI/Components/APCPieGraphView.m index 24d9e503..4eb5cd69 100644 --- a/APCAppCore/APCAppCore/UI/Components/APCPieGraphView.m +++ b/APCAppCore/APCAppCore/UI/Components/APCPieGraphView.m @@ -112,7 +112,7 @@ - (void)sharedInit [_valueLabel setTextColor:[UIColor colorWithWhite:0.17 alpha:1.0]]; [_valueLabel setTextAlignment:NSTextAlignmentCenter]; - _emptyText = APCLocalizedString(@"No Data", @"No Data"); + _emptyText = NSLocalizedStringWithDefaultValue(@"No Data", @"APCAppCore", APCBundle(), @"No Data", @"No Data"); } - (void)setupEmptyView diff --git a/APCAppCore/APCAppCore/UI/Components/GraphCharts/APCBaseGraphView.m b/APCAppCore/APCAppCore/UI/Components/GraphCharts/APCBaseGraphView.m index 4adba106..255e1826 100644 --- a/APCAppCore/APCAppCore/UI/Components/GraphCharts/APCBaseGraphView.m +++ b/APCAppCore/APCAppCore/UI/Components/GraphCharts/APCBaseGraphView.m @@ -82,7 +82,7 @@ - (void)sharedInit _hidesYAxis = NO; _shouldHighlightXaxisLastTitle = YES; - _emptyText = APCLocalizedString(@"No Data", @"No Data"); + _emptyText = NSLocalizedStringWithDefaultValue(@"No Data", @"APCAppCore", APCBundle(), @"No Data", @"No Data"); } diff --git a/APCAppCore/APCAppCore/UI/Model/APCTableViewItem.m b/APCAppCore/APCAppCore/UI/Model/APCTableViewItem.m index c0a0d93f..013a9e01 100644 --- a/APCAppCore/APCAppCore/UI/Model/APCTableViewItem.m +++ b/APCAppCore/APCAppCore/UI/Model/APCTableViewItem.m @@ -165,10 +165,10 @@ +(NSAttributedString *)legendForSeries1:(NSString *) series1 series2:(NSString * UIColor *orange = [UIColor appTertiaryYellowColor]; UIColor *darkGray = [UIColor darkGrayColor]; - NSAttributedString *indexOf = [[NSAttributedString alloc]initWithString:APCLocalizedString(@"Index of", nil) attributes:@{NSFontAttributeName : font, NSForegroundColorAttributeName : darkGray }]; + NSAttributedString *indexOf = [[NSAttributedString alloc]initWithString:NSLocalizedStringWithDefaultValue(@"Index of", @"APCAppCore", APCBundle(), @"Index of", nil) attributes:@{NSFontAttributeName : font, NSForegroundColorAttributeName : darkGray }]; NSAttributedString *s1 = [[NSMutableAttributedString alloc]initWithString:series1 attributes:@{NSFontAttributeName : font, NSForegroundColorAttributeName : orange, NSUnderlineStyleAttributeName : @1 }]; NSAttributedString *space = [[NSAttributedString alloc]initWithString:@" "]; - NSAttributedString *versus = [[NSAttributedString alloc]initWithString:APCLocalizedString(@"vs", nil) attributes:@{NSFontAttributeName : font, NSForegroundColorAttributeName : darkGray }]; + NSAttributedString *versus = [[NSAttributedString alloc]initWithString:NSLocalizedStringWithDefaultValue(@"vs", @"APCAppCore", APCBundle(), @"vs", nil) attributes:@{NSFontAttributeName : font, NSForegroundColorAttributeName : darkGray }]; NSMutableAttributedString *legend = [[NSMutableAttributedString alloc]initWithAttributedString:indexOf]; [legend appendAttributedString:space]; @@ -209,7 +209,7 @@ - (NSString *)stringWithDoubleValue: (double)value { HKUnit *unit = self.graphData.unit; NSString *unitString = (self.hidesUnitString || !unit) ? @"" : unit.unitString; - return [NSString stringWithFormat:APCLocalizedString(@"%0.0f %@", nil), value, unitString]; + return [NSString stringWithFormat:NSLocalizedStringWithDefaultValue(@"%0.0f %@", @"APCAppCore", APCBundle(), @"%0.0f %@", nil), value, unitString]; } @end diff --git a/APCAppCore/APCAppCore/UI/Onboarding/APCShareViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/APCShareViewController.m index d3302e2e..2ff1ad1a 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/APCShareViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/APCShareViewController.m @@ -77,7 +77,7 @@ - (void)viewDidLoad { NSDictionary *initialOptions = ((APCAppDelegate *)[UIApplication sharedApplication].delegate).initializationOptions; self.shareMessage = initialOptions[kShareMessageKey]; - self.title = APCLocalizedString(@"Spread the Word", nil); + self.title = NSLocalizedStringWithDefaultValue(@"Spread the Word", @"APCAppCore", APCBundle(), @"Spread the Word", nil); } - (void)viewWillAppear:(BOOL)animated @@ -123,25 +123,25 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N switch (indexPath.row) { case kAPCShareTypeTwitter: { - cell.textLabel.text = APCLocalizedString(@"Share on Twitter", nil); + cell.textLabel.text = NSLocalizedStringWithDefaultValue(@"Share on Twitter", @"APCAppCore", APCBundle(), @"Share on Twitter", nil); cell.imageView.image = [[UIImage imageNamed:@"twitter_icon"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; } break; case kAPCShareTypeFacebook: { - cell.textLabel.text = APCLocalizedString(@"Share on Facebook", nil); + cell.textLabel.text = NSLocalizedStringWithDefaultValue(@"Share on Facebook", @"APCAppCore", APCBundle(), @"Share on Facebook", nil); cell.imageView.image = [[UIImage imageNamed:@"facebook_icon"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; } break; case kAPCShareTypeEmail: { - cell.textLabel.text = APCLocalizedString(@"Share via Email", nil); + cell.textLabel.text = NSLocalizedStringWithDefaultValue(@"Share via Email", @"APCAppCore", APCBundle(), @"Share via Email", nil); cell.imageView.image = [[UIImage imageNamed:@"email_icon"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; } break; case kAPCShareTypeSMS: { - cell.textLabel.text = APCLocalizedString(@"Share via SMS", nil); + cell.textLabel.text = NSLocalizedStringWithDefaultValue(@"Share via SMS", @"APCAppCore", APCBundle(), @"Share via SMS", nil); cell.imageView.image = [[UIImage imageNamed:@"sms_icon"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; } break; @@ -181,10 +181,10 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath [self presentViewController:mailComposeVC animated:YES completion:NULL]; } else { - NSString *message = APCLocalizedString(@"Looks like you don't have Mail app setup. Please configure to share via email.", nil); + NSString *message = NSLocalizedStringWithDefaultValue(@"Looks like you don't have Mail app setup. Please configure to share via email.", @"APCAppCore", APCBundle(), @"Looks like you don't have Mail app setup. Please configure to share via email.", nil); - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Email", nil) message:message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", nil) style:UIAlertActionStyleDefault handler:nil]; + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Email", @"APCAppCore", APCBundle(), @"Email", nil) message:message preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", nil) style:UIAlertActionStyleDefault handler:nil]; [alertController addAction:dismiss]; [self presentViewController:alertController animated:YES completion:nil]; } @@ -199,10 +199,10 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath [self presentViewController:messageComposer animated:YES completion:nil]; } else { - NSString *message = APCLocalizedString(@"Looks like you don't have Messages app setup. Please configure to share via SMS.", nil); + NSString *message = NSLocalizedStringWithDefaultValue(@"Looks like you don't have Messages app setup. Please configure to share via SMS.", @"APCAppCore", APCBundle(), @"Looks like you don't have Messages app setup. Please configure to share via SMS.", nil); - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Messages", nil) message:message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", nil) style:UIAlertActionStyleDefault handler:nil]; + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Messages", @"APCAppCore", APCBundle(), @"Messages", nil) message:message preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", nil) style:UIAlertActionStyleDefault handler:nil]; [alertController addAction:dismiss]; [self presentViewController:alertController animated:YES completion:nil]; } @@ -227,8 +227,8 @@ - (void)postMessageForServiceType:(NSString *)type [composeViewController setInitialText:self.shareMessage]; [self presentViewController:composeViewController animated:YES completion:nil]; } else { - NSString *updateTwitterClientMessage = APCLocalizedString(@"Your Twitter client does not support sharing from other apps. Please update your Twitter client.", nil); - UIAlertController *alertView = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Update Twitter Client", nil) + NSString *updateTwitterClientMessage = NSLocalizedStringWithDefaultValue(@"Your Twitter client does not support sharing from other apps. Please update your Twitter client.", @"APCAppCore", APCBundle(), @"Your Twitter client does not support sharing from other apps. Please update your Twitter client.", nil); + UIAlertController *alertView = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Update Twitter Client", @"APCAppCore", APCBundle(), @"Update Twitter Client", nil) message:updateTwitterClientMessage preferredStyle:UIAlertControllerStyleAlert]; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewCollectionViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewCollectionViewController.m index f5ea3b4c..dedc208e 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewCollectionViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewCollectionViewController.m @@ -110,7 +110,7 @@ - (NSArray *)prepareContent if (self.showShareRow){ APCTableViewStudyDetailsItem *shareStudyItem = [APCTableViewStudyDetailsItem new]; - shareStudyItem.caption = APCLocalizedString(@"Share this Study", nil); + shareStudyItem.caption = NSLocalizedStringWithDefaultValue(@"Share this Study", @"APCAppCore", APCBundle(), @"Share this Study", nil); shareStudyItem.iconImage = [UIImage imageNamed:@"share_icon"]; shareStudyItem.tintColor = [UIColor appTertiaryGreenColor]; @@ -127,7 +127,7 @@ - (NSArray *)prepareContent if (self.showConsentRow) { APCTableViewStudyDetailsItem *reviewConsentItem = [APCTableViewStudyDetailsItem new]; - reviewConsentItem.caption = APCLocalizedString(@"Review Consent", nil); + reviewConsentItem.caption = NSLocalizedStringWithDefaultValue(@"Review Consent", @"APCAppCore", APCBundle(), @"Review Consent", nil); reviewConsentItem.iconImage = [UIImage imageNamed:@"consent_icon"]; reviewConsentItem.tintColor = [UIColor appTertiaryPurpleColor]; @@ -398,7 +398,7 @@ - (void)studyVideoCollectionViewCellReadConsent:(APCStudyVideoCollectionViewCell { APCWebViewController *webViewController = [[UIStoryboard storyboardWithName:@"APCOnboarding" bundle:[NSBundle bundleForClass:[self class]]] instantiateViewControllerWithIdentifier:@"APCWebViewController"]; [webViewController.webView setDataDetectorTypes:UIDataDetectorTypeAll]; - webViewController.title = APCLocalizedString(@"Consent", @"Consent"); + webViewController.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", @"Consent"); UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:webViewController]; [self.navigationController presentViewController:navController animated:YES completion:^{ @@ -455,7 +455,7 @@ - (void)studyLandingCollectionViewCellReadConsent:(APCStudyLandingCollectionView { APCWebViewController *webViewController = [[UIStoryboard storyboardWithName:@"APCOnboarding" bundle:[NSBundle bundleForClass:[self class]]] instantiateViewControllerWithIdentifier:@"APCWebViewController"]; [webViewController.webView setDataDetectorTypes:UIDataDetectorTypeAll]; - webViewController.title = APCLocalizedString(@"Consent", @"Consent"); + webViewController.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", @"Consent"); UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:webViewController]; [self.navigationController presentViewController:navController animated:YES completion:^{ diff --git a/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewViewController.m index ab662389..8ffb2f40 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/APCStudyOverviewViewController.m @@ -104,7 +104,7 @@ - (NSArray *)prepareContent if (self.showShareRow){ APCTableViewStudyDetailsItem *shareStudyItem = [APCTableViewStudyDetailsItem new]; - shareStudyItem.caption = APCLocalizedString(@"Share this Study", nil); + shareStudyItem.caption = NSLocalizedStringWithDefaultValue(@"Share this Study", @"APCAppCore", APCBundle(), @"Share this Study", nil); shareStudyItem.iconImage = [UIImage imageNamed:@"share_icon"]; shareStudyItem.tintColor = [UIColor appTertiaryGreenColor]; @@ -121,7 +121,7 @@ - (NSArray *)prepareContent if (self.showConsentRow) { APCTableViewStudyDetailsItem *reviewConsentItem = [APCTableViewStudyDetailsItem new]; - reviewConsentItem.caption = APCLocalizedString(@"Review Consent", nil); + reviewConsentItem.caption = NSLocalizedStringWithDefaultValue(@"Review Consent", @"APCAppCore", APCBundle(), @"Review Consent", nil); reviewConsentItem.iconImage = [UIImage imageNamed:@"consent_icon"]; reviewConsentItem.tintColor = [UIColor appTertiaryPurpleColor]; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCChangeEmailViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCChangeEmailViewController.m index 896a4f23..1983ac7c 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCChangeEmailViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCChangeEmailViewController.m @@ -96,7 +96,7 @@ - (BOOL) isContentValid:(NSString **)errorMessage { BOOL isContentValid = NO; if (self.emailTextField.text.length == 0) { - *errorMessage = APCLocalizedString(@"Please enter your email address.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter your email address.", @"APCAppCore", APCBundle(), @"Please enter your email address.", @""); isContentValid = NO; } else { @@ -133,7 +133,7 @@ - (void)updateEmailAddress [spinnerController dismissViewControllerAnimated:NO completion:^{ - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"Dismiss") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"Dismiss") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; @@ -154,11 +154,11 @@ - (void)updateEmailAddress } else { - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Change Email", @"") message:APCLocalizedString(@"Please enter a valid email address", @"")]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Change Email", @"APCAppCore", APCBundle(), @"Change Email", @"") message:NSLocalizedStringWithDefaultValue(@"Please enter a valid email address", @"APCAppCore", APCBundle(), @"Please enter a valid email address", @"")]; [self presentViewController:alert animated:YES completion:nil]; } } else{ - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Change Email", @"") message:error]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Change Email", @"APCAppCore", APCBundle(), @"Change Email", @"") message:error]; [self presentViewController:alert animated:YES completion:nil]; } } diff --git a/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCEmailVerifyViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCEmailVerifyViewController.m index 5bf32935..b04bccb2 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCEmailVerifyViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/EmailVerification/APCEmailVerifyViewController.m @@ -97,7 +97,7 @@ - (void) viewDidLoad [self setupAppearance]; - self.title = APCLocalizedString(@"Email Verification", nil); + self.title = NSLocalizedStringWithDefaultValue(@"Email Verification", @"APCAppCore", APCBundle(), @"Email Verification", nil); self.pleaseCheckEmailAlert = nil; // Hide the "johnny appleseed@..." @@ -336,7 +336,7 @@ - (void) showConsentError: (NSError *) error [self hideSpinnerUsingAnimation: YES andThenDoThis:^{ - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"User Consent Error", @"") message:error.localizedDescription]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"User Consent Error", @"APCAppCore", APCBundle(), @"User Consent Error", @"") message:error.localizedDescription]; [self presentViewController:alert animated:YES completion:nil]; @@ -349,7 +349,7 @@ - (void) showSignInError: (NSError *) error [self hideSpinnerUsingAnimation: YES andThenDoThis:^{ - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"User Sign In Error", @"") message:error.localizedDescription]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"User Sign In Error", @"APCAppCore", APCBundle(), @"User Sign In Error", @"") message:error.localizedDescription]; [self presentViewController:alert animated:YES completion:nil]; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCForgotPasswordViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCForgotPasswordViewController.m index 71c439af..1ea9ea41 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCForgotPasswordViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCForgotPasswordViewController.m @@ -99,7 +99,7 @@ - (BOOL) isContentValid:(NSString **)errorMessage { BOOL isContentValid = NO; if (self.emailTextField.text.length == 0) { - *errorMessage = APCLocalizedString(@"Please enter your email address.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter your email address.", @"APCAppCore", APCBundle(), @"Please enter your email address.", @""); isContentValid = NO; } else { @@ -138,7 +138,7 @@ - (void) sendPassword if (error) { - NSString *errorTitle = APCLocalizedString (@"Forgot Password", @"This is the title for the message that appears when the user asked for a 'reset password,' and that 'resetting' process failed."); + NSString *errorTitle = NSLocalizedStringWithDefaultValue(@"Forgot Password", @"APCAppCore", APCBundle(), @"Forgot Password", @"This is the title for the message that appears when the user asked for a 'reset password,' and that 'resetting' process failed."); UIAlertController *alert = [UIAlertController simpleAlertWithTitle: errorTitle message: error.message]; @@ -148,7 +148,7 @@ - (void) sendPassword else { [UIView animateWithDuration:0.2 animations:^{ - weakSelf.emailMessageLabel.text = APCLocalizedString(@"An email has been sent.", @""); + weakSelf.emailMessageLabel.text = NSLocalizedStringWithDefaultValue(@"An email has been sent.", @"APCAppCore", APCBundle(), @"An email has been sent.", @""); weakSelf.emailMessageLabel.alpha = 1; weakSelf.resetButton.alpha = 0; } completion:^(BOOL __unused finished) { @@ -162,7 +162,7 @@ - (void) sendPassword } else { [UIView animateWithDuration:0.2 animations:^{ - self.emailMessageLabel.text = APCLocalizedString(@"Please enter a valid email address", @""); + self.emailMessageLabel.text = NSLocalizedStringWithDefaultValue(@"Please enter a valid email address", @"APCAppCore", APCBundle(), @"Please enter a valid email address", @""); self.emailMessageLabel.alpha = 1; }]; } diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCSignInViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCSignInViewController.m index 2a074471..7343afdc 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCSignInViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignIn/APCSignInViewController.m @@ -177,10 +177,10 @@ - (void) signIn } else { NSString *errorMessage = [error message]; errorMessage = [errorMessage isEqualToString:kServerInvalidEmailErrorString] ? - APCLocalizedString(@"Invalid email or password.\n\nIn case you have not verified your account, please do so by clicking the link in the email we have sent you.", nil) : + NSLocalizedStringWithDefaultValue(@"Invalid email or password.\n\nIn case you have not verified your account, please do so by clicking the link in the email we have sent you.", @"APCAppCore", APCBundle(), @"Invalid email or password.\n\nIn case you have not verified your account, please do so by clicking the link in the email we have sent you.", nil) : errorMessage; - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Sign In", @"") message:errorMessage]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Sign In", @"APCAppCore", APCBundle(), @"Sign In", @"") message:errorMessage]; [self presentViewController:alert animated:YES completion:nil]; } @@ -196,7 +196,7 @@ - (void) signIn if (error.code == kSBBServerPreconditionNotMet) { [self showConsent]; } else { - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Sign In", @"") message:error.message]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Sign In", @"APCAppCore", APCBundle(), @"Sign In", @"") message:error.message]; [self presentViewController:alert animated:YES completion:nil]; } @@ -210,7 +210,7 @@ - (void) signIn } }]; } else { - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Sign In", @"") message:errorMessage]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Sign In", @"APCAppCore", APCBundle(), @"Sign In", @"") message:errorMessage]; [self presentViewController:alert animated:YES completion:nil]; } } @@ -274,13 +274,13 @@ - (void)sendConsent - (void)handleConsentConflict { - UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Sign In", @"") message:APCLocalizedString(@"You have previously withdrawn from this Study. Do you wish to rejoin?", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *yesAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Rejoin", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Sign In", @"APCAppCore", APCBundle(), @"Sign In", @"") message:NSLocalizedStringWithDefaultValue(@"You have previously withdrawn from this Study. Do you wish to rejoin?", @"APCAppCore", APCBundle(), @"You have previously withdrawn from this Study. Do you wish to rejoin?", nil) preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *yesAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Rejoin", @"APCAppCore", APCBundle(), @"Rejoin", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [self rejoinStudy]; }]; [alertContorller addAction:yesAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertContorller addAction:cancelAction]; @@ -296,7 +296,7 @@ - (void)rejoinStudy if (error) { APCLogError2 (error); - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Sign In", @"") message:error.message]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Sign In", @"APCAppCore", APCBundle(), @"Sign In", @"") message:error.message]; [self presentViewController:alert animated:YES completion:nil]; } else { user.consented = YES; @@ -420,11 +420,11 @@ - (BOOL) isContentValid:(NSString **)errorMessage { BOOL isContentValid = NO; if (self.userHandleTextField.text.length == 0) { - *errorMessage = APCLocalizedString(@"Please enter your email", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter your email", @"APCAppCore", APCBundle(), @"Please enter your email", @""); isContentValid = NO; } else if (self.passwordTextField.text.length == 0) { - *errorMessage = APCLocalizedString(@"Please enter your password", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter your password", @"APCAppCore", APCBundle(), @"Please enter your password", @""); isContentValid = NO; } else { diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCAllSetContentViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCAllSetContentViewController.m index 9b87dedd..175e33f9 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCAllSetContentViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCAllSetContentViewController.m @@ -109,7 +109,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N switch (indexPath.row) { case APCAllSetRowActivities: { - NSString *original = APCLocalizedString(@"You’ll find your list of daily surveys and tasks on the “Activities” tab. New surveys and tasks will appear over the next few weeks.", nil); + NSString *original = NSLocalizedStringWithDefaultValue(@"You’ll find your list of daily surveys and tasks on the “Activities” tab. New surveys and tasks will appear over the next few weeks.", @"APCAppCore", APCBundle(), @"You’ll find your list of daily surveys and tasks on the “Activities” tab. New surveys and tasks will appear over the next few weeks.", nil); cell.originalText = original; @@ -135,7 +135,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N default: { - NSString *original = APCLocalizedString(@"To see your results from surveys and tasks, check your “Dashboard” tab.", nil); + NSString *original = NSLocalizedStringWithDefaultValue(@"To see your results from surveys and tasks, check your “Dashboard” tab.", @"APCAppCore", APCBundle(), @"To see your results from surveys and tasks, check your “Dashboard” tab.", nil); if (self.textBlocks) { for (NSDictionary *textBlock in self.textBlocks) { diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCEligibleViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCEligibleViewController.m index 3b201947..add2eb7c 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCEligibleViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCEligibleViewController.m @@ -106,7 +106,7 @@ - (void)showConsent self.consentVC = [((APCAppDelegate *)[UIApplication sharedApplication].delegate) consentViewController]; self.consentVC.delegate = self; - self.consentVC.navigationBar.topItem.title = APCLocalizedString(@"Consent", nil); + self.consentVC.navigationBar.topItem.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", nil); #ifndef APC_HAVE_CONSENT #warning Adding watermark label until you define "APC_HAVE_CONSENT" to indicate that you have a real consenting document UILabel *watermarkLabel = [APCExampleLabel watermarkInRect:self.consentVC.view.bounds diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCInclusionCriteriaViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCInclusionCriteriaViewController.m index 90218051..340df865 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCInclusionCriteriaViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCInclusionCriteriaViewController.m @@ -58,9 +58,9 @@ - (void)viewWillAppear:(BOOL)animated - (void)setupNavAppearance { - self.title = APCLocalizedString(@"Eligibility", @""); + self.title = NSLocalizedStringWithDefaultValue(@"Eligibility", @"APCAppCore", APCBundle(), @"Eligibility", @""); - UIBarButtonItem *nextBarButton = [[UIBarButtonItem alloc] initWithTitle:APCLocalizedString(@"Next", @"") style:UIBarButtonItemStylePlain target:self action:@selector(next)]; + UIBarButtonItem *nextBarButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedStringWithDefaultValue(@"Next", @"APCAppCore", APCBundle(), @"Next", @"") style:UIBarButtonItemStylePlain target:self action:@selector(next)]; nextBarButton.enabled = [self isContentValid]; self.navigationItem.rightBarButtonItem = nextBarButton; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCPermissionPrimingViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCPermissionPrimingViewController.m index 2e62e04c..3728944a 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCPermissionPrimingViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCPermissionPrimingViewController.m @@ -50,8 +50,8 @@ - (void)viewDidLoad { [self setupAppearance]; [self setupNavAppearance]; - self.title = APCLocalizedString(@"Consent", @"Consent"); - self.titleLabel.text = APCLocalizedString(@"What to Expect", @"What to Expect"); + self.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", @"Consent"); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"What to Expect", @"APCAppCore", APCBundle(), @"What to Expect", @"What to Expect"); APCPermissionsManager *permissionsManager = [self onboardingManager].permissionsManager; self.detailTextLabel.text = [permissionsManager permissionDescriptionForType:kAPCSignUpPermissionsTypeHealthKit]; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpGeneralInfoViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpGeneralInfoViewController.m index f46ac971..469dc1bc 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpGeneralInfoViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpGeneralInfoViewController.m @@ -80,8 +80,8 @@ - (void) viewDidLoad { self.items = [self prepareContent]; - self.permissionButton.unconfirmedTitle = APCLocalizedString(@"Enter the study and contribute your data", @""); - self.permissionButton.confirmedTitle = APCLocalizedString(@"Enter the study and contribute your data", @""); + self.permissionButton.unconfirmedTitle = NSLocalizedStringWithDefaultValue(@"Enter the study and contribute your data", @"APCAppCore", APCBundle(), @"Enter the study and contribute your data", @""); + self.permissionButton.confirmedTitle = NSLocalizedStringWithDefaultValue(@"Enter the study and contribute your data", @"APCAppCore", APCBundle(), @"Enter the study and contribute your data", @""); self.permissionButton.attributed = NO; self.permissionButton.alignment = kAPCPermissionButtonAlignmentLeft; @@ -142,7 +142,7 @@ - (void)setupAppearance [super setupAppearance]; self.footerLabel.font = [UIFont appRegularFontWithSize:16.0f]; - self.footerLabel.text = APCLocalizedString(@"Sage Bionetworks, a non-profit biomedical research institute, is helping to collect data for this study and distribute it to the study investigators and other researchers. Please provide a unique email address and password to create a secure account.", @""); + self.footerLabel.text = NSLocalizedStringWithDefaultValue(@"Sage Bionetworks, a non-profit biomedical research institute, is helping to collect data for this study and distribute it to the study investigators and other researchers. Please provide a unique email address and password to create a secure account.", @"APCAppCore", APCBundle(), @"Sage Bionetworks, a non-profit biomedical research institute, is helping to collect data for this study and distribute it to the study investigators and other researchers. Please provide a unique email address and password to create a secure account.", @""); self.footerLabel.textColor = [UIColor appSecondaryColor2]; } @@ -192,8 +192,8 @@ - (NSArray *)prepareContent { { APCTableViewTextFieldItem *field = [APCTableViewTextFieldItem new]; - field.caption = APCLocalizedString(@"Password", @""); - field.placeholder = APCLocalizedString(@"add password", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Password", @"APCAppCore", APCBundle(), @"Password", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"add password", @"APCAppCore", APCBundle(), @"add password", @""); field.keyboardType = UIKeyboardTypeASCIICapable; field.returnKeyType = UIReturnKeyNext; field.identifier = kAPCTextFieldTableViewCellIdentifier; @@ -213,8 +213,8 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeDateOfBirth: { APCTableViewDatePickerItem *field = [APCTableViewDatePickerItem new]; - field.caption = APCLocalizedString(@"Birthdate", @""); - field.placeholder = APCLocalizedString(@"add birthdate", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Birthdate", @"APCAppCore", APCBundle(), @"Birthdate", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"add birthdate", @"APCAppCore", APCBundle(), @"add birthdate", @""); field.datePickerMode = UIDatePickerModeDate; field.style = UITableViewCellStyleValue1; field.selectionStyle = UITableViewCellSelectionStyleGray; @@ -456,7 +456,7 @@ - (BOOL) isContentValid:(NSString **)errorMessage { isContentValid = [[(APCTableViewTextFieldItem *)item value] isValidForRegex:kAPCGeneralInfoItemEmailRegEx]; if (errorMessage) { - *errorMessage = APCLocalizedString(@"Please enter a valid email address.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter a valid email address.", @"APCAppCore", APCBundle(), @"Please enter a valid email address.", @""); } } break; @@ -467,14 +467,14 @@ - (BOOL) isContentValid:(NSString **)errorMessage { isContentValid = NO; if (errorMessage) { - *errorMessage = APCLocalizedString(@"Please enter a Password.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter a Password.", @"APCAppCore", APCBundle(), @"Please enter a Password.", @""); } } else if ([[(APCTableViewTextFieldItem *)item value] length] < kAPCPasswordMinimumLength) { isContentValid = NO; if (errorMessage) { - *errorMessage = [NSString stringWithFormat:APCLocalizedString(@"Password should be at least %d characters", ), kAPCPasswordMinimumLength]; + *errorMessage = [NSString stringWithFormat:NSLocalizedStringWithDefaultValue(@"Password should be at least %d characters", @"APCAppCore", APCBundle(), @"Password should be at least %d characters", @"Description of password requirements, to be filled in with the minimum password length"), kAPCPasswordMinimumLength]; } } } @@ -514,11 +514,11 @@ - (BOOL)isFieldValid:(APCTableViewTextFieldItem *)item forType:(APCTableViewItem fieldValid = [self.emailTextField.text isValidForRegex:kAPCGeneralInfoItemEmailRegEx]; if (errorMessage && !fieldValid) { - *errorMessage = APCLocalizedString(@"Please enter a valid email address.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter a valid email address.", @"APCAppCore", APCBundle(), @"Please enter a valid email address.", @""); } } else { if (errorMessage && !fieldValid) { - *errorMessage = APCLocalizedString(@"Email address cannot be left empty.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Email address cannot be left empty.", @"APCAppCore", APCBundle(), @"Email address cannot be left empty.", @""); } } @@ -526,7 +526,7 @@ - (BOOL)isFieldValid:(APCTableViewTextFieldItem *)item forType:(APCTableViewItem if (self.nameTextField.text.length == 0) { if (errorMessage && !fieldValid) { - *errorMessage = APCLocalizedString(@"Name cannot be left empty.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Name cannot be left empty.", @"APCAppCore", APCBundle(), @"Name cannot be left empty.", @""); } } else { fieldValid = YES; @@ -537,12 +537,12 @@ - (BOOL)isFieldValid:(APCTableViewTextFieldItem *)item forType:(APCTableViewItem if ([[item value] length] == 0) { if (errorMessage) { - *errorMessage = APCLocalizedString(@"Please enter a Password.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter a Password.", @"APCAppCore", APCBundle(), @"Please enter a Password.", @""); } } else if ([[item value] length] < kAPCPasswordMinimumLength) { if (errorMessage) { - *errorMessage = [NSString stringWithFormat:APCLocalizedString(@"Password should be at least %d characters", ), kAPCPasswordMinimumLength]; + *errorMessage = [NSString stringWithFormat:NSLocalizedStringWithDefaultValue(@"Password should be at least %d characters", @"APCAppCore", APCBundle(), @"Password should be at least %d characters", @"Description of password requirements, to be filled in with the minimum password length"), kAPCPasswordMinimumLength]; } } else { fieldValid = YES; @@ -612,7 +612,7 @@ - (void) validateContent { [self next]; } else { - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"General Information", @"") message:message]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"General Information", @"APCAppCore", APCBundle(), @"General Information", @"") message:message]; [self presentViewController:alert animated:YES completion:nil]; } } @@ -691,7 +691,7 @@ - (IBAction)next if (error.code == kSBBInternetNotConnected || error.code == kSBBServerNotReachable || error.code == kSBBServerUnderMaintenance) { [spinnerController dismissViewControllerAnimated:NO completion:^{ - UIAlertController *alertView = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Sign Up", @"") + UIAlertController *alertView = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Sign Up", @"APCAppCore", APCBundle(), @"Sign Up", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; @@ -704,14 +704,14 @@ - (IBAction)next } else { [spinnerController dismissViewControllerAnimated:NO completion:^{ - UIAlertController *alertView = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Sign Up", @"") + UIAlertController *alertView = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Sign Up", @"APCAppCore", APCBundle(), @"Sign Up", @"") message:error.message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* okAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Change Details", @"") style:UIAlertActionStyleDefault + UIAlertAction* okAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Change Details", @"APCAppCore", APCBundle(), @"Change Details", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) {}]; - UIAlertAction* changeAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Send Again", nil) style:UIAlertActionStyleDefault + UIAlertAction* changeAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Send Again", @"APCAppCore", APCBundle(), @"Send Again", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) {[self next];}]; @@ -748,7 +748,7 @@ - (IBAction)changeProfileImage:(id) __unused sender __weak typeof(self) weakSelf = self; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Take Photo", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Take Photo", @"APCAppCore", APCBundle(), @"Take Photo", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [self.permissionsManager requestForPermissionForType:kAPCSignUpPermissionsTypeCamera withCompletion:^(BOOL granted, NSError *error) { if (granted) { @@ -766,7 +766,7 @@ - (IBAction)changeProfileImage:(id) __unused sender [alertController addAction:cameraAction]; } - UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Choose from Library", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Choose from Library", @"APCAppCore", APCBundle(), @"Choose from Library", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [self.permissionsManager requestForPermissionForType:kAPCSignUpPermissionsTypePhotoLibrary withCompletion:^(BOOL granted, NSError *error) { if (granted) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -781,7 +781,7 @@ - (IBAction)changeProfileImage:(id) __unused sender }]; [alertController addAction:libraryAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertController addAction:cancelAction]; @@ -811,12 +811,12 @@ - (void)openPhotoLibrary - (void)presentSettingsAlert:(NSError *)error { - UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Permissions Denied", @"APCAppCore", APCBundle(), @"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { }]; [alertContorller addAction:dismiss]; - UIAlertAction *settings = [UIAlertAction actionWithTitle:APCLocalizedString(@"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *settings = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Settings", @"APCAppCore", APCBundle(), @"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }]; [alertContorller addAction:settings]; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpInfoViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpInfoViewController.m index c45bd2ef..392521f9 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpInfoViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpInfoViewController.m @@ -99,7 +99,7 @@ - (void)viewWillAppear:(BOOL)animated - (void)setStepNumber:(NSUInteger)stepNumber title:(NSString *)title { - NSString *step = [NSString stringWithFormat:APCLocalizedString(@"Step %i", @""), stepNumber]; + NSString *step = [NSString stringWithFormat:NSLocalizedStringWithDefaultValue(@"Step %i", @"APCAppCore", APCBundle(), @"Step %i", @""), stepNumber]; NSString *string = [NSString stringWithFormat:@"%@: %@", step, title]; @@ -212,7 +212,7 @@ - (BOOL) isContentValid:(NSString **)errorMessage { isContentValid = NO; if (errorMessage) { - *errorMessage = APCLocalizedString(@"Please enter a valid email address.", @""); + *errorMessage = NSLocalizedStringWithDefaultValue(@"Please enter a valid email address.", @"APCAppCore", APCBundle(), @"Please enter a valid email address.", @""); } } } diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpMedicalInfoViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpMedicalInfoViewController.m index 0566f0dd..472a4434 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpMedicalInfoViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpMedicalInfoViewController.m @@ -80,7 +80,7 @@ - (void)viewDidLoad { }]; } - self.title = APCLocalizedString(@"Additional Information", @"Additional Information"); + self.title = NSLocalizedStringWithDefaultValue(@"Additional Information", @"APCAppCore", APCBundle(), @"Additional Information", @"Additional Information"); } - (void)viewDidAppear:(BOOL)animated { @@ -102,7 +102,7 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeBloodType: { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Blood Type", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Blood Type", @"APCAppCore", APCBundle(), @"Blood Type", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.selectionStyle = UITableViewCellSelectionStyleGray; field.detailDiscloserStyle = YES; @@ -126,7 +126,7 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeMedicalCondition: { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Medical Conditions", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Medical Conditions", @"APCAppCore", APCBundle(), @"Medical Conditions", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.selectionStyle = UITableViewCellSelectionStyleGray; field.detailDiscloserStyle = YES; @@ -149,7 +149,7 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeMedication: { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Medications", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Medications", @"APCAppCore", APCBundle(), @"Medications", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.selectionStyle = UITableViewCellSelectionStyleGray; field.detailDiscloserStyle = YES; @@ -173,7 +173,7 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeHeight: { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Height", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Height", @"APCAppCore", APCBundle(), @"Height", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.selectionStyle = UITableViewCellSelectionStyleGray; field.detailDiscloserStyle = YES; @@ -217,8 +217,8 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeWeight: { APCTableViewTextFieldItem *field = [APCTableViewTextFieldItem new]; - field.caption = APCLocalizedString(@"Weight", @""); - field.placeholder = APCLocalizedString(@"add weight (lb)", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Weight", @"APCAppCore", APCBundle(), @"Weight", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"add weight (lb)", @"APCAppCore", APCBundle(), @"add weight (lb)", @""); field.style = UITableViewCellStyleValue1; field.identifier = kAPCTextFieldTableViewCellIdentifier; field.regularExpression = kAPCMedicalInfoItemWeightRegEx; @@ -239,7 +239,7 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeWakeUpTime: { APCTableViewDatePickerItem *field = [APCTableViewDatePickerItem new]; - field.caption = APCLocalizedString(@"What time do you generally wake up?", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"What time do you generally wake up?", @"APCAppCore", APCBundle(), @"What time do you generally wake up?", @""); field.placeholder = @"07:00 AM"; field.identifier = kAPCDefaultTableViewCellIdentifier; field.selectionStyle = UITableViewCellSelectionStyleGray; @@ -268,7 +268,7 @@ - (NSArray *)prepareContent { case kAPCUserInfoItemTypeSleepTime: { APCTableViewDatePickerItem *field = [APCTableViewDatePickerItem new]; - field.caption = APCLocalizedString(@"What time do you generally go to sleep?", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"What time do you generally go to sleep?", @"APCAppCore", APCBundle(), @"What time do you generally go to sleep?", @""); field.placeholder = @"09:30 PM"; field.style = UITableViewCellStyleValue1; field.identifier = kAPCDefaultTableViewCellIdentifier; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpPermissionsViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpPermissionsViewController.m index 653aaefa..b1fb0763 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpPermissionsViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignUpPermissionsViewController.m @@ -132,7 +132,7 @@ - (NSArray *)prepareData APCTableViewPermissionsItem *item = [APCTableViewPermissionsItem new]; item.permissionType = kAPCSignUpPermissionsTypeHealthKit; item.permissionGranted = [self.permissionsManager isPermissionsGrantedForType:item.permissionType]; - item.caption = APCLocalizedString(@"Health Kit", @""); + item.caption = NSLocalizedStringWithDefaultValue(@"Health Kit", @"APCAppCore", APCBundle(), @"Health Kit", @""); item.detailText = [_permissionsManager permissionDescriptionForType:kAPCSignUpPermissionsTypeHealthKit]; [items addObject:item]; } @@ -142,7 +142,7 @@ - (NSArray *)prepareData APCTableViewPermissionsItem *item = [APCTableViewPermissionsItem new]; item.permissionType = kAPCSignUpPermissionsTypeLocation; item.permissionGranted = [self.permissionsManager isPermissionsGrantedForType:item.permissionType]; - item.caption = APCLocalizedString(@"Location Services", @""); + item.caption = NSLocalizedStringWithDefaultValue(@"Location Services", @"APCAppCore", APCBundle(), @"Location Services", @""); item.detailText = [_permissionsManager permissionDescriptionForType:kAPCSignUpPermissionsTypeLocation]; [items addObject:item]; } @@ -153,7 +153,7 @@ - (NSArray *)prepareData APCTableViewPermissionsItem *item = [APCTableViewPermissionsItem new]; item.permissionType = kAPCSignUpPermissionsTypeCoremotion; item.permissionGranted = [self.permissionsManager isPermissionsGrantedForType:item.permissionType]; - item.caption = APCLocalizedString(@"Motion Activity", @""); + item.caption = NSLocalizedStringWithDefaultValue(@"Motion Activity", @"APCAppCore", APCBundle(), @"Motion Activity", @""); item.detailText = [_permissionsManager permissionDescriptionForType:kAPCSignUpPermissionsTypeCoremotion]; [items addObject:item]; } @@ -164,7 +164,7 @@ - (NSArray *)prepareData APCTableViewPermissionsItem *item = [APCTableViewPermissionsItem new]; item.permissionType = kAPCSignUpPermissionsTypeLocalNotifications; item.permissionGranted = [self.permissionsManager isPermissionsGrantedForType:item.permissionType]; - item.caption = APCLocalizedString(@"Notifications", @""); + item.caption = NSLocalizedStringWithDefaultValue(@"Notifications", @"APCAppCore", APCBundle(), @"Notifications", @""); item.detailText = [_permissionsManager permissionDescriptionForType:kAPCSignUpPermissionsTypeLocalNotifications]; [items addObject:item]; } @@ -174,7 +174,7 @@ - (NSArray *)prepareData APCTableViewPermissionsItem *item = [APCTableViewPermissionsItem new]; item.permissionType = kAPCSignUpPermissionsTypeMicrophone; item.permissionGranted = [self.permissionsManager isPermissionsGrantedForType:item.permissionType]; - item.caption = APCLocalizedString(@"Microphone", @""); + item.caption = NSLocalizedStringWithDefaultValue(@"Microphone", @"APCAppCore", APCBundle(), @"Microphone", @""); item.detailText = [_permissionsManager permissionDescriptionForType:kAPCSignUpPermissionsTypeMicrophone]; [items addObject:item]; } @@ -267,12 +267,12 @@ - (void)permissionsCellTappedPermissionsButton:(APCPermissionsCell *)cell - (void)presentSettingsAlert:(NSError *)error { - UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *__unused action) { + UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Permissions Denied", @"APCAppCore", APCBundle(), @"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *__unused action) { }]; [alertContorller addAction:dismiss]; - UIAlertAction *settings = [UIAlertAction actionWithTitle:APCLocalizedString(@"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *settings = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Settings", @"APCAppCore", APCBundle(), @"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }]; [alertContorller addAction:settings]; diff --git a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignupPasscodeViewController.m b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignupPasscodeViewController.m index c27591eb..020d86be 100644 --- a/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignupPasscodeViewController.m +++ b/APCAppCore/APCAppCore/UI/Onboarding/SignUp/APCSignupPasscodeViewController.m @@ -73,7 +73,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.titleLabel.text = APCLocalizedString(@"Select a 4-digit passcode. Setting up a passcode will help provide quick and secure access to this application.", @""); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Select a 4-digit passcode. Setting up a passcode will help provide quick and secure access to this application.", @"APCAppCore", APCBundle(), @"Select a 4-digit passcode. Setting up a passcode will help provide quick and secure access to this application.", @""); self.passcodeView.delegate = self; self.retryPasscodeView.delegate = self; @@ -134,7 +134,7 @@ - (void)passcodeViewDidFinish:(APCPasscodeView *)passcodeView withCode:(NSString [self savePasscode]; } else { - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Identification", @"") message:APCLocalizedString(@"Your passcodes are not identical. Please enter it again.", @"")]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Identification", @"APCAppCore", APCBundle(), @"Identification", @"") message:NSLocalizedStringWithDefaultValue(@"Your passcodes are not identical. Please enter it again.", @"APCAppCore", APCBundle(), @"Your passcodes are not identical. Please enter it again.", @"")]; __weak typeof(self) weakSelf = self; [self presentViewController:alert animated:YES completion:^{[weakSelf showFirstTry];}]; } @@ -157,7 +157,7 @@ - (void)showFirstTry self.passcodeView.hidden = NO; self.retryPasscodeView.hidden = YES; - self.titleLabel.text = APCLocalizedString(@"Select a 4-digit passcode. Setting up a passcode will help provide quick and secure access to this application.", @""); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Select a 4-digit passcode. Setting up a passcode will help provide quick and secure access to this application.", @"APCAppCore", APCBundle(), @"Select a 4-digit passcode. Setting up a passcode will help provide quick and secure access to this application.", @""); [self.passcodeView becomeFirstResponder]; [self.passcodeView reset]; @@ -168,7 +168,7 @@ - (void)showRetry self.passcodeView.hidden = YES; self.retryPasscodeView.hidden = NO; - self.titleLabel.text = APCLocalizedString(@"Re-enter your passcode", @""); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Re-enter your passcode", @"APCAppCore", APCBundle(), @"Re-enter your passcode", @""); [self.retryPasscodeView becomeFirstResponder]; [self.retryPasscodeView reset]; diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Activities/APCActivitiesViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Activities/APCActivitiesViewController.m index e85248de..8adf4381 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Activities/APCActivitiesViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Activities/APCActivitiesViewController.m @@ -92,7 +92,7 @@ - (void) viewDidLoad { [super viewDidLoad]; - self.navigationItem.title = APCLocalizedString(@"Activities", @"Activities"); + self.navigationItem.title = NSLocalizedStringWithDefaultValue(@"Activities", @"APCAppCore", APCBundle(), @"Activities", @"Activities"); self.tableView.backgroundColor = [UIColor appSecondaryColor4]; NSString *headerViewNibName = NSStringFromClass ([APCActivitiesSectionHeaderView class]); @@ -307,11 +307,11 @@ - (void) tableView: (UITableView *) tableView - (void)presentSettingsAlert:(NSError *)error { - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *__unused action) { + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Permissions Denied", @"APCAppCore", APCBundle(), @"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *__unused action) { }]; [alertController addAction:dismiss]; - UIAlertAction *settings = [UIAlertAction actionWithTitle:APCLocalizedString(@"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *settings = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Settings", @"APCAppCore", APCBundle(), @"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { // Common misconception, this takes user to our app's settings page, not general settings page [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }]; diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCCorrelationsSelectorViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCCorrelationsSelectorViewController.m index 1b6ca161..a30ede76 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCCorrelationsSelectorViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCCorrelationsSelectorViewController.m @@ -92,11 +92,11 @@ - (UIView *)tableView:(UITableView *)__unused tableView viewForHeaderInSection:( if (section == 0) { headerView = [[UITableViewHeaderFooterView alloc]init]; - headerView.textLabel.text = APCLocalizedString(@"Select Series 1", nil); + headerView.textLabel.text = NSLocalizedStringWithDefaultValue(@"Select Series 1", @"APCAppCore", APCBundle(), @"Select Series 1", nil); }else{ if (self.section0Selected) { headerView = [[UITableViewHeaderFooterView alloc]init]; - headerView.textLabel.text = APCLocalizedString(@"Select Series 2", nil); + headerView.textLabel.text = NSLocalizedStringWithDefaultValue(@"Select Series 2", @"APCAppCore", APCBundle(), @"Select Series 2", nil); } } diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCDashboardViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCDashboardViewController.m index dee1178d..2d597437 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCDashboardViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCDashboardViewController.m @@ -148,10 +148,10 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N APCDashboardProgressTableViewCell *progressCell = (APCDashboardProgressTableViewCell *)cell; progressCell.progressView.progress = progressItem.progress; - progressCell.title = APCLocalizedString(@"Activity Completion", @"Activity Completion"); + progressCell.title = NSLocalizedStringWithDefaultValue(@"Activity Completion", @"APCAppCore", APCBundle(), @"Activity Completion", @"Activity Completion"); [self.dateFormatter setDateFormat:@"MMMM d"]; - progressCell.subTitleLabel.text = [NSString stringWithFormat:@"%@, %@", APCLocalizedString(@"Today",@"Today"), [self.dateFormatter stringFromDate:[NSDate date]]]; + progressCell.subTitleLabel.text = [NSString stringWithFormat:@"%@, %@", NSLocalizedStringWithDefaultValue(@"Today", @"APCAppCore", APCBundle(), @"Today", @"Today"), [self.dateFormatter stringFromDate:[NSDate date]]]; progressCell.delegate = self; diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCGraphViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCGraphViewController.m index 3e72f1d5..305eb86f 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCGraphViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Dashboard/APCGraphViewController.m @@ -144,9 +144,9 @@ - (void)setSubTitleText NSInteger numberOfPoints = [[self.graphItem.graphData numberOfDataPoints] integerValue]; if (self.graphItem.graphType == kAPCDashboardGraphTypeLine) { - self.subTitleLabel.text = (numberOfPoints > 1) ? [NSString stringWithFormat:@"%@ : %@", APCLocalizedString(@"Average", nil),[self.graphItem averageValueString]] : @""; + self.subTitleLabel.text = (numberOfPoints > 1) ? [NSString stringWithFormat:@"%@ : %@", NSLocalizedStringWithDefaultValue(@"Average", @"APCAppCore", APCBundle(), @"Average", nil),[self.graphItem averageValueString]] : @""; } else { - self.subTitleLabel.text = (numberOfPoints > 0) ? [NSString stringWithFormat:@"%@ : %@ %@ : %@", APCLocalizedString(@"Min", nil), [self.graphItem minimumValueString], APCLocalizedString(@"Max", nil), [self.graphItem maximumValueString]] : @""; + self.subTitleLabel.text = (numberOfPoints > 0) ? [NSString stringWithFormat:@"%@ : %@ %@ : %@", NSLocalizedStringWithDefaultValue(@"Min", @"APCAppCore", APCBundle(), @"Min", nil), [self.graphItem minimumValueString], NSLocalizedStringWithDefaultValue(@"Max", @"APCAppCore", APCBundle(), @"Max", nil), [self.graphItem maximumValueString]] : @""; } } diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/NewsFeed/APCNewsFeedViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/NewsFeed/APCNewsFeedViewController.m index 9b9967a7..816d9325 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/NewsFeed/APCNewsFeedViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/NewsFeed/APCNewsFeedViewController.m @@ -58,7 +58,7 @@ - (void)viewDidLoad { self.dateFormatter = [NSDateFormatter new]; self.dateFormatter.dateFormat = @"MM/dd/yy"; - self.title = APCLocalizedString(@"News Feed", nil); + self.title = NSLocalizedStringWithDefaultValue(@"News Feed", @"APCAppCore", APCBundle(), @"News Feed", nil); [self setupAppearance]; } @@ -86,7 +86,7 @@ - (void)setupAppearance self.emptyLabel = [UILabel new]; self.emptyLabel.frame = self.tableView.bounds; - self.emptyLabel.text = APCLocalizedString(@"There's nothing here yet.", nil); + self.emptyLabel.text = NSLocalizedStringWithDefaultValue(@"There's nothing here yet.", @"APCAppCore", APCBundle(), @"There's nothing here yet.", nil); self.emptyLabel.textColor = [UIColor appSecondaryColor3]; self.emptyLabel.textAlignment = NSTextAlignmentCenter; self.emptyLabel.font = [UIFont appMediumFontWithSize:22]; @@ -166,7 +166,7 @@ - (void)refreshFeed if (!error) { strongSelf.posts = posts; } else { - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Fetch Error",nil) message:APCLocalizedString(@"An error occured while fetching news feed.",nil)]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Fetch Error", @"APCAppCore", APCBundle(), @"Fetch Error", nil) message:NSLocalizedStringWithDefaultValue(@"An error occured while fetching news feed.", @"APCAppCore", APCBundle(), @"An error occured while fetching news feed.", nil)]; [strongSelf presentViewController:alert animated:YES completion:nil]; } diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCChangePasscodeViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCChangePasscodeViewController.m index e9f4ded7..abe389f0 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCChangePasscodeViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCChangePasscodeViewController.m @@ -65,7 +65,7 @@ - (void)viewDidLoad { self.passcodeView.delegate = self; [self setupAppearance]; - self.textLabel.text = APCLocalizedString(@"Enter your old passcode", nil); + self.textLabel.text = NSLocalizedStringWithDefaultValue(@"Enter your old passcode", @"APCAppCore", APCBundle(), @"Enter your old passcode", nil); } - (void)viewDidAppear:(BOOL)animated { @@ -91,14 +91,14 @@ - (void)passcodeViewDidFinish:(APCPasscodeView *)passcodeView withCode:(NSString case kAPCPasscodeEntryTypeOld: { if ([passcodeView.code isEqualToString:[APCKeychainStore passcode]]) { - self.textLabel.text = APCLocalizedString(@"Enter your new passcode", nil); + self.textLabel.text = NSLocalizedStringWithDefaultValue(@"Enter your new passcode", @"APCAppCore", APCBundle(), @"Enter your new passcode", nil); [passcodeView reset]; [passcodeView becomeFirstResponder]; self.entryType = kAPCPasscodeEntryTypeNew; } else { - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Wrong Passcode", nil) message:APCLocalizedString(@"Please enter again.", nil) preferredStyle:UIAlertControllerStyleAlert]; + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Wrong Passcode", @"APCAppCore", APCBundle(), @"Wrong Passcode", nil) message:NSLocalizedStringWithDefaultValue(@"Please enter again.", @"APCAppCore", APCBundle(), @"Please enter again.", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *okayAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *okayAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"OK", @"APCAppCore", APCBundle(), @"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [passcodeView reset]; [passcodeView becomeFirstResponder]; }]; @@ -110,7 +110,7 @@ - (void)passcodeViewDidFinish:(APCPasscodeView *)passcodeView withCode:(NSString break; case kAPCPasscodeEntryTypeNew: { - self.textLabel.text = APCLocalizedString(@"Re-enter your new passcode", nil); + self.textLabel.text = NSLocalizedStringWithDefaultValue(@"Re-enter your new passcode", @"APCAppCore", APCBundle(), @"Re-enter your new passcode", nil); self.passcode = passcodeView.code; [passcodeView reset]; [passcodeView becomeFirstResponder]; @@ -127,7 +127,7 @@ - (void)passcodeViewDidFinish:(APCPasscodeView *)passcodeView withCode:(NSString [passcodeView becomeFirstResponder]; self.entryType = kAPCPasscodeEntryTypeReEnter; - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Wrong Passcode", nil) message:APCLocalizedString(@"The passcode you entered did not match your new passcode. Please enter again.", nil)]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Wrong Passcode", @"APCAppCore", APCBundle(), @"Wrong Passcode", nil) message:NSLocalizedStringWithDefaultValue(@"The passcode you entered did not match your new passcode. Please enter again.", @"APCAppCore", APCBundle(), @"The passcode you entered did not match your new passcode. Please enter again.", nil)]; [self presentViewController:alert animated:YES completion:nil]; } diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCDownloadDataViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCDownloadDataViewController.m index 9cb7df7e..353f18a4 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCDownloadDataViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCDownloadDataViewController.m @@ -156,7 +156,7 @@ - (IBAction)downloadData:(id) __unused sender { [spinnerController dismissViewControllerAnimated:NO completion:^{ - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"Dismiss") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"Dismiss") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; @@ -169,11 +169,11 @@ - (IBAction)downloadData:(id) __unused sender { else { [spinnerController dismissViewControllerAnimated:NO completion:^{ - UIAlertAction *doneAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Okay", @"Okay") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *doneAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Okay", @"APCAppCore", APCBundle(), @"Okay", @"Okay") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { [weakSelf dismissViewControllerAnimated:YES completion:nil]; }]; - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Success", @"Success") - message:APCLocalizedString(@"Your data will be emailed to you shortly", @"Your data will be emailed to you shortly") + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Success", @"APCAppCore", APCBundle(), @"Success", @"Success") + message:NSLocalizedStringWithDefaultValue(@"Your data will be emailed to you shortly", @"APCAppCore", APCBundle(), @"Your data will be emailed to you shortly", @"Your data will be emailed to you shortly") preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:doneAction]; diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCProfileViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCProfileViewController.m index 59bc63d8..c1b4c6d0 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCProfileViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCProfileViewController.m @@ -156,13 +156,13 @@ - (void)refreshView [self setupDataFromJSONFile:@"StudyOverview"]; if (APCUserConsentSharingScopeNone == self.user.sharingScope) { - self.participationLabel.text = APCLocalizedString(@"Your data is not currently being used for this study.", @"Text to show at top of Profile view when 'paused' (not sharing data)"); + self.participationLabel.text = NSLocalizedStringWithDefaultValue(@"Your data is not currently being used for this study.", @"APCAppCore", APCBundle(), @"Your data is not currently being used for this study.", @"Text to show at top of Profile view when 'paused' (not sharing data)"); self.applicationNameLabel.hidden = YES; - [self.pauseResumeStudyButton setTitle:APCLocalizedString(@"Resume Study", @"Title for Resume button in Profile view") forState:UIControlStateNormal]; + [self.pauseResumeStudyButton setTitle:NSLocalizedStringWithDefaultValue(@"Resume Study", @"APCAppCore", APCBundle(), @"Resume Study", @"Title for Resume button in Profile view") forState:UIControlStateNormal]; } else { - self.participationLabel.text = APCLocalizedString(@"Currently participating in", @"Text to show at top of Profile view above the study name when not 'paused' (when sharing data)"); + self.participationLabel.text = NSLocalizedStringWithDefaultValue(@"Currently participating in", @"APCAppCore", APCBundle(), @"Currently participating in", @"Text to show at top of Profile view above the study name when not 'paused' (when sharing data)"); self.applicationNameLabel.hidden = NO; - [self.pauseResumeStudyButton setTitle:APCLocalizedString(@"Pause Study", @"Title for Pause Study button in Profile view") forState:UIControlStateNormal]; + [self.pauseResumeStudyButton setTitle:NSLocalizedStringWithDefaultValue(@"Pause Study", @"APCAppCore", APCBundle(), @"Pause Study", @"Title for Pause Study button in Profile view") forState:UIControlStateNormal]; } [self.view setNeedsLayout]; @@ -433,7 +433,7 @@ - (NSArray *)prepareContent case kAPCUserInfoItemTypeBiologicalSex: { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Sex", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Sex", @"APCAppCore", APCBundle(), @"Sex", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.editable = NO; field.textAlignnment = NSTextAlignmentRight; @@ -450,7 +450,7 @@ - (NSArray *)prepareContent case kAPCUserInfoItemTypeDateOfBirth: { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Birthdate", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Birthdate", @"APCAppCore", APCBundle(), @"Birthdate", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.editable = NO; field.textAlignnment = NSTextAlignmentRight; @@ -468,7 +468,7 @@ - (NSArray *)prepareContent { APCTableViewTextFieldItem *field = [APCTableViewTextFieldItem new]; field.textAlignnment = NSTextAlignmentLeft; - field.placeholder = APCLocalizedString(@"custom question", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"custom question", @"APCAppCore", APCBundle(), @"custom question", @""); field.caption = @"Daily Scale"; if (self.user.customSurveyQuestion) { field.value = self.user.customSurveyQuestion; @@ -489,7 +489,7 @@ - (NSArray *)prepareContent case kAPCUserInfoItemTypeMedicalCondition: { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Medical Conditions", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Medical Conditions", @"APCAppCore", APCBundle(), @"Medical Conditions", @""); field.pickerData = @[[APCUser medicalConditions]]; field.textAlignnment = NSTextAlignmentRight; field.identifier = kAPCDefaultTableViewCellIdentifier; @@ -513,7 +513,7 @@ - (NSArray *)prepareContent case kAPCUserInfoItemTypeMedication: { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Medications", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Medications", @"APCAppCore", APCBundle(), @"Medications", @""); field.pickerData = @[[APCUser medications]]; field.textAlignnment = NSTextAlignmentRight; field.identifier = kAPCDefaultTableViewCellIdentifier; @@ -538,7 +538,7 @@ - (NSArray *)prepareContent { APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Height", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Height", @"APCAppCore", APCBundle(), @"Height", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.detailDiscloserStyle = YES; field.textAlignnment = NSTextAlignmentRight; @@ -584,8 +584,8 @@ - (NSArray *)prepareContent case kAPCUserInfoItemTypeWeight: { APCTableViewTextFieldItem *field = [APCTableViewTextFieldItem new]; - field.caption = APCLocalizedString(@"Weight", @""); - field.placeholder = APCLocalizedString(@"add weight (lb)", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Weight", @"APCAppCore", APCBundle(), @"Weight", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"add weight (lb)", @"APCAppCore", APCBundle(), @"add weight (lb)", @""); field.regularExpression = kAPCMedicalInfoItemWeightRegEx; double userWeight = [APCUser weightInPounds:self.user.weight]; @@ -610,8 +610,8 @@ - (NSArray *)prepareContent { APCTableViewDatePickerItem *field = [APCTableViewDatePickerItem new]; field.style = UITableViewCellStyleValue1; - field.caption = APCLocalizedString(@"What time do you generally wake up?", @""); - field.placeholder = APCLocalizedString(@"7:00 AM", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"What time do you generally wake up?", @"APCAppCore", APCBundle(), @"What time do you generally wake up?", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"7:00 AM", @"APCAppCore", APCBundle(), @"7:00 AM", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.datePickerMode = UIDatePickerModeTime; field.dateFormat = kAPCMedicalInfoItemSleepTimeFormat; @@ -636,8 +636,8 @@ - (NSArray *)prepareContent { APCTableViewDatePickerItem *field = [APCTableViewDatePickerItem new]; field.style = UITableViewCellStyleValue1; - field.caption = APCLocalizedString(@"What time do you generally go to sleep?", @""); - field.placeholder = APCLocalizedString(@"9:30 PM", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"What time do you generally go to sleep?", @"APCAppCore", APCBundle(), @"What time do you generally go to sleep?", @""); + field.placeholder = NSLocalizedStringWithDefaultValue(@"9:30 PM", @"APCAppCore", APCBundle(), @"9:30 PM", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.datePickerMode = UIDatePickerModeTime; field.dateFormat = kAPCMedicalInfoItemSleepTimeFormat; @@ -674,7 +674,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Share this Study", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Share this Study", @"APCAppCore", APCBundle(), @"Share this Study", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.editable = YES; @@ -686,7 +686,7 @@ - (NSArray *)prepareContent APCTableViewSection *section = [APCTableViewSection new]; section.rows = [NSArray arrayWithArray:rowItems]; - section.sectionTitle = APCLocalizedString(@"Help us Spread the Word", @""); + section.sectionTitle = NSLocalizedStringWithDefaultValue(@"Help us Spread the Word", @"APCAppCore", APCBundle(), @"Help us Spread the Word", @""); [items addObject:section]; } */ @@ -697,7 +697,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Activity Reminders", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Activity Reminders", @"APCAppCore", APCBundle(), @"Activity Reminders", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.editable = NO; field.showChevron = YES; @@ -722,7 +722,7 @@ - (NSArray *)prepareContent APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; field.identifier = kAPCDefaultTableViewCellIdentifier; field.selectionStyle = self.isEditing ? UITableViewCellSelectionStyleGray : UITableViewCellSelectionStyleNone; - field.caption = APCLocalizedString(@"Auto-Lock", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Auto-Lock", @"APCAppCore", APCBundle(), @"Auto-Lock", @""); field.detailDiscloserStyle = YES; field.textAlignnment = NSTextAlignmentRight; field.pickerData = @[[APCProfileViewController autoLockOptionStrings]]; @@ -744,7 +744,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Change Passcode", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Change Passcode", @"APCAppCore", APCBundle(), @"Change Passcode", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentLeft; field.editable = NO; @@ -758,7 +758,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Download Data", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Download Data", @"APCAppCore", APCBundle(), @"Download Data", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentLeft; field.editable = NO; @@ -773,7 +773,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Sharing Options", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Sharing Options", @"APCAppCore", APCBundle(), @"Sharing Options", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentLeft; field.editable = NO; @@ -794,7 +794,7 @@ - (NSArray *)prepareContent NSMutableArray *rowItems = [NSMutableArray new]; { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Permissions", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Permissions", @"APCAppCore", APCBundle(), @"Permissions", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentRight; field.editable = NO; @@ -808,7 +808,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Review Consent", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Review Consent", @"APCAppCore", APCBundle(), @"Review Consent", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentRight; field.editable = NO; @@ -830,7 +830,7 @@ - (NSArray *)prepareContent NSMutableArray *rowItems = [NSMutableArray new]; { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"Privacy Policy", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"Privacy Policy", @"APCAppCore", APCBundle(), @"Privacy Policy", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentRight; field.editable = NO; @@ -844,7 +844,7 @@ - (NSArray *)prepareContent { APCTableViewItem *field = [APCTableViewItem new]; - field.caption = APCLocalizedString(@"License Information", @""); + field.caption = NSLocalizedStringWithDefaultValue(@"License Information", @"APCAppCore", APCBundle(), @"License Information", @""); field.identifier = kAPCDefaultTableViewCellIdentifier; field.textAlignnment = NSTextAlignmentRight; field.editable = NO; @@ -1408,15 +1408,15 @@ - (IBAction)signOut:(id) __unused sender return; } - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Sign Out", @"") message:APCLocalizedString(@"Are you sure you want to sign out?", nil) preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *signOutAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Sign Out", @"") style:UIAlertActionStyleDestructive handler:^(UIAlertAction * __unused action) { + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Sign Out", @"APCAppCore", APCBundle(), @"Sign Out", @"") message:NSLocalizedStringWithDefaultValue(@"Are you sure you want to sign out?", @"APCAppCore", APCBundle(), @"Are you sure you want to sign out?", nil) preferredStyle:UIAlertControllerStyleActionSheet]; + UIAlertAction *signOutAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Sign Out", @"APCAppCore", APCBundle(), @"Sign Out", @"") style:UIAlertActionStyleDestructive handler:^(UIAlertAction * __unused action) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wundeclared-selector" [self performSelector:@selector(logOut)]; #pragma clang diagnostic pop }]; [alertController addAction:signOutAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertController addAction:cancelAction]; @@ -1427,13 +1427,13 @@ - (IBAction)signOut:(id) __unused sender - (IBAction)leaveStudy:(id) __unused sender { - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Withdraw", @"") message:APCLocalizedString(@"Are you sure you want to completely withdraw from the study?\nYou will be logged out of your account and no further data will be collected. If you wish to re-enroll at a later date, you will be asked to give informed consent again.", nil) preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *withdrawAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Withdraw", @"") style:UIAlertActionStyleDestructive handler:^(UIAlertAction * __unused action) { + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Withdraw", @"APCAppCore", APCBundle(), @"Withdraw", @"") message:NSLocalizedStringWithDefaultValue(@"Are you sure you want to completely withdraw from the study?\nYou will be logged out of your account and no further data will be collected. If you wish to re-enroll at a later date, you will be asked to give informed consent again.", @"APCAppCore", APCBundle(), @"Are you sure you want to completely withdraw from the study?\nYou will be logged out of your account and no further data will be collected. If you wish to re-enroll at a later date, you will be asked to give informed consent again.", nil) preferredStyle:UIAlertControllerStyleActionSheet]; + UIAlertAction *withdrawAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Withdraw", @"APCAppCore", APCBundle(), @"Withdraw", @"") style:UIAlertActionStyleDestructive handler:^(UIAlertAction * __unused action) { [self withdraw]; }]; [alertController addAction:withdrawAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertController addAction:cancelAction]; @@ -1448,17 +1448,17 @@ - (IBAction)pauseStudy:(id) __unused sender { void (^handler)(UIAlertAction *action); if (self.user.savedSharingScope) { // we're paused, so resume here - titleString = APCLocalizedString(@"Resume", @"Title for action sheet brought up by the Resume button"); - messageString = APCLocalizedString(@"This will resume sending data you collect to the study.", @"Prompt for action sheet brought up by the Resume button"); - actionString = APCLocalizedString(@"Resume", @"Title for action sheet item to resume sharing data with the study"); + titleString = NSLocalizedStringWithDefaultValue(@"APC_PROFILE_RESUME_SHEET_TITLE", @"APCAppCore", APCBundle(), @"Resume", @"Title for action sheet brought up by the Resume button"); + messageString = NSLocalizedStringWithDefaultValue(@"APC_PROFILE_RESUME_SHEET_PROMPT", @"APCAppCore", APCBundle(), @"This will resume sending data you collect to the study.", @"Prompt for action sheet brought up by the Resume button"); + actionString = NSLocalizedStringWithDefaultValue(@"APC_PROFILE_RESUME_ITEM_TITLE", @"APCAppCore", APCBundle(), @"Resume", @"Title for action sheet item to resume sharing data with the study"); handler = [^(UIAlertAction * __unused action) { [self resume]; } copy]; } else { // pause - titleString = APCLocalizedString(@"Pause", @"Title for action sheet brought up by the Pause button"); - messageString = APCLocalizedString(@"Are you sure you want to pause your participation in the study?\nData you collect while paused will remain on your phone and will not be included in the study.", @"Prompt for action sheet brought up by the Pause button"); - actionString = APCLocalizedString(@"Pause", @"Title for action sheet item to pause sharing data with the study"); + titleString = NSLocalizedStringWithDefaultValue(@"APC_PROFILE_PAUSE_SHEET_TITLE", @"APCAppCore", APCBundle(), @"Pause", @"Title for action sheet brought up by the Pause button"); + messageString = NSLocalizedStringWithDefaultValue(@"APC_PROFILE_PAUSE_SHEET_PROMPT", @"APCAppCore", APCBundle(), @"Are you sure you want to pause your participation in the study?\nData you collect while paused will remain on your phone and will not be included in the study.", @"Prompt for action sheet brought up by the Pause button"); + actionString = NSLocalizedStringWithDefaultValue(@"APC_PROFILE_PAUSE_ITEM_TITLE", @"APCAppCore", APCBundle(), @"Pause", @"Title for action sheet item to pause sharing data with the study"); handler = [^(UIAlertAction * __unused action) { [self pause]; } copy]; @@ -1467,7 +1467,7 @@ - (IBAction)pauseStudy:(id) __unused sender { UIAlertAction *action = [UIAlertAction actionWithTitle:actionString style:UIAlertActionStyleDestructive handler:handler]; [alertController addAction:action]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"APC_PROFILE_PAUSE_CANCEL_TITLE", @"APCAppCore", APCBundle(), @"Cancel", @"Title for Cancel item in Pause/Resume Study action sheets") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertController addAction:cancelAction]; @@ -1481,7 +1481,7 @@ - (IBAction)changeProfileImage:(id) __unused sender __weak typeof(self) weakSelf = self; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Take Photo", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Take Photo", @"APCAppCore", APCBundle(), @"Take Photo", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [self.permissionManager requestForPermissionForType:kAPCSignUpPermissionsTypeCamera withCompletion:^(BOOL granted, NSError *error) { if (granted) { @@ -1499,7 +1499,7 @@ - (IBAction)changeProfileImage:(id) __unused sender [alertController addAction:cameraAction]; } - UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Choose from Library", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Choose from Library", @"APCAppCore", APCBundle(), @"Choose from Library", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [self.permissionManager requestForPermissionForType:kAPCSignUpPermissionsTypePhotoLibrary withCompletion:^(BOOL granted, NSError *error) { if (granted) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -1514,7 +1514,7 @@ - (IBAction)changeProfileImage:(id) __unused sender }]; [alertController addAction:libraryAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertController addAction:cancelAction]; @@ -1545,12 +1545,12 @@ - (void)openPhotoLibrary - (void)presentSettingsAlert:(NSError *)error { - UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Permissions Denied", @"APCAppCore", APCBundle(), @"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { }]; [alertContorller addAction:dismiss]; - UIAlertAction *settings = [UIAlertAction actionWithTitle:APCLocalizedString(@"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *settings = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Settings", @"APCAppCore", APCBundle(), @"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }]; [alertContorller addAction:settings]; @@ -1565,7 +1565,7 @@ - (IBAction)editFields:(UIBarButtonItem *)sender [self hidePickerCell]; } - sender.title = APCLocalizedString(@"Edit", @"Edit"); + sender.title = NSLocalizedStringWithDefaultValue(@"Edit", @"APCAppCore", APCBundle(), @"Edit", @"Edit"); sender.style = UIBarButtonItemStylePlain; self.navigationItem.leftBarButtonItem.enabled = YES; @@ -1580,7 +1580,7 @@ - (IBAction)editFields:(UIBarButtonItem *)sender }]; } else { - sender.title = APCLocalizedString(@"Done", @"Done"); + sender.title = NSLocalizedStringWithDefaultValue(@"Done", @"APCAppCore", APCBundle(), @"Done", @"Done"); sender.style = UIBarButtonItemStyleDone; self.profileEditsWerePerformed = YES; @@ -1622,7 +1622,7 @@ - (void)showPrivacyPolicy NSString *filePath = [[NSBundle mainBundle] pathForResource: @"PrivacyPolicy" ofType:@"html" inDirectory:@"HTMLContent"]; NSURL *targetURL = [NSURL URLWithString:filePath]; NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; - webViewController.title = APCLocalizedString(@"Privacy Policy", @""); + webViewController.title = NSLocalizedStringWithDefaultValue(@"Privacy Policy", @"APCAppCore", APCBundle(), @"Privacy Policy", @""); UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:webViewController]; [self.navigationController presentViewController:navController animated:YES completion:^{ @@ -1648,13 +1648,13 @@ - (void)reviewConsent UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Review Consent" message:@"" preferredStyle:UIAlertControllerStyleActionSheet]; if ([consentReviewActions containsObject:kReviewConsentActionPDF]) { - UIAlertAction *pdfAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"View PDF", @"View PDF") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *pdfAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"View PDF", @"APCAppCore", APCBundle(), @"View PDF", @"View PDF") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { APCWebViewController *webViewController = [[UIStoryboard storyboardWithName:@"APCOnboarding" bundle:[NSBundle appleCoreBundle]] instantiateViewControllerWithIdentifier:@"APCWebViewController"]; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"consent" ofType:@"pdf"]; NSData *data = [NSData dataWithContentsOfFile:filePath]; [webViewController.webView setDataDetectorTypes:UIDataDetectorTypeAll]; - webViewController.title = APCLocalizedString(@"Consent", @"Consent"); + webViewController.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", @"Consent"); UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:webViewController]; [weakSelf.navigationController presentViewController:navController animated:YES completion:^{ @@ -1666,7 +1666,7 @@ - (void)reviewConsent } if ([consentReviewActions containsObject:kReviewConsentActionVideo]) { - UIAlertAction *videoAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Watch Video", @"Watch Video") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *videoAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Watch Video", @"APCAppCore", APCBundle(), @"Watch Video", @"Watch Video") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Intro" ofType:@"mp4"]]; APCIntroVideoViewController *introVideoViewController = [[APCIntroVideoViewController alloc] initWithContentURL:fileURL]; @@ -1679,14 +1679,14 @@ - (void)reviewConsent } if ([consentReviewActions containsObject:kReviewConsentActionSlides]) { - UIAlertAction *slidesAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"View Slides", @"View Slides") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { + UIAlertAction *slidesAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"View Slides", @"APCAppCore", APCBundle(), @"View Slides", @"View Slides") style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [weakSelf showConsentSlides]; }]; [alertController addAction:slidesAction]; } { - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; [alertController addAction:cancelAction]; @@ -1701,13 +1701,13 @@ - (void)showConsentSlides NSArray* sections = [appDelegate consentSectionsAndHtmlContent:nil]; ORKConsentDocument* consent = [[ORKConsentDocument alloc] init]; - ORKConsentSignature* signature = [ORKConsentSignature signatureForPersonWithTitle:APCLocalizedString(@"Participant", nil) + ORKConsentSignature* signature = [ORKConsentSignature signatureForPersonWithTitle:NSLocalizedStringWithDefaultValue(@"Participant", @"APCAppCore", APCBundle(), @"Participant", nil) dateFormatString:nil identifier:@"participant"]; - consent.title = APCLocalizedString(@"Consent", nil); - consent.signaturePageTitle = APCLocalizedString(@"Consent", nil); - consent.signaturePageContent = APCLocalizedString(@"I agree to participate in this research Study.", nil); + consent.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", nil); + consent.signaturePageTitle = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", nil); + consent.signaturePageContent = NSLocalizedStringWithDefaultValue(@"I agree to participate in this research Study.", @"APCAppCore", APCBundle(), @"I agree to participate in this research Study.", nil); consent.sections = sections; [consent addSignature:signature]; @@ -1716,7 +1716,7 @@ - (void)showConsentSlides ORKOrderedTask* task = [[ORKOrderedTask alloc] initWithIdentifier:@"consent" steps:@[step]]; ORKTaskViewController* consentVC = [[ORKTaskViewController alloc] initWithTask:task taskRunUUID:[NSUUID UUID]]; - consentVC.navigationBar.topItem.title = APCLocalizedString(@"Consent", nil); + consentVC.navigationBar.topItem.title = NSLocalizedStringWithDefaultValue(@"Consent", @"APCAppCore", APCBundle(), @"Consent", nil); consentVC.delegate = self; #ifndef APC_HAVE_CONSENT @@ -1743,7 +1743,7 @@ + (NSArray *)autoLockOptionStrings NSMutableArray *options = [NSMutableArray new]; for (NSNumber *val in values) { - NSString *optionString = [NSString stringWithFormat:@"%ld %@", (long)val.integerValue, APCLocalizedString(@"minutes", nil)]; + NSString *optionString = [NSString stringWithFormat:@"%ld %@", (long)val.integerValue, NSLocalizedStringWithDefaultValue(@"minutes", @"APCAppCore", APCBundle(), @"minutes", nil)]; [options addObject:optionString]; } diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m index b6b772e9..56849f94 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSettingsViewController.m @@ -83,7 +83,7 @@ - (void)prepareContent { APCTableViewSwitchItem *field = [APCTableViewSwitchItem new]; - field.caption = APCLocalizedString(@"Enable Reminders", nil); + field.caption = NSLocalizedStringWithDefaultValue(@"Enable Reminders", @"APCAppCore", APCBundle(), @"Enable Reminders", nil); field.identifier = kAPCSwitchCellIdentifier; field.editable = NO; @@ -97,7 +97,7 @@ - (void)prepareContent APCTableViewCustomPickerItem *field = [APCTableViewCustomPickerItem new]; - field.caption = APCLocalizedString(@"Time", nil); + field.caption = NSLocalizedStringWithDefaultValue(@"Time", @"APCAppCore", APCBundle(), @"Time", nil); field.pickerData = @[[APCTasksReminderManager reminderTimesArray]]; field.textAlignnment = NSTextAlignmentRight; field.identifier = kAPCDefaultTableViewCellIdentifier; @@ -152,10 +152,10 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger switch (section) { case 0: - headerView.textLabel.text = APCLocalizedString(@"Settings", nil) ; + headerView.textLabel.text = NSLocalizedStringWithDefaultValue(@"Settings", @"APCAppCore", APCBundle(), @"Settings", nil) ; break; case 1: - headerView.textLabel.text = APCLocalizedString(@"Tasks", nil); + headerView.textLabel.text = NSLocalizedStringWithDefaultValue(@"Tasks", @"APCAppCore", APCBundle(), @"Tasks", nil); break; default: break; @@ -181,7 +181,7 @@ -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) if (section == 1 && hasresultsSummaryKey) { footerView = [[UITableViewHeaderFooterView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(tableView.frame), tableView.sectionHeaderHeight)]; - NSString *footerFormat = APCLocalizedString(@"%@ reminder will be sent 2 hours later.", @"Format string for Activity Reminders view Tasks section footer describing when reminder will be sent, to be filled in with the reminder body text."); + NSString *footerFormat = NSLocalizedStringWithDefaultValue(@"%@ reminder will be sent 2 hours later.", @"APCAppCore", APCBundle(), @"%@ reminder will be sent 2 hours later.", @"Format string for Activity Reminders view Tasks section footer describing when reminder will be sent, to be filled in with the reminder body text."); NSString *footerText = [NSString stringWithFormat:footerFormat, subtaskTitle]; CGRect labelFrame = CGRectMake(20, 0, CGRectGetWidth(footerView.frame)-40, 50); @@ -358,11 +358,11 @@ - (void)switchTableViewCell:(APCSwitchTableViewCell *)cell switchValueChanged:(B - (void)presentSettingsAlert:(NSError *)error { - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *dismiss = [UIAlertAction actionWithTitle:APCLocalizedString(@"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *__unused action) { + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Permissions Denied", @"APCAppCore", APCBundle(), @"Permissions Denied", @"") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *dismiss = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Dismiss", @"APCAppCore", APCBundle(), @"Dismiss", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *__unused action) { }]; [alertController addAction:dismiss]; - UIAlertAction *settings = [UIAlertAction actionWithTitle:APCLocalizedString(@"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *settings = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Settings", @"APCAppCore", APCBundle(), @"Settings", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }]; [alertController addAction:settings]; diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m index bafb5eb9..29ac2705 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCSharingOptionsViewController.m @@ -70,15 +70,15 @@ - (void)viewDidLoad [self.tableView reloadData]; - self.title = APCLocalizedString(@"Sharing Options", @"Sharing Options"); + self.title = NSLocalizedStringWithDefaultValue(@"Sharing Options", @"APCAppCore", APCBundle(), @"Sharing Options", @"Sharing Options"); } - (void)prepareData { [self setupDataFromJSON:@"APHConsentSection"]; - self.titleLabel.text = APCLocalizedString(@"Sharing Options", @"Sharing Options"); - NSString *messageFormat = APCLocalizedString(@"%@ will receive your study data from your participation in this study.\n\nSharing your coded study data more broadly (without information such as your name) may benefit this and future research.", @"Format for string explaining data sharing during initial consent process, to be filled in with the (long form) name of the institution running the study."); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Sharing Options", @"APCAppCore", APCBundle(), @"Sharing Options", @"Sharing Options"); + NSString *messageFormat = NSLocalizedStringWithDefaultValue(@"%@ will receive your study data from your participation in this study.\n\nSharing your coded study data more broadly (without information such as your name) may benefit this and future research.", @"APCAppCore", APCBundle(), @"%@ will receive your study data from your participation in this study.\n\nSharing your coded study data more broadly (without information such as your name) may benefit this and future research.", @"Format for string explaining data sharing during initial consent process, to be filled in with the (long form) name of the institution running the study."); self.messageLabel.text = [NSString stringWithFormat:messageFormat, self.instituteLongName]; @@ -86,13 +86,13 @@ - (void)prepareData NSMutableArray *options = [NSMutableArray new]; { - NSString *optionFormat = APCLocalizedString(@"Share my data with %@ and qualified researchers worldwide", @"Format string for Profile tab option to share data broadly, to be filled in with the short name of the institution sponsoring the study"); + NSString *optionFormat = NSLocalizedStringWithDefaultValue(@"Share my data with %@ and qualified researchers worldwide", @"APCAppCore", APCBundle(), @"Share my data with %@ and qualified researchers worldwide", @"Format string for Profile tab option to share data broadly, to be filled in with the short name of the institution sponsoring the study"); NSString *option = [NSString stringWithFormat:optionFormat, self.instituteShortName]; [options addObject:option]; } { - NSString *optionFormat = APCLocalizedString(@"Only share my data with %@", @"Format string for Profile tab option to share data narrowly, to be filled in with the long name of the institution sponsoring the study"); + NSString *optionFormat = NSLocalizedStringWithDefaultValue(@"Only share my data with %@", @"APCAppCore", APCBundle(), @"Only share my data with %@", @"Format string for Profile tab option to share data narrowly, to be filled in with the long name of the institution sponsoring the study"); NSString *option = [NSString stringWithFormat:optionFormat, self.instituteLongName]; [options addObject:option]; } @@ -187,7 +187,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath if (error) { APCLogError2 (error); - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Sharing Options", @"") message:error.message]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Sharing Options", @"APCAppCore", APCBundle(), @"Sharing Options", @"") message:error.message]; [weakSelf presentViewController:alert animated:YES completion:nil]; } else { diff --git a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCWithdrawSurveyViewController.m b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCWithdrawSurveyViewController.m index f179260b..0abe19bd 100644 --- a/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCWithdrawSurveyViewController.m +++ b/APCAppCore/APCAppCore/UI/TabBarControllers/Profile/APCWithdrawSurveyViewController.m @@ -263,7 +263,7 @@ - (IBAction) submit: (id) __unused sender if (error) { APCLogError2 (error); [spinnerController dismissViewControllerAnimated:NO completion:^{ - UIAlertController *alert = [UIAlertController simpleAlertWithTitle:APCLocalizedString(@"Withdraw", @"") message:error.message]; + UIAlertController *alert = [UIAlertController simpleAlertWithTitle:NSLocalizedStringWithDefaultValue(@"Withdraw", @"APCAppCore", APCBundle(), @"Withdraw", @"") message:error.message]; [weakSelf presentViewController:alert animated:YES completion:nil]; }]; } diff --git a/APCAppCore/APCAppCore/UI/TableViewCells/APCPermissionsCell.m b/APCAppCore/APCAppCore/UI/TableViewCells/APCPermissionsCell.m index 5715f367..0b886e20 100644 --- a/APCAppCore/APCAppCore/UI/TableViewCells/APCPermissionsCell.m +++ b/APCAppCore/APCAppCore/UI/TableViewCells/APCPermissionsCell.m @@ -52,8 +52,8 @@ - (void)awakeFromNib self.detailsLabel.textColor = [UIColor appSecondaryColor1]; self.detailsLabel.font = [UIFont appRegularFontWithSize:16.f]; - [self.permissionButton setTitle:APCLocalizedString(@"Allow", @"Allow") forState:UIControlStateNormal]; - [self.permissionButton setTitle:APCLocalizedString(@"Granted", @"Granted") forState:UIControlStateDisabled]; + [self.permissionButton setTitle:NSLocalizedStringWithDefaultValue(@"Allow", @"APCAppCore", APCBundle(), @"Allow", @"Allow") forState:UIControlStateNormal]; + [self.permissionButton setTitle:NSLocalizedStringWithDefaultValue(@"Granted", @"APCAppCore", APCBundle(), @"Granted", @"Granted") forState:UIControlStateDisabled]; } - (IBAction)allowPermission:(id)__unused sender diff --git a/APCAppCore/APCAppCore/UI/TableViewCells/DashboardCells/APCDashboardMessageTableViewCell.m b/APCAppCore/APCAppCore/UI/TableViewCells/DashboardCells/APCDashboardMessageTableViewCell.m index fa29dd12..7ba2eaf2 100644 --- a/APCAppCore/APCAppCore/UI/TableViewCells/DashboardCells/APCDashboardMessageTableViewCell.m +++ b/APCAppCore/APCAppCore/UI/TableViewCells/DashboardCells/APCDashboardMessageTableViewCell.m @@ -68,12 +68,12 @@ - (void)setType:(APCDashboardMessageType)type switch (type) { case kAPCDashboardMessageTypeAlert: { - self.titleLabel.text = APCLocalizedString(@"Alert",nil); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Alert", @"APCAppCore", APCBundle(), @"Alert", nil); } break; case kAPCDashboardMessageTypeInsight: { - self.titleLabel.text = APCLocalizedString(@"Insight", nil); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Insight", @"APCAppCore", APCBundle(), @"Insight", nil); } break; default:{ diff --git a/APCAppCore/APCAppCore/UI/ViewControllers/APCPasscodeViewController.m b/APCAppCore/APCAppCore/UI/ViewControllers/APCPasscodeViewController.m index 3a33b73b..c516b39c 100644 --- a/APCAppCore/APCAppCore/UI/ViewControllers/APCPasscodeViewController.m +++ b/APCAppCore/APCAppCore/UI/ViewControllers/APCPasscodeViewController.m @@ -77,10 +77,10 @@ - (void)viewDidLoad self.passcodeView.alpha = 0; self.titleLabel.alpha = 0; self.touchIdButton.alpha = 0; - self.titleLabel.text = APCLocalizedString(@"Touch ID or Enter Passcode", nil); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Touch ID or Enter Passcode", @"APCAppCore", APCBundle(), @"Touch ID or Enter Passcode", nil); } else { self.touchIdButton.hidden = YES; - self.titleLabel.text = APCLocalizedString(@"Enter Passcode", nil); + self.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Enter Passcode", @"APCAppCore", APCBundle(), @"Enter Passcode", nil); } } @@ -156,7 +156,7 @@ - (void) passcodeViewDidFinish:(APCPasscodeView *) __unused passcodeView withCod self.wrongAttemptsCount++; } else { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:APCLocalizedString(@"Wrong Passcode", nil) message:APCLocalizedString(@"Please enter again.", nil) preferredStyle:UIAlertControllerStyleAlert]; + UIAlertController *alert = [UIAlertController alertControllerWithTitle:NSLocalizedStringWithDefaultValue(@"Wrong Passcode", @"APCAppCore", APCBundle(), @"Wrong Passcode", nil) message:NSLocalizedStringWithDefaultValue(@"Please enter again.", @"APCAppCore", APCBundle(), @"Please enter again.", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * __unused action) { [self.passcodeView reset]; [self makePasscodeViewBecomeFirstResponder]; @@ -181,9 +181,9 @@ - (void)promptTouchId NSError *error = nil; self.touchContext = [LAContext new]; if ([self.touchContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { - self.touchContext.localizedFallbackTitle = APCLocalizedString(@"Enter Passcode", @""); + self.touchContext.localizedFallbackTitle = NSLocalizedStringWithDefaultValue(@"Enter Passcode", @"APCAppCore", APCBundle(), @"Enter Passcode", @""); - NSString *localizedReason = APCLocalizedString(@"Please authenticate with Touch ID", @""); + NSString *localizedReason = NSLocalizedStringWithDefaultValue(@"Please authenticate with Touch ID", @"APCAppCore", APCBundle(), @"Please authenticate with Touch ID", @""); [self.touchContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:localizedReason diff --git a/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCActivityTrackingStepViewController.m b/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCActivityTrackingStepViewController.m index 9ca3a6e4..33978d3f 100644 --- a/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCActivityTrackingStepViewController.m +++ b/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCActivityTrackingStepViewController.m @@ -39,7 +39,7 @@ static NSInteger const kTodaySegmentIndex = 1; static NSInteger const kWeekSegmentIndex = 2; -static NSString *kLearnMoreString = @"The circle shows estimates of the proportion of time you have been spending in different levels of activity, based on sensor data from your phone or wearable device. It also estimates your accumulated “active minutes,” which combines moderate and vigorous activities, and daily steps. This is intended to be informational, as accurate assessment of every type of activity from sensors is an ongoing area of research and development. Your data can help us refine these estimates and better understand the relationship between activity and heart health."; +static NSString *kLearnMoreString; static NSInteger const kSmallerFontSize = 16; static NSInteger const kRegularFontSize = 17; @@ -69,6 +69,11 @@ @implementation APCActivityTrackingStepViewController #pragma mark - Lifecycle ++ (void)initialize +{ + kLearnMoreString = NSLocalizedStringWithDefaultValue(@"The circle shows estimates of the proportion of time you have been spending in different levels of activity, based on sensor data from your phone or wearable device. It also estimates your accumulated “active minutes,” which combines moderate and vigorous activities, and daily steps. This is intended to be informational, as accurate assessment of every type of activity from sensors is an ongoing area of research and development. Your data can help us refine these estimates and better understand the relationship between activity and heart health.", @"APCAppCore", APCBundle(), @"The circle shows estimates of the proportion of time you have been spending in different levels of activity, based on sensor data from your phone or wearable device. It also estimates your accumulated “active minutes,” which combines moderate and vigorous activities, and daily steps. This is intended to be informational, as accurate assessment of every type of activity from sensors is an ongoing area of research and development. Your data can help us refine these estimates and better understand the relationship between activity and heart health.", @"Description of activity tracking"); +} + - (void)viewDidLoad { [super viewDidLoad]; @@ -126,7 +131,7 @@ - (void)viewWillAppear:(BOOL)animated self.chartView.legendPaddingHeight = 60.0; self.chartView.shouldAnimate = YES; self.chartView.shouldAnimateLegend = NO; - self.chartView.titleLabel.text = APCLocalizedString(@"Active Minutes", @"Active Minutes"); + self.chartView.titleLabel.text = NSLocalizedStringWithDefaultValue(@"Active Minutes", @"APCAppCore", APCBundle(), @"Active Minutes", @"Active Minutes"); APCAppDelegate *appDelegate = (APCAppDelegate *)[[UIApplication sharedApplication] delegate]; @@ -234,14 +239,13 @@ - (NSString *)fitnessDaysRemaining daysRemain = 7 - self.numberOfDaysOfFitnessWeek; } - NSString *days = (daysRemain == 1) ? APCLocalizedString(@"Day", @"Day") : APCLocalizedString(@"Days", @"Days"); + NSString *days = (daysRemain == 1) ? NSLocalizedStringWithDefaultValue(@"Day", @"APCAppCore", APCBundle(), @"Day", @"Day") : NSLocalizedStringWithDefaultValue(@"Days", @"APCAppCore", APCBundle(), @"Days", @"Days"); - NSString *remaining = [NSString stringWithFormat:APCLocalizedString(@"%lu %@ Remaining", - @"{count} {day/s} Remaining"), daysRemain, days]; + NSString *remaining = [NSString stringWithFormat:NSLocalizedStringWithDefaultValue(@"%lu %@ Remaining", @"APCAppCore", APCBundle(), @"%lu %@ Remaining", @"{count} {day/s} Remaining"), daysRemain, days]; if (daysRemain <= 0) { - remaining = APCLocalizedString(@"Here is your activity and sleep assessment for the last 7 days", @""); + remaining = NSLocalizedStringWithDefaultValue(@"Here is your activity and sleep assessment for the last 7 days", @"APCAppCore", APCBundle(), @"Here is your activity and sleep assessment for the last 7 days", @""); } return remaining; @@ -335,15 +339,15 @@ - (IBAction)resetTaskStartDate:(id) __unused sender { [[UIView appearanceWhenContainedIn:[UIAlertController class], nil] setTintColor:[UIColor appPrimaryColor]]; - UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:nil message:APCLocalizedString(@"Resetting your 7 Day Assessment will clear all recorded data from the week.", @"") preferredStyle:UIAlertControllerStyleActionSheet]; + UIAlertController *alertContorller = [UIAlertController alertControllerWithTitle:nil message:NSLocalizedStringWithDefaultValue(@"Resetting your 7 Day Assessment will clear all recorded data from the week.", @"APCAppCore", APCBundle(), @"Resetting your 7 Day Assessment will clear all recorded data from the week.", @"") preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *withdrawAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Continue", @"") style:UIAlertActionStyleDestructive handler:^(UIAlertAction * __unused action) { + UIAlertAction *withdrawAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Continue", @"APCAppCore", APCBundle(), @"Continue", @"") style:UIAlertActionStyleDestructive handler:^(UIAlertAction * __unused action) { [self reset]; }]; [alertContorller addAction:withdrawAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:APCLocalizedString(@"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedStringWithDefaultValue(@"Cancel", @"APCAppCore", APCBundle(), @"Cancel", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction * __unused action) { }]; @@ -479,7 +483,7 @@ - (IBAction)infoIconHandler:(id) __unused sender { multiplier:1 constant:0.0]]; - textView.text =APCLocalizedString( kLearnMoreString, nil); + textView.text = kLearnMoreString; textView.textColor = [UIColor blackColor]; [textView setFont:[UIFont fontWithName:@"HelveticaNeue" size:kRegularFontSize]]; diff --git a/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCFitnessAllocation.m b/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCFitnessAllocation.m index 077acf02..c1fc547f 100644 --- a/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCFitnessAllocation.m +++ b/APCAppCore/APCAppCore/UI/ViewControllers/Activity Tracking/APCFitnessAllocation.m @@ -177,11 +177,11 @@ - (instancetype)initWithAllocationStartDate:(NSDate *)startDate _motionData = [NSMutableArray new]; _datasetNormalized = [NSMutableArray new]; - _segmentSleep = APCLocalizedString(@"Sleep", @"Sleep"); - _segmentInactive = APCLocalizedString(@"Light", @"Light"); - _segmentSedentary = APCLocalizedString(@"Sedentary", @"Sedentary"); - _segmentModerate = APCLocalizedString(@"Moderate", @"Moderate"); - _segmentVigorous = APCLocalizedString(@"Vigorous", @"Vigorous"); + _segmentSleep = NSLocalizedStringWithDefaultValue(@"Sleep", @"APCAppCore", APCBundle(), @"Sleep", @"Sleep"); + _segmentInactive = NSLocalizedStringWithDefaultValue(@"Light", @"APCAppCore", APCBundle(), @"Light", @"Light"); + _segmentSedentary = NSLocalizedStringWithDefaultValue(@"Sedentary", @"APCAppCore", APCBundle(), @"Sedentary", @"Sedentary"); + _segmentModerate = NSLocalizedStringWithDefaultValue(@"Moderate", @"APCAppCore", APCBundle(), @"Moderate", @"Moderate"); + _segmentVigorous = NSLocalizedStringWithDefaultValue(@"Vigorous", @"APCAppCore", APCBundle(), @"Vigorous", @"Vigorous"); } } diff --git a/APCAppCore/APCAppCore/UI/Views/APCExampleLabel.m b/APCAppCore/APCAppCore/UI/Views/APCExampleLabel.m index 4cf16ac6..b81c400b 100644 --- a/APCAppCore/APCAppCore/UI/Views/APCExampleLabel.m +++ b/APCAppCore/APCAppCore/UI/Views/APCExampleLabel.m @@ -50,7 +50,7 @@ + (UILabel *)watermarkInRect:(CGRect)rect withCenter:(CGPoint)center double hypotenuse = hypotf(width, height); double rotationAngle = asin(height/hypotenuse); - watermarkLabel.text = APCLocalizedString(@"EXAMPLE", nil); + watermarkLabel.text = NSLocalizedStringWithDefaultValue(@"EXAMPLE", @"APCAppCore", APCBundle(), @"EXAMPLE", nil); watermarkLabel.font = [UIFont systemFontOfSize:72.0]; watermarkLabel.textColor = [UIColor colorWithWhite:0 alpha:0.05]; watermarkLabel.textAlignment = NSTextAlignmentCenter;