(Są podobne pytania, niektóre zaowocowały odpowiedziami, które próbowałem i okazały się nieskuteczne, inne nie otrzymały odpowiedzi, zakładam, że kwarki nie podaj tyle detali co ja.)Storyboard + lokalizacja bazy + plik .strings nie jest lokalizowany w czasie wykonywania
Zacząłem od storyboardu, który sprawdził się w mojej aplikacji; ciągi, które zawiera, są w języku angielskim. Chciałem dodać francuską lokalizację. Zrobiłem to:
- dodał lokalizacja bazowa, która przenoszona
MainStoryboard.storyboard
oden.lproj
doBase.lproj
. - Dodano francuską lokalizację, która została sklonowana
InfoPlist.strings
(angielska) iMainStoryboard.storyboard
(baza) dofr.lproj
. - Zmieniono kilka ciągów (tytuły segmentów w
UISegmentedControl
) we francuskimMainStoryboard.storyboard
. - W symulatorze ustaw język na francuski.
- Uruchomiono aplikację z Xcode.
Wynik: To zadziałało; moje zmienione ciągi pojawiły się w uruchomionej aplikacji.
Ale chcę być wyjątkowa. Chcę zrobić francuską lokalizację przy użyciu pliku .strings
. (To nie jest tylko kwestia bycia fantazyjne, Francuzi lokalizacja zostanie przekazany nietechnicznych tłumaczy, którzy nie mogą się spodziewać do opanowania interfejsu Builder.) Więc:
- Wybrane bazy
MainStoryboard.storyboard
w Xcode projektu nawigator. - W Inspektorze plików w obszarze Lokalizacja zmieniono francuską lokalizację z "Kreatora interfejsu dotykowego Cocoa Touch Storyboard" na "Ścieżki do zlokalizowania".
- Zaakceptowano ostrzeżenie Xcode, że francuski scenorys zostanie odrzucony na rzecz pliku
.strings
, który pojawi się w edytorze asystenta. - Wykonano te same dwie zmiany; nie ma wątpliwości, że są to nieprawidłowe ciągi znaków, ponieważ wszystkie są skomentowane jako
IBUISegmentedControl...segmentTitles
; a tekst etykiety nie pojawia się nigdzie indziej w pliku.strings
. - Usunięto istniejącą (działającą) kopię aplikacji z symulatora.
- Uruchom aplikację.
Wynik: Widok wykorzystuje bazę (oryginalnie w języku angielskim) lokalizację, zamiast ładowania francuskich sznurki.
To nie jest zadowalające. Próbowałem usunąć aplikację z symulatora, a nawet usunąć folder danych pochodnych. Błąd nadal występuje.
Jak już powiedziałem, nie mogę zmienić pliku .storyboard
na nietechnicznego tłumacza. Jak mogę sprawić, by iOS akceptował lokalizacje scenorysów z pliku .strings
?
Konwersja storyboard do Auto Układ miał bez efektu. – user698970
Odpowiedź na inne podobne pytanie sugerowała uruchomienie ibtool na podstawowym scenorysie i użycie go jako startera dla pliku .strings zamiast jednego dostarczonego kreatora interfejsu. Te dwa pliki są identyczne. – user698970
Oto kolejna zmienna: scenorys ma wiele nieosiągalnych scen: nie są one początkowymi kontrolerami i nie mają żadnych sekwencji prowadzących do nich. (Nie robię tego, będę musiał porozmawiać z programistą, który myślał, że to dobry pomysł.) Czy to może kolidować z lokalizacją .strings? – user698970