Итак, я провел некоторое исследование, и кажется, что для правильной работы текст UITextView должен быть программным.
Источник: Devforums.apple
Цитата:
как я понимаю, строки, такие как текстовое свойство текстового вида/поля должны быть установлены в коде с помощью NSLocalizedString. Первые 1/2 часа видеосеанса WWDC 2013 # 219 Создание вашего приложения World Ready охватывает это, если у вас есть время посмотреть его
Итак, кажется, что обходной путь (если вы не хотите устанавливать текст программно) заключается в том, чтобы преобразовать файл строк в раскадровку перед отправкой приложения. Кажется, что это работает так, как предполагалось, и показывает, что UITextView правильно локализован.
EDIT: обнаружено другое обходное решение, позволяющее хранить файл .strings.
В - (void)viewDidLoad
:
for(UIView* v in self.view.subviews)
{
if([v isKindOfClass:[UITextView class]])
{
UITextView* txv = (UITextView*)v;
NSString *loctxt = [txv.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
txv.text = NSLocalizedString(loctxt, @"");
}
}
Это производит Процент ускользает закодированную строку из любой внутри раскадровки, как это:
Hello%20World
В файле Localizable.strings
, вы используете выше в качестве ключа , и это создаст локализованный текст в приложении во время выполнения для выбранной локали, например:
"Hello%20World" = "Hallo Welt";
Пробег в процентах заботится обо всех escape-символах в базовой строке.
Я только что столкнулся с ТОЧНЫМ вопросом. Все работает отлично в симуляторе, кроме UITextViews при использовании строк для локализованных языков. Он работает так, как ожидалось, когда я переключаюсь на файлы раскадровки IB, кстати. Xcode5 и Mavericks. – user1459524
То же самое здесь. Странный вопрос! Будем надеяться, что кто-то знает обходное решение/исправить ... Я тоже xxode 5/maverick ... – rkh
Просто протестирован на устройствах (iPhone5c и iPad), и это та же проблема. Так что это не просто симулятор. – user1459524