Last active
July 20, 2021 17:10
-
-
Save coryl/f7f2e640e40ec078493199a2837ed561 to your computer and use it in GitHub Desktop.
Google Speech-to-Text Language Enum: A convenient enum for categorizing language codes. Useful for filling in dropdown fields.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// GoogleSpeechLanguage.swift | |
// | |
// Created by Cory Liu on 2020/12/31. | |
//https://cloud.google.com/speech-to-text/docs/languages | |
//Note: Google accepts BCP47 language codes with capital letters ie. "en-US" as well as lower case BPC47 codes ie. "en-us". | |
//However in their response they return lowercase: "en-us". For the purposes of my project, I needed to reinitialize Google's response | |
//into this language enum object. Hence all case values are lower case. | |
enum GoogleSpeechLanguage: String, CaseIterable { | |
case | |
afZA = "af-za", | |
sqAL = "sq-al", | |
amET = "am-et", | |
arDZ = "ar-dz", | |
arBH = "ar-bh", | |
arEG = "ar-eg", | |
arIQ = "ar-iq", | |
arIL = "ar-il", | |
arJO = "ar-jo", | |
arKW = "ar-kw", | |
arLB = "ar-lb", | |
arMA = "ar-ma", | |
arOM = "ar-om", | |
arQA = "ar-qa", | |
arSA = "ar-sa", | |
arPS = "ar-ps", | |
arTN = "ar-tn", | |
arAE = "ar-ae", | |
arYE = "ar-ye", | |
hyAM = "hy-am", | |
azAZ = "az-az", | |
euES = "eu-es", | |
bnBD = "bn-bd", | |
bnIN = "bn-in", | |
bsBA = "bs-ba", | |
bgBG = "bg-bg", | |
myMM = "my-mm", | |
caES = "ca-es", | |
yueHantHK = "yue-hant-hk", | |
zh = "cmn-hans-cn", | |
zhTW = "cmn-hant-tw", | |
hrHR = "hr-hr", | |
csCZ = "cs-cz", | |
daDK = "da-dk", | |
nlBE = "nl-be", | |
nlNL = "nl-nl", | |
enAU = "en-au", | |
enCA = "en-ca", | |
enGH = "en-gh", | |
enHK = "en-hk", | |
enIN = "en-in", | |
enIE = "en-ie", | |
enKE = "en-ke", | |
enNZ = "en-nz", | |
enNG = "en-ng", | |
enPK = "en-pk", | |
enPH = "en-ph", | |
enSG = "en-sg", | |
enZA = "en-za", | |
enTZ = "en-tz", | |
enGB = "en-gb", | |
enUS = "en-us", | |
etEE = "et-ee", | |
filPH = "fil-ph", | |
fiFI = "fi-fi", | |
frBE = "fr-be", | |
frCA = "fr-ca", | |
frFR = "fr-fr", | |
frCH = "fr-ch", | |
glES = "gl-es", | |
kaGE = "ka-ge", | |
deAT = "de-at", | |
deDE = "de-de", | |
deCH = "de-ch", | |
elGR = "el-gr", | |
guIN = "gu-in", | |
iwIL = "iw-il", | |
hiIN = "hi-in", | |
huHU = "hu-hu", | |
isIS = "is-is", | |
idID = "is-id", | |
itIT = "it-it", | |
itCH = "it-ch", | |
jaJP = "ja-jp", | |
jvID = "jv-id", | |
knIN = "kn-in", | |
kmKH = "km-kh", | |
koKR = "ko-kr", | |
loLA = "lo-la", | |
lvLV = "lv-lv", | |
ltLT = "lt-lt", | |
mkMK = "ms-mk", | |
msMY = "ms-my", | |
mlIN = "ml-in", | |
mrIN = "mr-in", | |
mnMN = "mn-mn", | |
neNP = "ne-np", | |
noNO = "no-no", | |
faIR = "fa-ir", | |
plPL = "pl-pl", | |
ptBR = "pt-br", | |
ptPT = "pt-pt", | |
paGuruIN = "pa-guru-in", | |
roRO = "ro-ro", | |
ruRU = "ru-ru", | |
srRS = "sr-rs", | |
siLK = "si-lk", | |
skSK = "sk-sk", | |
slSI = "sl-si", | |
esAR = "es-ar", | |
esBO = "es-bo", | |
esCL = "es-cl", | |
esCO = "es-co", | |
esCR = "es-cr", | |
esDO = "es-do", | |
esEC = "es-ec", | |
esSV = "es-sv", | |
esGT = "es-gt", | |
esHN = "es-hn", | |
esMX = "es-mx", | |
esNI = "es-ni", | |
esPA = "es-pa", | |
esPY = "es-py", | |
esPE = "es-pe", | |
esPR = "es-pr", | |
esES = "es-es", | |
esUS = "es-us", | |
esUY = "es-uy", | |
esVE = "es-ve", | |
suID = "su-id", | |
swKE = "sw-ke", | |
swTZ = "sw-tz", | |
svSE = "sv-se", | |
taIN = "ta-in", | |
taMY = "ta-my", | |
taSG = "ta-sg", | |
taLK = "ta-lk", | |
teIN = "te-in", | |
thTH = "th-th", | |
trTR = "tr-tr", | |
ukUA = "uk-ua", | |
urIN = "ur-in", | |
urPK = "ur-pk", | |
uzUZ = "uz-uz", | |
viVN = "vi-vn", | |
zuZA = "zu-za" | |
var BCP47: String { | |
get { | |
return self.rawValue | |
} | |
} | |
var name: String { | |
switch self { | |
case .afZA: | |
return "Afrikaans (South Africa)" | |
case .sqAL: | |
return "Albanian (Albania)" | |
case .amET: | |
return "Amharic (Ethiopia)" | |
case .arDZ: | |
return "Arabic (Algeria)" | |
case .arBH: | |
return "Arabic (Bahrain)" | |
case .arEG: | |
return "Arabic (Egypt)" | |
case .arIQ: | |
return "Arabic (Iraq)" | |
case .arIL: | |
return "Arabic (Israel)" | |
case .arJO: | |
return "Arabic (Jordan)" | |
case .arKW: | |
return "Arabic (Kuwait)" | |
case .arLB: | |
return "Arabic (Lebanon)" | |
case .arMA: | |
return "Arabic (Morocco)" | |
case .arOM: | |
return "Arabic (Oman)" | |
case .arQA: | |
return "Arabic (Qatar)" | |
case .arSA: | |
return "Arabic (Saudi Arabia)" | |
case .arPS: | |
return "Arabic (State of Palestine)" | |
case .arTN: | |
return "Arabic (Tunisia)" | |
case .arAE: | |
return "Arabic (United Arab Emirates)" | |
case .arYE: | |
return "Arabic (Yemen)" | |
case .hyAM: | |
return "Armenian (Armenia)" | |
case .azAZ: | |
return "Azerbaijani (Azerbaijan)" | |
case .euES: | |
return "Basque (Spain)" | |
case .bnBD: | |
return "Bengali (Bangladesh)" | |
case .bnIN: | |
return "Bengali (India)" | |
case .bsBA: | |
return "Bosnian (Bosnia and Herzegovina)" | |
case .bgBG: | |
return "Bulgarian (Bulgaria)" | |
case .myMM: | |
return "Burmese (Myanmar)" | |
case .caES: | |
return "Catalan (Spain)" | |
case .yueHantHK: | |
return "Chinese, Cantonese (Traditional Hong Kong)" | |
case .zh: | |
return "Chinese, Mandarin (Simplified, China)" | |
case .zhTW: | |
return "Chinese, Mandarin (Traditional, Taiwan)" | |
case .hrHR: | |
return "Croatian (Croatia)" | |
case .csCZ: | |
return "Czech (Czech Republic)" | |
case .daDK: | |
return "Danish (Denmark)" | |
case .nlBE: | |
return "Dutch (Belgium)" | |
case .nlNL: | |
return "Dutch (Netherlands)" | |
case .enAU: | |
return "English (Australia)" | |
case .enCA: | |
return "English (Canada)" | |
case .enGH: | |
return "English (Ghana)" | |
case .enHK: | |
return "English (Hong Kong)" | |
case .enIN: | |
return "English (India)" | |
case .enIE: | |
return "English (Ireland)" | |
case .enKE: | |
return "English (Kenya)" | |
case .enNZ: | |
return "English (New Zealand)" | |
case .enNG: | |
return "English (Nigeria)" | |
case .enPK: | |
return "English (Pakistan)" | |
case .enPH: | |
return "English (Philippines)" | |
case .enSG: | |
return "English (Singapore)" | |
case .enZA: | |
return "English (South Africa)" | |
case .enTZ: | |
return "English (Tanzania)" | |
case .enGB: | |
return "English (United Kingdom)" | |
case .enUS: | |
return "English (United States)" | |
case .etEE: | |
return "Estonian (Estonia)" | |
case .filPH: | |
return "Filipino (Philippines)" | |
case .fiFI: | |
return "Finnish (Finland)" | |
case .frBE: | |
return "French (Belgium)" | |
case .frCA: | |
return "French (Canada)" | |
case .frFR: | |
return "French (France)" | |
case .frCH: | |
return "French (Switzerland)" | |
case .glES: | |
return "Galician (Spain)" | |
case .kaGE: | |
return "Georgian (Georgia)" | |
case .deAT: | |
return "German (Austria)" | |
case .deDE: | |
return "German (Germany)" | |
case .deCH: | |
return "German (Switzerland)" | |
case .elGR: | |
return "Greek (Greece)" | |
case .guIN: | |
return "Gujarati (India)" | |
case .iwIL: | |
return "Hebrew (Israel)" | |
case .hiIN: | |
return "Hindi (India)" | |
case .huHU: | |
return "Hungarian (Hungary)" | |
case .isIS: | |
return "Icelandic (Iceland)" | |
case .idID: | |
return "Indonesian (Indonesia)" | |
case .itIT: | |
return "Italian (Italy)" | |
case .itCH: | |
return "Italian (Switzerland)" | |
case .jaJP: | |
return "Japanese (Japan)" | |
case .jvID: | |
return "Javanese (Indonesia)" | |
case .knIN: | |
return "Kannada (India)" | |
case .kmKH: | |
return "Khmer (Cambodia)" | |
case .koKR: | |
return "Korean (South Korea)" | |
case .loLA: | |
return "Lao (Laos)" | |
case .lvLV: | |
return "Latvian (Latvia)" | |
case .ltLT: | |
return "Lithuanian (Lithuania)" | |
case .mkMK: | |
return "Macedonian (North Macedonia)" | |
case .msMY: | |
return "Malay (Malaysia)" | |
case .mlIN: | |
return "Malayalam (India)" | |
case .mrIN: | |
return "Marathi (India)" | |
case .mnMN: | |
return "Mongolian (Mongolia)" | |
case .neNP: | |
return "Nepali (Nepal)" | |
case .noNO: | |
return "Norwegian Bokmål (Norway)" | |
case .faIR: | |
return "Persian (Iran)" | |
case .plPL: | |
return "Polish (Poland)" | |
case .ptBR: | |
return "Portuguese (Brazil)" | |
case .ptPT: | |
return "Portuguese (Portugal)" | |
case .paGuruIN: | |
return "Punjabi (Gurmukhi India)" | |
case .roRO: | |
return "Romanian (Romania)" | |
case .ruRU: | |
return "Russian (Russia)" | |
case .srRS: | |
return "Serbian (Serbia)" | |
case .siLK: | |
return "Sinhala (Sri Lanka)" | |
case .skSK: | |
return "Slovak (Slovakia)" | |
case .slSI: | |
return "Slovenian (Slovenia)" | |
case .esAR: | |
return "Spanish (Argentina)" | |
case .esBO: | |
return "Spanish (Bolivia)" | |
case .esCL: | |
return "Spanish (Chile)" | |
case .esCO: | |
return "Spanish (Colombia)" | |
case .esCR: | |
return "Spanish (Costa Rica)" | |
case .esDO: | |
return "Spanish (Dominican Republic)" | |
case .esEC: | |
return "Spanish (Ecuador)" | |
case .esSV: | |
return "Spanish (El Salvador)" | |
case .esGT: | |
return "Spanish (Guatemala)" | |
case .esHN: | |
return "Spanish (Honduras)" | |
case .esMX: | |
return "Spanish (Mexico)" | |
case .esNI: | |
return "Spanish (Nicaragua)" | |
case .esPA: | |
return "Spanish (Panama)" | |
case .esPY: | |
return "Spanish (Paraguay)" | |
case .esPE: | |
return "Spanish (Peru)" | |
case .esPR: | |
return "Spanish (Puerto Rico)" | |
case .esES: | |
return "Spanish (Spain)" | |
case .esUS: | |
return "Spanish (United States)" | |
case .esUY: | |
return "Spanish (Uruguay)" | |
case .esVE: | |
return "Spanish (Venezuela)" | |
case .suID: | |
return "Sundanese (Indonesia)" | |
case .swKE: | |
return "Swahili (Kenya)" | |
case .swTZ: | |
return "Swahili (Tanzania)" | |
case .svSE: | |
return "Swedish (Sweden)" | |
case .taIN: | |
return "Tamil (India)" | |
case .taMY: | |
return "Tamil (Malaysia)" | |
case .taSG: | |
return "Tamil (Singapore)" | |
case .taLK: | |
return "Tamil (Sri Lanka)" | |
case .teIN: | |
return "Telugu (India)" | |
case .thTH: | |
return "Thai (Thailand)" | |
case .trTR: | |
return "Turkish (Turkey)" | |
case .ukUA: | |
return "Ukrainian (Ukraine)" | |
case .urIN: | |
return "Urdu (India)" | |
case .urPK: | |
return "Urdu (Pakistan)" | |
case .uzUZ: | |
return "Uzbek (Uzbekistan)" | |
case .viVN: | |
return "Vietnamese (Vietnam)" | |
case .zuZA: | |
return "Zulu (South Africa)" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment