2013-05-07 10 views
5

Witam bardzo mocno utknąłem na procesie lokalizacji na ios.jak zlokalizować ciągi etykiet w ios dla początkujących

herezje co rozumiem, jak iść do eksploratora projektu i ustawić lokalizacje bazowe dla krajów zmierzających,

jak zrobić plik ciąg i ustawić go być zlokalizowana w jednym z poszczególnych krajów wybranym terminie podstawy lokalizacja

takich jak chiński uproszczony

pary wartość klucza i jak odpowiadać słowo „Hello World” = „jakiś inny język”; w zlokalizowanym pliku ciągów znaków

jak dotąd aplikacja, która ma prostą etykietę ze światem pisania "cześć" po kompilacji, nie zmienia się na chińską w chińskim symulatorze.

heres, gdzie myślę, że idę źle.

Myślę, że muszę połączyć ciągi na ekranie z ciągami zawartymi w moim zlokalizowanym pliku ciągów.

i czy utworzyć osobny plik ciągów dla każdego języka?

Zamierzam dokonać bardzo prostego odgałęzienia aplikacji zawierającej tylko kilka etykiet, które są tłumaczone na różne języki, więc mogę się nauczyć, jak połączyć i pracować, aby móc z niego korzystać gdzie indziej.

istnieje scenopis dla Chińczyków, czy muszę w tym pracować? czy jest puste?

po godzinach czytania dokumentów i wydaje się, że dzieje się w kółko, nie jestem pod wrażeniem dokumentacji jabłkami w tej kwestii, że jego brakuje czegoś,

Odpowiedz

5

Dla lokalizacji, trzeba zrobić:

  1. Dodaj inny plik .strings dla każdego języka
  2. dodać wartość klucza dla każdego pliku językowego
  3. Zastosowanie:

NSLocalizedString(yourKey, nil);

lub

[[NSBundle mainBundle] localizedStringForKey:(yourKey) value:@"" table:nil] 

Uzyskania zlokalizowaną ciąg przekazany klucz.

Ćwiczenia:

  1. Localization in iOS apps made simple
  2. iPhone Apps Localization Guide
  3. Preparing your iOS app for localization in Xcode
+0

zajęło mi cały dzień, ale zrobiłem to dzięki, –

2

Making to dość

Dla Swifta, jest lepszym rozwiązaniem co sprawia, że ​​twoja lokalizacja s trochę lepiej - nie tak niechlujnie. Można użyć następującego rozszerzenia:

extension String { 

    var localized: String { 
     return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") 
    } 


    func localizedWithComment(comment:String) -> String { 
     return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: comment) 
    } 
} 

Teraz, kiedy chcesz coś zlokalizowane, można po prostu poprosić go jako właściwości String:

let text = "my-localization-key".localized 

I będzie się lokalizacji znaków na podstawie bieżącego języka systemu/widownia.

Kilka porad

Jeśli masz większy projekt, to warto przyjrzeć się menedżerów, które zajmują eksport lokalizacja/dodanie nowych języków dla Ciebie. Na przykład używam Crowdina - ale niektóre usługi mogą być bardziej atrakcyjne. Wielką zaletą jest to, że nie musisz robić wszystkiego ręcznie, po prostu wstawiasz klucze/tłumaczenia, a eksport odbywa się dla ciebie, dla wszystkich języków, które masz.

Przestrzegaj również dobrego nazewnictwa kluczy. Na podstawie tego, co widziałem ludzie/moje doświadczenie, myślę, że jest mądry, aby nazwy klawiszy logicznych komponentu/modułu, do której należą, na przykład:

"Profile.NavigationBar.Title" = "Profile"; 
"Profile.NavigationBar.Button.Edit" = "Edit; 

ten sposób można od razu zobaczyć, co i gdzie byś to znalazł.

Wreszcie, ogólnie rzecz biorąc, lokalizacja jest ogromnym problemem z powodu liczby błędów, które możesz popełnić. Istnieje generator, który może tworzyć rzeczywisty kod z twoich lokalizacji, więc kompilator sprawdzi to za Ciebie. You can get it on GitHub.

Powodzenia!

Powiązane problemy