Class: Jekyll::UJLanguageTag
- Inherits:
-
Liquid::Tag
- Object
- Liquid::Tag
- Jekyll::UJLanguageTag
- Defined in:
- lib/tags/language.rb
Constant Summary collapse
- LANGUAGE_MAPPINGS =
Language mappings: ISO code => [English name, Native name]
{ 'aa' => ['Afar', 'Afaraf'], 'ab' => ['Abkhazian', 'аҧсуа бызшәа'], 'ae' => ['Avestan', 'avesta'], 'af' => ['Afrikaans', 'Afrikaans'], 'ak' => ['Akan', 'Akan'], 'am' => ['Amharic', 'አማርኛ'], 'an' => ['Aragonese', 'aragonés'], 'ar' => ['Arabic', 'العربية'], 'as' => ['Assamese', 'অসমীয়া'], 'av' => ['Avaric', 'авар мацӀ'], 'ay' => ['Aymara', 'aymar aru'], 'az' => ['Azerbaijani', 'azərbaycan dili'], 'ba' => ['Bashkir', 'башҡорт теле'], 'be' => ['Belarusian', 'беларуская мова'], 'bg' => ['Bulgarian', 'български език'], 'bh' => ['Bihari languages', 'भोजपुरी'], 'bi' => ['Bislama', 'Bislama'], 'bm' => ['Bambara', 'bamanankan'], 'bn' => ['Bengali', 'বাংলা'], 'bo' => ['Tibetan', 'བོད་ཡིག'], 'br' => ['Breton', 'brezhoneg'], 'bs' => ['Bosnian', 'bosanski jezik'], 'ca' => ['Catalan', 'català'], 'ce' => ['Chechen', 'нохчийн мотт'], 'ch' => ['Chamorro', 'Chamoru'], 'co' => ['Corsican', 'corsu'], 'cr' => ['Cree', 'ᓀᐦᐃᔭᐍᐏᐣ'], 'cs' => ['Czech', 'čeština'], 'cu' => ['Church Slavic', 'ѩзыкъ словѣньскъ'], 'cv' => ['Chuvash', 'чӑваш чӗлхи'], 'cy' => ['Welsh', 'Cymraeg'], 'da' => ['Danish', 'dansk'], 'de' => ['German', 'Deutsch'], 'dv' => ['Divehi', 'ދިވެހި'], 'dz' => ['Dzongkha', 'རྫོང་ཁ'], 'ee' => ['Ewe', 'Eʋegbe'], 'el' => ['Greek', 'ελληνικά'], 'en' => ['English', 'English'], 'eo' => ['Esperanto', 'Esperanto'], 'es' => ['Spanish', 'español'], 'et' => ['Estonian', 'eesti'], 'eu' => ['Basque', 'euskera'], 'fa' => ['Persian', 'فارسی'], 'ff' => ['Fulah', 'Fulfulde'], 'fi' => ['Finnish', 'suomi'], 'fj' => ['Fijian', 'vosa Vakaviti'], 'fo' => ['Faroese', 'føroyskt'], 'fr' => ['French', 'français'], 'fy' => ['Western Frisian', 'Frysk'], 'ga' => ['Irish', 'Gaeilge'], 'gd' => ['Gaelic', 'Gàidhlig'], 'gl' => ['Galician', 'galego'], 'gn' => ['Guarani', 'Avañe\'ẽ'], 'gu' => ['Gujarati', 'ગુજરાતી'], 'gv' => ['Manx', 'Gaelg'], 'ha' => ['Hausa', 'هَوُسَ'], 'he' => ['Hebrew', 'עברית'], 'hi' => ['Hindi', 'हिन्दी'], 'ho' => ['Hiri Motu', 'Hiri Motu'], 'hr' => ['Croatian', 'hrvatski jezik'], 'ht' => ['Haitian', 'Kreyòl ayisyen'], 'hu' => ['Hungarian', 'magyar'], 'hy' => ['Armenian', 'Հայերեն'], 'hz' => ['Herero', 'Otjiherero'], 'ia' => ['Interlingua', 'Interlingua'], 'id' => ['Indonesian', 'Bahasa Indonesia'], 'ie' => ['Interlingue', 'Interlingue'], 'ig' => ['Igbo', 'Asụsụ Igbo'], 'ii' => ['Nuosu', 'ꆈꌠ꒿ Nuosuhxop'], 'ik' => ['Inupiaq', 'Iñupiaq'], 'io' => ['Ido', 'Ido'], 'is' => ['Icelandic', 'Íslenska'], 'it' => ['Italian', 'italiano'], 'iu' => ['Inuktitut', 'ᐃᓄᒃᑎᑐᑦ'], 'ja' => ['Japanese', '日本語'], 'jv' => ['Javanese', 'basa Jawa'], 'ka' => ['Georgian', 'ქართული'], 'kg' => ['Kongo', 'Kikongo'], 'ki' => ['Kikuyu', 'Gĩkũyũ'], 'kj' => ['Kwanyama', 'Kuanyama'], 'kk' => ['Kazakh', 'қазақ тілі'], 'kl' => ['Kalaallisut', 'kalaallisut'], 'km' => ['Khmer', 'ខ្មែរ'], 'kn' => ['Kannada', 'ಕನ್ನಡ'], 'ko' => ['Korean', '한국어'], 'kr' => ['Kanuri', 'Kanuri'], 'ks' => ['Kashmiri', 'कश्मीरी'], 'ku' => ['Kurdish', 'Kurdî'], 'kv' => ['Komi', 'коми кыв'], 'kw' => ['Cornish', 'Kernewek'], 'ky' => ['Kirghiz', 'Кыргызча'], 'la' => ['Latin', 'latine'], 'lb' => ['Luxembourgish', 'Lëtzebuergesch'], 'lg' => ['Ganda', 'Luganda'], 'li' => ['Limburgish', 'Limburgs'], 'ln' => ['Lingala', 'Lingála'], 'lo' => ['Lao', 'ພາສາລາວ'], 'lt' => ['Lithuanian', 'lietuvių kalba'], 'lu' => ['Luba-Katanga', 'Tshiluba'], 'lv' => ['Latvian', 'latviešu valoda'], 'mg' => ['Malagasy', 'fiteny malagasy'], 'mh' => ['Marshallese', 'Kajin M̧ajeļ'], 'mi' => ['Māori', 'te reo Māori'], 'mk' => ['Macedonian', 'македонски јазик'], 'ml' => ['Malayalam', 'മലയാളം'], 'mn' => ['Mongolian', 'Монгол хэл'], 'mr' => ['Marathi', 'मराठी'], 'ms' => ['Malay', 'bahasa Melayu'], 'mt' => ['Maltese', 'Malti'], 'my' => ['Burmese', 'ဗမာစာ'], 'na' => ['Nauru', 'Dorerin Naoero'], 'nb' => ['Norwegian Bokmål', 'Norsk bokmål'], 'nd' => ['North Ndebele', 'isiNdebele'], 'ne' => ['Nepali', 'नेपाली'], 'ng' => ['Ndonga', 'Owambo'], 'nl' => ['Dutch', 'Nederlands'], 'nn' => ['Norwegian Nynorsk', 'Norsk nynorsk'], 'no' => ['Norwegian', 'Norsk'], 'nr' => ['South Ndebele', 'isiNdebele'], 'nv' => ['Navajo', 'Diné bizaad'], 'ny' => ['Chichewa', 'chiCheŵa'], 'oc' => ['Occitan', 'occitan'], 'oj' => ['Ojibwa', 'ᐊᓂᔑᓈᐯᒧᐎᓐ'], 'om' => ['Oromo', 'Afaan Oromoo'], 'or' => ['Oriya', 'ଓଡ଼ିଆ'], 'os' => ['Ossetian', 'ирон æвзаг'], 'pa' => ['Panjabi', 'ਪੰਜਾਬੀ'], 'pi' => ['Pāli', 'पाऴि'], 'pl' => ['Polish', 'język polski'], 'ps' => ['Pashto', 'پښتو'], 'pt' => ['Portuguese', 'português'], 'qu' => ['Quechua', 'Runa Simi'], 'rm' => ['Romansh', 'rumantsch grischun'], 'rn' => ['Kirundi', 'Ikirundi'], 'ro' => ['Romanian', 'română'], 'ru' => ['Russian', 'русский'], 'rw' => ['Kinyarwanda', 'Ikinyarwanda'], 'sa' => ['Sanskrit', 'संस्कृतम्'], 'sc' => ['Sardinian', 'sardu'], 'sd' => ['Sindhi', 'सिन्धी'], 'se' => ['Northern Sami', 'Davvisámegiella'], 'sg' => ['Sango', 'yângâ tî sängö'], 'si' => ['Sinhala', 'සිංහල'], 'sk' => ['Slovak', 'slovenčina'], 'sl' => ['Slovene', 'slovenski jezik'], 'sm' => ['Samoan', 'gagana fa\'a Samoa'], 'sn' => ['Shona', 'chiShona'], 'so' => ['Somali', 'Soomaaliga'], 'sq' => ['Albanian', 'gjuha shqipe'], 'sr' => ['Serbian', 'српски језик'], 'ss' => ['Swati', 'SiSwati'], 'st' => ['Southern Sotho', 'Sesotho'], 'su' => ['Sundanese', 'Basa Sunda'], 'sv' => ['Swedish', 'svenska'], 'sw' => ['Swahili', 'Kiswahili'], 'ta' => ['Tamil', 'தமிழ்'], 'te' => ['Telugu', 'తెలుగు'], 'tg' => ['Tajik', 'тоҷикӣ'], 'th' => ['Thai', 'ไทย'], 'ti' => ['Tigrinya', 'ትግርኛ'], 'tk' => ['Turkmen', 'Türkmen'], 'tl' => ['Tagalog', 'Wikang Tagalog'], 'tn' => ['Tswana', 'Setswana'], 'to' => ['Tonga', 'faka Tonga'], 'tr' => ['Turkish', 'Türkçe'], 'ts' => ['Tsonga', 'Xitsonga'], 'tt' => ['Tatar', 'татар теле'], 'tw' => ['Twi', 'Twi'], 'ty' => ['Tahitian', 'Reo Tahiti'], 'ug' => ['Uighur', 'ئۇيغۇرچە'], 'uk' => ['Ukrainian', 'українська мова'], 'ur' => ['Urdu', 'اردو'], 'uz' => ['Uzbek', 'Oʻzbek'], 've' => ['Venda', 'Tshivenḓa'], 'vi' => ['Vietnamese', 'Tiếng Việt'], 'vo' => ['Volapük', 'Volapük'], 'wa' => ['Walloon', 'walon'], 'wo' => ['Wolof', 'Wollof'], 'xh' => ['Xhosa', 'isiXhosa'], 'yi' => ['Yiddish', 'ייִדיש'], 'yo' => ['Yoruba', 'Yorùbá'], 'za' => ['Zhuang', 'Saɯ cueŋƅ'], 'zh' => ['Chinese', '中文'], 'zu' => ['Zulu', 'isiZulu'] }
Instance Method Summary collapse
-
#initialize(tag_name, markup, tokens) ⇒ UJLanguageTag
constructor
A new instance of UJLanguageTag.
- #render(context) ⇒ Object
Constructor Details
#initialize(tag_name, markup, tokens) ⇒ UJLanguageTag
Returns a new instance of UJLanguageTag.
194 195 196 197 |
# File 'lib/tags/language.rb', line 194 def initialize(tag_name, markup, tokens) super @markup = markup.strip end |
Instance Method Details
#render(context) ⇒ Object
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/tags/language.rb', line 199 def render(context) # Parse arguments that can be quoted or unquoted parts = parse_arguments(@markup) iso_code_input = parts[0] output_type = parts[1] || 'english' # default to english # Check if the input was originally quoted (literal string) is_quoted = @markup.strip.match(/^['"]/) # If quoted, use as literal. Otherwise, try to resolve as variable if is_quoted iso_code = iso_code_input else # Try to resolve as a variable iso_code = resolve_variable(context, iso_code_input) # If it didn't resolve to a string, use the input as literal iso_code = iso_code_input if iso_code.nil? || !iso_code.is_a?(String) end # Strip quotes from resolved iso code if present if iso_code.is_a?(String) && iso_code.match(/^['"].*['"]$/) iso_code = iso_code[1..-2] end # Strip quotes from output type if present if output_type.is_a?(String) && output_type.match(/^['"].*['"]$/) output_type = output_type[1..-2] end # Convert to lowercase for lookup iso_code = iso_code.to_s.downcase output_type = output_type.to_s.downcase # Look up the language language_data = LANGUAGE_MAPPINGS[iso_code] return iso_code if language_data.nil? # Return original code if not found # Return appropriate language name based on output type case output_type when 'native' language_data[1] # Native name else language_data[0] # English name (default) end end |