No commit activity in last 3 years
No release in over 3 years
Localized "country_select" helper with Rake task for downloading locales from Unicode.org's CLDR
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
~> 10.0
>= 2.0.0

Runtime

 Project Readme

LocalizedCountrySelect¶ ↑

Rails plugin to provide support for localized <select> menu with country names and for storing country information as country code (eg. ‘es’), not name (eg. ‘Spain’), in the database.

Uses the Rails internationalization framework (I18n, rails-i18n.org) for translating the names of countries. Requires Rails 2.2 (released November 21st, 2008) or later versions. Country names are loaded from hashes in plugin directory, according to I18n.locale value.

You can easily translate country codes in your application like this:

<%= I18n.t @user.country, :scope => 'countries' %>

Comes with a Rake task rake import:country_select LOCALE=de for importing country names from Unicode.org’s CLDR repository (www.unicode.org/cldr/data/charts/summary/root.html) Don’t forget to restart the application when you add new locale.

ActionView helper code is adapted from Rails’ default country_select plugin (previously in core). See github.com/rails/country_select/tree/master/lib/country_select.rb

Rails 3 / Rails 4¶ ↑

In your Gemfile add:

gem 'localized_country_select', '>= 0.9.11'

Rails 2.3¶ ↑

No longer supported, but you can still use old version of gem. In environment.rb add

config.gem 'localized_country_select', :version => '0.0.1'

Example¶ ↑

Show full country names:

<%= localized_country_select(:user, :country, [], {:include_blank => 'Please choose...'}) %>

will become:

<select name="user[country]" id="user_country">
<option value="">Please choose...</option>
<option disabled="disabled" value="">-------------</option>
<option value="AF">Afghanistan</option>
...
<option value="ZW">Zimbabwe</option>
</select>

Show only country codes:

<%= localized_country_select(:user, :country, [], {:include_blank => 'Please choose...', :description => :abbreviated}) %>

will become:

<select name="user[country]" id="user_country">
<option value="">Please choose...</option>
<option disabled="disabled" value="">-------------</option>
<option value="AF">AF</option>
...
<option value="ZW">ZW</option>
</select>

for the en locale.

You can exclude countries by code using the exclude option (a single code or an array of country codes):

localized_country_select(:user, :country, [], {:exclude => [:ZZ, :US]})

Formtastic and SimpleForm¶ ↑

Gem supports (via alias_method) both formtastic and simple_form :country input

Other resources¶ ↑

Copyright © 2008 Karel Minarik (www.karmi.cz), released under the MIT license