2014-10-09 46 views
0

根据W3C的说法,communicate the language of the intended audience的一个可行且常用的首选方法是提供一个Content-Language头文件。相关部分:在Rails中定义Content-Language头文件

关于目标受众语言的元数据通常最好在HTTP Content-Language头文件之外的文档中声明。

我该如何使用Rails发送这样的头文件?

+1

您可以在控制器中使用以下代码:''response.headers [“Content-Language”] ='en'''。在Rails 4中还有一些新的默认标头设置: http://chriszetter.com/blog/2013/10/04/setting-headers-in-rails-4/ – 2014-10-09 21:22:38

回答

2

它很可能是首选,你使用这个的I18n框架:

response.headers["Content-Language"] = I18n.locale.to_s 

在这里阅读更多:http://guides.rubyonrails.org/i18n.html

+0

确实我打算使用I18n框架。但是,我无法看到我可以从哪里或如何发送此类标题。控制器中是否有“响应”? – berkes 2014-10-09 21:57:22

+0

@berkes请参阅:“在每个控制器中,有两个指向请求的访问方法和与当前正在执行的请求周期相关联的响应对象。”:http://guides.rubyonrails.org/action_controller_overview.html#响应对象 – markshiz 2014-10-09 22:05:01

+0

在这种情况下:它不应该是“response.headers”吗? (复数) – berkes 2014-10-10 08:36:53

1

只是前进了一大步过去markshiz的出色答卷,尝试添加这对应用程序/ controllers/application_controller.rb:

after_action :set_response_language_header 
def set_response_language_header 
    response.headers["Content-Language"] = I18n.locale.to_s 
end 

而且你再也不用担心它了。