Let users manually specify the domain fronting country.
// FREEBIE
This commit is contained in:
parent
98c5e7d69c
commit
bc501b16f2
|
@ -27,6 +27,8 @@
|
|||
3456710A1E8A9F5D006EE662 /* TSGenericAttachmentAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 345671091E8A9F5D006EE662 /* TSGenericAttachmentAdapter.m */; };
|
||||
3471B1DA1EB7C63600F6AEC8 /* NewNonContactConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */; };
|
||||
3472229F1EB22FFE00E53955 /* AddToGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3472229E1EB22FFE00E53955 /* AddToGroupViewController.m */; };
|
||||
3497DBEC1ECE257500DB2605 /* OWSCountryMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 3497DBEB1ECE257500DB2605 /* OWSCountryMetadata.m */; };
|
||||
3497DBEF1ECE2E4700DB2605 /* DomainFrontingCountryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3497DBEE1ECE2E4700DB2605 /* DomainFrontingCountryViewController.m */; };
|
||||
34B3F8711E8DF1700035BE1A /* AboutTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3F8351E8DF1700035BE1A /* AboutTableViewController.m */; };
|
||||
34B3F8721E8DF1700035BE1A /* AdvancedSettingsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3F8371E8DF1700035BE1A /* AdvancedSettingsTableViewController.m */; };
|
||||
34B3F8731E8DF1700035BE1A /* AttachmentApprovalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B3F8381E8DF1700035BE1A /* AttachmentApprovalViewController.swift */; };
|
||||
|
@ -396,6 +398,10 @@
|
|||
3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewNonContactConversationViewController.m; sourceTree = "<group>"; };
|
||||
3472229D1EB22FFE00E53955 /* AddToGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddToGroupViewController.h; sourceTree = "<group>"; };
|
||||
3472229E1EB22FFE00E53955 /* AddToGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddToGroupViewController.m; sourceTree = "<group>"; };
|
||||
3497DBEA1ECE257500DB2605 /* OWSCountryMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSCountryMetadata.h; sourceTree = "<group>"; };
|
||||
3497DBEB1ECE257500DB2605 /* OWSCountryMetadata.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSCountryMetadata.m; sourceTree = "<group>"; };
|
||||
3497DBED1ECE2E4700DB2605 /* DomainFrontingCountryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DomainFrontingCountryViewController.h; sourceTree = "<group>"; };
|
||||
3497DBEE1ECE2E4700DB2605 /* DomainFrontingCountryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DomainFrontingCountryViewController.m; sourceTree = "<group>"; };
|
||||
34B3F8341E8DF1700035BE1A /* AboutTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutTableViewController.h; sourceTree = "<group>"; };
|
||||
34B3F8351E8DF1700035BE1A /* AboutTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutTableViewController.m; sourceTree = "<group>"; };
|
||||
34B3F8361E8DF1700035BE1A /* AdvancedSettingsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdvancedSettingsTableViewController.h; sourceTree = "<group>"; };
|
||||
|
@ -898,6 +904,8 @@
|
|||
34B3F8401E8DF1700035BE1A /* CountryCodeViewController.h */,
|
||||
34B3F8411E8DF1700035BE1A /* CountryCodeViewController.m */,
|
||||
34D8C0221ED3673300188D7C /* DebugUI */,
|
||||
3497DBED1ECE2E4700DB2605 /* DomainFrontingCountryViewController.h */,
|
||||
3497DBEE1ECE2E4700DB2605 /* DomainFrontingCountryViewController.m */,
|
||||
34B3F8441E8DF1700035BE1A /* ExperienceUpgradesPageViewController.swift */,
|
||||
34B3F8451E8DF1700035BE1A /* FingerprintViewController.h */,
|
||||
34B3F8461E8DF1700035BE1A /* FingerprintViewController.m */,
|
||||
|
@ -930,6 +938,8 @@
|
|||
34B3F85B1E8DF1700035BE1A /* OWSConversationSettingsTableViewController.h */,
|
||||
34B3F85C1E8DF1700035BE1A /* OWSConversationSettingsTableViewController.m */,
|
||||
34D5CCAB1EAE7136005515DB /* OWSConversationSettingsViewDelegate.h */,
|
||||
3497DBEA1ECE257500DB2605 /* OWSCountryMetadata.h */,
|
||||
3497DBEB1ECE257500DB2605 /* OWSCountryMetadata.m */,
|
||||
34B3F85D1E8DF1700035BE1A /* OWSLinkDeviceViewController.h */,
|
||||
34B3F85E1E8DF1700035BE1A /* OWSLinkDeviceViewController.m */,
|
||||
34B3F85F1E8DF1700035BE1A /* OWSLinkedDevicesTableViewController.h */,
|
||||
|
@ -2113,6 +2123,7 @@
|
|||
45E615161E8C590B0018AD52 /* DisplayableTextFilter.swift in Sources */,
|
||||
34B3F88A1E8DF1700035BE1A /* OWSLinkDeviceViewController.m in Sources */,
|
||||
76EB068618170B34006006FC /* ContactTableViewCell.m in Sources */,
|
||||
3497DBEF1ECE2E4700DB2605 /* DomainFrontingCountryViewController.m in Sources */,
|
||||
34B3F8881E8DF1700035BE1A /* OversizeTextMessageViewController.swift in Sources */,
|
||||
34330AA31E79686200DF2FB9 /* OWSProgressView.m in Sources */,
|
||||
34B3F8A21E8EA6040035BE1A /* ViewControllerUtils.m in Sources */,
|
||||
|
@ -2130,6 +2141,7 @@
|
|||
450573FE1E78A06D00615BB4 /* OWS103EnableVideoCalling.m in Sources */,
|
||||
34B3F8751E8DF1700035BE1A /* CallViewController.swift in Sources */,
|
||||
34D8C0281ED3673300188D7C /* DebugUITableViewController.m in Sources */,
|
||||
3497DBEC1ECE257500DB2605 /* OWSCountryMetadata.m in Sources */,
|
||||
34B3F8851E8DF1700035BE1A /* NewGroupViewController.m in Sources */,
|
||||
B6C93C4E199567AD00EDF894 /* DebugLogger.m in Sources */,
|
||||
34D8C0271ED3673300188D7C /* DebugUIMessages.m in Sources */,
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
|
||||
#import "AdvancedSettingsTableViewController.h"
|
||||
#import "DebugLogger.h"
|
||||
#import "DomainFrontingCountryViewController.h"
|
||||
#import "Environment.h"
|
||||
#import "OWSCountryMetadata.h"
|
||||
#import "Pastelog.h"
|
||||
#import "PropertyListPreferences.h"
|
||||
#import "PushManager.h"
|
||||
|
@ -84,6 +86,13 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
[self updateTableContents];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
[self updateTableContents];
|
||||
}
|
||||
|
||||
#pragma mark - Table Contents
|
||||
|
||||
- (void)updateTableContents
|
||||
|
@ -161,7 +170,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
[censorshipSection addItem:[OWSTableItem itemWithCustomCellBlock:^{
|
||||
UITableViewCell *cell = [UITableViewCell new];
|
||||
cell.textLabel.text = NSLocalizedString(
|
||||
@"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION", @"Label for the 'censorship circumvention' switch.");
|
||||
@"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION", @"Label for the 'manual censorship circumvention' switch.");
|
||||
cell.textLabel.font = [UIFont ows_regularFontWithSize:18.f];
|
||||
cell.textLabel.textColor = [UIColor blackColor];
|
||||
|
||||
|
@ -193,11 +202,69 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
return cell;
|
||||
}
|
||||
actionBlock:nil]];
|
||||
|
||||
if (OWSSignalService.sharedInstance.isCensorshipCircumventionManuallyActivated) {
|
||||
[censorshipSection addItem:[OWSTableItem itemWithCustomCellBlock:^{
|
||||
OWSCountryMetadata *manualCensorshipCircumventionCountry =
|
||||
[weakSelf ensureManualCensorshipCircumventionCountry];
|
||||
OWSAssert(manualCensorshipCircumventionCountry);
|
||||
|
||||
UITableViewCell *cell = [UITableViewCell new];
|
||||
cell.textLabel.text = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_COUNTRY_FORMAT",
|
||||
@"Label for the 'manual censorship circumvention' country. Embeds {{the manual "
|
||||
@"censorship circumvention country}}."),
|
||||
manualCensorshipCircumventionCountry.localizedCountryName];
|
||||
cell.textLabel.font = [UIFont ows_regularFontWithSize:18.f];
|
||||
cell.textLabel.textColor = [UIColor blackColor];
|
||||
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
|
||||
return cell;
|
||||
}
|
||||
actionBlock:^{
|
||||
[weakSelf showDomainFrontingCountryView];
|
||||
}]];
|
||||
}
|
||||
[contents addSection:censorshipSection];
|
||||
|
||||
self.contents = contents;
|
||||
}
|
||||
|
||||
- (void)showDomainFrontingCountryView
|
||||
{
|
||||
DomainFrontingCountryViewController *vc = [DomainFrontingCountryViewController new];
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
- (OWSCountryMetadata *)ensureManualCensorshipCircumventionCountry
|
||||
{
|
||||
OWSCountryMetadata *countryMetadata = nil;
|
||||
NSString *countryCode = OWSSignalService.sharedInstance.manualCensorshipCircumventionCountryCode;
|
||||
if (countryCode) {
|
||||
countryMetadata = [OWSCountryMetadata countryMetadataForCountryCode:countryCode];
|
||||
}
|
||||
|
||||
if (!countryMetadata) {
|
||||
countryCode = [NSLocale.currentLocale objectForKey:NSLocaleCountryCode];
|
||||
if (countryCode) {
|
||||
countryMetadata = [OWSCountryMetadata countryMetadataForCountryCode:countryCode];
|
||||
}
|
||||
}
|
||||
|
||||
if (!countryMetadata) {
|
||||
countryCode = @"US";
|
||||
countryMetadata = [OWSCountryMetadata countryMetadataForCountryCode:countryCode];
|
||||
OWSAssert(countryMetadata);
|
||||
}
|
||||
|
||||
if (countryMetadata) {
|
||||
// Ensure the "manual censorship circumvention" country state is in sync.
|
||||
OWSSignalService.sharedInstance.manualCensorshipCircumventionCountryCode = countryCode;
|
||||
OWSSignalService.sharedInstance.manualCensorshipCircumventionDomain = countryMetadata.googleDomain;
|
||||
}
|
||||
|
||||
return countryMetadata;
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (void)syncPushTokens
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DomainFrontingCountryViewController : UIViewController
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,109 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import "DomainFrontingCountryViewController.h"
|
||||
#import "OWSCountryMetadata.h"
|
||||
#import "OWSTableViewController.h"
|
||||
#import "UIFont+OWS.h"
|
||||
#import "UIView+OWS.h"
|
||||
#import <SignalServiceKit/OWSSignalService.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@interface DomainFrontingCountryViewController ()
|
||||
|
||||
@property (nonatomic, readonly) OWSTableViewController *tableViewController;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation DomainFrontingCountryViewController
|
||||
|
||||
- (void)loadView
|
||||
{
|
||||
[super loadView];
|
||||
|
||||
self.title
|
||||
= NSLocalizedString(@"DOMAIN_FRONTING_COUNTRY_VIEW_TITLE", @"Title for the 'domain fronting country' view.");
|
||||
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
[self.navigationController.navigationBar setTranslucent:NO];
|
||||
|
||||
[self createViews];
|
||||
}
|
||||
|
||||
- (void)createViews
|
||||
{
|
||||
_tableViewController = [OWSTableViewController new];
|
||||
[self.view addSubview:self.tableViewController.view];
|
||||
[_tableViewController.view autoPinWidthToSuperview];
|
||||
[_tableViewController.view autoPinToTopLayoutGuideOfViewController:self withInset:0];
|
||||
[_tableViewController.view autoPinToBottomLayoutGuideOfViewController:self withInset:0];
|
||||
|
||||
[self updateTableContents];
|
||||
}
|
||||
|
||||
#pragma mark - Table Contents
|
||||
|
||||
- (void)updateTableContents
|
||||
{
|
||||
OWSTableContents *contents = [OWSTableContents new];
|
||||
|
||||
NSString *currentCountryCode = OWSSignalService.sharedInstance.manualCensorshipCircumventionCountryCode;
|
||||
|
||||
__weak DomainFrontingCountryViewController *weakSelf = self;
|
||||
|
||||
OWSTableSection *section = [OWSTableSection new];
|
||||
section.headerTitle = NSLocalizedString(
|
||||
@"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER", @"Section title for the 'domain fronting country' view.");
|
||||
for (OWSCountryMetadata *countryMetadata in [OWSCountryMetadata allCountryMetadatas]) {
|
||||
[section addItem:[OWSTableItem itemWithCustomCellBlock:^{
|
||||
UITableViewCell *cell = [UITableViewCell new];
|
||||
cell.textLabel.text = countryMetadata.localizedCountryName;
|
||||
cell.textLabel.font = [UIFont ows_regularFontWithSize:18.f];
|
||||
cell.textLabel.textColor = [UIColor blackColor];
|
||||
|
||||
if ([countryMetadata.countryCode isEqualToString:currentCountryCode]) {
|
||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
actionBlock:^{
|
||||
[weakSelf selectCountry:countryMetadata];
|
||||
}]];
|
||||
}
|
||||
[contents addSection:section];
|
||||
|
||||
self.tableViewController.contents = contents;
|
||||
}
|
||||
|
||||
- (void)selectCountry:(OWSCountryMetadata *)countryMetadata
|
||||
{
|
||||
OWSAssert(countryMetadata);
|
||||
|
||||
OWSSignalService.sharedInstance.manualCensorshipCircumventionCountryCode = countryMetadata.countryCode;
|
||||
OWSSignalService.sharedInstance.manualCensorshipCircumventionDomain = countryMetadata.googleDomain;
|
||||
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Logging
|
||||
|
||||
+ (NSString *)tag
|
||||
{
|
||||
return [NSString stringWithFormat:@"[%@]", self.class];
|
||||
}
|
||||
|
||||
- (NSString *)tag
|
||||
{
|
||||
return self.class.tag;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,21 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface OWSCountryMetadata : NSObject
|
||||
|
||||
@property (nonatomic) NSString *name;
|
||||
@property (nonatomic) NSString *tld;
|
||||
@property (nonatomic) NSString *googleDomain;
|
||||
@property (nonatomic) NSString *countryCode;
|
||||
@property (nonatomic) NSString *localizedCountryName;
|
||||
|
||||
+ (OWSCountryMetadata *)countryMetadataForCountryCode:(NSString *)countryCode;
|
||||
|
||||
+ (NSArray<OWSCountryMetadata *> *)allCountryMetadatas;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,844 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import "OWSCountryMetadata.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@implementation OWSCountryMetadata
|
||||
|
||||
+ (OWSCountryMetadata *)countryMetadataWithName:(NSString *)name
|
||||
tld:(NSString *)tld
|
||||
googleDomain:(NSString *)googleDomain
|
||||
countryCode:(NSString *)countryCode
|
||||
{
|
||||
OWSAssert(name.length > 0);
|
||||
OWSAssert(tld.length > 0);
|
||||
OWSAssert(googleDomain.length > 0);
|
||||
OWSAssert(countryCode.length > 0);
|
||||
|
||||
OWSCountryMetadata *instance = [OWSCountryMetadata new];
|
||||
instance.name = name;
|
||||
instance.tld = tld;
|
||||
instance.googleDomain = googleDomain;
|
||||
instance.countryCode = countryCode;
|
||||
|
||||
NSString *localizedCountryName = [[NSLocale currentLocale] localizedStringForCountryCode:countryCode];
|
||||
if (localizedCountryName.length < 1) {
|
||||
localizedCountryName = name;
|
||||
}
|
||||
instance.localizedCountryName = localizedCountryName;
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
+ (OWSCountryMetadata *)countryMetadataForCountryCode:(NSString *)countryCode
|
||||
{
|
||||
OWSAssert(countryCode.length > 0);
|
||||
|
||||
return [self countryCodeToCountryMetadataMap][countryCode];
|
||||
}
|
||||
|
||||
+ (NSDictionary<NSString *, OWSCountryMetadata *> *)countryCodeToCountryMetadataMap
|
||||
{
|
||||
static NSDictionary<NSString *, OWSCountryMetadata *> *cachedValue = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
NSMutableDictionary<NSString *, OWSCountryMetadata *> *map = [NSMutableDictionary new];
|
||||
for (OWSCountryMetadata *metadata in [self allCountryMetadatas]) {
|
||||
map[metadata.countryCode] = metadata;
|
||||
}
|
||||
cachedValue = map;
|
||||
});
|
||||
return cachedValue;
|
||||
}
|
||||
|
||||
+ (NSArray<OWSCountryMetadata *> *)allCountryMetadatas
|
||||
{
|
||||
static NSArray<OWSCountryMetadata *> *cachedValue = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
// This list is derived from:
|
||||
//
|
||||
// * https://en.wikipedia.org/wiki/List_of_Google_domains
|
||||
// * https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
|
||||
cachedValue = @[
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Andorra"
|
||||
tld:@".ad"
|
||||
googleDomain:@"google.ad"
|
||||
countryCode:@"AD"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"United Arab Emirates"
|
||||
tld:@".ae"
|
||||
googleDomain:@"google.ae"
|
||||
countryCode:@"AE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Afghanistan"
|
||||
tld:@".af"
|
||||
googleDomain:@"google.com.af"
|
||||
countryCode:@"AF"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Antigua and Barbuda"
|
||||
tld:@".ag"
|
||||
googleDomain:@"google.com.ag"
|
||||
countryCode:@"AG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Anguilla"
|
||||
tld:@".ai"
|
||||
googleDomain:@"google.com.ai"
|
||||
countryCode:@"AI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Albania"
|
||||
tld:@".al"
|
||||
googleDomain:@"google.al"
|
||||
countryCode:@"AL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Armenia"
|
||||
tld:@".am"
|
||||
googleDomain:@"google.am"
|
||||
countryCode:@"AM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Angola"
|
||||
tld:@".ao"
|
||||
googleDomain:@"google.co.ao"
|
||||
countryCode:@"AO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Argentina"
|
||||
tld:@".ar"
|
||||
googleDomain:@"google.com.ar"
|
||||
countryCode:@"AR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"American Samoa"
|
||||
tld:@".as"
|
||||
googleDomain:@"google.as"
|
||||
countryCode:@"AS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Austria"
|
||||
tld:@".at"
|
||||
googleDomain:@"google.at"
|
||||
countryCode:@"AT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Australia"
|
||||
tld:@".au"
|
||||
googleDomain:@"google.com.au"
|
||||
countryCode:@"AU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Azerbaijan"
|
||||
tld:@".az"
|
||||
googleDomain:@"google.az"
|
||||
countryCode:@"AZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bosnia and Herzegovina"
|
||||
tld:@".ba"
|
||||
googleDomain:@"google.ba"
|
||||
countryCode:@"BA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bangladesh"
|
||||
tld:@".bd"
|
||||
googleDomain:@"google.com.bd"
|
||||
countryCode:@"BD"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Belgium"
|
||||
tld:@".be"
|
||||
googleDomain:@"google.be"
|
||||
countryCode:@"BE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Burkina Faso"
|
||||
tld:@".bf"
|
||||
googleDomain:@"google.bf"
|
||||
countryCode:@"BF"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bulgaria"
|
||||
tld:@".bg"
|
||||
googleDomain:@"google.bg"
|
||||
countryCode:@"BG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bahrain"
|
||||
tld:@".bh"
|
||||
googleDomain:@"google.com.bh"
|
||||
countryCode:@"BH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Burundi"
|
||||
tld:@".bi"
|
||||
googleDomain:@"google.bi"
|
||||
countryCode:@"BI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Benin"
|
||||
tld:@".bj"
|
||||
googleDomain:@"google.bj"
|
||||
countryCode:@"BJ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Brunei"
|
||||
tld:@".bn"
|
||||
googleDomain:@"google.com.bn"
|
||||
countryCode:@"BN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bolivia"
|
||||
tld:@".bo"
|
||||
googleDomain:@"google.com.bo"
|
||||
countryCode:@"BO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Brazil"
|
||||
tld:@".br"
|
||||
googleDomain:@"google.com.br"
|
||||
countryCode:@"BR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bahamas"
|
||||
tld:@".bs"
|
||||
googleDomain:@"google.bs"
|
||||
countryCode:@"BS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Bhutan"
|
||||
tld:@".bt"
|
||||
googleDomain:@"google.bt"
|
||||
countryCode:@"BT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Botswana"
|
||||
tld:@".bw"
|
||||
googleDomain:@"google.co.bw"
|
||||
countryCode:@"BW"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Belarus"
|
||||
tld:@".by"
|
||||
googleDomain:@"google.by"
|
||||
countryCode:@"BY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Belize"
|
||||
tld:@".bz"
|
||||
googleDomain:@"google.com.bz"
|
||||
countryCode:@"BZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Canada"
|
||||
tld:@".ca"
|
||||
googleDomain:@"google.ca"
|
||||
countryCode:@"CA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cambodia"
|
||||
tld:@".kh"
|
||||
googleDomain:@"google.com.kh"
|
||||
countryCode:@"KH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cocos (Keeling) Islands"
|
||||
tld:@".cc"
|
||||
googleDomain:@"google.cc"
|
||||
countryCode:@"CC"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Democratic Republic of the Congo"
|
||||
tld:@".cd"
|
||||
googleDomain:@"google.cd"
|
||||
countryCode:@"CD"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Central African Republic"
|
||||
tld:@".cf"
|
||||
googleDomain:@"google.cf"
|
||||
countryCode:@"CF"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Republic of the Congo"
|
||||
tld:@".cg"
|
||||
googleDomain:@"google.cg"
|
||||
countryCode:@"CG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Switzerland"
|
||||
tld:@".ch"
|
||||
googleDomain:@"google.ch"
|
||||
countryCode:@"CH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Ivory Coast"
|
||||
tld:@".ci"
|
||||
googleDomain:@"google.ci"
|
||||
countryCode:@"CI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cook Islands"
|
||||
tld:@".ck"
|
||||
googleDomain:@"google.co.ck"
|
||||
countryCode:@"CK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Chile"
|
||||
tld:@".cl"
|
||||
googleDomain:@"google.cl"
|
||||
countryCode:@"CL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cameroon"
|
||||
tld:@".cm"
|
||||
googleDomain:@"google.cm"
|
||||
countryCode:@"CM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"China"
|
||||
tld:@".cn"
|
||||
googleDomain:@"google.cn"
|
||||
countryCode:@"CN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Colombia"
|
||||
tld:@".co"
|
||||
googleDomain:@"google.co"
|
||||
countryCode:@"CO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Costa Rica"
|
||||
tld:@".cr"
|
||||
googleDomain:@"google.co.cr"
|
||||
countryCode:@"CR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cuba"
|
||||
tld:@".cu"
|
||||
googleDomain:@"google.com.cu"
|
||||
countryCode:@"CU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cape Verde"
|
||||
tld:@".cv"
|
||||
googleDomain:@"google.cv"
|
||||
countryCode:@"CV"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Christmas Island"
|
||||
tld:@".cx"
|
||||
googleDomain:@"google.cx"
|
||||
countryCode:@"CX"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Cyprus"
|
||||
tld:@".cy"
|
||||
googleDomain:@"google.com.cy"
|
||||
countryCode:@"CY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Czech Republic"
|
||||
tld:@".cz"
|
||||
googleDomain:@"google.cz"
|
||||
countryCode:@"CZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Germany"
|
||||
tld:@".de"
|
||||
googleDomain:@"google.de"
|
||||
countryCode:@"DE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Djibouti"
|
||||
tld:@".dj"
|
||||
googleDomain:@"google.dj"
|
||||
countryCode:@"DJ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Denmark"
|
||||
tld:@".dk"
|
||||
googleDomain:@"google.dk"
|
||||
countryCode:@"DK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Dominica"
|
||||
tld:@".dm"
|
||||
googleDomain:@"google.dm"
|
||||
countryCode:@"DM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Dominican Republic"
|
||||
tld:@".do"
|
||||
googleDomain:@"google.com.do"
|
||||
countryCode:@"DO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Algeria"
|
||||
tld:@".dz"
|
||||
googleDomain:@"google.dz"
|
||||
countryCode:@"DZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Ecuador"
|
||||
tld:@".ec"
|
||||
googleDomain:@"google.com.ec"
|
||||
countryCode:@"EC"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Estonia"
|
||||
tld:@".ee"
|
||||
googleDomain:@"google.ee"
|
||||
countryCode:@"EE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Egypt"
|
||||
tld:@".eg"
|
||||
googleDomain:@"google.com.eg"
|
||||
countryCode:@"EG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Spain"
|
||||
tld:@".es"
|
||||
googleDomain:@"google.es"
|
||||
countryCode:@"ES"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Ethiopia"
|
||||
tld:@".et"
|
||||
googleDomain:@"google.com.et"
|
||||
countryCode:@"ET"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Finland"
|
||||
tld:@".fi"
|
||||
googleDomain:@"google.fi"
|
||||
countryCode:@"FI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Fiji"
|
||||
tld:@".fj"
|
||||
googleDomain:@"google.com.fj"
|
||||
countryCode:@"FJ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Federated States of Micronesia"
|
||||
tld:@".fm"
|
||||
googleDomain:@"google.fm"
|
||||
countryCode:@"FM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"France"
|
||||
tld:@".fr"
|
||||
googleDomain:@"google.fr"
|
||||
countryCode:@"FR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Gabon"
|
||||
tld:@".ga"
|
||||
googleDomain:@"google.ga"
|
||||
countryCode:@"GA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Georgia"
|
||||
tld:@".ge"
|
||||
googleDomain:@"google.ge"
|
||||
countryCode:@"GE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"French Guiana"
|
||||
tld:@".gf"
|
||||
googleDomain:@"google.gf"
|
||||
countryCode:@"GF"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Guernsey"
|
||||
tld:@".gg"
|
||||
googleDomain:@"google.gg"
|
||||
countryCode:@"GG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Ghana"
|
||||
tld:@".gh"
|
||||
googleDomain:@"google.com.gh"
|
||||
countryCode:@"GH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Gibraltar"
|
||||
tld:@".gi"
|
||||
googleDomain:@"google.com.gi"
|
||||
countryCode:@"GI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Greenland"
|
||||
tld:@".gl"
|
||||
googleDomain:@"google.gl"
|
||||
countryCode:@"GL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Gambia"
|
||||
tld:@".gm"
|
||||
googleDomain:@"google.gm"
|
||||
countryCode:@"GM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Guadeloupe"
|
||||
tld:@".gp"
|
||||
googleDomain:@"google.gp"
|
||||
countryCode:@"GP"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Greece"
|
||||
tld:@".gr"
|
||||
googleDomain:@"google.gr"
|
||||
countryCode:@"GR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Guatemala"
|
||||
tld:@".gt"
|
||||
googleDomain:@"google.com.gt"
|
||||
countryCode:@"GT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Guyana"
|
||||
tld:@".gy"
|
||||
googleDomain:@"google.gy"
|
||||
countryCode:@"GY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Hong Kong"
|
||||
tld:@".hk"
|
||||
googleDomain:@"google.com.hk"
|
||||
countryCode:@"HK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Honduras"
|
||||
tld:@".hn"
|
||||
googleDomain:@"google.hn"
|
||||
countryCode:@"HN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Croatia"
|
||||
tld:@".hr"
|
||||
googleDomain:@"google.hr"
|
||||
countryCode:@"HR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Haiti"
|
||||
tld:@".ht"
|
||||
googleDomain:@"google.ht"
|
||||
countryCode:@"HT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Hungary"
|
||||
tld:@".hu"
|
||||
googleDomain:@"google.hu"
|
||||
countryCode:@"HU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Indonesia"
|
||||
tld:@".id"
|
||||
googleDomain:@"google.co.id"
|
||||
countryCode:@"ID"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Iraq" tld:@".iq" googleDomain:@"google.iq" countryCode:@"IQ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Ireland"
|
||||
tld:@".ie"
|
||||
googleDomain:@"google.ie"
|
||||
countryCode:@"IE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Israel"
|
||||
tld:@".il"
|
||||
googleDomain:@"google.co.il"
|
||||
countryCode:@"IL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Isle of Man"
|
||||
tld:@".im"
|
||||
googleDomain:@"google.im"
|
||||
countryCode:@"IM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"India"
|
||||
tld:@".in"
|
||||
googleDomain:@"google.co.in"
|
||||
countryCode:@"IN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"British Indian Ocean Territory"
|
||||
tld:@".io"
|
||||
googleDomain:@"google.io"
|
||||
countryCode:@"IO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Iceland"
|
||||
tld:@".is"
|
||||
googleDomain:@"google.is"
|
||||
countryCode:@"IS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Italy"
|
||||
tld:@".it"
|
||||
googleDomain:@"google.it"
|
||||
countryCode:@"IT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Jersey"
|
||||
tld:@".je"
|
||||
googleDomain:@"google.je"
|
||||
countryCode:@"JE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Jamaica"
|
||||
tld:@".jm"
|
||||
googleDomain:@"google.com.jm"
|
||||
countryCode:@"JM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Jordan"
|
||||
tld:@".jo"
|
||||
googleDomain:@"google.jo"
|
||||
countryCode:@"JO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Japan"
|
||||
tld:@".jp"
|
||||
googleDomain:@"google.co.jp"
|
||||
countryCode:@"JP"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Kenya"
|
||||
tld:@".ke"
|
||||
googleDomain:@"google.co.ke"
|
||||
countryCode:@"KE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Kiribati"
|
||||
tld:@".ki"
|
||||
googleDomain:@"google.ki"
|
||||
countryCode:@"KI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Kyrgyzstan"
|
||||
tld:@".kg"
|
||||
googleDomain:@"google.kg"
|
||||
countryCode:@"KG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"South Korea"
|
||||
tld:@".kr"
|
||||
googleDomain:@"google.co.kr"
|
||||
countryCode:@"KR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Kuwait"
|
||||
tld:@".kw"
|
||||
googleDomain:@"google.com.kw"
|
||||
countryCode:@"KW"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Kazakhstan"
|
||||
tld:@".kz"
|
||||
googleDomain:@"google.kz"
|
||||
countryCode:@"KZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Laos" tld:@".la" googleDomain:@"google.la" countryCode:@"LA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Lebanon"
|
||||
tld:@".lb"
|
||||
googleDomain:@"google.com.lb"
|
||||
countryCode:@"LB"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Saint Lucia"
|
||||
tld:@".lc"
|
||||
googleDomain:@"google.com.lc"
|
||||
countryCode:@"LC"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Liechtenstein"
|
||||
tld:@".li"
|
||||
googleDomain:@"google.li"
|
||||
countryCode:@"LI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Sri Lanka"
|
||||
tld:@".lk"
|
||||
googleDomain:@"google.lk"
|
||||
countryCode:@"LK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Lesotho"
|
||||
tld:@".ls"
|
||||
googleDomain:@"google.co.ls"
|
||||
countryCode:@"LS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Lithuania"
|
||||
tld:@".lt"
|
||||
googleDomain:@"google.lt"
|
||||
countryCode:@"LT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Luxembourg"
|
||||
tld:@".lu"
|
||||
googleDomain:@"google.lu"
|
||||
countryCode:@"LU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Latvia"
|
||||
tld:@".lv"
|
||||
googleDomain:@"google.lv"
|
||||
countryCode:@"LV"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Libya"
|
||||
tld:@".ly"
|
||||
googleDomain:@"google.com.ly"
|
||||
countryCode:@"LY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Morocco"
|
||||
tld:@".ma"
|
||||
googleDomain:@"google.co.ma"
|
||||
countryCode:@"MA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Moldova"
|
||||
tld:@".md"
|
||||
googleDomain:@"google.md"
|
||||
countryCode:@"MD"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Montenegro"
|
||||
tld:@".me"
|
||||
googleDomain:@"google.me"
|
||||
countryCode:@"ME"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Madagascar"
|
||||
tld:@".mg"
|
||||
googleDomain:@"google.mg"
|
||||
countryCode:@"MG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Macedonia"
|
||||
tld:@".mk"
|
||||
googleDomain:@"google.mk"
|
||||
countryCode:@"MK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Mali" tld:@".ml" googleDomain:@"google.ml" countryCode:@"ML"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Myanmar"
|
||||
tld:@".mm"
|
||||
googleDomain:@"google.com.mm"
|
||||
countryCode:@"MM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Mongolia"
|
||||
tld:@".mn"
|
||||
googleDomain:@"google.mn"
|
||||
countryCode:@"MN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Montserrat"
|
||||
tld:@".ms"
|
||||
googleDomain:@"google.ms"
|
||||
countryCode:@"MS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Malta"
|
||||
tld:@".mt"
|
||||
googleDomain:@"google.com.mt"
|
||||
countryCode:@"MT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Mauritius"
|
||||
tld:@".mu"
|
||||
googleDomain:@"google.mu"
|
||||
countryCode:@"MU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Maldives"
|
||||
tld:@".mv"
|
||||
googleDomain:@"google.mv"
|
||||
countryCode:@"MV"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Malawi"
|
||||
tld:@".mw"
|
||||
googleDomain:@"google.mw"
|
||||
countryCode:@"MW"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Mexico"
|
||||
tld:@".mx"
|
||||
googleDomain:@"google.com.mx"
|
||||
countryCode:@"MX"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Malaysia"
|
||||
tld:@".my"
|
||||
googleDomain:@"google.com.my"
|
||||
countryCode:@"MY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Mozambique"
|
||||
tld:@".mz"
|
||||
googleDomain:@"google.co.mz"
|
||||
countryCode:@"MZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Namibia"
|
||||
tld:@".na"
|
||||
googleDomain:@"google.com.na"
|
||||
countryCode:@"NA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Niger"
|
||||
tld:@".ne"
|
||||
googleDomain:@"google.ne"
|
||||
countryCode:@"NE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Norfolk Island"
|
||||
tld:@".nf"
|
||||
googleDomain:@"google.nf"
|
||||
countryCode:@"NF"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Nigeria"
|
||||
tld:@".ng"
|
||||
googleDomain:@"google.com.ng"
|
||||
countryCode:@"NG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Nicaragua"
|
||||
tld:@".ni"
|
||||
googleDomain:@"google.com.ni"
|
||||
countryCode:@"NI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Netherlands"
|
||||
tld:@".nl"
|
||||
googleDomain:@"google.nl"
|
||||
countryCode:@"NL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Norway"
|
||||
tld:@".no"
|
||||
googleDomain:@"google.no"
|
||||
countryCode:@"NO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Nepal"
|
||||
tld:@".np"
|
||||
googleDomain:@"google.com.np"
|
||||
countryCode:@"NP"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Nauru"
|
||||
tld:@".nr"
|
||||
googleDomain:@"google.nr"
|
||||
countryCode:@"NR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Niue" tld:@".nu" googleDomain:@"google.nu" countryCode:@"NU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"New Zealand"
|
||||
tld:@".nz"
|
||||
googleDomain:@"google.co.nz"
|
||||
countryCode:@"NZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Oman"
|
||||
tld:@".om"
|
||||
googleDomain:@"google.com.om"
|
||||
countryCode:@"OM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Pakistan"
|
||||
tld:@".pk"
|
||||
googleDomain:@"google.com.pk"
|
||||
countryCode:@"PK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Panama"
|
||||
tld:@".pa"
|
||||
googleDomain:@"google.com.pa"
|
||||
countryCode:@"PA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Peru"
|
||||
tld:@".pe"
|
||||
googleDomain:@"google.com.pe"
|
||||
countryCode:@"PE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Philippines"
|
||||
tld:@".ph"
|
||||
googleDomain:@"google.com.ph"
|
||||
countryCode:@"PH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Poland"
|
||||
tld:@".pl"
|
||||
googleDomain:@"google.pl"
|
||||
countryCode:@"PL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Papua New Guinea"
|
||||
tld:@".pg"
|
||||
googleDomain:@"google.com.pg"
|
||||
countryCode:@"PG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Pitcairn Islands"
|
||||
tld:@".pn"
|
||||
googleDomain:@"google.pn"
|
||||
countryCode:@"PN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Puerto Rico"
|
||||
tld:@".pr"
|
||||
googleDomain:@"google.com.pr"
|
||||
countryCode:@"PR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Palestine[4]"
|
||||
tld:@".ps"
|
||||
googleDomain:@"google.ps"
|
||||
countryCode:@"PS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Portugal"
|
||||
tld:@".pt"
|
||||
googleDomain:@"google.pt"
|
||||
countryCode:@"PT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Paraguay"
|
||||
tld:@".py"
|
||||
googleDomain:@"google.com.py"
|
||||
countryCode:@"PY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Qatar"
|
||||
tld:@".qa"
|
||||
googleDomain:@"google.com.qa"
|
||||
countryCode:@"QA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Romania"
|
||||
tld:@".ro"
|
||||
googleDomain:@"google.ro"
|
||||
countryCode:@"RO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Serbia"
|
||||
tld:@".rs"
|
||||
googleDomain:@"google.rs"
|
||||
countryCode:@"RS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Russia"
|
||||
tld:@".ru"
|
||||
googleDomain:@"google.ru"
|
||||
countryCode:@"RU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Rwanda"
|
||||
tld:@".rw"
|
||||
googleDomain:@"google.rw"
|
||||
countryCode:@"RW"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Saudi Arabia"
|
||||
tld:@".sa"
|
||||
googleDomain:@"google.com.sa"
|
||||
countryCode:@"SA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Solomon Islands"
|
||||
tld:@".sb"
|
||||
googleDomain:@"google.com.sb"
|
||||
countryCode:@"SB"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Seychelles"
|
||||
tld:@".sc"
|
||||
googleDomain:@"google.sc"
|
||||
countryCode:@"SC"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Sweden"
|
||||
tld:@".se"
|
||||
googleDomain:@"google.se"
|
||||
countryCode:@"SE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Singapore"
|
||||
tld:@".sg"
|
||||
googleDomain:@"google.com.sg"
|
||||
countryCode:@"SG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Saint Helena, Ascension and Tristan da Cunha"
|
||||
tld:@".sh"
|
||||
googleDomain:@"google.sh"
|
||||
countryCode:@"SH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Slovenia"
|
||||
tld:@".si"
|
||||
googleDomain:@"google.si"
|
||||
countryCode:@"SI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Slovakia"
|
||||
tld:@".sk"
|
||||
googleDomain:@"google.sk"
|
||||
countryCode:@"SK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Sierra Leone"
|
||||
tld:@".sl"
|
||||
googleDomain:@"google.com.sl"
|
||||
countryCode:@"SL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Senegal"
|
||||
tld:@".sn"
|
||||
googleDomain:@"google.sn"
|
||||
countryCode:@"SN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"San Marino"
|
||||
tld:@".sm"
|
||||
googleDomain:@"google.sm"
|
||||
countryCode:@"SM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Somalia"
|
||||
tld:@".so"
|
||||
googleDomain:@"google.so"
|
||||
countryCode:@"SO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"São Tomé and Príncipe"
|
||||
tld:@".st"
|
||||
googleDomain:@"google.st"
|
||||
countryCode:@"ST"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Suriname"
|
||||
tld:@".sr"
|
||||
googleDomain:@"google.sr"
|
||||
countryCode:@"SR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"El Salvador"
|
||||
tld:@".sv"
|
||||
googleDomain:@"google.com.sv"
|
||||
countryCode:@"SV"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Chad" tld:@".td" googleDomain:@"google.td" countryCode:@"TD"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Togo" tld:@".tg" googleDomain:@"google.tg" countryCode:@"TG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Thailand"
|
||||
tld:@".th"
|
||||
googleDomain:@"google.co.th"
|
||||
countryCode:@"TH"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Tajikistan"
|
||||
tld:@".tj"
|
||||
googleDomain:@"google.com.tj"
|
||||
countryCode:@"TJ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Tokelau"
|
||||
tld:@".tk"
|
||||
googleDomain:@"google.tk"
|
||||
countryCode:@"TK"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Timor-Leste"
|
||||
tld:@".tl"
|
||||
googleDomain:@"google.tl"
|
||||
countryCode:@"TL"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Turkmenistan"
|
||||
tld:@".tm"
|
||||
googleDomain:@"google.tm"
|
||||
countryCode:@"TM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Tonga"
|
||||
tld:@".to"
|
||||
googleDomain:@"google.to"
|
||||
countryCode:@"TO"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Tunisia"
|
||||
tld:@".tn"
|
||||
googleDomain:@"google.tn"
|
||||
countryCode:@"TN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Turkey"
|
||||
tld:@".tr"
|
||||
googleDomain:@"google.com.tr"
|
||||
countryCode:@"TR"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Trinidad and Tobago"
|
||||
tld:@".tt"
|
||||
googleDomain:@"google.tt"
|
||||
countryCode:@"TT"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Taiwan"
|
||||
tld:@".tw"
|
||||
googleDomain:@"google.com.tw"
|
||||
countryCode:@"TW"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Tanzania"
|
||||
tld:@".tz"
|
||||
googleDomain:@"google.co.tz"
|
||||
countryCode:@"TZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Ukraine"
|
||||
tld:@".ua"
|
||||
googleDomain:@"google.com.ua"
|
||||
countryCode:@"UA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Uganda"
|
||||
tld:@".ug"
|
||||
googleDomain:@"google.co.ug"
|
||||
countryCode:@"UG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"United States"
|
||||
tld:@".us"
|
||||
googleDomain:@"google.us"
|
||||
countryCode:@"US"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Uruguay"
|
||||
tld:@".uy"
|
||||
googleDomain:@"google.com.uy"
|
||||
countryCode:@"UY"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Uzbekistan"
|
||||
tld:@".uz"
|
||||
googleDomain:@"google.co.uz"
|
||||
countryCode:@"UZ"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Saint Vincent and the Grenadines"
|
||||
tld:@".vc"
|
||||
googleDomain:@"google.com.vc"
|
||||
countryCode:@"VC"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Venezuela"
|
||||
tld:@".ve"
|
||||
googleDomain:@"google.co.ve"
|
||||
countryCode:@"VE"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"British Virgin Islands"
|
||||
tld:@".vg"
|
||||
googleDomain:@"google.vg"
|
||||
countryCode:@"VG"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"United States Virgin Islands"
|
||||
tld:@".vi"
|
||||
googleDomain:@"google.co.vi"
|
||||
countryCode:@"VI"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Vietnam"
|
||||
tld:@".vn"
|
||||
googleDomain:@"google.com.vn"
|
||||
countryCode:@"VN"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Vanuatu"
|
||||
tld:@".vu"
|
||||
googleDomain:@"google.vu"
|
||||
countryCode:@"VU"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Samoa"
|
||||
tld:@".ws"
|
||||
googleDomain:@"google.ws"
|
||||
countryCode:@"WS"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"South Africa"
|
||||
tld:@".za"
|
||||
googleDomain:@"google.co.za"
|
||||
countryCode:@"ZA"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Zambia"
|
||||
tld:@".zm"
|
||||
googleDomain:@"google.co.zm"
|
||||
countryCode:@"ZM"],
|
||||
[OWSCountryMetadata countryMetadataWithName:@"Zimbabwe"
|
||||
tld:@".zw"
|
||||
googleDomain:@"google.co.zw"
|
||||
countryCode:@"ZW"],
|
||||
];
|
||||
cachedValue = [cachedValue sortedArrayUsingComparator:^NSComparisonResult(
|
||||
OWSCountryMetadata *_Nonnull left, OWSCountryMetadata *_Nonnull right) {
|
||||
return [left.localizedCountryName compare:right.localizedCountryName];
|
||||
}];
|
||||
});
|
||||
return cachedValue;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -331,6 +331,12 @@
|
|||
/* Generic short text for button to dismiss a dialog */
|
||||
"DISMISS_BUTTON_TEXT" = "Dismiss";
|
||||
|
||||
/* Section title for the 'domain fronting country' view. */
|
||||
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Censorship Circumvention Location";
|
||||
|
||||
/* Title for the 'domain fronting country' view. */
|
||||
"DOMAIN_FRONTING_COUNTRY_VIEW_TITLE" = "Select Country";
|
||||
|
||||
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
|
||||
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can give access in the Settings app.";
|
||||
|
||||
|
@ -1087,9 +1093,12 @@
|
|||
/* Title for the 'add to block list' view. */
|
||||
"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Block";
|
||||
|
||||
/* Label for the 'censorship circumvention' switch. */
|
||||
/* Label for the 'manual censorship circumvention' switch. */
|
||||
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION" = "Censorship Circumvention";
|
||||
|
||||
/* Label for the 'manual censorship circumvention' country. Embeds {{the manual censorship circumvention country}}. */
|
||||
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_COUNTRY_FORMAT" = "Location: %@";
|
||||
|
||||
/* Table footer for the 'censorship circumvention' section when censorship circumvention can be manually enabled. */
|
||||
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER" = "If enabled, Signal will attempt to circumvent censorship. Do not enable this feature unless you are in a location where Signal is censored.";
|
||||
|
||||
|
|
Loading…
Reference in New Issue