/ / quale locale viene restituito I18n.locale.to_s nei binari - ruby-on-rails, rubygems

quali impostazioni locali I18n.locale.to_s restituisce nei binari - ruby-on-rails, rubygems

Non sono in grado di ottenere la stringa locale I18n.locale.to_s ritorna. Sono le impostazioni locali in cui viene eseguito il codice (ad esempio le impostazioni internazionali del server in cui è distribuito il codice) o recuperano le impostazioni internazionali dalla richiesta (le impostazioni locali da cui viene richiesto l'URL)?

Credo che dovrebbe essere la localizzazione del server come se un utente da noi (en_US) colpisse un server in esecuzione in JP (ja_JP), I18n.locale.to_s dovrebbe restituire il locale come JP. Correggimi se la mia ipotesi è sbagliata.

risposte:

2 per risposta № 1

Sì hai ragione. A meno che non si stia utilizzando un codice aggiuntivo (ad esempio una gemma extra), Rails non esegue una ricerca sull'indirizzo IP del visitatore, né prende in considerazione nulla a che fare con il browser del visitatore.

Quando chiami I18n.locale.to_s in un controller o altrove nel codice, lo farairipristinare le impostazioni locali predefinite per la posizione del server. Tuttavia, se si desidera modificare le impostazioni locali per il visitatore corrente in base, ad esempio, a un clic su un collegamento per modificarlo inviando un :locale parametro con la richiesta, puoi fare questo:

before_action :set_locale

def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end

Quindi tutte le chiamate a I18n.locale.to_s all'interno di quella richiesta ora risponderebbe con la locale sovrascritta.