Un piccolo codice per consentire la sostituzione delle parole a seconda dell'utente

1

Sto creando un'app web demo in html in modo che le persone possano vedere e commentare fisicamente l'app prima di impegnarsi in una build corretta.

Mentre l'app corretta sarà basata sul database, la mia demo è solo html standard con alcuni effetti JavaScript.

Quello che voglio dimostrare è che diversi gruppi di utenti vedranno parole diverse. Ad esempio, immagina di avere una frase html che dice:

This will cost £100 to begin.

Ciò di cui ho bisogno in qualche modo per identificare che se l'utente si è ritenuto proveniente dagli Stati Uniti, la frase dice:

This will cost $100 to begin.

Questo requisito è disseminato in tutte le pagine, ma sono felice di aggiungerne uno manualmente. Quindi immagino un codice sulla falsariga di "prima, rimuovi il tronco [boot US]" in cui la versione inglese "rimuove il boot", ma il codice dice che il visitatore ha bisogno della versione americana. Quindi cerca l'avvio (forse in un database di Access) e vede che la tabella dice per l'avvio per US, mostra 'trunk'.

Non sono un programmatore ma normalmente posso mettere insieme gli script in modo da sperare che qualcuno possa avere una soluzione relativamente semplice in JavaScript, CSS o ASP.

Per ricapitolare: ho un numero di parole o frasi brevi che devono apparire in modo diverso e sono felice di inserirle manualmente se necessario (ma sarebbe ancora meglio se le parole venissero modificate automaticamente). E ho bisogno di un dispositivo che mi permetta di dire alle pagine di scegliere la versione americana o, per esempio, la versione neozelandese.

    
posta Fred Quimby 17.11.2012 - 11:48
fonte

2 risposte

2

L'approccio più semplice a questo è usare "dizionari" localizzati. Potrebbe trattarsi di una tabella nel database o di un file "risorsa" di stringhe, ma vale lo stesso principio.

Hai un dizionario principale che contiene tutto il tuo testo. Questo sarà nella lingua "neutrale", quella da cui provengono la maggior parte degli utenti (ad esempio).

Hai quindi dei dizionari secondari per ogni variante linguistica che contiene il testo localizzato. Quindi il tuo dizionario principale (Regno Unito) conterrà:

Id    Text
 1    First remove the boot

Il tuo dizionario secondario (Stati Uniti) conterrà:

Id    Text
 1    First remove the trunk

Nota che gli ID sono uguali e che l'intera frase è presente.

Quindi l'applicazione controllerà la lingua degli utenti (chiedendo all'utente o controllando le impostazioni locali del browser / sistema operativo che stanno utilizzando) e utilizzando il dizionario appropriato per trovare il testo.

Se l'ID richiesto non esiste nel sottosuolo, cercherà nel dizionario principale il testo predefinito da utilizzare.

L'intero test è presente in quanto le traduzioni non sono semplici come sostituire la parola strana qua e là. Spesso la stessa parola (avvio - calzature o parte dell'automobile) ha due o più significati e una sostituzione cieca non tiene conto del contesto. Inoltre, mentre potresti iniziare con un sistema UK / USA potrebbe richiedere altre lingue in seguito. Questo schema è anche più facile da implementare di una sostituzione di una parola.

Per quanto riguarda i simboli di valuta - memorizza solo il valore numerico e formattalo con la cultura degli utenti per stamparlo come una stringa. La maggior parte dei framework ha questa capacità.

    
risposta data 17.11.2012 - 12:00
fonte
1

Se tutto ciò che vuoi è una demo rapida e sporca per mostrare quale funzionalità sarà presente nell'app senza effettivamente realizzare un'app in piena regola. Trasforma ogni sezione di testo localizzato nel proprio contenitore e dispone di un contenitore per ogni localizzazione. Quindi usa solo JavaScript e CSS per nascondere / visualizzare i contenitori che corrispondono alla posizione desiderata, la tua pagina HTML sarà simile a questa.

<p class='UK' >This will cost £100 to begin.</p>
<p class='US' >This will cost $100 to begin.</p>
<p class='CAN' >This will cost $150 to begin.</p>
    
risposta data 20.11.2012 - 19:47
fonte

Leggi altre domande sui tag