# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. def language_options languages_to_remove = ["Afar", "Abkhazian", "Akan", "Aragonese", "Avaric", "Avestan", "Aymara", "Bashkir", "Bambara", "Bislama", "Chamorro", "Chechen", "Slavic", "Chuvash", "Cornish", "Cree", "Divehi", "Dzongkha", "Esperanto", "Ewe", "Frisian", "Fulah", "Gallegan", "Manx", "Guarani", "Hausa", "Herero", "Igbo", "Ido", "Yi", "Inuktitut", "Interlingue", "Interlingua", "Inupiaq", "Kalaallisut", "Kanuri", "Kikuyu", "Kinyarwanda", "Kirghiz", "Komi", "Kuanyama", "Limburgish", "Lingala", "Letzeburgesch", "Luba-Katanga", "Ganda", "Marshall", "Malagasy", "Nauru", "Navajo", "Ndebele", "Ndebele", "Ndonga", "Chichewa; Nyanja", "Occitan", "Ojibwa", "Oromo", "Ossetian; Ossetic", "Pali", "Quechua", "Raeto-Romance", "Sango", "Shona", "Sotho", "Swati", "Tonga", "Tswana", "Tsonga", "Twi", "Uighur", "Venda", "Volapük", "Wolof", "Xhosa", "Zhuang"] full_languages_to_remove = ["Achinese", "Acoli", "Adangme", "Adyghe; Adygei", "Afrihilivalue", "Ainu - Japan", "Akkadian", "Aleut", "Altai - Southern", "Aramaic", "Aramaic - Samaritan", "Arapaho", "Araucanian", "Arawak", "Assamese", "Asturian; Bable", "Awadhi", "Baluchi", "Basa - Cameroon", "Beja", "Bemba - Zambia", "Bhojpuri", "Bikol", "Bini", "Blin; Bilin", "Braj", "Buginese", "Buriat", "Caddo", "Cebuano", "Chagatai", "Cherokee", "Cheyenne", "Chibcha", "Chinook jargon", "Chipewyan", "Choctaw", "Chuukese", "Creek", "Crimean Turkish; Crimean Tatar", "Dakota", "Dargwa", "Delaware", "Dinka", "Dogri - generic", "Dogrib", "Duala", "Dutch - Middle (ca.1050-1350)", "Dyula", "Efik", "Egyptian - Ancient", "Ekajuk", "Elamite", "English - Middle (1100-1500)", "English - Old (ca.450-1100)", "Erzya", "Ewondo", "Fang - Equatorial Guinea", "Fanti", "Filipino; Pilipino", "Fon", "French - Middle (ca.1400-1600)", "French - Old (842-Ca.1400)", "Friulian", "Ga", "Gaelic - Scots", "Gayo", "Gbaya - Central African Republic", "Geez", "German - Old High (ca.750-1050)", "German - Middle High (ca.1050-1500)","Gilbertese", "Gondi", "Gorontalo", "Gothic", "Grebo", "Greek - Ancient (to 1453)", "Greek - Modern (1453-)", "Gwich´in", "Haida", "Haitian; Haitian Creole", "Hawaiian", "Hiligaynon", "Hiri Motu", "Hittite", "Hmong", "Hupa", "Iban", "Iloko", "Ingush", "Irish - Middle (900-1200)", "Irish - Old (to 900)","Judeo-Arabic", "Judeo-Persian", "Kabardian", "Kabyle", "Kachin", "Kalmyk; Oirat", "Kamba - Kenya", "Kara-Kalpak", "Karachay-Balkar", "Kashubian", "Kawi", "Khasi", "Khotanese", "Kimbundu", "Klingon; tlhIngan-Hol", "Kongo", "Konkani - generic", "Kosraean", "Kpelle", "Kumyk", "Kurukh", "Kutenai", "Ladino", "Lahnda", "Lamba", "Latin", "Lezghian", "Lojban", "Low German; Low Saxon", "Lozi", "Luba-Lulua", "Luiseno", "Lule Sami", "Lunda", "Luo - Kenya and Tanzania", "Lushai", "Madurese", "Magahi", "Maithili", "Makasar", "Manchu", "Mandar", "Mandingo", "Manipuri", "Mari - Russia", "Marwari", "Masai", "Mende - Sierra Leone", "Micmac", "Minangkabau", "Mirandese", "Mohawk", "Moksha", "Mongo", "Mossi", "Multiple globalize_languages", "Neapolitan", "Newari - Classical; Old Newari", "Newari", "Nias", "Niuean", "Nogai", "Norse - Old", "Northern Sami", "Nyamwezi", "Nyankole", "Nyoro", "Nzima", "Osage", "Pahlavi", "Palauan", "Pampanga", "Pangasinan", "Papiamento", "Persian - Old (ca.600-400 B.C.)", "Phoenician", "Pohnpeian", "Provençal - Old (to 1500)", "Rapanui Romany", "Rundi", "Sandawe", "Sanskrit", "Santali", "Sasak", "Scots", "Selkup", "Serer", "Shan", "Sidamo", "Siksika", "Skolt Sami", "Slave - Athapascan", "Sogdian", "Soninke", "Sorbian - Upper", "Sorbian - Lower", "Southern Sami", "Sukuma", "Sumerian", "Susu", "Tamashek", "Tereno", "Tetum", "Tigre", "Timne", "Tiv", "Tlingit", "Tok Pisin", "Tokelau", "Tsimshian", "Tumbuka", "Turkish - Ottoman (1500-1928)", "Tuvinian", "Udmurt", "Ugaritic", "Umbundu", "Undetermined", "Vai", "Votic", "Walamo", "Walloon", "Waray - Philippines", "Washo", "Yao", "Yapese", "Yoruba", "Zapotec", "Zenaga", "Zuni"] all_languages = Globalize::Language.find(:all, :conditions => 'iso_639_2 is not null') english = all_languages.select {|l| format_language(l) == "English" } removed_languages = all_languages.select {|l| full_languages_to_remove.include?(format_language(l)) } return (english + (all_languages - english - removed_languages). delete_if {|l| languages_to_remove.include?(l.english_name)}. sort{|x, y| x.to_s <=> y.to_s}). map{|l| name=format_language(l); ""}. join('') end def gender_options return ['Male', 'Female'].map{|g| ""}.join('') end # Displays a Globalize::Language in a user friendly format. # ====Parameters # language:: The Globalize::Language to be formatted. def format_language(language) return '' unless language return language.to_s + (language.english_name_locale ? " - #{language.english_name_locale}" : '') + (language.english_name_modifier ? " - #{language.english_name_modifier}" : '') end def country_options countries = TZInfo::Country.all countries = countries.sort! {|x, y| x.to_s <=> y.to_s } united_states = countries.select {|c| c.code == 'US'} (united_states + (countries - united_states)). map{|c| name=c.to_s; ""}. join('') end def time_zone_options us_tz = {} TZInfo::Timezone.us_zones.each {|tz| us_tz[tz.identifier] = tz.to_s} all_tz = TZInfo::Timezone.all.select {|tz| not us_tz.has_key? tz.identifier } standard_us_timezones = ['US - Eastern', 'US - Central', 'US - Mountain', 'US - Pacific'] standard_us_timezones.map! { |tz| "" } timezone_options = standard_us_timezones.join us_tz.sort.each {|identifier, name| timezone_options << ""} all_tz.sort.each {|tz| timezone_options << ""} return timezone_options end begin GENDER_OPTIONS_FOR_SELECT = gender_options LANGUAGE_OPTIONS_FOR_SELECT = language_options TIME_ZONE_OPTIONS_FOR_SELECT = time_zone_options COUNTRY_OPTIONS_FOR_SELECT = country_options rescue STDERR.puts 'Warning: Select Options were not generated.' end