Android: forme plurali yuck-o

Android è una piattaforma software per dispositivi mobili, resa open source lo scorso anno. Sul mercato stanno iniziando a comparire i primi cellulari che la utilizzano e sta crescendo anche il numero delle relative applicazioni, gratuite e a pagamento.

L’internazionalizzazione di Android è ancora in fase di stabilizzazione, ma l’SDK 1.5 rappresenta un buon punto di partenza. Il sistema base è attualmente localizzato in ceco, cinese, coreano, francese, giapponese, inglese, italiano, olandese, polacco, russo, spagnolo e tedesco (per alcune lingue esistono delle varianti nazionali).

La localizzazione delle applicazioni sarà uno dei passi che i produttori dovranno affrontare per poter meglio diffondere il loro software nel mondo. Una prima bozza di documentazione è disponibile qui.

La gestione delle semplici stringhe è abbastanza semplice e lineare, mentre il supporto delle forme plurali è ancora parziale. Nelle risorse di localizzazione (file strings.xml) è possibile definire elementi <plurals> che specificano le varianti per le 5 casistiche base, come mostrato nell’esempio seguente.
Android - Le 5 casistiche per le forme pluraliIl significato delle 5 varianti è simile a quello di Google Chrome, tenuto conto che other corrisponde a default.

A differenza di Chrome, però, le casistiche attualmente applicate in Android sono solo due: one (per il numerale 1) e other (per il numerale diverso da 1). Fa eccezione la lingua ceca, per la quale viene considerata anche la forma few (valida per i numerali 2, 3 e 4).

La schermata seguente mostra una sequenza di esempio per inglese e ceco, in cui le stringhe contengono tra parentesi quadre la casistica applicata al numerale che appare a sinistra.

Android - Forme plurali per inglese (en) e ceco (cs)

In pratica tutte le lingue (tranne il ceco) possono definire solo il valore predefinito e il valore corrispondente al numerale 1. In generale ciò non è un problema, ma i traduttori francese, polacco e russo sono costretti a de-numeralizzare per evitare errori di concordanza.

In proposito è interessante notare il commento inserito dallo sviluppatore nella sezione di codice che implementa la concordanza numerale-casistica:

Yuck-o. This is not the right way to implement this. When the ICU PluralRules object has been integrated to android, we should switch to that. For now, yuck-o.

In pratica il commento indica che fino a quando le librerie del progetto ICU non verranno integrate in Android, le forme plurali resteranno implementate in modo inappropriato.

Il termine yuck-o (“porcheria”) è quasi certamente un riferimento a una famosa frase di Linus Torvalds.

Se solo lo sviluppatore avesse aggiunto le necessarie eccezioni per altre 3 lingue, la sua “porcheria” avrebbe funzionato😉

Una Risposta to “Android: forme plurali yuck-o”

  1. Luigi Muzii Says:

    Bell’esempio, molto più interessante del precedente per illustrare le difficoltà dell’internazionalizzazione prima ancora di quelle relative alla localizzazione che ne derivano.
    Il tipo di piattaforma, con i suoi limiti, vincola lo sviluppatore a considerare solo un insieme ristretto di possibilità.
    Aver aperto i codici servirà a permettere agli sviluppatori di altri locale di introdurre le varie eccezioni, anche se vale sempre la regola d’oro di non concatenare le stringhe ed esplicitare i messaggi e su questo fronte mi pare siamo ancora molto lontani dalle best practice di settore.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...


%d blogger cliccano Mi Piace per questo: