2012-03-17 14 views
8

Zanim przejdę do wymyślania koła, czy Android ma jakieś narzędzie do konwersji liczby całkowitej na ciąg porządkowy z obsługą wielu języków? Oznacza to, że konwersja liczby całkowitej 3 na "3rd" w języku angielskim i "3eme" w języku francuskim.Konwersja Androida na format zwykły

Widzę, jak to zrobić, używając odrobiny logiki wraz z automatycznym zastępowaniem napisów w systemie Android, ale uważam, że na pewno musiało to być napotkane przez innych, a nie tylko z datami.

Odpowiedz

5

Java ani Android obsługują tworzenie ciągów porządkowych. Android ma wsparcie dla tworzenia wielu zasobów ciągów, ale nie dla porządków.

+0

Udało mi się rozwiązać ten problem za pomocą funkcji liczby mnogiej, co najmniej wystarczająco dobrze dla moich celów. Działa w języku angielskim i francuskim w zakresach, z którymi mam do czynienia, ale kiedy przejdę do dalszych tłumaczeń, być może będę musiał to zmienić. Głównie próbowałem wymyślić rozwiązanie, w którym moja aplikacja nie musiałaby być "świadoma" używanego języka i mogła po prostu skorzystać z automatycznej obsługi ciągów Androida. – gordonwd

2

Jeżeli zakres, dla którego trzeba porządkowych jest ograniczona, to prawdopodobnie najlepiej użyć <string-array> je zdefiniować:

<string-array name="ordinals"> 
    <item>zeroth</item> 
    <item>1st</item> 
    <item>2nd</item> 
    <item>3rd</item> 
    <item>4th</item> 
    <item>5th</item> 
    <item>6th</item> 
</string-array> 

a następnie dostęp do niego poprzez:

String ordinal = getResources().getStringArray(R.array.ordinals)[count]; 

Oczywiście nie powoduje to automatycznego tłumaczenia na inne języki - musisz to zrobić sam (a jeśli twój licznik znajdzie się poza zakresem tego uproszczonego kodu, dostaniesz wyjątek).

Powiązane problemy