Mam app tłumaczone w 3 językach: angielskim, niemieckim, polskimJak uniknąć awarii z powodu brakujących wpisów w łańcuchu?
Więc mam te trzy foldery dla języków w projekcie:
values
strings.xml
values-en
strings.xml
values-de
strings.xml
values-pl
strings.xml
zdałem sobie sprawę, że jeśli mogę umieścić wszystkie sznurki w wartości i brakuje niektórych napisów w polskiej wersji, że aplikacja ulega awarii podczas uzyskiwania dostępu do brakujących ciągów w polskiej wersji.
Spodziewałbym się, że system właśnie pobiera ciąg z folderu wartości domyślnych, jeśli nie znajduje go w folderze values-pl.
Czy istnieje sposób na złapanie tych potencjalnych brakujących awarii ciągu? Czy gdybym mógł uzyskać ostrzeżenie w kompilatorze, że ciąg znaków w dowolnym języku nie będzie prawidłowy?
EDIT i dodanie
W rzeczywistości inny ciąg brakowało w domyślnej też .... więc dzięki za odpowiedzi/komentarze!
Ale teraz przetestowałem także przypadek, w którym brakuje tylko ciągu znaków w domyślnym pliku strings.xml, ALE występuje we wszystkich innych plikach. Nie otrzymuję żadnego ostrzeżenia ani niczego innego.
Tak więc w tym przypadku, jeśli WSZYSTKIE ciągi są obecne w de, en, pl, ale jednego brakuje domyślnie, to aplikacja zawiesza się na przykład w Chinach (oczywiście rozumiem, ponieważ brakuje wartości domyślnej).
Ale to, co mnie martwi, to to, że nie znajduję żadnego sposobu sprawdzenia kompletności wszystkich odnośników w kodzie. W ten sposób mogę uzyskać dostęp brakujący ciąg:
context.getString(R.string.MYTRING_abc),
z mojego expiriens jeśli istnieją brakujące ciągi projekt nie kompiluje. Używam eclipse juno. – NickF
Jeśli przetestujesz swoją aplikację we wszystkich dostępnych językach, nie będziesz musiał zadawać tego pytania. Dla mnie to nie ma sensu, dlaczego po prostu nie upewniasz się, że ciągi są dostępne przed opublikowaniem aplikacji. Nie wszystkie wyjątki powinny być chwytane, powinny być rozpatrywane zanim zdążą. – Darwind
"Mam aplikację przetłumaczoną na 3 języki: angielski, niemiecki, polski" - nie, masz przetłumaczoną aplikację w czterech językach: angielskim, niemieckim, polskim i dowolnym języku w katalogu 'res/values /'. Jeśli naprawdę masz tylko przetłumaczoną aplikację na trzy języki, to jeden z tych języków musi przejść do 'res/values /'. Chcesz, aby 'res/values /' zawierało domyślną wartość dla każdego zasobu ciągu, niezależnie od tego, jaki chcesz mieć domyślny język. – CommonsWare