iPhone: NSLocalizedString в конструкторе интерфейсов? - PullRequest
14 голосов
/ 02 ноября 2010

Есть ли способ вставить NSLocalizedString в конструктор интерфейса.Например, установить текст метки для локализованной строки вместо статической?

Ответы [ 6 ]

6 голосов
/ 02 ноября 2010

Этот пост может иметь несколько советов для вас:

http://blog.wilshipley.com/2009/10/pimp-my-code-part-17-lost-in.html

2 голосов
/ 20 июня 2014

Чтобы избежать создания группы категорий, создайте только одну категорию, которая классифицирует NSObject, а затем проверьте для isKindOfClass, как предложено. Смотрите код ниже:

#import "NSObject+Localized.h"

@implementation NSObject (Localized)

///
/// This method is used to translate strings in .xib files.
/// Using the "User Defined Runtime Attributes" set an entry like:
/// Key Path: textLocalized
/// Type: String
/// Value: {THE TRANSLATION KEY}
///
-(void) setTextLocalized:(NSString *)key
{
    if ([self isKindOfClass:[UILabel class]])
    {
        UILabel *label = (UILabel *)self;
        [label setText:NSLocalizedString(key, nil)];
    }
    else if ([self isKindOfClass:[UIButton class]])
    {
        UIButton *button = (UIButton *)self;
        [button setTitle:NSLocalizedString(key, nil) forState:UIControlStateNormal];
    }
    else if ([self isKindOfClass:[UIBarButtonItem class]])
    {
        UIBarButtonItem *button = (UIBarButtonItem *)self;
        [button setTitle:NSLocalizedString(key, nil)];
    }
}

@end
2 голосов
/ 26 апреля 2014

Вы можете использовать дополнительные пользовательские атрибуты времени выполнения:

http://cupobjc.blogspot.com.es/2014/04/interfaz-builder-localization.html

Сначала определите новую категорию для UILabel:

#import "UILabel+Localized.h"

@implementation UILabel (Localized)
-(void) setTextLocalized:(NSString *)aText{
     [self setText:NSLocalizedString(aText, nil)];
}
@end

Затем в конструкторе интерфейса определяемые пользователем атрибуты времени выполнения:

textLocalized Строка вашей строки для локализованного

enter image description here

2 голосов
/ 19 марта 2013

Даже если этот пост старый, для тех, кто заинтересован в автоматической локализации файлов IB, проверьте это: https://github.com/angelolloqui/AGi18n

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: разработчик библиотеки

1 голос
/ 02 ноября 2010

NSLocalizedString не является рекомендуемым способом локализации файлов Interface Builder. Проверить ibtool:

http://www.bdunagan.com/2009/03/15/ibtool-localization-made-easy/

0 голосов
/ 01 октября 2014

Я сделал то же самое, что упоминал @OAK.Вот полный код.

Локализация Interface Builder HowTo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...