2012-12-13 14 views
5

Więc zlokalizowałem scenorys w Xcode przy użyciu Użycie internacjonalizacji bazowej.Aktualizacja lokalizacji kodu Xcode

Poszedłem i przetłumaczyłem wszystkie ciągi w plikach ciągów. Yay. To trwało wiecznie.

Teraz dodałem nowy element w pliku bazowym mojego scenorysu. Ma w sobie etykietę z ciągiem, który muszę umiędzynarodowić. Zapisałem to, zbudowałem itd. Ale tego nowego elementu nigdzie nie ma w moich ładnych plikach smyczkowych.

Proszę nie mówić, że muszę ręcznie dodać WSZYSTKIE moje elementy?

Odpowiedz

0

Xcode release notes mówi:

Aby ponownie zsynchronizować pliki ciągi o nowe treści z Twojego interfejsu użytkownika dokumentów, należy wybrać opcję --generate-użądlenia-file polecenia ibtool produkować nowe pliki strun. Następnie ręcznie dodaj nowe pliki do istniejących zlokalizowanych ciągów.

To całkiem kiepskie, ale proszę bardzo. Możesz użyć czegoś podobnego do FileMerge, aby pomóc ci uporać się z różnicami. (Mamy zestaw skryptów, które czytają w plikach ciągów i scalają je w ten sposób, nie jest trudno napisać coś takiego.)

+1

To jest tak kulawy, jak to tylko możliwe. Czas na poważne oprogramowanie niestandardowe ...... daj mi kilka dni - to nie może być trudne do zrobienia elegancko. – mschultz

1

Zauważyłem, że łatwiej jest śledzić wszystkie ciągi w oddzielny arkusz kalkulacyjny, a następnie automagicznie wygeneruj pliki .strings dla każdego z nich.

Nadal musisz śledzić klawiszy tłumaczeniowych w 2 miejscach (w Xcode oraz w arkuszu kalkulacyjnym), ale przynajmniej nie trzeba edytować lub scalić wszystkie Localizable.strings plików za każdym razem chcesz dodaj kilka ciągów.

arkusza kalkulacyjnego Excel patrz przykład z VBA makro tutaj: http://members.home.nl/bas.de.reuver/files/multilanguage.zip

+0

Tak, zgodzili się. To także część tego, co robimy. –

0

znalazłem inną lame rozwiązanie, ale jest to mniej niż jeden lame znaleźć w informacjach o wydaniu Xcode; wyłącz języki lokalizacji, usuń plik z dysku, a teraz zaznacz ponownie. Spowoduje to odtworzenie plików .strings.

+0

Ja też to robię. Pamiętaj jednak, że to nadal wymaga od programisty ręcznego scalenia poprzedniego pliku i bieżącego pliku. –

+0

Tak, ale można to łatwo zrobić za pomocą oprogramowania do scalania i wersji Git. Wciąż kulawy. –

2

Znajdź ręcznie identyfikator obiektu w inspektorze IB (w sekcji klasy). Samodzielne samodzielne zapisywanie nowego elementu.

+0

bardziej sprytny, utwórz nowy język lokalny, który nie jest niezbędny do projektu, a następnie skopiuj nowy element do wklejenia w starym pliku językowym, a następnie usuń go. – MatthewLuiHK

1

Czekając na Xcode 6 i jego nowa localization features (który mam nadzieję rozwiązać ten l10n ból aktualizacji w dupie), moglibyśmy teoretycznie zautomatyzować kroki (nigdy nie próbowałem)

To gist script (nie łatwe do wymówienia :) wydaje się również użyteczne (jeszcze nie testowane)

2

Rozwiązałem ten problem w ten sposób.

  1. Odznacz jeden po drugim pola wyboru z panelu utilities lokalizacyjnych.

  2. Xcode zapyta: Czy chcesz usunąć angielską (językową) lokalizację Main.storyboard?

  3. nie ma innego wyboru w oknie, nie dajcie mu

  4. kliknij przycisk Usuń.

  5. Ponownie wybierz story board, i ponownie sprawdzić każdy język

  6. Xcode powie plik już istnieje

  7. Selecte Zastąp plik

  8. Xcode automatycznie regenerować pliki ciągi z zaktualizowanym interfejsie i zamień swój plik.

powodzenia.

Powiązane problemy