diff --git a/app/helpers/countries_helper.rb b/app/helpers/countries_helper.rb new file mode 100644 index 0000000..ea13bb2 --- /dev/null +++ b/app/helpers/countries_helper.rb @@ -0,0 +1,264 @@ +class CountriesHelper + + include GetText + bindtextdomain 'iso_3166' + + # a dump of iso_3166.xml from Debian source package iso-codes + COUNTRIES = [ + ["Afghanistan", "AF"], + ["Åland Islands", "AX"], + ["Albania", "AL"], + ["Algeria", "DZ"], + ["American Samoa", "AS"], + ["Andorra", "AD"], + ["Angola", "AO"], + ["Anguilla", "AI"], + ["Antarctica", "AQ"], + ["Antigua and Barbuda", "AG"], + ["Argentina", "AR"], + ["Armenia", "AM"], + ["Aruba", "AW"], + ["Australia", "AU"], + ["Austria", "AT"], + ["Azerbaijan", "AZ"], + ["Bahamas", "BS"], + ["Bahrain", "BH"], + ["Bangladesh", "BD"], + ["Barbados", "BB"], + ["Belarus", "BY"], + ["Belgium", "BE"], + ["Belize", "BZ"], + ["Benin", "BJ"], + ["Bermuda", "BM"], + ["Bhutan", "BT"], + ["Bolivia", "BO"], + ["Bosnia and Herzegovina", "BA"], + ["Botswana", "BW"], + ["Bouvet Island", "BV"], + ["Brazil", "BR"], + ["British Indian Ocean Territory", "IO"], + ["Brunei Darussalam", "BN"], + ["Bulgaria", "BG"], + ["Burkina Faso", "BF"], + ["Burundi", "BI"], + ["Cambodia", "KH"], + ["Cameroon", "CM"], + ["Canada", "CA"], + ["Cape Verde", "CV"], + ["Cayman Islands", "KY"], + ["Central African Republic", "CF"], + ["Chad", "TD"], + ["Chile", "CL"], + ["China", "CN"], + ["Christmas Island", "CX"], + ["Cocos (Keeling) Islands", "CC"], + ["Colombia", "CO"], + ["Comoros", "KM"], + ["Congo", "CG"], + ["Congo, The Democratic Republic of the", "CD"], + ["Cook Islands", "CK"], + ["Costa Rica", "CR"], + ["Côte d'Ivoire", "CI"], + ["Croatia", "HR"], + ["Cuba", "CU"], + ["Cyprus", "CY"], + ["Czech Republic", "CZ"], + ["Denmark", "DK"], + ["Djibouti", "DJ"], + ["Dominica", "DM"], + ["Dominican Republic", "DO"], + ["Ecuador", "EC"], + ["Egypt", "EG"], + ["El Salvador", "SV"], + ["Equatorial Guinea", "GQ"], + ["Eritrea", "ER"], + ["Estonia", "EE"], + ["Ethiopia", "ET"], + ["Falkland Islands (Malvinas)", "FK"], + ["Faroe Islands", "FO"], + ["Fiji", "FJ"], + ["Finland", "FI"], + ["France", "FR"], + ["French Guiana", "GF"], + ["French Polynesia", "PF"], + ["French Southern Territories", "TF"], + ["Gabon", "GA"], + ["Gambia", "GM"], + ["Georgia", "GE"], + ["Germany", "DE"], + ["Ghana", "GH"], + ["Gibraltar", "GI"], + ["Greece", "GR"], + ["Greenland", "GL"], + ["Grenada", "GD"], + ["Guadeloupe", "GP"], + ["Guam", "GU"], + ["Guatemala", "GT"], + ["Guernsey", "GG"], + ["Guinea", "GN"], + ["Guinea-Bissau", "GW"], + ["Guyana", "GY"], + ["Haiti", "HT"], + ["Heard Island and McDonald Islands", "HM"], + ["Holy See (Vatican City State)", "VA"], + ["Honduras", "HN"], + ["Hong Kong", "HK"], + ["Hungary", "HU"], + ["Iceland", "IS"], + ["India", "IN"], + ["Indonesia", "ID"], + ["Iran, Islamic Republic of", "IR"], + ["Iraq", "IQ"], + ["Ireland", "IE"], + ["Isle of Man", "IM"], + ["Israel", "IL"], + ["Italy", "IT"], + ["Jamaica", "JM"], + ["Japan", "JP"], + ["Jersey", "JE"], + ["Jordan", "JO"], + ["Kazakhstan", "KZ"], + ["Kenya", "KE"], + ["Kiribati", "KI"], + ["Korea, Democratic People's Republic of", "KP"], + ["Korea, Republic of", "KR"], + ["Kuwait", "KW"], + ["Kyrgyzstan", "KG"], + ["Lao People's Democratic Republic", "LA"], + ["Latvia", "LV"], + ["Lebanon", "LB"], + ["Lesotho", "LS"], + ["Liberia", "LR"], + ["Libyan Arab Jamahiriya", "LY"], + ["Liechtenstein", "LI"], + ["Lithuania", "LT"], + ["Luxembourg", "LU"], + ["Macao", "MO"], + ["Macedonia, Republic of", "MK"], + ["Madagascar", "MG"], + ["Malawi", "MW"], + ["Malaysia", "MY"], + ["Maldives", "MV"], + ["Mali", "ML"], + ["Malta", "MT"], + ["Marshall Islands", "MH"], + ["Martinique", "MQ"], + ["Mauritania", "MR"], + ["Mauritius", "MU"], + ["Mayotte", "YT"], + ["Mexico", "MX"], + ["Micronesia, Federated States of", "FM"], + ["Moldova", "MD"], + ["Monaco", "MC"], + ["Mongolia", "MN"], + ["Montenegro", "ME"], + ["Montserrat", "MS"], + ["Morocco", "MA"], + ["Mozambique", "MZ"], + ["Myanmar", "MM"], + ["Namibia", "NA"], + ["Nauru", "NR"], + ["Nepal", "NP"], + ["Netherlands", "NL"], + ["Netherlands Antilles", "AN"], + ["New Caledonia", "NC"], + ["New Zealand", "NZ"], + ["Nicaragua", "NI"], + ["Niger", "NE"], + ["Nigeria", "NG"], + ["Niue", "NU"], + ["Norfolk Island", "NF"], + ["Northern Mariana Islands", "MP"], + ["Norway", "NO"], + ["Oman", "OM"], + ["Pakistan", "PK"], + ["Palau", "PW"], + ["Palestinian Territory, Occupied", "PS"], + ["Panama", "PA"], + ["Papua New Guinea", "PG"], + ["Paraguay", "PY"], + ["Peru", "PE"], + ["Philippines", "PH"], + ["Pitcairn", "PN"], + ["Poland", "PL"], + ["Portugal", "PT"], + ["Puerto Rico", "PR"], + ["Qatar", "QA"], + ["Reunion", "RE"], + ["Romania", "RO"], + ["Russian Federation", "RU"], + ["Rwanda", "RW"], + ["Saint Barthélemy", "BL"], + ["Saint Helena", "SH"], + ["Saint Kitts and Nevis", "KN"], + ["Saint Lucia", "LC"], + ["Saint Martin (French part)", "MF"], + ["Saint Pierre and Miquelon", "PM"], + ["Saint Vincent and the Grenadines", "VC"], + ["Samoa", "WS"], + ["San Marino", "SM"], + ["Sao Tome and Principe", "ST"], + ["Saudi Arabia", "SA"], + ["Senegal", "SN"], + ["Serbia", "RS"], + ["Seychelles", "SC"], + ["Sierra Leone", "SL"], + ["Singapore", "SG"], + ["Slovakia", "SK"], + ["Slovenia", "SI"], + ["Solomon Islands", "SB"], + ["Somalia", "SO"], + ["South Africa", "ZA"], + ["South Georgia and the South Sandwich Islands", "GS"], + ["Spain", "ES"], + ["Sri Lanka", "LK"], + ["Sudan", "SD"], + ["Suriname", "SR"], + ["Svalbard and Jan Mayen", "SJ"], + ["Swaziland", "SZ"], + ["Sweden", "SE"], + ["Switzerland", "CH"], + ["Syrian Arab Republic", "SY"], + ["Taiwan", "TW"], + ["Tajikistan", "TJ"], + ["Tanzania, United Republic of", "TZ"], + ["Thailand", "TH"], + ["Timor-Leste", "TL"], + ["Togo", "TG"], + ["Tokelau", "TK"], + ["Tonga", "TO"], + ["Trinidad and Tobago", "TT"], + ["Tunisia", "TN"], + ["Turkey", "TR"], + ["Turkmenistan", "TM"], + ["Turks and Caicos Islands", "TC"], + ["Tuvalu", "TV"], + ["Uganda", "UG"], + ["Ukraine", "UA"], + ["United Arab Emirates", "AE"], + ["United Kingdom", "GB"], + ["United States", "US"], + ["United States Minor Outlying Islands", "UM"], + ["Uruguay", "UY"], + ["Uzbekistan", "UZ"], + ["Vanuatu", "VU"], + ["Venezuela", "VE"], + ["Viet Nam", "VN"], + ["Virgin Islands, British", "VG"], + ["Virgin Islands, U.S.", "VI"], + ["Wallis and Futuna", "WF"], + ["Western Sahara", "EH"], + ["Yemen", "YE"], + ["Zambia", "ZM"], + ["Zimbabwe", "ZW"] + ] + + def self.countries + COUNTRIES + end + + def countries + self.class.countries.map {|item| [gettext(item[0]), item[1] ]}.sort_by { |entry| entry.first.transliterate } + end + +end diff --git a/app/helpers/profile_editor_helper.rb b/app/helpers/profile_editor_helper.rb index 77628d9..2537da3 100644 --- a/app/helpers/profile_editor_helper.rb +++ b/app/helpers/profile_editor_helper.rb @@ -81,252 +81,6 @@ module ProfileEditorHelper N_('Others') ] - COUNTRIES = [ - ("Afeganistão (افغانستان)"), - ("África do Sul (South Africa)"), - ("Albânia (Shqipëria)"), - ("Alemanha (Deutschland)"), - ("Andorra"), - ("Angola"), - ("Anguila (Anguilla)"), - ("Antártica (Antarctica)"), - ("Antígua e Barbuda (Antigua and Barbuda)"), - ("Antilhas Holandesas (Netherlands Antilles)"), - ("Arábia Saudita (العربية السعودية)"), - ("Argélia (الجمهورية الجزائرية)"), - ("Argentina"), - ("Armênia (Հայաստան)"), - ("Aruba"), - ("Austrália (Australia)"), - ("Áustria (Österreich)"), - ("Azerbaijão (Azərbaycan)"), - ("Bahamas"), - ("Bangladesh (বাংলাদেশ)"), - ("Barbados"), - ("Barein (بحرين)"), - ("Bélgica (België)"), - ("Belize"), - ("Benin (Bénin)"), - ("Bermudas (Bermuda)"), - ("Bielo-Rússia (Белару́сь)"), - ("Bolívia (Bolivia)"), - ("Bósnia-Herzegovina (Bosna i Hercegovina)"), - ("Botsuana (Botswana)"), - ("Brasil"), - ("Brunei (Brunei Darussalam)"), - ("Bulgária (България)"), - ("Burkina Fasso (Burkina Faso)"), - ("Burundi (Uburundi)"), - ("Butão (འབྲུག་ཡུལ)"), - ("Cabo Verde"), - ("Camarões (Cameroun)"), - ("Camboja (Kampuchea)"), - ("Canadá (Canada)"), - ("Catar (قطر)"), - ("Cazaquistão (Қазақстан)"), - ("Chade (Tchad)"), - ("Chile"), - ("China (中国)"), - ("Chipre (Κυπρος)"), - ("Cidade do Vaticano (Città del Vaticano)"), - ("Cingapura (Singapura)"), - ("Colômbia (Colombia)"), - ("Comores"), - ("Congo"), - ("Congo, República democrática do (Congo, Democratic Republic of the)"), - ("Coréia do Norte (조선)"), - ("Coréia do Sul (한국)"), - ("Costa do Marfim (Côte d'Ivoire)"), - ("Costa Rica"), - ("Croácia (Hrvatska)"), - ("Cuba"), - ("Dinamarca (Danmark)"), - ("Djibuti (Djibouti)"), - ("Dominica"), - ("Egito (مصر)"), - ("El Salvador"), - ("Emirados Árabes Unidos (الإمارات العربيّة المتّحد)"), - ("Equador (Ecuador)"), - ("Eritréia (Ertra)"), - ("Eslováquia (Slovensko)"), - ("Eslovênia (Slovenija)"), - ("Espanha (España)"), - ("Estados Unidos (United States)"), - ("Estônia (Eesti)"), - ("Etiópia (Ityop'iya)"), - ("Fiji"), - ("Filipinas (Pilipinas)"), - ("Finlândia (Suomi)"), - ("França (France)"), - ("Gabão (Gabon)"), - ("Gâmbia (Gambia)"), - ("Gana (Ghana)"), - ("Geórgia (საქართველო)"), - ("Geórgia do Sul e Ilhas Sandwich do Sul (South Georgia and the South Sandwich Islands)"), - ("Gibraltar"), - ("Granada (Grenada)"), - ("Grécia (Eλλας)"), - ("Groenlândia (Greenland)"), - ("Guadalupe (Guadeloupe)"), - ("Guam"), - ("Guatemala"), - ("Guernsey"), - ("Guiana (Guyana)"), - ("Guiana Francesa (French Guiana)"), - ("Guiné (Guinée)"), - ("Guiné-Bissau"), - ("Guiné Equatorial (Guinea Ecuatorial)"), - ("Haiti (Haïti)"), - ("Holanda (Nederland)"), - ("Honduras"), - ("Hong Kong"), - ("Hungria (Magyarország)"), - ("Iêmen (اليمن)"), - ("Ilha Aland (Aland Islands)"), - ("Ilha Bouvet (Bouvet Island)"), - ("Ilha Christmas (Christmas Island)"), - ("Ilha de Man (Isle of Man)"), - ("Ilha Norfolk (Norfolk Island)"), - ("Ilhas Cayman (Cayman Islands)"), - ("Ilhas Cocos (Keeling) (Cocos Islands)"), - ("Ilhas Cook (Cook Islands)"), - ("Ilhas Falkland (Malvinas) (Falkland Islands)"), - ("Ilhas Faroé (Faroe Islands)"), - ("Ilhas Heard e McDonald (Heard Island and McDonald Islands)"), - ("Ilhas Marianas do Norte (Northern Mariana Islands)"), - ("Ilhas Marshall (Marshall Islands)"), - ("Ilhas Maurício (Mauritius)"), - ("Ilhas Reunião (Reunion)"), - ("Ilhas Salomão (Solomon Islands)"), - ("Ilhas Svalbard e Jan Mayen (Svalbard and Jan Mayen)"), - ("Ilhas Tokelau (Tokelau)"), - ("Ilhas Turks e Caicos (Turks and Caicos Islands)"), - ("Ilhas Virgens, Britânicas (Virgin Islands, British)"), - ("Ilhas Virgens, EUA (Virgin Islands, U.S.)"), - ("Ilhas Wallis e Futuna (Wallis and Futuna)"), - ("Índia (India)"), - ("Indonésia (Indonesia)"), - ("Irã (ایران)"), - ("Iraque (العراق)"), - ("Irlanda (Ireland)"), - ("Islândia (Ísland)"), - ("Israel (ישראל)"), - ("Itália (Italia)"), - ("Jamaica"), - ("Japão (日本)"), - ("Jordânia (الارد)"), - ("Kiribati"), - ("Kuwait (الكويت)"), - ("Laos (ນລາວ)"), - ("Lesoto (Lesotho)"), - ("Letônia (Latvija)"), - ("Líbano (لبنان)"), - ("Libéria (Liberia)"), - ("Líbia (ليبية)"), - ("Liechtenstein"), - ("Lituânia (Lietuva)"), - ("Luxemburgo (Lëtzebuerg)"), - ("Macau (Macao)"), - ("Macedônia (Македонија)"), - ("Madagáscar (Madagasikara)"), - ("Maiote (Mayotte)"), - ("Malásia (Malaysia)"), - ("Malavi (Malawi)"), - ("Maldivas (ގުޖޭއްރާ ޔާއްރިހޫމްޖ)"), - ("Mali"), - ("Malta"), - ("Marrocos (مغرب)"), - ("Martinica (Martinique)"), - ("Mauritânia (موريتانية)"), - ("México"), - ("Micronésia (Micronesia)"), - ("Moçambique"), - ("Moldávia (Moldova)"), - ("Mônaco (Monaco)"), - ("Mongólia (Монгол Улс)"), - ("Montserrat"), - ("Myanmar (Լեռնային Ղարաբաղ)"), - ("Namíbia (Namibia)"), - ("Nauru (Naoero)"), - ("Nepal (नेपाल)"), - ("Nicarágua (Nicaragua)"), - ("Níger (Niger)"), - ("Nigéria (Nigeria)"), - ("Niue"), - ("Noruega (Norge)"), - ("Nova Caledônia (New Caledonia)"), - ("Nova Jérsei (Jersey)"), - ("Nova Zelândia (New Zealand)"), - ("Omã (عمان)"), - ("Palau (Belau)"), - ("Palestina (Palestine)"), - ("Panamá"), - ("Papua-Nova Guiné (Papua New Guinea)"), - ("Paquistão (پاکستان)"), - ("Paraguai (Paraguay)"), - ("Peru (Perú)"), - ("Pitcairn"), - ("Polinésia Francesa (French Polynesia)"), - ("Polônia (Polska)"), - ("Porto Rico (Puerto Rico)"), - ("Portugal"), - ("Quênia (Kenya)"), - ("Quirquistão (Кыргызстан)"), - ("Reino Unido (United Kingdom)"), - ("República Centro-Africana (République Centrafricaine)"), - ("República Dominicana (Dominican Republic)"), - ("República Tcheca (Česko)"), - ("Romênia (România)"), - ("Ruanda (Rwanda)"), - ("Rússia (Россия)"), - ("Saara Ocidental (صحراوية)"), - ("Samoa"), - ("Samoa Americana (American Samoa)"), - ("San Marino"), - ("Santa Helena (Saint Helena)"), - ("Santa Lúcia (Saint Lucia)"), - ("São Cristóvão e Névis (Saint Kitts and Nevis)"), - ("São Pierre e Miquelon (Saint Pierre and Miquelon)"), - ("São Tomé e Príncipe (São Tomé and Príncipe)"), - ("São Vincente e Granadinas (Saint Vincent and the Grenadines)"), - ("Seicheles (Seychelles)"), - ("Senegal (Sénégal)"), - ("Serra Leoa (Sierra Leone)"), - ("Sérvia e Montenegro (Србија и Црна Гора)"), - ("Síria (سورية)"), - ("Somália (Soomaaliya)"), - ("Sri Lanka"), - ("Suazilândia (Swaziland)"), - ("Sudão (السودان)"), - ("Suécia (Sverige)"), - ("Suíça (Schweiz)"), - ("Suriname"), - ("Tailândia (ราชอาณาจักรไทย)"), - ("Taiwan (台灣)"), - ("Tajiquistão (Тоҷикистон)"), - ("Tanzânia (Tanzania)"), - ("Território Britânico do Oceano Índico (British Indian Ocean Territory)"), - ("Territórios Franceses do Sul (French Southern Territories)"), - ("Territórios Insulares dos Estados Unidos (United States minor outlying islands)"), - ("Timor Leste (Timor-Leste)"), - ("Togo"), - ("Tonga"), - ("Trinidad e Tobago (Trinidad and Tobago)"), - ("Tunísia (تونس)"), - ("Turcomenistão (Türkmenistan)"), - ("Turquia (Türkiye)"), - ("Tuvalu"), - ("Ucrânia (Україна)"), - ("Uganda"), - ("Uruguai (Uruguay)"), - ("Uzbequistão (O'zbekiston)"), - ("Vanuatu"), - ("Venezuela"), - ("Vietnã (Việt Nam)"), - ("Zâmbia (Zambia)"), - ("Zimbábue (Zimbabwe)") - ] - SCHOOLING = [ N_('Post-Doctoral'), N_('Ph.D.'), @@ -347,8 +101,12 @@ module ProfileEditorHelper labelled_form_field(title, select(object, method, [[_('[Select ...]'), nil]] + ProfileEditorHelper::AREAS_OF_STUDY.map{|s| [gettext(s), s]}, {}, options)) end + def country_helper + @country_helper ||= CountriesHelper.new + end + def select_country(title, object, method, options) - labelled_form_field(title, select(object, method, [[_('[Select ...]'), nil]] + ProfileEditorHelper::COUNTRIES.map{|s| [s]}, {}, options)) + labelled_form_field(title, select(object, method, [[_('[Select ...]'), nil]] + country_helper.countries, {}, options)) end def select_schooling(object, method, options) diff --git a/doc/README_FOR_APP.en b/doc/README_FOR_APP.en index b3f920e..ca50ba7 100644 --- a/doc/README_FOR_APP.en +++ b/doc/README_FOR_APP.en @@ -21,10 +21,11 @@ You need to have a Subversion client (svn) installed, as well as: * Ruby Locale: http://rubyforge.org/projects/locale/ * will_paginate: http://github.com/mislav/will_paginate/wikis * contacts: http://github.com/cardmagic/contacts/tree/master +* iso-codes: http://pkg-isocodes.alioth.debian.org/ There are Debian packages available for all of them but ferret. Try: - # aptitude install subversion ruby rake libgettext-ruby libmocha-ruby libsqlite3-ruby rcov librmagick-ruby libredcloth-ruby liblocale-ruby libwill-paginate-ruby + # aptitude install subversion ruby rake libgettext-ruby libmocha-ruby libsqlite3-ruby rcov librmagick-ruby libredcloth-ruby liblocale-ruby libwill-paginate-ruby iso-codes Ferret shall enter Debian soon (as libferret-ruby). until there you have two options: diff --git a/lib/noosfero/core_ext/string.rb b/lib/noosfero/core_ext/string.rb index 157aace..5c71347 100644 --- a/lib/noosfero/core_ext/string.rb +++ b/lib/noosfero/core_ext/string.rb @@ -1,8 +1,8 @@ class String TRANSLITERATIONS = { - [ 'Á', 'À', 'À', 'Â', 'Ã', 'Ä' ] => 'A', - [ 'á', 'à', 'à', 'â', 'ã', 'ä', 'ª' ] => 'a', + [ 'Á', 'À', 'À', 'Â', 'Ã', 'Ä', 'Å' ] => 'A', + [ 'á', 'à', 'à', 'â', 'ã', 'ä', 'å' ,'ª' ] => 'a', [ 'É', 'È', 'Ê', 'Ë' ] => 'E', [ 'é', 'è', 'ê', 'ë' ] => 'e', [ 'Í', 'Ì', 'Î', 'Ï' ] => 'I', diff --git a/test/unit/countries_helper_test.rb b/test/unit/countries_helper_test.rb new file mode 100644 index 0000000..6697f7b --- /dev/null +++ b/test/unit/countries_helper_test.rb @@ -0,0 +1,36 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class CountriesHelperTest < Test::Unit::TestCase + + def setup + @helper = CountriesHelper.new + end + attr_reader :helper + + should 'provide ISO-3166 list of countries' do + assert_kind_of Array, CountriesHelper.countries + + # test some familiar countries and trust the rest is OK. + assert CountriesHelper.countries.any? { |entry| entry.first == 'Brazil' } + assert CountriesHelper.countries.any? { |entry| entry.first == 'France' } + assert CountriesHelper.countries.any? { |entry| entry.first == 'Switzerland' } + end + + should 'translate country names' do + CountriesHelper.stubs(:countries).returns([["Brazil", "BR"],["France", "FR"]]) + helper.expects(:gettext).with("Brazil").returns("Brasil") + helper.expects(:gettext).with("France").returns("França") + assert_equal [["Brasil", "BR"], ["França", "FR"]], helper.countries + end + + should 'sort alphabetically by the translated names' do + CountriesHelper.stubs(:countries).returns([["Brazil", "BR"], ["Argentina", "AR"]]) + assert_equal [["Argentina", "AR"], ["Brazil", "BR"]], helper.countries + end + + should 'sort respecting utf-8 ordering (or something like that)' do + CountriesHelper.stubs(:countries).returns([["Brazil", "BR"], ["Åland Islands", "AX"]]) + assert_equal [["Åland Islands", "AX"], ["Brazil", "BR"]], helper.countries + end + +end diff --git a/test/unit/string_core_ext_test.rb b/test/unit/string_core_ext_test.rb index f4b80e5..58c33a1 100644 --- a/test/unit/string_core_ext_test.rb +++ b/test/unit/string_core_ext_test.rb @@ -26,7 +26,7 @@ class StringCoreExtTest < Test::Unit::TestCase # tests for String#transliterate should 'transliterate' do - assert_equal 'eeeeEEOOoocaaaiIIiuuyYnN', 'éèëêÊËÖÔöôçäàâîÏÎïûüÿŸñÑ'.transliterate + assert_equal 'aaaaaaAAAAAeeeeEEOOoocaaaiIIiuuyYnNcC', 'ªáàäâåÁÀÄÂÅéèëêÊËÖÔöôçäàâîÏÎïûüÿŸñÑçÇ'.transliterate end end -- libgit2 0.21.2