ASP.NET Core - имя & # 39; JsonRequestBehavior & # 39; не существует в текущем контексте

Вот что я сделал. Я думаю, что трюк состоял в том, чтобы использовать NSLocalizedStringFromTableInBundle вместо NSLocalizedString.

Для всех строк используйте это

someLabel.text = NSLocalizedStringFromTableInBundle(@"Your String to be localized, %@",nil,self.localeBundle,@"some context for translators");

Чтобы сменить язык, запустите этот код

    NSString * language = @"zh-Hans"; //or whatever language you want
    NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@"lproj"];
    if (path) {
        self.localeBundle = [NSBundle bundleWithPath:path];
    }
    else {
        self.localeBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"] ];
    }

После этого вам, скорее всего, захочется вызывать код обновления для обновления строк на новых языках, например снова запустите это

someLabel.text = NSLocalizedStringFromTableInBundle(@"Your String to be localized, %@",nil,self.localeBundle,@"some context for translators");

Вот и все. Не нужно перезапускать приложение. Совместимость с системными настройками (если вы установите язык через настройки iOS, он тоже будет работать). Нет необходимости в внешней библиотеке. Не нужно джейлбрейка. И это также работает с genstrings.

Конечно, вы должны по-прежнему выполнять обычное для своих настроек приложения:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"zh-Hans", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];

(и делать чек в вашем представленииDidLoad или что-то еще )

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
    NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@"lproj"];
    if (path) {
        self.localeBundle = [NSBundle bundleWithPath:path];
    }
    else {
        self.localeBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"] ];
    }
35
задан nam 5 September 2016 в 17:42
поделиться