15

que actualmente tienen las siguientes 4 archivos en mis config/locales de mi solicitud de raíz:Organización de los archivos de configuración regional en la aplicación de los carriles

-en.yml 
-de.yml 
-simple_form.en.yml 
-simple_form.de.yml 

En mi application.rb que reside en una especificación /carpeta ficticia para probar la aplicación joya tengo la siguiente línea de código que parece ser la recuperación de las traducciones como se esperaba:

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 
config.i18n.default_locale = :de 

E n ow desea introducir estructura a la estructura de archivos de mi carpeta de configuraciones regionales pero cuando agrego las carpetas adicionales y cambio la ruta de carga en la aplicación .rb obtengo errores de traducción no encontrada. Aquí está mi intento:

Intento incluyendo la estructura de config/locales de mi solicitud de raíz:

-views 
    -en.yml 
    -de.yml 
-models 
    -en.yml 
    -de.yml 
-forms 
    -simple_form.en.yml 
    -simple_form.de.yml 

Y mi camino de carga en el application.rb cambiado a:

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] 

De acuerdo con la siguiente guía de carriles: http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name

+0

Por favor, nos muestran el error específico que está recibiendo. ¿Tiene un rastro de pila que puede compartir? –

+0

En la vista, estoy recibiendo la cadena: traducción faltante: en.new_tenant.header, no veo ningún mensaje de error – Jay

+0

Podría ser que el archivo application.rb resida en una carpeta de especificaciones con fines de prueba y que mi carpeta de configuración no se está cargando en el nivel raíz y solo estoy viendo las traducciones porque las configuraciones/locales se agregan automáticamente pero no las subcarpetas? – Jay

Respuesta

10

Para probar la aplicación de host, debe cambiar el i18n.load_path a la carpeta config de su aplicación principal y no la especificación ficticia para realizar pruebas. Código de la siguiente manera:

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] 
config.i18n.default_locale = :en 
+6

Para mí, la cadena era: 'config.i18n.load_path + = Dir [Rails.root.join ('config', 'locales', '**', '*. {rb, yml}') to_s] ' – franzlorenzon

+0

Mejor uso' Rails.root' que una ruta de raíz codificada – Dorian

7

tuve un problema similar, lo solucioné añadiendo esta línea a mi config application.rb:

# load the subfolders in the locales 
config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"] 
1

Las siguientes opciones Todos trabajaban para mí

config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.yml"] 

config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"] 

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**' '*.{rb,yml}').to_s] 

Después de reiniciar el servidor web, por supuesto ...

Cuestiones relacionadas