Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在ruby on rails中,将区域名称的第一位哈希值转换为纯文本,即en_GB到大不列颠_Ruby On Rails_Ruby_Facebook Graph Api - Fatal编程技术网

Ruby on rails 在ruby on rails中,将区域名称的第一位哈希值转换为纯文本,即en_GB到大不列颠

Ruby on rails 在ruby on rails中,将区域名称的第一位哈希值转换为纯文本,即en_GB到大不列颠,ruby-on-rails,ruby,facebook-graph-api,Ruby On Rails,Ruby,Facebook Graph Api,我有这个散列,它的第一部分我需要转换成纯文本,例如en_GB 那就是英国。这是我从Facebook api得到的一个示例响应 {"en_GB"=>6836, "en_US"=>3414, "it_IT"=>120, "es_LA"=>37, "fr_FR"=>24, "zh_TW"=>18, "pt_BR"=>18, "de_DE"=>16, "hr_HR"=>15, "pl_PL"=>12, "es_ES"=>12, "

我有这个散列,它的第一部分我需要转换成纯文本,例如en_GB 那就是英国。这是我从Facebook api得到的一个示例响应

    {"en_GB"=>6836, "en_US"=>3414, "it_IT"=>120, "es_LA"=>37, "fr_FR"=>24, "zh_TW"=>18, "pt_BR"=>18, "de_DE"=>16, "hr_HR"=>15, "pl_PL"=>12, "es_ES"=>12, "ru_RU"=>10, "id_ID"=>9, "el_GR"=>8, "ar_AR"=>8, "th_TH"=>8, "tr_TR"=>8, "bg_BG"=>7, "lv_LV"=>6, "zh_CN"=>6, "cs_CZ"=>5, "ro_RO"=>4, "pt_PT"=>4, "en_PI"=>4, "he_IL"=>3, "sk_SK"=>3, "hu_HU"=>3, "mk_MK"=>3, "nl_NL"=>2, "sv_SE"=>2, "zh_HK"=>2, "lt_LT"=>2, "nl_BE"=>2, "fb_LT"=>1, "en_IN"=>1, "sl_SI"=>1, "sq_AL"=>1, "ko_KR"=>1, "da_DK"=>1, "ka_GE"=>1, "cy_GB"=>1, "mr_IN"=>1, "sr_RS"=>1, "nb_NO"=>1}

有人知道如何将其转换为纯文本吗?

将rails应用程序中的语言环境数据设置为

en:
  en_GB: "Great Britain"
  en_US: 'United States'
  ..so on..
然后

map
返回新数组,每个元素运行一次block的结果,Hash[]使用返回的数组中的每个[k,v]对创建一个新哈希。在块中,我们将键转换为符号,并将其传递给别名为
t
#translate
将其转换为当前语言环境

fb_response = {"en_GB"=>6836, "en_US"=>3414, "it_IT"=>120, "es_LA"=>37, "fr_FR"=>24, "zh_TW"=>18, "pt_BR"=>18, "de_DE"=>16, "hr_HR"=>15, "pl_PL"=>12, "es_ES"=>12, "ru_RU"=>10, "id_ID"=>9, "el_GR"=>8, "ar_AR"=>8, "th_TH"=>8, "tr_TR"=>8, "bg_BG"=>7, "lv_LV"=>6, "zh_CN"=>6, "cs_CZ"=>5, "ro_RO"=>4, "pt_PT"=>4, "en_PI"=>4, "he_IL"=>3, "sk_SK"=>3, "hu_HU"=>3, "mk_MK"=>3, "nl_NL"=>2, "sv_SE"=>2, "zh_HK"=>2, "lt_LT"=>2, "nl_BE"=>2, "fb_LT"=>1, "en_IN"=>1, "sl_SI"=>1, "sq_AL"=>1, "ko_KR"=>1, "da_DK"=>1, "ka_GE"=>1, "cy_GB"=>1, "mr_IN"=>1, "sr_RS"=>1, "nb_NO"=>1}

fb_response = Hash[fb_response.map {|k, v| [t(k.to_sym), v] }]