2012-03-17 17 views
8

Prima di reinventare la ruota, Android ha qualche possibilità di convertire un intero in una stringa ordinale con supporto multilingue? Cioè, convertirebbe l'intero 3 in "3" in inglese e "3eme" in francese.Conversione Android in formato ordinale

Posso vedere come farlo io stesso usando un po 'di logica insieme alla sostituzione automatica delle stringhe di Android, ma ho pensato che questo sicuramente doveva essere incontrato da altri, e non solo per l'uso con le date.

risposta

5

Java e Android hanno il supporto per la creazione di stringhe ordinali. Android ha il supporto per la creazione di più risorse stringa, ma non ordinali.

+0

Sono stato in grado di risolvere questo problema utilizzando la struttura dei plurali, almeno abbastanza bene per i miei scopi. Funziona per l'inglese e il francese nelle gamme che ho a che fare, ma quando avrò bisogno di ulteriori traduzioni potrei doverlo cambiare di nuovo. Principalmente, stavo cercando di trovare una soluzione in cui la mia app non doveva essere "consapevole" del linguaggio utilizzato e poteva semplicemente utilizzare il supporto automatico delle stringhe di Android. – gordonwd

2

Se l'intervallo per il quale è necessario ordinali è limitato, allora si sono probabilmente meglio usare un <string-array> per definirli:

<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> 

e poi accedervi tramite:

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

Naturalmente questo non ti dà la traduzione automatica in altre lingue - devi farlo tu stesso (e se il tuo conteggio va oltre l'intervallo in questo codice semplicistico otterrai un'eccezione).

Problemi correlati