2016-12-28 8 views
7

Witam Chcę przekonwertować cały widok interfejsu użytkownika na arabski [from Right to left] Jeśli użytkownik zmieni swój język z ustawień i otworzy aplikację.Interfejs użytkownika dla arabskiego angielskiego iPhone'a z funkcją autorezacji?

Mam poniżej kwerendy

1) Czy muszę utworzyć osobny interfejs dla każdego? 2) Czy jest jakaś krótka droga do osiągnięcia tego celu? 3) Potrzebuję pełnego interfejsu, aby przekształcić się jak lustro, które jest z lewej strony [menu slajdów], aby być z prawej strony itp. ... 4) Xcode 8.2 mają automatyczne ponowne wprowadzanie z automatycznym układem mogę to zrobić bez automatycznego układu?

+3

Jeśli używasz automatycznego układu i właściwie używasz "wiodących"/"końcowych" krawędzi/marginesów zamiast "lewo"/"prawo", po prostu nie powinieneś nic robić (poza sprawdź, czy cały tekst pasuje w razie potrzeby). – jcaron

+0

Używam tylko autorejestrowania ... Xcode 8.2 włącz to ponownie – iphonemaclover

Odpowiedz

1
  1. Nie, użytkownik tworzy tylko jeden interfejs użytkownika, niezależnie od języka.

  2. Tak, jest krótka droga, musisz użyć lokalizacji. apple doc for internationlization

  3. transformacja UI jest wykonywana przez iOS (to prawda dla kontrolerów UIKit tylko. Zobacz edytować poniżej)

  4. auotlayout nie ma nic wspólnego z lokalizacji. ogólnie, lepiej jest używać autolayout, w przeciwnym razie musisz obliczyć dla różnych rozmiarów ekranu. ponownie nie ma nic wspólnego z lokalizacją. patrz edycja poniżej.

edytuj: jeśli chcesz odzwierciedlić własne widoki, np. Uiimage i uilabel. to musisz zrobić to sam z autolayout lub z ramkami. jeśli używasz uinavigation lub tabbarcontroller, kontrolery te będą dublowane przez iOS. więc musisz sam zająć się widokami treści. można generować różne ograniczenia i instalować je odpowiednio podczas wykonywania. ale jeśli twoje poglądy są bardzo złożone, powinieneś zaprojektować 2 różne storyboardy od lewej do prawej i jedną od prawej do lewej, i załadować odpowiedni storyboard podczas uruchamiania aplikacji.

ponowna edycja: , więc oto moja aplikacja w języku angielskim. i moja aplikacja nie robi wsparcia od prawej do lewej języki

english

teraz jeśli dodam, powiedzmy od prawej do lewej języka jak arabski: arabic

jak widać komórki tabeli są przekształcane przez iOS automatycznie. i właśnie dodałem internacjonalizację dla języka arabskiego obok języka angielskiego, niemieckiego i tak dalej. więc jeśli użyjesz kontrolek UIKit w odpowiednich miejscach, zmieni się on automatycznie. Ale jeśli Twoja aplikacja jest bardzo spersonalizowana i ma skomplikowaną hierarchię widoków, to iOS nie może pomóc, musisz zrobić to sam. jeśli trzymasz się standardowej i prostej hierarchii. to nie powinieneś się o to martwić. po prostu przetestuj to i zobacz to dla siebie.

więc w mojej aplikacji na przykład wszystko, co muszę zrobić, to przetłumaczyć ciąg na język od prawej do lewej.

edit: tutaj jest poprawna informacja apple doc dotyczące Pytanie numer 4

Użyj automatycznego układu rozplanować swoje poglądy w stosunku do siebie bez stałych genezie, szerokości i wysokości, tak że poglądy położenie i odpowiednio zmień rozmiar, gdy zmienia się język lub ustawienia regionalne. Auto Layout umożliwia posiadanie jednego zestawu plików .storyboard i .xib dla wszystkich języków.

+0

hej, dziękuję za odpowiedź, ale po prostu wiem, że moja praca jest wykonywana z autoreize, jeśli teraz zastosuję w niej internacjonalizację, czy automatycznie zmieni interfejs użytkownika? nawet jeśli część jest dodana programowo? Załóżmy, że etykieta jest dodawana na poziomie fdeviceheight-100 i fdevicewidth-50? czy automatycznie zmieni się na 100 i 50? – iphonemaclover

+0

Dodałem dodatkowe wyjaśnienie. –

+1

"auotlayout nie ma nic wspólnego z lokalizacją" - false. Jak wskazano w komentarzach do pytania, użycie wiodącego/końcowego zamiast lewego/prawego spowoduje, że interfejs użytkownika będzie lustrzany, jeśli język urządzenia jest od prawej do lewej. Jest to zachowanie rodzimych aplikacji i każdy powinien to zrobić. – hybridcattt

Powiązane problemy