2016-06-14 33 views
2

所以,我有兩個本地化 - en和es。我希望他們找到的如何使用中間人爲不同的本地化使用不同的域?

en.site.comes.site.com

site.ensite.es

但是按照這個教程https://middlemanapp.com/advanced/localization/我只能做出像smth一樣

site.com/photossite.com/es/photos

看起來並不好。

我有一個行僅

site.com 

也許我需要做的不便與它有源/ CNAME文件?如果是,那究竟是什麼?我找不到任何教程或示例> < 請幫助,如果您知道如何使用不同的域名來處理中間人的兩個本地化問題。先謝謝你!

回答

0

我從來沒有用過Middleman,但最近我建了一個應用程序,需要類似的東西來提供多租戶。

我所做的是創建一個機架中間件層,它將根據傳入的請求主機設置某些變量。在你的情況下,你可以爲每個請求設置Rails的default_locale或者配置Middleman改變語言環境的東西。

你可以做這樣的事情是一個非常基本的實現:

應用/中間件/ locale_switcher_middleware.rb

class LocaleSwitcherMiddleware 
    def initialize(app) 
    @app = app 
    end 

    def call(env) 
    request = Rack::Request.new(env) 

    if request.host.include("es.") 
     I18n.default_locale = :es 
    else 
     # default to english 
     I18n.default_locale = :en 
    end 

    @app.call(env) 
    end 
end 

application.rb中

config.middleware.use "LocaleSwitcherMiddleware" 
相關問題