Come gestisci i comportamenti specifici per paese?

3

Attualmente sto sviluppando il sito web della mia azienda, che si trova in Francia.

Faccio sempre attenzione a dare espliciti nomi generici inglesi alle mie variabili. Per ovvi motivi e, naturalmente, per poter spedire lo stesso codice su altri paesi un giorno.

Ad esempio, ho chiamato francese "Régions" e "Départements" (che sono suddivisioni del paese), "Area" e "Sottozona". Ho chiamato le aziende " SIRET " numero, "identificativo_azienda".

Tuttavia, a volte ci sono cose molto specifiche per la legislazione francese. Ad esempio, ho bisogno di memorizzare il fatto che qualcuno benefici di qualcosa chiamato " CPF " (Compte Personnel de Formation) in Francia , ma probabilmente non ha equivalenti in altri paesi.

Mi chiedo come dovrei memorizzare questa variabile, come dovrei nominarla. E come gestirlo quando si distribuisce il sito Web in altri Paesi.

La mia domanda è molto generica (si spera non troppo), l'esempio "CPF" è solo ... un esempio.

Un altro buon esempio è quando vuoi conservare la civiltà di una persona. In Francia, abbiamo "Monsieur", "Madame" e avevamo "Mademoiselle". AFAIK, nel Regno Unito, ci sono "Mr", "Mrs", "Ms" e "Miss" e altri paesi hanno diversi modi per salutare una persona in base al suo genere e al suo status sociale. a ugettext("Monsieur") o ugettext("Madame") quando voglio salutare una persona in base al suo genere, ma non ho idea di come gestirò questo quando dovrò spedire il mio sito web in un altro paese in cui questo comportamento non è accurato (e potrebbe offendere).

    
posta Antoine Pinsard 10.02.2016 - 12:05
fonte

2 risposte

3

Ci sono troppi problemi specifici per paese, quindi secondo me non è possibile gestirli in anticipo.

Quello che faccio se aggiorno il codice per un nuovo paese è quello di aggiungere il numero del biglietto come commento al codice sorgente in modo da poter trovare facilmente tutte le modifiche che appartengono a la versione italiana cercando il numero del biglietto.

Modifiche comportamentali come "Calcolo della linea di indirizzo", "Calcolo delle imposte" sono implementate in un paese modulo specifico che condivide la stessa interfaccia Java. TaxCalculation è implementato come TaxCalculationDe, TaxCalculationIt, TaxCalculationFr ...

Diventa ancora più complicato

  • se hai paesi con più di una lingua (ad es. Svizzera o Canada).
  • se i paesi hanno imposte diverse per regione (ad esempio l'Italia con Città del Vaticano e San Marino).
  • se i Paesi hanno più di un fuso orario (ovvero gli Stati Uniti)
risposta data 10.02.2016 - 12:35
fonte
1

Se guardiamo a qualcosa di semplice come la titolazione (monsieur, madame vs. mr., signora), risulta essere molto lontano dal semplice.

Dr. La signora Merkel e la signora Dr. Merkel hanno due significati diversi. Una è una donna sposata con un uomo in possesso di un dottorato, l'altra è una donna sposata che ha conseguito un dottorato. Spero di averli nell'ordine corretto.

Lasciando fuori il Dr. può essere molto offensivo in Germania, mettere un dottore che non appartiene lì può anche metterti nei guai.

La tua scommessa migliore in tutti i casi è incapsulare la titolazione in modo che la tua classe persona abbia una proprietà / metodo di titolazione, dandoti la possibilità di espandere in seguito la logica senza dover cambiare nulla nei punti in cui usi la titolazione.

E per il genere che è una lattina di vermi in questi giorni. Non aspettarti che il sesso abbia solo due valori (maschio e femmina) per dare spazio ad altri valori.

Quindi utilizza person.titulation anziché ugettext("Monsiuer")

    
risposta data 10.02.2016 - 13:00
fonte

Leggi altre domande sui tag