我正在使用 rails 和 i18n 编写应用程序,我已经翻译了 6 个 lenguajes 中的国家/地区,并且它们都在每个自己的 yml 文件中以及所有其他 lenguaje 的东西..
我的问题是如何根据语言订购和重新订购(英语、西班牙语、法语、阿拉伯语、中文、葡萄牙语)
我想我可以在这里设置一个订购列表的代码,对吗?,但如何?
{|p| [ t("generales."+p.iso), p.id ] }
这是我的代码,该行在哪里
<div >
<%= f.fields_for :citizens do |citizen_form| %>
<div>
<%= citizen_form.label :citizen, t('generales.citizen') %>
<%= citizen_form.select :country_id , Country.all.collect {|p| [ t("generales."+p.iso), p.id ] }, { :include_blank => true } , { :class => 'pca33' } %>
<div id="delerr"><%= citizen_form.link_to_remove t('generales.delete') %></div>
</div>
<% end %>
<%= f.link_to_add t('generales.add'), :citizens %>
</div>
这是模型
class Citizen < ActiveRecord::Base
attr_accessible :country_id
belongs_to :player
belongs_to :country
end
在 en.yml 文件中我有这样的翻译,它在数据库中查找 iso,所以你可以看到列表是基于 iso 的。
AF: 'Afghanistan'
AL: 'Albania'
DZ: 'Algeria'
AD: 'Andorra'
AO: 'Angola'
AG: 'Antigua and Barbuda'
AR: 'Argentina'
AM: 'Armenia'
AU: 'Australia'
AT: 'Austria'
AZ: 'Azerbaijan'
BS: 'Bahamas'
BH: 'Bahrain'
BD: 'Bangladesh'
BB: 'Barbados'
BY: 'Belarus'
BE: 'Belgium'
BZ: 'Belice'