2012-01-11 4 views

Odpowiedz

1

Wygląda na to, że chcesz dowiedzieć się więcej o plikach .string.

Here is a tutorial on the subject.

And here is a related question możesz sprawdzić na więcej informacji.

+1

Czy możesz odwoływać się do tłumaczeń w pliku .strings z pliku xib, czy musisz ustawić wartości etykiety (etc) w kodzie, jeśli potrzebujesz tylko jednego xib zamiast jednego xib na język? – jrturton

+0

Świetne pytanie @jrturton, i nie jestem pewien odpowiedzi na to pytanie. Aby odwołać się do .strings z samego Xib? Podejrzewam, że to możliwe przez KVC, ale nigdy nie próbowałem. –

+0

zobacz ten samouczek: http: //www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial –

0

Pochodzę z tła Android, zadaję to samo pytanie. Nawet Apple recommends tworzy oddzielne pliki XIB dla każdego języka. Na szczęście proces ten można zautomatyzować za pomocą skryptu kompilacji ibtool. Jest ładnie opisany w this article.

-1

Ten problem został doprowadza mnie do szału.

Natknąłem się na ten post i kilka innych, starając się, aby lokalizacja Xib była dla mnie łatwiejsza. Opublikowalem moją metodę włączania IBOutles dla etykiet/przycisków w tym pytaniu, działało świetnie dla mnie, zachowuje wszystkie zmiany ograniczone do plików Localization.strings.

https://stackoverflow.com/a/15485572/1449834

+0

Jakiś powód anonimowego głosowania w dół? – WiseGuy

0

myślę zlokalizować xibs bezpośrednio nie jest dobrym rozwiązaniem. Używam https://github.com/steipete/Aspects do hakowania metody awakeFromNib w UILabel i lokalizowania tam tekstu. Przykład:

#define Localized(_v_) NSLocalizedString(_v_, nil) 
NSError *err = nil; 
[UILabel aspect_hookSelector:@selector(awakeFromNib) 
       withOptions:AspectPositionAfter 
        usingBlock:^(id<AspectInfo> aspectInfo) { 
         UILabel *label = aspectInfo.instance; 
         NSString *lStr = Localized(label.text); 
         if (lStr) { 
          label.text = lStr; 
         } 
} error:&err]; 

Jeśli masz UIButton i inne UIView w obsłudze, można po prostu podpiąć awakeFromNib z UIView i zlokalizować każdy rodzaj widzenia.