diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 906e84a8d3..da4af10611 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -34,10 +34,10 @@ framework_t * m_framework = NULL; { case location::EDisabledByUser: { - UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Location Services are disabled" - message:@"You currently have all location services for this device or application disabled. Please, enable them in Settings Application->Location Services." + UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Location Services are disabled", @"Location services are disabled by user alert - title") + message:NSLocalizedString(@"You currently have all location services for this device or application disabled. Please, enable them in Settings Application->Location Services.", @"Location services are disabled by user alert - message") delegate:nil - cancelButtonTitle:@"Ok" + cancelButtonTitle:NSLocalizedString(@"Ok", @"Location services are disabled by user alert - close alert button") otherButtonTitles:nil]; [alert show]; [alert release]; @@ -46,10 +46,10 @@ framework_t * m_framework = NULL; break; case location::ENotSupported: { - UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Location Services are not supported" - message:@"Your device doesn't support location services" + UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Location Services are not supported", @"Location Services are not available on the device alert - title") + message:NSLocalizedString(@"Your device doesn't support location services", @"Location Services are not available on the device alert - message") delegate:nil - cancelButtonTitle:@"Ok" + cancelButtonTitle:NSLocalizedString(@"Ok", @"Location Services are not available on the device alert - close alert button") otherButtonTitles:nil]; [alert show]; [alert release]; diff --git a/iphone/Maps/Classes/SearchVC.mm b/iphone/Maps/Classes/SearchVC.mm index e1627dd2b7..a6d1f1b26c 100644 --- a/iphone/Maps/Classes/SearchVC.mm +++ b/iphone/Maps/Classes/SearchVC.mm @@ -180,10 +180,12 @@ static void OnSearchResultCallback(search::Result const & res, int queryId) m_searchBar = [[UISearchBar alloc] init]; m_searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; m_searchBar.delegate = self; - m_searchBar.placeholder = @"Search map"; + m_searchBar.placeholder = NSLocalizedString(@"Search map", @"Search box placeholder text"); m_searchBar.showsCancelButton = YES; m_searchBar.showsScopeBar = YES; - m_searchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"By popularity", @"On the screen", @"Near me", nil]; + m_searchBar.scopeButtonTitles = [NSArray arrayWithObjects:NSLocalizedString(@"By popularity", @"Search scope criteria"), + NSLocalizedString(@"On the screen", @"Search scope criteria"), + NSLocalizedString(@"Near me", @"Search scope criteria"), nil]; [parentView addSubview:m_searchBar]; m_table = [[UITableView alloc] init]; @@ -330,7 +332,11 @@ static void OnSearchResultCallback(search::Result const & res, int queryId) // @TODO use imperial system from the settings if needed // @TODO use meters too - cell.detailTextLabel.text = [NSString stringWithFormat:@"%.1lf km", + // NSLocalizedString(@"%.1lf m", @"Search results - Metres") + // NSLocalizedString(@"%.1lf ft", @"Search results - Feet") + // NSLocalizedString(@"%.1lf mi", @"Search results - Miles") + // NSLocalizedString(@"%.1lf yd", @"Search results - Yards") + cell.detailTextLabel.text = [NSString stringWithFormat:NSLocalizedString(@"%.1lf km", @"Search results - Kilometres"), distance / 1000.0]; } } @@ -406,13 +412,13 @@ static void OnSearchResultCallback(search::Result const & res, int queryId) // switch (newStatus) // { // case location::EDisabledByUser: -// m_warningViewText = [[NSString alloc] initWithString:@"Please enable location services"]; +// m_warningViewText = [[NSString alloc] initWithString:NSLocalizedString(@"Please enable location services", @"Search View - Location is disabled by user warning text")]; // break; // case location::ENotSupported: -// m_warningViewText = [[NSString alloc] initWithString:@"Location services are not supported"]; +// m_warningViewText = [[NSString alloc] initWithString:NSLocalizedString(@"Location Services are not supported", @"Search View - Location is not supported on the device warning text")]; // break; // case location::EStarted: -// m_warningViewText = [[NSString alloc] initWithString:@"Determining your location..."]; +// m_warningViewText = [[NSString alloc] initWithString:NSLocalizedString(@"Determining your location...", @"Search View - Trying to determine location warning text")]; // break; // case location::EStopped: // case location::EFirstEvent: diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index 98841cb832..9543cbbd4b 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -81,6 +81,7 @@ FA85F633145DDDC20090E1A0 /* packed_polygons.bin in Resources */ = {isa = PBXBuildFile; fileRef = FA85F632145DDDC20090E1A0 /* packed_polygons.bin */; }; FA87151B12B1518F00592DAF /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA87151A12B1518F00592DAF /* SystemConfiguration.framework */; }; FA8F8938132D5DB00048E3FE /* libtomcrypt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8F8937132D5DB00048E3FE /* libtomcrypt.a */; }; + FA99CB73147089B100689A9A /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FA99CB71147089B100689A9A /* Localizable.strings */; }; FAA5C2A2144F135F005337F6 /* LocationManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = FAA5C2A1144F135F005337F6 /* LocationManager.mm */; }; FAA7A73414055351009F76D8 /* location-selected.png in Resources */ = {isa = PBXBuildFile; fileRef = FAA7A73214055351009F76D8 /* location-selected.png */; }; FAA7A73514055351009F76D8 /* location-selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FAA7A73314055351009F76D8 /* location-selected@2x.png */; }; @@ -692,6 +693,7 @@ FA85F632145DDDC20090E1A0 /* packed_polygons.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; name = packed_polygons.bin; path = ../../data/packed_polygons.bin; sourceTree = SOURCE_ROOT; }; FA87151A12B1518F00592DAF /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; FA8F8937132D5DB00048E3FE /* libtomcrypt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtomcrypt.a; sourceTree = SOURCE_ROOT; }; + FA99CB72147089B100689A9A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; FAA4B13E13EC1C8C00BCAB63 /* DiskFreeSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiskFreeSpace.h; sourceTree = ""; }; FAA5C2A0144F135F005337F6 /* LocationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LocationManager.h; path = Platform/LocationManager.h; sourceTree = ""; }; FAA5C2A1144F135F005337F6 /* LocationManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LocationManager.mm; path = Platform/LocationManager.mm; sourceTree = ""; }; @@ -1314,6 +1316,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + FA99CB71147089B100689A9A /* Localizable.strings */, 490830531426B0900088EE84 /* downloader.png */, 490830541426B0900088EE84 /* downloader@2x.png */, FAA7A73214055351009F76D8 /* location-selected.png */, @@ -2010,6 +2013,8 @@ Japanese, French, German, + en, + ru, ); mainGroup = 29B97314FDCFA39411CA2CEA /* Maps */; projectDirPath = ""; @@ -2582,6 +2587,7 @@ 490830561426B0900088EE84 /* downloader@2x.png in Resources */, FA459EB414327AF700B5BB3C /* WorldCoasts.mwm in Resources */, FA85F633145DDDC20090E1A0 /* packed_polygons.bin in Resources */, + FA99CB73147089B100689A9A /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2611,6 +2617,17 @@ }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXVariantGroup section */ + FA99CB71147089B100689A9A /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + FA99CB72147089B100689A9A /* en */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 1D6058940D05DD3E006BFB54 /* Simulator Debug */ = { isa = XCBuildConfiguration; diff --git a/iphone/Maps/MapsWithMe-Info.plist b/iphone/Maps/MapsWithMe-Info.plist index 357414919f..5c497e6208 100644 --- a/iphone/Maps/MapsWithMe-Info.plist +++ b/iphone/Maps/MapsWithMe-Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - English + en CFBundleDisplayName ${PRODUCT_NAME} CFBundleDocumentTypes diff --git a/iphone/Maps/Platform/LocationManager.mm b/iphone/Maps/Platform/LocationManager.mm index a3d2f0bd0f..a388df04d7 100644 --- a/iphone/Maps/Platform/LocationManager.mm +++ b/iphone/Maps/Platform/LocationManager.mm @@ -9,7 +9,7 @@ { m_locationManager = [[CLLocationManager alloc] init]; m_locationManager.delegate = self; - m_locationManager.purpose = @"Location services are needed to display your current position on the map."; + m_locationManager.purpose = NSLocalizedString(@"Location services are needed to display your current position on the map.", @"Location purpose text description"); m_locationManager.desiredAccuracy = kCLLocationAccuracyBest; m_locationManager.headingFilter = 3.0; m_locationManager.distanceFilter = 1.0; diff --git a/iphone/Maps/Settings/CountriesViewController.mm b/iphone/Maps/Settings/CountriesViewController.mm index 1b8519feaa..cecd86e9bc 100644 --- a/iphone/Maps/Settings/CountriesViewController.mm +++ b/iphone/Maps/Settings/CountriesViewController.mm @@ -64,7 +64,7 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) } WebViewController * aboutViewController = - [[WebViewController alloc] initWithHtml:text baseUrl:nil andTitleOrNil:@"About"]; + [[WebViewController alloc] initWithHtml:text baseUrl:nil andTitleOrNil:NSLocalizedString(@"About", @"Settings/Downloader - About window title")]; [self.navigationController pushViewController:aboutViewController animated:YES]; [aboutViewController release]; } @@ -82,13 +82,13 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) { self.navigationItem.title = header; - UIBarButtonItem * aboutButton = [[[UIBarButtonItem alloc] initWithTitle:@"About" style: UIBarButtonItemStylePlain + UIBarButtonItem * aboutButton = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"About", @"Settings/Downloader - About the program button") style: UIBarButtonItemStylePlain target:self action:@selector(onAboutButton:)] autorelease]; self.navigationItem.rightBarButtonItem = aboutButton; // Show Close button only on the first page - if ([header compare:@"Download"] == NSOrderedSame) + if ([header compare:NSLocalizedString(@"Download", @"Settings/Downloader - Main downloader window title")] == NSOrderedSame) { - UIBarButtonItem * closeButton = [[[UIBarButtonItem alloc] initWithTitle:@"Close" style: UIBarButtonItemStylePlain + UIBarButtonItem * closeButton = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Close", @"Settings/Downloader - Close downloader button") style: UIBarButtonItemStylePlain target:self action:@selector(onCloseButton:)] autorelease]; self.navigationItem.leftBarButtonItem = closeButton; } @@ -146,6 +146,11 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) { LocalAndRemoteSizeT::first_type size = m_storage->CountrySizeInBytes(countryIndex).first; // convert size to human readable values + // @TODO fix localization + // NSLocalizedString(@"kB", @"Settings/Downloader - size string") + // NSLocalizedString(@"MB", @"Settings/Downloader - size string") + // NSLocalizedString(@"kB/sec", @"Settings/Downloader - speed string") + // NSLocalizedString(@"MB/sec", @"Settings/Downloader - speed string") char const * kBorMB = "kB"; if (size > MB) { @@ -162,7 +167,8 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) green:161.f/255.f blue:68.f/255.f alpha:1.f]; - cell.detailTextLabel.text = [NSString stringWithFormat: @"Downloaded (%qu %s), touch to delete", size, kBorMB]; + cell.detailTextLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Downloaded (%qu %s), touch to delete", @"Settings/Downloader - info for downloaded country"), + size, kBorMB]; // also add "sight" icon for centering on the country cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; } @@ -174,7 +180,7 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) green:43.f/255.f blue:182.f/255.f alpha:1.f]; - cell.detailTextLabel.text = @"Downloading..."; + cell.detailTextLabel.text = NSLocalizedString(@"Downloading...", @"Settings/Downloader - info for country which started downloading"); UIActivityIndicatorView * indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleGray]; cell.accessoryView = indicator; @@ -185,7 +191,7 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) case EDownloadFailed: cell.textLabel.textColor = [UIColor redColor]; - cell.detailTextLabel.text = @"Download has failed, touch again for one more try"; + cell.detailTextLabel.text = NSLocalizedString(@"Download has failed, touch again for one more try", @"Settings/Downloader - info for country when download fails"); break; case EInQueue: @@ -194,13 +200,13 @@ static bool IsOurIndex(TIndex const & theirs, TIndex const & ours) green:148.f/255.f blue:222.f/255.f alpha:1.f]; - cell.detailTextLabel.text = [NSString stringWithFormat: @"Marked for downloading, touch to cancel"]; + cell.detailTextLabel.text = [NSString stringWithFormat: NSLocalizedString(@"Marked for downloading, touch to cancel", @"Settings/Downloader - info for country in the download queue")]; } break; case ENotDownloaded: cell.textLabel.textColor = [UIColor blackColor]; - cell.detailTextLabel.text = [NSString stringWithFormat: @"Touch to download"]; + cell.detailTextLabel.text = [NSString stringWithFormat: NSLocalizedString(@"Touch to download", @"Settings/Downloader - info for not downloaded country")]; break; case EUnknown: @@ -288,8 +294,8 @@ UITableViewCell * g_clickedCell = nil; UIActionSheet * popupQuery = [[[UIActionSheet alloc] initWithTitle: countryName delegate: self - cancelButtonTitle: @"Cancel" - destructiveButtonTitle: @"Delete" + cancelButtonTitle: NSLocalizedString(@"Cancel", @"Settings/Downloader - Delete country dialog - Cancel deletion button") + destructiveButtonTitle: NSLocalizedString(@"Delete", @"Settings/Downloader - Delete country dialog - Confirm deletion button") otherButtonTitles: nil] autorelease]; [popupQuery showFromRect: [cell frame] inView: tableView animated: YES]; } @@ -303,10 +309,10 @@ UITableViewCell * g_clickedCell = nil; // check for disk free space first if (FreeDiskSpaceInBytes() < (size + 1024*1024)) { // display warning dialog about not enough free disk space - [[[[CustomAlertView alloc] initWithTitle:@"There is not enough free disk space" - message:[NSString stringWithFormat:@"Please, free some space on your device first to download %@", countryName] + [[[[CustomAlertView alloc] initWithTitle:NSLocalizedString(@"There is not enough free disk space", @"Settings/Downloader - No free space dialog title") + message:[NSString stringWithFormat:NSLocalizedString(@"Please, free some space on your device first to download %@", @"Settings/Downloader - No free space dialog message"), countryName] delegate:nil - cancelButtonTitle:@"OK" + cancelButtonTitle:NSLocalizedString(@"Ok", @"Settings/Downloader - No free space dialog close button") otherButtonTitles:nil] autorelease] show]; break; } @@ -314,20 +320,20 @@ UITableViewCell * g_clickedCell = nil; TActiveConnectionType const connType = GetActiveConnectionType(); if (connType == ENotConnected) { // do not initiate any download - [[[[CustomAlertView alloc] initWithTitle:@"No Internet connection detected" - message:@"Please, use WiFi to download large countries" + [[[[CustomAlertView alloc] initWithTitle:NSLocalizedString(@"No Internet connection detected", @"Settings/Downloader - No internet connection dialog title") + message:NSLocalizedString(@"We recommend to use WiFi to download large countries", @"Settings/Downloader - No internet connection dialog message") delegate:nil - cancelButtonTitle:@"OK" + cancelButtonTitle:NSLocalizedString(@"Ok", @"Settings/Downloader - No internet connection dialog close button") otherButtonTitles:nil] autorelease] show]; } else { if (connType == EConnectedBy3G && size > MAX_3G_MEGABYTES * MB) { // If user uses 3G, do not allow him to download large countries - [[[[CustomAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%@ is too large to download over 3G", countryName] - message:@"Please, use WiFi connection to download large countries" + [[[[CustomAlertView alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@"%@ is too large to download over 3G", @"Settings/Downloader - 3G download warning dialog title"), countryName] + message:NSLocalizedString(@"Please, use WiFi connection to download large countries", @"Settings/Downloader - 3G download warning dialog message") delegate:nil - cancelButtonTitle:@"OK" + cancelButtonTitle:NSLocalizedString(@"Ok", @"Settings/Downloader - 3G download warning dialog close button") otherButtonTitles:nil] autorelease] show]; } else @@ -338,18 +344,18 @@ UITableViewCell * g_clickedCell = nil; if (size > MB) { size /= MB; - strDownload = [NSString stringWithFormat:@"Download %qu MB", size]; + strDownload = [NSString stringWithFormat:NSLocalizedString(@"Download %qu MB", @"Settings/Downloader - Download confirmation button"), size]; } else { size = (size + 999) / 1000; - strDownload = [NSString stringWithFormat:@"Download %qu kB", size]; + strDownload = [NSString stringWithFormat:NSLocalizedString(@"Download %qu kB", @"Settings/Downloader - Download confirmation button"), size]; } UIActionSheet * popupQuery = [[UIActionSheet alloc] initWithTitle: countryName delegate: self - cancelButtonTitle: @"Cancel" + cancelButtonTitle: NSLocalizedString(@"Cancel", @"Settings/Downloader - Download confirmation Cancel button") destructiveButtonTitle: nil otherButtonTitles: strDownload, nil]; [popupQuery showFromRect: [cell frame] inView: tableView animated: YES]; @@ -363,8 +369,8 @@ UITableViewCell * g_clickedCell = nil; UIActionSheet * popupQuery = [[UIActionSheet alloc] initWithTitle: countryName delegate: self - cancelButtonTitle: @"Do Nothing" - destructiveButtonTitle: @"Cancel Download" + cancelButtonTitle: NSLocalizedString(@"Do Nothing", @"Settings/Downloader - Cancel active download dialog - Do not cancel button") + destructiveButtonTitle: NSLocalizedString(@"Cancel Download", @"Settings/Downloader - Cancel active download dialog - Interrupt country download button") otherButtonTitles: nil]; [popupQuery showFromRect: [cell frame] inView: tableView animated: YES]; [popupQuery release]; @@ -398,7 +404,7 @@ UITableViewCell * g_clickedCell = nil; UITableView * tableView = (UITableView *)self.view; UITableViewCell * cell = [tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow: RowFromIndex(index) inSection: 0]]; if (cell) - cell.detailTextLabel.text = [NSString stringWithFormat: @"Downloading %qu%%, touch to cancel", + cell.detailTextLabel.text = [NSString stringWithFormat: NSLocalizedString(@"Downloading %qu%%, touch to cancel", @"Settings/Downloader - country info current download progress"), progress.first * 100 / progress.second]; } } diff --git a/iphone/Maps/Settings/Preferences.mm b/iphone/Maps/Settings/Preferences.mm index 5273b6cf1f..1cd71ac6e7 100644 --- a/iphone/Maps/Settings/Preferences.mm +++ b/iphone/Maps/Settings/Preferences.mm @@ -44,10 +44,11 @@ u = Settings::Foot; PrefDelegate * d = [[PrefDelegate alloc] init]; d.m_controller = controller; - UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Which measurement system do you prefer?" + UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Which measurement system do you prefer?", @"Choose measurement on first launch alert - title") message:nil delegate:d cancelButtonTitle:nil - otherButtonTitles:@"US (ft/mi)", @"Metric (m/km)", nil]; + otherButtonTitles:NSLocalizedString(@"US (ft/mi)", @"Choose measurement on first launch alert - choose metric system button"), + NSLocalizedString(@"Metric (m/km)", @"Choose measurement on first launch alert - choose metric system button"), nil]; [alert show]; [alert release]; } diff --git a/iphone/Maps/Settings/SettingsManager.mm b/iphone/Maps/Settings/SettingsManager.mm index 7501fdca3f..dbba5283cb 100644 --- a/iphone/Maps/Settings/SettingsManager.mm +++ b/iphone/Maps/Settings/SettingsManager.mm @@ -9,6 +9,36 @@ using namespace storage; +// @TODO update data to new format +// NSLocalizedString(@"Upgrade maps", @"Downloader/Upgrade message title") +// NSLocalizedString(@"MapsWithMe uses new, fresh and more compact maps. For example, USA, Germany, France, Canada and Russia are splitted to smaller States/Regions. But to use new maps you should delete all previously downloaded data and download new maps.", @"Downloader/Upgrade dialog message") +// NSLocalizedString(@"Delete old maps and download new maps", @"Downloader/Upgrade OK button") +// NSLocalizedString(@"Do nothing at the moment", @"Downloader/Upgrade Cancel button") + +// @TODO advertisement banner +// NSLocalizedString(@"MapsWithMe Pro", @"Banner title") +// NSLocalizedString(@"One step ahead! Cool search feature! Bla bla bla", @"Banner message") +// NSLocalizedString(@"Check MapsWithMe Pro", @"Banner Ok button - go to the appstore for paid version") +// NSLocalizedString(@"Remind me later", @"Banner postpone button - remind later about paid version") +// NSLocalizedString(@"Don't bother me", @"Banner cancel button - never remind user about paid version") + +// @TODO Write Review dialog +// NSLocalizedString(@"Leave your review", @"Leave Review dialog title") +// NSLocalizedString(@"If you like MapsWithMe, please support us with your review. If you want to complain - please leave it on our support site", @"Leave Review dialog message") +// NSLocalizedString(@"Write a review", @"Leave Review dialog - Review button") +// NSLocalizedString(@"Complain", @"Leave Review dialog - Complain button (goes to support site)") +// NSLocalizedString(@"Not now", @"Leave Review dialog - Not now button (remond me later)") +// NSLocalizedString(@"Dismiss", @"Leave Review dialog - Dismiss forever button") + +// @TODO Buttons in main maps view +// NSLocalizedString(@"Maps", @"View and button titles for accessibility") +// NSLocalizedString(@"Download Maps", @"View and button titles for accessibility") +// NSLocalizedString(@"Search", @"View and button titles for accessibility") +// NSLocalizedString(@"My Position", @"View and button titles for accessibility") +// NSLocalizedString(@"Travel Guide", @"View and button titles for accessibility") +// NSLocalizedString(@"Back", @"View and button titles for accessibility") +// NSLocalizedString(@"Zoom to the country", @"View and button titles for accessibility") + // Settings are always present globally @implementation SettingsManager @@ -52,7 +82,7 @@ using namespace storage; m_storage = storage; CountriesViewController * countriesController = [[[CountriesViewController alloc] - initWithStorage:*m_storage andIndex:TIndex() andHeader:@"Download"] autorelease]; + initWithStorage:*m_storage andIndex:TIndex() andHeader:NSLocalizedString(@"Download", @"Settings/Downloader - Main downloader window title")] autorelease]; m_navigationController = [[UINavigationController alloc] initWithRootViewController:countriesController]; // Subscribe to storage callbacks AND load country names after calling Storage::Subscribe() diff --git a/iphone/Maps/en.lproj/InfoPlist.strings b/iphone/Maps/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..f1ac204bff Binary files /dev/null and b/iphone/Maps/en.lproj/InfoPlist.strings differ diff --git a/iphone/Maps/en.lproj/Localizable.strings b/iphone/Maps/en.lproj/Localizable.strings new file mode 100644 index 0000000000..499e716f66 Binary files /dev/null and b/iphone/Maps/en.lproj/Localizable.strings differ