Brion VIBBER has submitted this change and it was merged. Change subject: Migrate strings to qqq file. ......................................................................
Migrate strings to qqq file. Will need another pass for making strings which are presently set in storyboards rather be set in code so the same qqq approach can be used for these strings. Change-Id: I32e7c6f9f4b14264af3580ac89c3431c47cc1592 --- M Wikipedia-iOS/Data/Operations/AccountCreationOp.m M Wikipedia-iOS/Data/Operations/DownloadSectionWikiTextOp.m M Wikipedia-iOS/Data/Operations/LoginOp.m M Wikipedia-iOS/Data/Operations/SearchOp.m M Wikipedia-iOS/Data/Operations/UploadSectionWikiTextOp.m M Wikipedia-iOS/Defines/Defines.h M Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m M Wikipedia-iOS/View Controllers/ArticleLanguages/ArticleLanguagesTableVC.m M Wikipedia-iOS/View Controllers/MainMenu/MainMenuTableViewController.m M Wikipedia-iOS/View Controllers/Preview/PreviewAndSaveViewController.m M Wikipedia-iOS/View Controllers/SavedPages/SavedPagesViewController.m M Wikipedia-iOS/View Controllers/SearchResults/SearchResultsController.m M Wikipedia-iOS/View Controllers/SectionEditor/SectionEditorViewController.m M Wikipedia-iOS/View Controllers/TopNav/NavController.m M Wikipedia-iOS/View Controllers/WebView/WebViewController.m M Wikipedia-iOS/en.lproj/Localizable.strings M Wikipedia-iOS/qqq.lproj/Localizable.strings 17 files changed, 205 insertions(+), 66 deletions(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved Siebrand: Looks good to me, but someone else must approve diff --git a/Wikipedia-iOS/Data/Operations/AccountCreationOp.m b/Wikipedia-iOS/Data/Operations/AccountCreationOp.m index 2cb1a71..6a3d5db 100644 --- a/Wikipedia-iOS/Data/Operations/AccountCreationOp.m +++ b/Wikipedia-iOS/Data/Operations/AccountCreationOp.m @@ -108,7 +108,7 @@ if ([createAccountResult isEqualToString:@"NeedToken"]) { NSMutableDictionary *errorDict = @{}.mutableCopy; - errorDict[NSLocalizedDescriptionKey] = @"CAPTCHA verification required."; + errorDict[NSLocalizedDescriptionKey] = NSLocalizedString(@"account-creation-captcha-required", nil); // Make the capcha id and url available from the error. errorDict[@"captchaId"] = weakSelf.jsonRetrieved[@"createaccount"][@"captcha"][@"id"]; diff --git a/Wikipedia-iOS/Data/Operations/DownloadSectionWikiTextOp.m b/Wikipedia-iOS/Data/Operations/DownloadSectionWikiTextOp.m index 6f6c5a9..f1a84e4 100644 --- a/Wikipedia-iOS/Data/Operations/DownloadSectionWikiTextOp.m +++ b/Wikipedia-iOS/Data/Operations/DownloadSectionWikiTextOp.m @@ -60,7 +60,7 @@ if (!weakSelf.error && !revision) { NSMutableDictionary *errorDict = [@{} mutableCopy]; - errorDict[NSLocalizedDescriptionKey] = @"Unable to obtain latest revision."; + errorDict[NSLocalizedDescriptionKey] = NSLocalizedString(@"wikitext-download-failed", nil); // Set error condition so dependent ops don't even start and so the errorBlock below will fire. weakSelf.error = [NSError errorWithDomain:@"Download Wikitext Op" code:002 userInfo:errorDict]; diff --git a/Wikipedia-iOS/Data/Operations/LoginOp.m b/Wikipedia-iOS/Data/Operations/LoginOp.m index b8b4012..7fcd865 100644 --- a/Wikipedia-iOS/Data/Operations/LoginOp.m +++ b/Wikipedia-iOS/Data/Operations/LoginOp.m @@ -106,21 +106,29 @@ { // Error types from: http://www.mediawiki.org/wiki/API:Login#Errors NSString *errorMessage = [NSString stringWithFormat:@"Unknown login error. Code '%@'", result]; + if ([result isEqualToString:@"NoName"]) { - errorMessage = @"User name is required to login."; + errorMessage = NSLocalizedString(@"login-name-not-found", nil); + }else if ([result isEqualToString:@"Illegal"]) { - errorMessage = @"You provided an illegal user name."; + errorMessage = NSLocalizedString(@"login-name-illegal", nil); + }else if ([result isEqualToString:@"NotExists"]) { - errorMessage = @"The user name you provided doesn't exist."; + errorMessage = NSLocalizedString(@"login-name-does-not-exist", nil); + }else if ([result isEqualToString:@"EmptyPass"]) { - errorMessage = @"Password is required to login."; + errorMessage = NSLocalizedString(@"login-password-empty", nil); + }else if ([result isEqualToString:@"WrongPass"] || [result isEqualToString:@"WrongPluginPass"]) { - errorMessage = @"The password you provided is incorrect."; + errorMessage = NSLocalizedString(@"login-password-wrong", nil); + }else if ([result isEqualToString:@"Throttled"]) { - errorMessage = @"You've logged in too many times in a short time."; + errorMessage = NSLocalizedString(@"login-throttled", nil); + }else if ([result isEqualToString:@"Blocked"]) { - errorMessage = @"User is blocked."; + errorMessage = NSLocalizedString(@"login-user-blocked", nil); } + return errorMessage; } diff --git a/Wikipedia-iOS/Data/Operations/SearchOp.m b/Wikipedia-iOS/Data/Operations/SearchOp.m index dadd0d9..2b061f7 100644 --- a/Wikipedia-iOS/Data/Operations/SearchOp.m +++ b/Wikipedia-iOS/Data/Operations/SearchOp.m @@ -63,7 +63,7 @@ if (output.count == 0) { NSMutableDictionary *errorDict = @{}.mutableCopy; - errorDict[NSLocalizedDescriptionKey] = @"No matches found for search term."; + errorDict[NSLocalizedDescriptionKey] = NSLocalizedString(@"search-no-matches", nil); // Set error condition so dependent ops don't even start and so the errorBlock below will fire. weakSelf.error = [NSError errorWithDomain:@"Search Op" code:002 userInfo:errorDict]; diff --git a/Wikipedia-iOS/Data/Operations/UploadSectionWikiTextOp.m b/Wikipedia-iOS/Data/Operations/UploadSectionWikiTextOp.m index 7f329f0..9e43dd1 100644 --- a/Wikipedia-iOS/Data/Operations/UploadSectionWikiTextOp.m +++ b/Wikipedia-iOS/Data/Operations/UploadSectionWikiTextOp.m @@ -71,7 +71,7 @@ if (!weakSelf.error && !result) { NSMutableDictionary *errorDict = [@{} mutableCopy]; - errorDict[NSLocalizedDescriptionKey] = @"Unable to determine wikitext upload result."; + errorDict[NSLocalizedDescriptionKey] = NSLocalizedString(@"wikitext-upload-result-unknown", nil); // Set error condition so dependent ops don't even start and so the errorBlock below will fire. weakSelf.error = [NSError errorWithDomain:@"Upload Wikitext Op" code:WIKITEXT_UPLOAD_ERROR_UNKNOWN userInfo:errorDict]; @@ -84,9 +84,9 @@ NSMutableDictionary *errorDict = [@{} mutableCopy]; errorDict[NSLocalizedDescriptionKey] = (captchaWord && (captchaWord.length > 0)) ? - @"Captcha verification error." + NSLocalizedString(@"wikitext-upload-captcha-error", nil) : - @"Need captcha verification." + NSLocalizedString(@"wikitext-upload-captcha-needed", nil) ; // Make the capcha id and url available from the error. diff --git a/Wikipedia-iOS/Defines/Defines.h b/Wikipedia-iOS/Defines/Defines.h index 3af09d4..d411da9 100644 --- a/Wikipedia-iOS/Defines/Defines.h +++ b/Wikipedia-iOS/Defines/Defines.h @@ -12,13 +12,7 @@ #define SEARCH_FONT_HIGHLIGHTED [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0] #define SEARCH_FONT_HIGHLIGHTED_COLOR [UIColor blackColor] -#define SEARCH_FIELD_PLACEHOLDER_TEXT @"Search Wikipedia" #define SEARCH_FIELD_PLACEHOLDER_TEXT_COLOR [UIColor colorWithRed:0.57 green:0.58 blue:0.59 alpha:1.0] - -#define SEARCH_LOADING_MSG_SECTION_ZERO @"Loading first section of the article..." -#define SEARCH_LOADING_MSG_SECTION_REMAINING @"Loading the rest of the article..." -#define SEARCH_LOADING_MSG_ARTICLE_LOADED @"Article loaded." -#define SEARCH_LOADING_MSG_SEARCHING @"Searching..." #define DISCOVERY_METHOD_SEARCH @"search" #define DISCOVERY_METHOD_RANDOM @"random" diff --git a/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m b/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m index e8f99b8..069fe87 100644 --- a/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m +++ b/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m @@ -192,7 +192,7 @@ { self.captchaViewController.captchaTextBox.text = @""; - [self showAlert:@"Obtaining a new captcha."]; + [self showAlert:NSLocalizedString(@"account-creation-captcha-obtaining", nil)]; [self showAlert:@""]; CaptchaResetOp *captchaResetOp = @@ -255,7 +255,7 @@ { LoginViewController *loginVC = [self.navigationController searchNavStackForViewControllerOfClass:[LoginViewController class]]; - [self showAlert:@"Logging in..."]; + [self showAlert:NSLocalizedString(@"account-creation-logging-in", nil)]; [loginVC loginWithUserName:self.usernameField.text password:self.passwordField.text onSuccess:^{ @@ -277,13 +277,13 @@ // Verify passwords fields match. if (![self.passwordField.text isEqualToString:self.passwordRepeatField.text]) { - [self showAlert:@"Password fields do not match."]; + [self showAlert:NSLocalizedString(@"account-creation-passwords-mismatched", nil)]; isAleadySaving = NO; return; } // Save! - [self showAlert:@"Saving..."]; + [self showAlert:NSLocalizedString(@"account-creation-saving", nil)]; AccountCreationOp *accountCreationOp = [[AccountCreationOp alloc] initWithDomain: [SessionSingleton sharedInstance].domain diff --git a/Wikipedia-iOS/View Controllers/ArticleLanguages/ArticleLanguagesTableVC.m b/Wikipedia-iOS/View Controllers/ArticleLanguages/ArticleLanguagesTableVC.m index db724a0..ab2b213 100644 --- a/Wikipedia-iOS/View Controllers/ArticleLanguages/ArticleLanguagesTableVC.m +++ b/Wikipedia-iOS/View Controllers/ArticleLanguages/ArticleLanguagesTableVC.m @@ -104,7 +104,7 @@ UIButton *cancelButton = [[UIButton alloc] init]; cancelButton.userInteractionEnabled = YES; - [cancelButton setTitle:@"Cancel" forState:UIControlStateNormal]; + [cancelButton setTitle:NSLocalizedString(@"article-languages-cancel", nil) forState:UIControlStateNormal]; [cancelButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal]; cancelButton.translatesAutoresizingMaskIntoConstraints = NO; [cancelButton addTarget:self action:@selector(hide) forControlEvents: UIControlEventTouchUpInside]; diff --git a/Wikipedia-iOS/View Controllers/MainMenu/MainMenuTableViewController.m b/Wikipedia-iOS/View Controllers/MainMenu/MainMenuTableViewController.m index 4677a63..479133f 100644 --- a/Wikipedia-iOS/View Controllers/MainMenu/MainMenuTableViewController.m +++ b/Wikipedia-iOS/View Controllers/MainMenu/MainMenuTableViewController.m @@ -17,10 +17,6 @@ // Row indexes. #define ROW_SAVED_PAGES 1 -// Language toggle text. -#define LANGUAGES_TOGGLE_TEXT_SHOW @" 🙉 Show Languages" -#define LANGUAGES_TOGGLE_TEXT_HIDE @" 🙈 Hide Languages" - // Language options text font/size/color. #define LANGUAGES_TEXT_FONT @"Georgia" @@ -81,7 +77,7 @@ [self addRowsToTableDataForLanguagesFromFile]; // Add a "Show Languages" toggle. - [self addToTableDataLanguagesToggleWithTitle:LANGUAGES_TOGGLE_TEXT_SHOW]; + [self addToTableDataLanguagesToggleWithTitle:NSLocalizedString(@"main-menu-language-toggle-show", nil)]; NSString *currentArticleTitle = [SessionSingleton sharedInstance].currentArticleTitle; if(!currentArticleTitle || (currentArticleTitle.length == 0)){ @@ -103,9 +99,9 @@ // Show login/logout buttons [[self sectionDict:SECTION_LOGIN_OPTIONS][@"rows"] removeAllObjects]; if([SessionSingleton sharedInstance].keychainCredentials.userName){ - [self addToTableDataRowWithTitle:@"🎠Logout" key:@"logout" section: SECTION_LOGIN_OPTIONS]; + [self addToTableDataRowWithTitle:NSLocalizedString(@"main-menu-account-logout", nil) key:@"logout" section: SECTION_LOGIN_OPTIONS]; }else{ - [self addToTableDataRowWithTitle:@"🎠Login" key:@"login" section: SECTION_LOGIN_OPTIONS]; + [self addToTableDataRowWithTitle:NSLocalizedString(@"main-menu-account-login", nil) key:@"login" section: SECTION_LOGIN_OPTIONS]; } } @@ -113,9 +109,13 @@ { NSString *userName = [SessionSingleton sharedInstance].keychainCredentials.userName; if(userName){ - [self sectionDict:SECTION_LOGIN_OPTIONS][@"title"] = [NSString stringWithFormat:@"Logged in as: %@", userName]; + + NSString *loggedInAsTitle = NSLocalizedString(@"main-menu-account-title-logged-in", nil); + loggedInAsTitle = [loggedInAsTitle stringByReplacingOccurrencesOfString:@"$1" withString:userName]; + + [self sectionDict:SECTION_LOGIN_OPTIONS][@"title"] = loggedInAsTitle; }else{ - [self sectionDict:SECTION_LOGIN_OPTIONS][@"title"] = @"Account"; + [self sectionDict:SECTION_LOGIN_OPTIONS][@"title"] = NSLocalizedString(@"main-menu-account-title-logged-out", nil); } } @@ -174,7 +174,7 @@ [@{ @"key": @"menuOptions", - @"title": @"Account", + @"title": NSLocalizedString(@"main-menu-account-title-logged-out", nil), @"label": @"", @"subTitle": @"", @"rows": [@[ @@ -186,7 +186,7 @@ [@{ @"key": @"menuOptions", - @"title": @"Show me...", + @"title": NSLocalizedString(@"main-menu-show-title", nil), @"label": @"", @"subTitle": @"", @"rows": @[ @@ -194,7 +194,7 @@ [@{ @"key": @"history", - @"title": @"📖 My Browsing History", + @"title": NSLocalizedString(@"main-menu-show-history", nil), @"label": @"" } mutableCopy] @@ -203,7 +203,7 @@ [@{ @"key": @"savedPages", - @"title": @"💾 My Saved Pages", + @"title": NSLocalizedString(@"main-menu-show-saved", nil), @"label": @"" } mutableCopy] @@ -223,17 +223,19 @@ @"rows": [@[ [@{ @"key": @"savePage", - @"title": @"💾 Save for Offline Reading", + @"title": NSLocalizedString(@"main-menu-current-article-save", nil), @"label": @"" } mutableCopy] +/* , [@{ @"key": @"debugPage", @"title": @"👀 Debug", @"label": @"" } mutableCopy] - +*/ + ] mutableCopy] } mutableCopy] , @@ -241,7 +243,7 @@ [@{ @"key": @"searchLanguageOptions", - @"title": @"Language Wiki To Search", + @"title": NSLocalizedString(@"main-menu-language-title", nil), @"label": @"", @"subTitle": @"", @"rows": [@[] mutableCopy] @@ -446,9 +448,9 @@ if (!self.showAllLanguages)[self addRowsToTableDataForLanguagesFromFile]; if (self.showAllLanguages) { - [self addToTableDataLanguagesToggleWithTitle:LANGUAGES_TOGGLE_TEXT_HIDE]; + [self addToTableDataLanguagesToggleWithTitle:NSLocalizedString(@"main-menu-language-toggle-hide", nil)]; }else{ - [self addToTableDataLanguagesToggleWithTitle:LANGUAGES_TOGGLE_TEXT_SHOW]; + [self addToTableDataLanguagesToggleWithTitle:NSLocalizedString(@"main-menu-language-toggle-show", nil)]; } // Show huge language list below the "Hide Languages" toggle. if (self.showAllLanguages)[self addRowsToTableDataForLanguagesFromFile]; diff --git a/Wikipedia-iOS/View Controllers/Preview/PreviewAndSaveViewController.m b/Wikipedia-iOS/View Controllers/Preview/PreviewAndSaveViewController.m index 84eca7f..a5b0286 100644 --- a/Wikipedia-iOS/View Controllers/Preview/PreviewAndSaveViewController.m +++ b/Wikipedia-iOS/View Controllers/Preview/PreviewAndSaveViewController.m @@ -139,7 +139,7 @@ if (isAleadyPreviewing) return; isAleadyPreviewing = YES; - [self showAlert:@"Retrieving preview of your changes..."]; + [self showAlert:NSLocalizedString(@"wikitext-preview-changes", nil)]; Section *section = (Section *)[articleDataContext_.mainContext objectWithID:self.sectionID]; PreviewWikiTextOp *previewWikiTextOp = @@ -194,7 +194,7 @@ ArticleDataContextSingleton *articleDataContext_ = [ArticleDataContextSingleton sharedInstance]; - [self showAlert:@"Saving..."]; + [self showAlert:NSLocalizedString(@"wikitext-upload-save", nil)]; Section *section = (Section *)[articleDataContext_.mainContext objectWithID:self.sectionID]; NSManagedObjectID *articleID = section.article.objectID; diff --git a/Wikipedia-iOS/View Controllers/SavedPages/SavedPagesViewController.m b/Wikipedia-iOS/View Controllers/SavedPages/SavedPagesViewController.m index 034da9f..4af3fe4 100644 --- a/Wikipedia-iOS/View Controllers/SavedPages/SavedPagesViewController.m +++ b/Wikipedia-iOS/View Controllers/SavedPages/SavedPagesViewController.m @@ -62,7 +62,7 @@ [self getSavedPagesData]; SavedPagesTableHeadingLabel *savedPagesLabel = [[SavedPagesTableHeadingLabel alloc] initWithFrame:CGRectMake(0, 0, 10, 53)]; - savedPagesLabel.text = @"Saved Pages"; + savedPagesLabel.text = NSLocalizedString(@"saved-pages-title", nil); savedPagesLabel.textAlignment = NSTextAlignmentCenter; savedPagesLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20]; savedPagesLabel.textColor = SAVED_PAGES_TITLE_TEXT_COLOR; diff --git a/Wikipedia-iOS/View Controllers/SearchResults/SearchResultsController.m b/Wikipedia-iOS/View Controllers/SearchResults/SearchResultsController.m index 56cb221..8e58d3e 100644 --- a/Wikipedia-iOS/View Controllers/SearchResults/SearchResultsController.m +++ b/Wikipedia-iOS/View Controllers/SearchResults/SearchResultsController.m @@ -108,7 +108,7 @@ [[QueuesSingleton sharedInstance].searchQ cancelAllOperations]; // Show "Searching..." message. - [self showAlert:SEARCH_LOADING_MSG_SEARCHING]; + [self showAlert:NSLocalizedString(@"search-searching", nil)]; diff --git a/Wikipedia-iOS/View Controllers/SectionEditor/SectionEditorViewController.m b/Wikipedia-iOS/View Controllers/SectionEditor/SectionEditorViewController.m index c2078d5..b5ac698 100644 --- a/Wikipedia-iOS/View Controllers/SectionEditor/SectionEditorViewController.m +++ b/Wikipedia-iOS/View Controllers/SectionEditor/SectionEditorViewController.m @@ -123,7 +123,7 @@ switch (tappedItem.tag) { case NAVBAR_BUTTON_EYE: if (![self changesMade]) { - [self showAlert:@"No changes were made to be previewed."]; + [self showAlert:NSLocalizedString(@"wikitext-preview-changes-none", nil)]; [self showAlert:@""]; break; } @@ -160,13 +160,13 @@ -(void)loadLatestWikiTextForSectionFromServer { - [self showAlert:@"Loading wiki text..."]; + [self showAlert:NSLocalizedString(@"wikitext-downloading", nil)]; Section *section = (Section *)[articleDataContext_.mainContext objectWithID:self.sectionID]; DownloadSectionWikiTextOp *downloadWikiTextOp = [[DownloadSectionWikiTextOp alloc] initForPageTitle:section.article.title domain:section.article.domain section:section.index completionBlock:^(NSString *revision){ [[NSOperationQueue mainQueue] addOperationWithBlock: ^ { - [self showAlert:@"Wiki text loaded."]; + [self showAlert:NSLocalizedString(@"wikitext-download-success", nil)]; [self showAlert:@""]; self.unmodifiedWikiText = revision; self.editTextView.attributedText = [self getAttributedString:revision]; diff --git a/Wikipedia-iOS/View Controllers/TopNav/NavController.m b/Wikipedia-iOS/View Controllers/TopNav/NavController.m index b7194f9..983b0eb 100644 --- a/Wikipedia-iOS/View Controllers/TopNav/NavController.m +++ b/Wikipedia-iOS/View Controllers/TopNav/NavController.m @@ -64,7 +64,7 @@ self.navBarMode = NAVBAR_MODE_SEARCH; - self.textField.placeholder = SEARCH_FIELD_PLACEHOLDER_TEXT; + self.textField.placeholder = NSLocalizedString(@"search-field-placeholder-text", nil); [self.navigationBar addObserver:self forKeyPath:@"bounds" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionInitial context:nil]; @@ -343,31 +343,31 @@ _navBarMode = navBarMode; switch (navBarMode) { case NAVBAR_MODE_EDIT_WIKITEXT: - self.label.text = @"Edit"; + self.label.text = NSLocalizedString(@"navbar-title-mode-edit-wikitext", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_X(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL][NAVBAR_VERTICAL_LINE_2(singlePixel)][NAVBAR_BUTTON_EYE(50)]|"; break; case NAVBAR_MODE_LOGIN: - self.label.text = @"Sign In"; + self.label.text = NSLocalizedString(@"navbar-title-mode-login", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_X(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL][NAVBAR_VERTICAL_LINE_2(singlePixel)][NAVBAR_BUTTON_CHECK(50)]|"; break; case NAVBAR_MODE_CREATE_ACCOUNT: - self.label.text = @"Create Account"; + self.label.text = NSLocalizedString(@"navbar-title-mode-create-account", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_ARROW_LEFT(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL][NAVBAR_VERTICAL_LINE_2(singlePixel)][NAVBAR_BUTTON_CHECK(50)]|"; break; case NAVBAR_MODE_EDIT_WIKITEXT_WARNING: - self.label.text = @"Edit issues"; + self.label.text = NSLocalizedString(@"navbar-title-mode-edit-wikitext-warning", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_ARROW_LEFT(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL][NAVBAR_VERTICAL_LINE_2(singlePixel)][NAVBAR_BUTTON_CHECK(50)]|"; break; case NAVBAR_MODE_EDIT_WIKITEXT_DISALLOW: - self.label.text = @"Edit issues"; + self.label.text = NSLocalizedString(@"navbar-title-mode-edit-wikitext-disallow", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_ARROW_LEFT(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL]|"; break; case NAVBAR_MODE_EDIT_WIKITEXT_PREVIEW: - self.label.text = @"Previewing"; + self.label.text = NSLocalizedString(@"navbar-title-mode-edit-wikitext-preview", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_ARROW_LEFT(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL][NAVBAR_VERTICAL_LINE_2(singlePixel)][NAVBAR_BUTTON_CHECK(50)]|"; break; case NAVBAR_MODE_EDIT_WIKITEXT_CAPTCHA: - self.label.text = @"Quick Verification needed"; + self.label.text = NSLocalizedString(@"navbar-title-mode-edit-wikitext-captcha", nil); self.navBarSubViewsHorizontalVFLString = @"H:|[NAVBAR_BUTTON_ARROW_LEFT(50)][NAVBAR_VERTICAL_LINE_1(singlePixel)]-(10)-[NAVBAR_LABEL][NAVBAR_VERTICAL_LINE_2(singlePixel)][NAVBAR_BUTTON_ARROW_RIGHT(50)]|"; break; default: //NAVBAR_STYLE_SEARCH diff --git a/Wikipedia-iOS/View Controllers/WebView/WebViewController.m b/Wikipedia-iOS/View Controllers/WebView/WebViewController.m index 55b2a0c..fef6d9e 100644 --- a/Wikipedia-iOS/View Controllers/WebView/WebViewController.m +++ b/Wikipedia-iOS/View Controllers/WebView/WebViewController.m @@ -568,7 +568,7 @@ [self hideKeyboard]; // Show loading message - [self showAlert:SEARCH_LOADING_MSG_SECTION_ZERO]; + [self showAlert:NSLocalizedString(@"search-loading-section-zero", nil)]; [self retrieveArticleForPageTitle:cleanTitle domain:domain discoveryMethod:discoveryMethod]; } @@ -590,7 +590,7 @@ // If article with sections just show them (unless needsRefresh is YES) if (article.section.count > 0 && !article.needsRefresh.boolValue) { [self displayArticle:articleID mode:DISPLAY_ALL_SECTIONS]; - [self showAlert:SEARCH_LOADING_MSG_ARTICLE_LOADED]; + [self showAlert:NSLocalizedString(@"search-loading-article-loaded", nil)]; [self showAlert:@""]; return; } @@ -704,7 +704,7 @@ } [self displayArticle:articleID mode:DISPLAY_LEAD_SECTION]; - [self showAlert:SEARCH_LOADING_MSG_SECTION_REMAINING]; + [self showAlert:NSLocalizedString(@"search-loading-section-remaining", nil)]; } cancelledBlock:^(NSError *error){ @@ -764,7 +764,7 @@ [articleDataContext_.workerContext save:&error]; [self displayArticle:articleID mode:DISPLAY_APPEND_NON_LEAD_SECTIONS]; - [self showAlert:SEARCH_LOADING_MSG_ARTICLE_LOADED]; + [self showAlert:NSLocalizedString(@"search-loading-article-loaded", nil)]; [self showAlert:@""]; } cancelledBlock:^(NSError *error){ @@ -1028,16 +1028,20 @@ -(void)zeroStateChanged: (NSNotification*) notification { + [[QueuesSingleton sharedInstance].zeroRatedMessageStringQ cancelAllOperations]; + if ([[[notification userInfo] objectForKey:@"state"] boolValue]) { DownloadWikipediaZeroMessageOp *zeroMessageRetrievalOp = [ [DownloadWikipediaZeroMessageOp alloc] initForDomain: [SessionSingleton sharedInstance].currentArticleDomain completionBlock: ^(NSString *message) { + if (message) { dispatch_async(dispatch_get_main_queue(), ^(){ + NavBarTextField *textField = [NAV getNavBarItem:NAVBAR_TEXT_FIELD]; - textField.placeholder = NSLocalizedString(@"zero-search-hint", nil); + textField.placeholder = NSLocalizedString(@"search-field-placeholder-text-zero", nil); NAV.navBarStyle = NAVBAR_STYLE_NIGHT; @@ -1045,7 +1049,6 @@ [self promptFirstTimeZeroOnWithMessageIfAppropriate:message]; }); - // // [self showHTMLAlert:message bannerImage:nil bannerColor: // [UIColor colorWithWhite:0.0 alpha:1.0]]; } @@ -1054,10 +1057,14 @@ } errorBlock:^(NSError *errorError) { NSLog(@"error w0 error"); }]; - [[QueuesSingleton sharedInstance].zeroRatedMessageStringQ cancelAllOperations]; + [[QueuesSingleton sharedInstance].zeroRatedMessageStringQ addOperation:zeroMessageRetrievalOp]; } else { + + NavBarTextField *textField = [NAV getNavBarItem:NAVBAR_TEXT_FIELD]; + textField.placeholder = NSLocalizedString(@"search-field-placeholder-text", nil); + NAV.navBarStyle = NAVBAR_STYLE_DAY; [self showAlert:NSLocalizedString(@"zero-charged-verbiage", nil)]; [self promptFirstTimeZeroOffIfAppropriate]; diff --git a/Wikipedia-iOS/en.lproj/Localizable.strings b/Wikipedia-iOS/en.lproj/Localizable.strings index c77af51..82d65e4 100644 --- a/Wikipedia-iOS/en.lproj/Localizable.strings +++ b/Wikipedia-iOS/en.lproj/Localizable.strings @@ -1,12 +1,14 @@ "article-languages-label" = "Choose language"; +"article-languages-cancel" = "Cancel"; + "history-label" = "Browsing History"; "history-section-today" = "Today"; "history-section-yesterday" = "Yesterday"; "history-section-lastweek" = "Last week"; "history-section-lastmonth" = "Last month"; + "zero-free-verbiage" = "Free Wikipedia access from your mobile operator (data charges waived)"; "zero-charged-verbiage" = "Wikipedia Zero OFF (STANDARD DATA CHARGES MAY APPLY)"; -"zero-search-hint" = "Search Wikipedia Zero"; "zero-webpage-url" = "https://wikimediafoundation.org/wiki/Wikipedia_Zero_App_FAQ"; "zero-interstitial-title" = "Leaving Wikipedia Zero"; "zero-interstitial-leave-app" = "Continue to external site? Standard data charges may apply."; @@ -17,4 +19,60 @@ "zero-learn-more-no-thanks" = "No thanks"; "zero-wikipedia-zero-heading" = "Wikipedia Zero"; "zero-warn-when-leaving" = "Warn if leaving Wikipedia Zero"; -"zero-settings-devmode" = "Zero Devmode"; +"zero-settings-devmode" = "Zero devmode"; + +"account-creation-captcha-required" = "CAPTCHA verification required."; +"account-creation-captcha-obtaining" = "Obtaining a new CAPTCHA."; +"account-creation-logging-in" = "Logging in..."; +"account-creation-passwords-mismatched" = "Password fields do not match."; +"account-creation-saving" = "Saving..."; + +"login-name-not-found" = "User name is required to login."; +"login-name-illegal" = "You provided an illegal user name."; +"login-name-does-not-exist" = "The user name you provided doesn't exist."; +"login-password-empty" = "Password is required to login."; +"login-password-wrong" = "The password you provided is incorrect."; +"login-throttled" = "You've logged in too many times in a short time."; +"login-user-blocked" = "User is blocked."; + +"wikitext-downloading" = "Loading wiki text..."; +"wikitext-download-failed" = "Unable to obtain latest revision."; +"wikitext-download-success" = "Wiki text loaded."; +"wikitext-preview-changes" = "Retrieving preview of your changes..."; +"wikitext-preview-changes-none" = "No changes were made to be previewed."; +"wikitext-upload-result-unknown" = "Unable to determine wikitext upload result."; +"wikitext-upload-captcha-error" = "Captcha verification error."; +"wikitext-upload-captcha-needed" = "Need captcha verification."; +"wikitext-upload-save" = "Saving..."; + +"search-searching" = "Searching..."; +"search-no-matches" = "No matches found for search term."; +"search-field-placeholder-text" = "Search Wikipedia"; +"search-field-placeholder-text-zero" = "Search Wikipedia Zero"; +"search-loading-section-zero" = "Loading first section of the article..."; +"search-loading-section-remaining" = "Loading the rest of the article..."; +"search-loading-article-loaded" = "Article loaded."; + +"main-menu-language-title" = "Language wiki to search"; +"main-menu-language-toggle-show" = "Show languages"; +"main-menu-language-toggle-hide" = "Hide languages"; +"main-menu-account-title-logged-out" = "Account"; +"main-menu-account-title-logged-in" = "Logged in as: $1"; +"main-menu-account-login" = "Log in"; +"main-menu-account-logout" = "Log out"; +"main-menu-show-title" = "Show me..."; +"main-menu-show-history" = "My browsing history"; +"main-menu-show-saved" = "My saved pages"; +"main-menu-current-article-save" = "Save for offline reading"; + +"saved-pages-title" = "Saved Pages"; + +"navbar-title-mode-edit-wikitext" = "Edit"; +"navbar-title-mode-login" = "Sign in"; +"navbar-title-mode-create-account" = "Create Account"; +"navbar-title-mode-edit-wikitext-warning" = "Edit issues"; +"navbar-title-mode-edit-wikitext-disallow" = "Edit issues"; +"navbar-title-mode-edit-wikitext-preview" = "Previewing"; +"navbar-title-mode-edit-wikitext-captcha" = "Quick Verification needed"; + + diff --git a/Wikipedia-iOS/qqq.lproj/Localizable.strings b/Wikipedia-iOS/qqq.lproj/Localizable.strings index dcdc1b8..b3322c1 100644 --- a/Wikipedia-iOS/qqq.lproj/Localizable.strings +++ b/Wikipedia-iOS/qqq.lproj/Localizable.strings @@ -1,6 +1,76 @@ "article-languages-label" = "Header label for per-article language selector screen"; +"article-languages-cancel" = "Button text for dismissing the language selector screen"; + "history-label" = "Header label for screen showing the users' in-app browsing history"; "history-section-today" = "Subsection label for list of articles browsed today"; "history-section-yesterday" = "Subsection label for list of articles browsed yesterday"; "history-section-lastweek" = "Subsection label for list of articles browsed within the last week"; "history-section-lastmonth" = "Subsection label for list of articles browsed within the last month"; + +"zero-free-verbiage" = "Alert text for Wikipedia Zero free data access enabled"; +"zero-charged-verbiage" = "Alert text for Wikipedia Zero free data access disabled"; +"zero-webpage-url" = "Url for Wikipedia Zero FAQ"; +"zero-interstitial-title" = "Alert text for leaving Wikipedia Zero"; +"zero-interstitial-leave-app" = "Alert text shown if Wikipedia Zero free data access is enabled and user taps external link"; +"zero-interstitial-continue" = "Button text confirming user wants to continue to external site"; +"zero-interstitial-cancel" = "Button text to not continue to external site"; +"zero-learn-more" = "Alert text for learning more about Wikipedia Zero"; +"zero-learn-more-learn-more" = "Button text for learn more about Wikipedia Zero"; +"zero-learn-more-no-thanks" = "Button text for declining to learn more about Wikipedia Zero"; +"zero-wikipedia-zero-heading" = "Main menu heading for Wikipedia Zero options"; +"zero-warn-when-leaving" = "Main menu option to be warned if leaving Wikipedia Zero"; +"zero-settings-devmode" = "Main menu option for enabling Zero Devmode"; + +"account-creation-captcha-required" = "Alert message shown when account creation require a captcha verification"; +"account-creation-captcha-obtaining" = "Alert shown when user wants a new captcha when creating account"; +"account-creation-logging-in" = "Alert shown after account successfully created and the user is being logged in automatically"; +"account-creation-passwords-mismatched" = "Alert shown if the user doesn't enter the same password in both password boxes"; +"account-creation-saving" = "Alert shown when user saves account creation form"; + +"login-name-not-found" = "Alert text shown when no user name was entered"; +"login-name-illegal" = "Alert text shown when illegal user name entered"; +"login-name-does-not-exist" = "Alert text shown when user name entered was not found"; +"login-password-empty" = "Alert text shown when no password was entered"; +"login-password-wrong" = "Alert text shown when incorrect password entered"; +"login-throttled" = "Alert text shown when too many login attempts fail"; +"login-user-blocked" = "Alert text shown when user name entered is blocked"; + +"wikitext-downloading" = "Alert text shown when obtaining latest revision of the section being edited"; +"wikitext-download-failed" = "Alert text shown when unable to obtain latest revision of the section being edited"; +"wikitext-download-success" = "Alert text shown when latest revision of the section being edited has been retrieved"; +"wikitext-preview-changes" = "Alert text shown when getting preview of user changes to wikitext"; +"wikitext-preview-changes-none" = "Alert text shown if no changes were made to be previewed."; +"wikitext-upload-result-unknown" = "Alert text shown when the result of saving section wikitext changes is unknown"; +"wikitext-upload-captcha-error" = "Alert text shown when section wikitext upload captcha fails"; +"wikitext-upload-captcha-needed" = "Alert text shown when section wikitext upload captcha is required"; +"wikitext-upload-save" = "Alert text shown when changes to section wikitext are being saved"; + +"search-searching" = "Alert text shown when results for search term are being retrieved"; +"search-no-matches" = "Message shown if no results found for search term"; +"search-field-placeholder-text" = "Search field placeholder text"; +"search-field-placeholder-text-zero" = "Search field placeholder text when Wikipedia Zero is enabled"; +"search-loading-section-zero" = "Alert text shown when loading first section of the article"; +"search-loading-section-remaining" = "Alert text shown when loading remaining article sections"; +"search-loading-article-loaded" = "Alert text shown when the article has been completely loaded"; + +"main-menu-language-title" = "Header text for default search language selection"; +"main-menu-language-toggle-show" = "Button text for showing language list"; +"main-menu-language-toggle-hide" = "Button text for hiding language list"; +"main-menu-account-title-logged-out" = "Header text used when account is not logged in"; +"main-menu-account-title-logged-in" = "Header text used when account is logged in"; +"main-menu-account-login" = "Button text for logging in"; +"main-menu-account-logout" = "Button text for logging out"; +"main-menu-show-title" = "Header informing the user that they can be shown various things"; +"main-menu-show-history" = "Button text for article history interface"; +"main-menu-show-saved" = "Button text for saved articles interface"; +"main-menu-current-article-save" = "Button text for saving the current article"; + +"saved-pages-title" = "Header text for Saved Pages interface"; + +"navbar-title-mode-edit-wikitext" = "Header text shown when wikitext is being edited"; +"navbar-title-mode-login" = "Header text shown when user is signing in"; +"navbar-title-mode-create-account" = "Header text shown when user is creating an account"; +"navbar-title-mode-edit-wikitext-warning" = "Header text shown when an abuse filter warning is displayed"; +"navbar-title-mode-edit-wikitext-disallow" = "Header text shown when an abuse filter disallow message is displayed"; +"navbar-title-mode-edit-wikitext-preview" = "Header text shown when wikitext changes are being previewed"; +"navbar-title-mode-edit-wikitext-captcha" = "Header text shown when wikitext captcha is displayed"; -- To view, visit https://gerrit.wikimedia.org/r/117628 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I32e7c6f9f4b14264af3580ac89c3431c47cc1592 Gerrit-PatchSet: 3 Gerrit-Project: apps/ios/wikipedia Gerrit-Branch: master Gerrit-Owner: Mhurd <mh...@wikimedia.org> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> Gerrit-Reviewer: Mhurd <mh...@wikimedia.org> Gerrit-Reviewer: Siebrand <siebr...@kitano.nl> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits