Jak złożyć jeden wniosek dla wielu języków?

Słyszałem, że Apple odrzuca aplikacje zawierające tylko różne języki. Jak więc zmienić obrazy, tekst i ikony dla określonego kraju lub języka?

Złożyłem trzy aplikacje do App Store. Jednak ich różnice dotyczyły tylko języka (lub języka/tekstu w obrazach). Dlatego dwóch z nich zostało odrzuconych. Teraz chciałbym złożyć jeden wniosek dla wszystkich krajów/języków, które chciałbym obsługiwać.

2
BarryK88 1 czerwiec 2011, 12:36

3 odpowiedzi

Najlepsza odpowiedź

Lokalizacja na różne języki jest w pełni obsługiwana i wyraźnie akceptowana przez Apple.

Spójrz tutaj: Internacjonalizacja i lokalizacja, a konkretnie na ten przykład: Międzynarodowe Góry.

Nie możesz opublikować dwóch aplikacji, jeśli jedyną różnicą jest język. Jest to sprzeczne z zapisem w regulaminie App Store dotyczącym tworzenia aplikacji, które są funkcjonalnie takie same.

Rozwiązanie jest tym, na które ci wskazałem: możesz łatwo włączyć obsługę wielu języków w jednym pliku binarnym aplikacji. Więc idź po to...

4
Peter Mortensen 28 październik 2012, 10:23

Cocoa ma wbudowaną obsługę lokalizacji — istnieje cała sekcja witryny dla programistów poświęcona temu właśnie tematowi .

Jednak dobrym początkiem byłoby zapoznanie się z Tematy programowania internacjonalizacji, ponieważ przeprowadzi Cię przez proces dodawania dodatkowych zasobów tekstowych itp. do Twojej aplikacji.

1
John Parker 1 czerwiec 2011, 12:40
Znalazłem świetny tutorial, który bardzo dobrze wyjaśnia moje obawy. adeem.me/blog/2009 /05/10/…
 – 
BarryK88
1 czerwiec 2011, 13:35

Apple obsługuje 33 języki. Oto lista języków:

en, 
fr, 
it,
de,
ja,
nl,
es,
pt,
pt-PT,
da,
fi,
nb,
sv,
ko,
zh-Hans,
zh-Hant,
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
en-GB,
ca,
hu,
vi

Możesz znaleźć swój lokalny język za pomocą tego kodu:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];

Teraz możesz ustawić warunek if zgodnie ze swoim życzeniem, w ten sposób:

if ([currentLanguage isEqualToString:@"it"])
    imgView.image = [UIImage imageNamed:@"italy.jpg"];

if ([currentLanguage isEqualToString:@"en"])
    imgView.image = [UIImage imageNamed:@"america.jpg"];

if ([currentLanguage isEqualToString:@"fr"])
    imgView.image = [UIImage imageNamed:@"france.jpg"];

//Where imgView is an UIImageView declared globaly in viewcontroller.h part.
0
TheTiger 3 listopad 2012, 09:01