2013-06-04 9 views
5

sto usando la nuova functionnality iOS di tradurre gli storyboard (http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.html)iOS Storyboard stringhe localizzabili non funzionano su UILabel sottoclassi

Il problema con questa soluzione, non funziona con i miei sottoclassi UILabel.

Ecco i codici per i miei sottoclassi UILabel:

.h:

#import <UIKit/UIKit.h> 
@interface LabelThinText : UILabel 
- (void)awakeFromNib; 
-(id)initWithFrame:(CGRect)frame; 
@end 

.m:

@implementation LabelThinText 

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
    [self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]]; 
} 

-(id)initWithFrame:(CGRect)frame 
{ 
    id result = [super initWithFrame:frame]; 
    if (result) { 
     [self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]]; 
    } 
    return result; 
} 

@end  

Credo che mi manca qualcosa per ottenere le traduzioni automatiche da il mio file Storyboard.strings.

Qualcuno ha un'idea?

Grazie!

+0

È possibile scaricare il mio progetto di test: https://github.com/arn00s/iOS_BaseLocalization Basta passare il lang del dispositivo da EN a FR e verranno visualizzate le differenze. –

risposta

1

Ho riscontrato lo stesso problema e, per lo stesso motivo, ho impostato un carattere personalizzato in un'etichetta. La mia strategia era un po 'più generale, però. Il mio font personalizzato è simile a Helvetica, quindi ho usato Helvetica Neue in IB come font segnaposto. La sottoclasse UILabel la traduceva nel mio font personalizzato, preservando la dimensione e il peso del font, così ho potuto controllare tutto ciò tramite IB.

Ciò ha reso più facile la soluzione per il bug di traduzione (presumo che sia un bug). Attraverso tutte le mie viste in modo ricorsivo in viewDidLoad e mappo tutti i font UILabel se corrispondono al carattere segnaposto e lo stesso vale per UIButton nel mio caso.

Hai archiviato un bug?

+1

Non ho presentato un errore, ma ho richiesto un supporto tecnico di Apple. Mi hanno detto che devono guardare in dettaglio con un ingegnere (1 mese fa). Sto ancora aspettando una risposta ... –

+3

Sto avendo un problema simile. Si prega di aggiornare quando si sente da Apple. –

+0

Qualche aggiornamento su questo? – Anastasia

1

incontrato lo stesso problema, ecco come ho ottenuto intorno ad esso:

cadere il vostro classe personalizzata, e creare una categoria a UILabel, nel tuo caso UILabel + ThinText:

- (void) setThinText:(BOOL)thinText 
{ 
    if (thinText) { 
     [self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]]; 
    } 
} 

Nel vostro storyboard, selezionare l'etichetta, scegliere il Identità ispettore e aggiungere il seguente User Runtime Definito attributo:

Percorso chiave: thinText - Tipo: Boolean - Valore: controllata

0

ho avuto questo problema anche. Lo risolvo impostando il carattere personalizzato in ogni ViewController. Lasciate che vi mostri un esempio:

CustomViewController.h 
@interface CustonViewController 

@property (strong, nonatomic) IBOutlet UILabel* someLabel; 

@end 

Il in CustomViewController.m

- (void)viewDidLoad 
{ 
    [self setUoFonts]; 
} 

- (void)setUpFonts 
{ 
    self.someLabel.font = [UIFont fontWithName:@"AmaticSC-Regular" size:self.someLabel.font.pointSize]; 
} 

E questo è tutto !. Avrai la tua traduzione e il tuo carattere personalizzato.

Ricordarsi di rimuovere la classe personalizzata da StoryBoard.

Problemi correlati