Internazionalizzazione: quali cose a cui pensare?

8

Stavo ascoltando il discorso di Jon Skeet agli ultimi Dev Devils di StackOverflow e lui mi ha stuzzicato curiosità per quanto riguarda l'internazionalizzazione.

Supponiamo che io abbia un programma per fare cialde, completo o ancora in corso, e voglio distribuirlo ad altri paesi. Di che genere di cose devo preoccuparmi per quanto riguarda l'internazionalizzazione? Quali sono alcune insidie non ovvie ma facili?

    
posta rlb.usa 27.06.2011 - 22:04
fonte

9 risposte

15

La cosa più ovvia che ti viene in mente è che le tue etichette avranno probabilmente una lunghezza diversa dalla versione inglese. Questo potrebbe rovinare il tuo layout.

Potresti finire con ettari di spazio bianco o etichette affollate e persino traboccare dello spazio disponibile.

Devi rendere flessibile il tuo layout e fluire indipendentemente dalle dimensioni dei contenuti. Avere un layout in grado di far fronte a risoluzioni dello schermo diverse farà molto per risolvere questo problema.

L'altro grosso problema è il supporto della lingua da destra a sinistra. Ciò richiederà nuovamente il tuo layout per essere flessibile.

Non sono solo i menu e i dialoghi che devono essere tradotti. È tutta la documentazione di supporto, i file di aiuto, i suggerimenti degli strumenti e le didascalie dei titoli delle finestre. Di solito c'è molto più testo di quello che realizzi in un'applicazione e ci saranno sempre alcune stringhe che sono state aggiunte direttamente anziché come risorse.

    
risposta data 27.06.2011 - 22:08
fonte
10

Fusi orari e formattazione della data! Quando ti occupi di applicazioni in cui si pianificano date e orari in fusi orari, assicurati di fare le cose per bene.

Persistere TUTTI i valori di data e ora come timestamp in quanto rappresentano un singolo punto nel tempo. Tieni traccia di ulteriori fusi orari in quanto avrai bisogno delle informazioni sul fuso orario per visualizzare correttamente il timestamp nel formato corretto per l'utente.

Sto lavorando a un'applicazione in questo momento in cui un utente in Giappone potrebbe pianificare una data e un'ora per un utente che esegue un'applicazione client in Idaho. Assicurati che quando l'utente vede 3:00PM di sapere quale 3:00PM di cui tutti parlano.

    
risposta data 27.06.2011 - 22:40
fonte
9

Ricorda che solo perché una persona è in un determinato paese non significa che lei conosca quella lingua. La lingua e la posizione sono due problemi diversi.

    
risposta data 27.06.2011 - 23:47
fonte
8

Numeri. La maggior parte dell'Europa, il Sud America usa la virgola (10,23) come separatore decimale mentre il resto (Regno Unito, USA, ecc.) Usa il periodo (10.23).

    
risposta data 27.06.2011 - 22:14
fonte
3

Non è sempre così facile ... Ci sono lotti di cose da considerare, a seconda della complessità del software che stai sviluppando e dove lo spedirai. In effetti potrebbe finire praticamente ovunque, quindi l'importante è quali locali hai intenzione di supportare ufficialmente.

  • Ovviamente, c'è il linguaggio delle interfacce. Tutto il testo che usi dovrebbe essere relativamente facile da cambiare per il suo equivalente in un'altra lingua. Come qualcuno ha già indicato, la lunghezza delle etichette varierà. Qualcosa scritto in cinese non prenderà la stessa larghezza di qualcosa scritto in tedesco, per esempio. Aggiungiamo che non solo l'interfaccia di base è da tradurre, ma tutte le bolle di informazione, i file di aiuto, i messaggi di errore, forse non i file di registro, ma dipende dall'applicazione che immagino. Se la tua applicazione supporta le lingue, anche il tuo sito web potrebbe volerci recuperare.
  • Codifica dei caratteri. È bello fornire molte lingue, ma come hai intenzione di farlo? Se tutto è programmato con una codifica di caratteri stretta / di base, avrai problemi con alcuni accenti e la maggior parte delle lingue che non usano i nostri personaggi. Pensa al coreano o all'arabo. Immagino che qualcuno dovrebbe usare Unicode il più possibile.
  • Disposizione dei widget / orientamento della finestra. Se si sceglie di supportare l'arabo, ad esempio, è necessario pensare a un modo per più o meno capovolgere le interfacce. Stanno leggendo da destra a sinistra, quindi sarebbe normale avere etichette sul lato destro dell'elemento che descrivono (casella di testo per l'inserimento, ad esempio).
  • Formattazione del numero. In alcune versioni locali, esiste una virgola anziché un punto per separare la parte frazionaria dalla parte intera in un numero. Questo è abbastanza ovvio, ma a seconda del dominio dell'applicazione, potrebbero esserci molte altre cose da considerare. I numeri negativi sono tra parentesi o con un '-' davanti a loro? Le migliaia sono separate o no, con uno spazio o con una virgola? La separazione delle cifre è sempre di 3, o è solo il primo gruppo per 3 e il resto per 2? Stai usando numeri arabi o indiani, o altri?
  • Formattazione della data. È quasi altrettanto complicato. Potrebbe essere necessario memorizzare i nomi completi dei giorni della settimana, dei mesi dell'anno e anche tutti quelli abbreviati. Che ordinamento stanno usando (giorno, mese, anno? Mese, giorno, anno? Anno, mese, giorno? Ecc. Ecc.).
  • Formattazione dell'ora. 24 ore o 12? ':' o 'h'? ':' o '.' per i secondi? Non so molto sulla formattazione dell'ora, ma immagino che ci siano molti modi sconosciuti per visualizzare il tempo.
  • Grafica! Se hai icone ... Dovrai verificare non solo che le lettere o le parole su di esse sono ancora significative per tutte le impostazioni locali, ma che i simboli che usi sono anche significativi e ancora correttamente orientati. Se una freccia punta a sinistra nella versione inglese, è probabile che punti nella versione araba (ma non necessariamente!). Se metti un segnale di stop come un ottagono rosso sulla tua icona, le persone in alcuni locali non avranno la minima idea di cosa sia o, peggio, saranno convinti che dovrebbe fare qualcosa di diverso da quello che hai inteso e programmato .
  • Se hai a che fare con gli indirizzi nel tuo sistema, diventano imbarazzanti anche in alcuni posti. Grandi mal di testa se devi convalidarli.
  • Etc.

Fortunatamente, ci sono biblioteche in molte lingue che si occupano di buona parte del lavoro. Quando non hai una buona libreria per farlo, probabilmente vorrai definire i parametri per tutti i tuoi locali e definirli in dettaglio usando file XML o altri tipi di file di configurazione (o in un database se ne spedisci uno con il software , o se non ti dispiace aggiungere una piccola impronta uno).

    
risposta data 17.12.2011 - 05:34
fonte
2

Dipende molto dalla piattaforma che stai utilizzando. .NET supporta i file di risorse che possono essere modificati dentro e fuori a seconda della build del cliente.

Altri problemi che possono o non possono essere supportati nella tua piattaforma includono la possibilità di invertire l'ordine di etichette e caselle di testo (alcune culture preferiscono che le etichette siano sulla destra). Queste stesse culture potrebbero volere che tutti i blocchi di testo leggano da destra a sinistra.

    
risposta data 27.06.2011 - 22:10
fonte
2

Non dimenticare i valori nelle tabelle di ricerca! Ordina nomi di stato, descrizioni dei tipi, ecc.

se hai descrizioni e nomi nelle tabelle di ricerca, ad es. {OrderStatusId, OrderStatusName, OrderStatusDescription} anche questi dovranno essere tradotti.

    
risposta data 28.06.2011 - 04:32
fonte
1

Raccogli una copia di ". Internazionalizzazione di rete: la Guida dello sviluppatore per creare applicazioni globali Windows e Web" di Smith-Ferrier .

Recentemente mi è stato assegnato il compito di pensare a fondo attraverso l'intero problema i18n con la nostra suite di app.

Questo libro ha sollevato problemi a cui non avrei mai pensato.

    
risposta data 27.06.2011 - 22:50
fonte
0

Oltre a quanto sopra, prendi in considerazione i formati di data, l'ortografia e il controllo dell'orientamento dello schermo. Nei rapporti in cui le lingue vengono lette da destra a sinistra, è necessario preoccuparsi della direzione dell'indentazione. Il fine settimana varia da paese a paese. Se stai visualizzando i calendari devi assicurarti che i fine settimana siano visualizzati correttamente. Se non si utilizza MS-Windows, verificare le funzionalità nel sistema operativo del client per quanto riguarda la gestione delle sequenze di ordinamento per l'ordinamento e come funziona il sistema operativo. I messaggi di errore devono essere tradotti negli utenti quando la modalità non è inglese. Nel codice Per il lato del database, è necessario selezionare i codici carattere corretti. Questo varia da un database all'altro e può influire sul confronto delle date.

    
risposta data 17.12.2011 - 04:48
fonte

Leggi altre domande sui tag