首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Ruby on Rails中从accept-language获取语言/国家名称

在Ruby on Rails中从accept-language获取语言/国家名称
EN

Stack Overflow用户
提问于 2015-12-26 14:08:45
回答 1查看 674关注 0票数 1

我正在尝试从用户的accept-language头中收集一些分析。将"en-US,en;q=0.8"转换为English (United States)将非常有帮助。

我真正看到的唯一方法是使用I18n并将名称放入yaml文件中。这似乎不是一个很好的解决方案,因为我必须“翻译”每种可能性。如果我使用它来获取用户的首选语言并翻译页面,这将是有意义的,但这是一个不同的用例。

有没有什么gem/gist可以用来查找语言的显示名称?

EN

Stack Overflow用户

发布于 2015-12-26 17:31:19

我只是从维基百科复制languagecountry代码的列表,并将它们转换为散列:

代码语言:javascript
运行
复制
LANGUAGE_CODES = {
  aa: 'Afar',
  ab: 'Abkhaz',
  # ...
  zu: 'Zulu'
}

COUNTRY_CODES = {
  AD: 'Andorra',
  AE: 'United Arab Emirates',
  # ...
  ZW: 'Zimbabwe'
}

有了这个散列,一个类似下面这样的简单方法应该能够提取您感兴趣的语言和国家信息:

代码语言:javascript
运行
复制
def language_info(accepted_language)
  language, country = accepted_language.scan(/(\w{2})-(\w{2})/)

  if language && country
    "#{LANGUAGE_CODES[language]} (#{COUNTRY_CODES[country]})"
  end
end

# language_info(request.env['HTTP_ACCEPT_LANGUAGE'])
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34468981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档