From 2179e682d45ff2a6e2075caa1d69aaa99115124f Mon Sep 17 00:00:00 2001 From: Arya Kiran Date: Sat, 22 Jul 2023 19:50:21 +0530 Subject: [PATCH] separate langlists to different files --- cmd/translate.go | 20 ++ utils/langlist-deepl.go | 133 +++++++++ utils/langlist-google.go | 547 ++++++++++++++++++++++++++++++++++++++ utils/langlist-libre.go | 82 ++++++ utils/langlist-reverso.go | 118 ++++++++ utils/langlist-watson.go | 232 ++++++++++++++++ utils/langlist-yandex.go | 415 +++++++++++++++++++++++++++++ utils/langlist.go | 526 ------------------------------------ utils/retrieve.go | 87 ++++++ 9 files changed, 1634 insertions(+), 526 deletions(-) create mode 100644 utils/langlist-deepl.go create mode 100644 utils/langlist-google.go create mode 100644 utils/langlist-libre.go create mode 100644 utils/langlist-reverso.go create mode 100644 utils/langlist-watson.go create mode 100644 utils/langlist-yandex.go delete mode 100644 utils/langlist.go create mode 100644 utils/retrieve.go diff --git a/cmd/translate.go b/cmd/translate.go index 2f29d41..78f550f 100644 --- a/cmd/translate.go +++ b/cmd/translate.go @@ -49,6 +49,26 @@ var translateCmd = &cobra.Command{ } else { fmt.Println(utils.TranslateWatson(dest, source, query)) } + } else if engine == "yandex" { + if langlist == "sl" { + langList := utils.LangListYandex(langlist) + for _, num := range langList { + fmt.Println("List{") + fmt.Println(`Id: "`+num.Id+`",`) + fmt.Println(`Name: "`+num.Name+`",`) + fmt.Println("},") + } + } else if langlist == "tl" { + langList := utils.LangListYandex(langlist) + for _, num := range langList { + fmt.Println("List{") + fmt.Println(`Id: "`+num.Id+`",`) + fmt.Println(`Name: "`+num.Name+`",`) + fmt.Println("},") + } + } else { + fmt.Println(utils.TranslateYandex(dest, source, query)) + } } else if engine == "all" { fmt.Println(utils.TranslateAll(dest, source, query)) } else { diff --git a/utils/langlist-deepl.go b/utils/langlist-deepl.go new file mode 100644 index 0000000..31fb7d8 --- /dev/null +++ b/utils/langlist-deepl.go @@ -0,0 +1,133 @@ +package utils + +func LangListDeepl(listType string) []List { + // IDs got from deepl.com/translator + // Every time you change language, the # will get updated with the lang code. + var ListData = []List{ + List{ + Id: "bg", + Name: "Bulgarian", + }, + List{ + Id: "zh", + Name: "Chinese (Simplified)", + }, + List{ + Id: "cs", + Name: "Czech", + }, + List{ + Id: "da", + Name: "Danish", + }, + List{ + Id: "nl", + Name: "Dutch", + }, + List{ + Id: "en", + Name: "English", + }, + List{ + Id: "et", + Name: "Estonian", + }, + List{ + Id: "fi", + Name: "Finnish", + }, + List{ + Id: "fr", + Name: "French", + }, + List{ + Id: "de", + Name: "Germany", + }, + List{ + Id: "el", + Name: "Greek", + }, + List{ + Id: "hu", + Name: "Hungarian", + }, + List{ + Id: "id", + Name: "Indonesian", + }, + List{ + Id: "it", + Name: "Italian", + }, + List{ + Id: "ja", + Name: "Japanese", + }, + List{ + Id: "ko", + Name: "Korean", + }, + List{ + Id: "lv", + Name: "Latvian", + }, + List{ + Id: "lt", + Name: "Lithuanian", + }, + List{ + Id: "nb", + Name: "Norwegian", + }, + List{ + Id: "pl", + Name: "Polish", + }, + List{ + Id: "pt", + Name: "Portugese", + }, + List{ + Id: "ro", + Name: "Romanian", + }, + List{ + Id: "ru", + Name: "Russian", + }, + List{ + Id: "sk", + Name: "Slovak", + }, + List{ + Id: "sl", + Name: "Slovenian", + }, + List{ + Id: "es", + Name: "Spanish", + }, + List{ + Id: "sv", + Name: "Swedish", + }, + List{ + Id: "tr", + Name: "Turkish", + }, + List{ + Id: "uk", + Name: "Ukrainian", + }, + } + if listType == "sl" { + auto := List{ + Id: "auto", + Name: "Detect Language", + } + ListData = append(ListData, auto) + } + return ListData +} + diff --git a/utils/langlist-google.go b/utils/langlist-google.go new file mode 100644 index 0000000..74d7dc3 --- /dev/null +++ b/utils/langlist-google.go @@ -0,0 +1,547 @@ +package utils + +func LangListGoogle(listType string) []List { + // IDs got from original simplytranslate-web and trial and error. Usually first three letters of language. + var ListData = []List{ + List{ + Id: "af", + Name: "Afrikaans", + }, + List{ + Id: "sq", + Name: "Albanian", + }, + List{ + Id: "am", + Name: "Amharic", + }, + List{ + Id: "ar", + Name: "Arabic", + }, + List{ + Id: "hy", + Name: "Armenian", + }, + List{ + Id: "as", + Name: "Assamese", + }, + List{ + Id: "ay", + Name: "Aymara", + }, + List{ + Id: "az", + Name: "Azerbaijani", + }, + List{ + Id: "bm", + Name: "Bambara", + }, + List{ + Id: "eu", + Name: "Basque", + }, + List{ + Id: "be", + Name: "Belarusian", + }, + List{ + Id: "bn", + Name: "Bengali", + }, + List{ + Id: "bho", + Name: "Bhojpuri", + }, + List{ + Id: "bs", + Name: "Bosnian", + }, + List{ + Id: "bg", + Name: "Bulgarian", + }, + List{ + Id: "ca", + Name: "Catalan", + }, + List{ + Id: "ceb", + Name: "Cebuano", + }, + List{ + Id: "ny", + Name: "Chichewa", + }, + List{ + Id: "zh", + Name: "Chinese (Simplified)", + }, + List{ + Id: "zh-TW", + Name: "Chinese (Traditional)", + }, + List{ + Id: "co", + Name: "Corsican", + }, + List{ + Id: "hr", + Name: "Croatian", + }, + List{ + Id: "cs", + Name: "Czech", + }, + List{ + Id: "da", + Name: "Danish", + }, + List{ + Id: "dv", + Name: "Dhivehi", + }, + List{ + Id: "doi", + Name: "Dogri", + }, + List{ + Id: "nl", + Name: "Dutch", + }, + List{ + Id: "en", + Name: "English", + }, + List{ + Id: "eo", + Name: "Esperanto", + }, + List{ + Id: "et", + Name: "Estonian", + }, + List{ + Id: "ee", + Name: "Ewe", + }, + List{ + Id: "tl", + Name: "Filipino", + }, + List{ + Id: "fi", + Name: "Finnish", + }, + List{ + Id: "fr", + Name: "French", + }, + List{ + Id: "fy", + Name: "Frisian", + }, + List{ + Id: "gl", + Name: "Galician", + }, + List{ + Id: "ka", + Name: "Georgian", + }, + List{ + Id: "de", + Name: "German", + }, + List{ + Id: "el", + Name: "Greek", + }, + List{ + Id: "gn", + Name: "Guarani", + }, + List{ + Id: "gu", + Name: "Gujarati", + }, + List{ + Id: "ht", + Name: "Haitian Creole", + }, + List{ + Id: "ha", + Name: "Hausa", + }, + List{ + Id: "haw", + Name: "Hawaiian", + }, + List{ + Id: "iw", + Name: "Hebrew", + }, + List{ + Id: "hi", + Name: "Hindi", + }, + List{ + Id: "hmn", + Name: "Hmong", + }, + List{ + Id: "hu", + Name: "Hungarian", + }, + List{ + Id: "is", + Name: "Icelandic", + }, + List{ + Id: "ig", + Name: "Igbo", + }, + List{ + Id: "ilo", + Name: "Ilocano", + }, + List{ + Id: "id", + Name: "Indonesian", + }, + List{ + Id: "ga", + Name: "Irish", + }, + List{ + Id: "it", + Name: "Italian", + }, + List{ + Id: "ja", + Name: "Japanese", + }, + List{ + Id: "jw", + Name: "Javanese", + }, + List{ + Id: "kn", + Name: "Kannada", + }, + List{ + Id: "kk", + Name: "Kazakh", + }, + List{ + Id: "km", + Name: "Khmer", + }, + List{ + Id: "rw", + Name: "Kinyarwanda", + }, + List{ + Id: "gom", + Name: "Konkani", + }, + List{ + Id: "ko", + Name: "Korean", + }, + List{ + Id: "kri", + Name: "Krio", + }, + List{ + Id: "ku", + Name: "Kurdish (Kurmanji)", + }, + List{ + Id: "ckb", + Name: "Kurdish (Sorani)", + }, + List{ + Id: "ky", + Name: "Kyrgyz", + }, + List{ + Id: "lo", + Name: "Lao", + }, + List{ + Id: "la", + Name: "Latin", + }, + List{ + Id: "lv", + Name: "Latvian", + }, + List{ + Id: "ln", + Name: "Lingala", + }, + List{ + Id: "lt", + Name: "Lithuanian", + }, + List{ + Id: "lg", + Name: "Luganda", + }, + List{ + Id: "lb", + Name: "Luxembourgish", + }, + List{ + Id: "mk", + Name: "Macedonian", + }, + List{ + Id: "mai", + Name: "Maithili", + }, + List{ + Id: "mg", + Name: "Malagasy", + }, + List{ + Id: "ms", + Name: "Malay", + }, + List{ + Id: "ml", + Name: "Malayalam", + }, + List{ + Id: "mt", + Name: "Maltese", + }, + List{ + Id: "mi", + Name: "Maori", + }, + List{ + Id: "mr", + Name: "Marathi", + }, + List{ + Id: "mni-Mtei", + Name: "Meiteilon (Manipuri)", + }, + List{ + Id: "lus", + Name: "Mizo", + }, + List{ + Id: "mn", + Name: "Mongolian", + }, + List{ + Id: "my", + Name: "Myanmar (Burmese)", + }, + List{ + Id: "ne", + Name: "Nepali", + }, + List{ + Id: "no", + Name: "Norwegian", + }, + List{ + Id: "or", + Name: "Odia (Oriya)", + }, + List{ + Id: "om", + Name: "Oromo", + }, + List{ + Id: "ps", + Name: "Pashto", + }, + List{ + Id: "fa", + Name: "Persian", + }, + List{ + Id: "pl", + Name: "Polish", + }, + List{ + Id: "pt", + Name: "Portuguese", + }, + List{ + Id: "pa", + Name: "Punjabi", + }, + List{ + Id: "qu", + Name: "Quechua", + }, + List{ + Id: "ro", + Name: "Romanian", + }, + List{ + Id: "ru", + Name: "Russian", + }, + List{ + Id: "sm", + Name: "Samoan", + }, + List{ + Id: "sa", + Name: "Sanskrit", + }, + List{ + Id: "gd", + Name: "Scots Gaelic", + }, + List{ + Id: "nso", + Name: "Sepedi", + }, + List{ + Id: "sr", + Name: "Serbian", + }, + List{ + Id: "st", + Name: "Sesotho", + }, + List{ + Id: "sn", + Name: "Shona", + }, + List{ + Id: "sd", + Name: "Sindhi", + }, + List{ + Id: "si", + Name: "Sinhala", + }, + List{ + Id: "sk", + Name: "Slovak", + }, + List{ + Id: "sl", + Name: "Slovenian", + }, + List{ + Id: "so", + Name: "Somali", + }, + List{ + Id: "es", + Name: "Spanish", + }, + List{ + Id: "su", + Name: "Sundanese", + }, + List{ + Id: "sw", + Name: "Swahili", + }, + List{ + Id: "sv", + Name: "Swedish", + }, + List{ + Id: "tg", + Name: "Tajik", + }, + List{ + Id: "ta", + Name: "Tamil", + }, + List{ + Id: "tt", + Name: "Tatar", + }, + List{ + Id: "te", + Name: "Telugu", + }, + List{ + Id: "th", + Name: "Thai", + }, + List{ + Id: "ti", + Name: "Tigrinya", + }, + List{ + Id: "ts", + Name: "Tsonga", + }, + List{ + Id: "tr", + Name: "Turkish", + }, + List{ + Id: "tk", + Name: "Turkmen", + }, + List{ + Id: "ak", + Name: "Twi", + }, + List{ + Id: "uk", + Name: "Ukrainian", + }, + List{ + Id: "ur", + Name: "Urdu", + }, + List{ + Id: "ug", + Name: "Uyghur", + }, + List{ + Id: "uz", + Name: "Uzbek", + }, + List{ + Id: "vi", + Name: "Vietnamese", + }, + List{ + Id: "cy", + Name: "Welsh", + }, + List{ + Id: "xh", + Name: "Xhosa", + }, + List{ + Id: "yi", + Name: "Yiddish", + }, + List{ + Id: "yo", + Name: "Yoruba", + }, + List{ + Id: "zu", + Name: "Zulu", + }, + } + if listType == "sl" { + auto := List{ + Id: "auto", + Name: "Detect Language", + } + ListData = append(ListData, auto) + } + return ListData +} diff --git a/utils/langlist-libre.go b/utils/langlist-libre.go new file mode 100644 index 0000000..8b7167a --- /dev/null +++ b/utils/langlist-libre.go @@ -0,0 +1,82 @@ +package utils + +func LangListLibreTranslate(listType string) []List { + var ListData = []List{ + List{ + Id: "en", + Name: "English", + }, + List{ + Id: "ar", + Name: "Arabic", + }, + List{ + Id: "zh", + Name: "Chinese", + }, + List{ + Id: "fr", + Name: "French", + }, + List{ + Id: "de", + Name: "German", + }, + List{ + Id: "hi", + Name: "Hindi", + }, + List{ + Id: "id", + Name: "Indonesian", + }, + List{ + Id: "ga", + Name: "Irish", + }, + List{ + Id: "it", + Name: "Italian", + }, + List{ + Id: "ja", + Name: "Japanese", + }, + List{ + Id: "ko", + Name: "Korean", + }, + List{ + Id: "pl", + Name: "Polish", + }, + List{ + Id: "pt", + Name: "Portuguese", + }, + List{ + Id: "ru", + Name: "Russian", + }, + List{ + Id: "es", + Name: "Spanish", + }, + List{ + Id: "tr", + Name: "Turkish", + }, + List{ + Id: "vi", + Name: "Vietnamese", + }, + } + if listType == "sl" { + auto := List{ + Id: "auto", + Name: "Detect Language", + } + ListData = append(ListData, auto) + } + return ListData +} diff --git a/utils/langlist-reverso.go b/utils/langlist-reverso.go new file mode 100644 index 0000000..866699e --- /dev/null +++ b/utils/langlist-reverso.go @@ -0,0 +1,118 @@ +package utils + +type List struct { + Name string + Id string +} + + +func LangListReverso(listType string) []List { + // IDs got from original simplytranslate-web and trial and error. Usually first three letters of language. + var ListData = []List{ + List{ + Id: "ar", + Name: "Arabic", + }, + List{ + Id: "zh", + Name: "Chinese (Simplified)", + }, + List{ + Id: "cs", + Name: "Czech", + }, + List{ + Id: "da", + Name: "Danish", + }, + List{ + Id: "nl", + Name: "Dutch", + }, + List{ + Id: "en", + Name: "English", + }, + List{ + Id: "fr", + Name: "French", + }, + List{ + Id: "de", + Name: "German", + }, + List{ + Id: "el", + Name: "Greek", + }, + List{ + Id: "he", + Name: "Hebrew", + }, + List{ + Id: "hi", + Name: "Hindi", + }, + List{ + Id: "hu", + Name: "Hungarian", + }, + List{ + Id: "it", + Name: "Italian", + }, + List{ + Id: "ja", + Name: "Japanese", + }, + List{ + Id: "ko", + Name: "Korean", + }, + List{ + Id: "per", + Name: "Persian", + }, + List{ + Id: "pl", + Name: "Polish", + }, + List{ + Id: "pt", + Name: "Portugese", + }, + List{ + Id: "ro", + Name: "Romanian", + }, + List{ + Id: "ru", + Name: "Russian", + }, + List{ + Id: "sk", + Name: "Slovak", + }, + List{ + Id: "es", + Name: "Spanish", + }, + List{ + Id: "sv", + Name: "Swedish", + }, + List{ + Id: "th", + Name: "Thai", + }, + List{ + Id: "tr", + Name: "Turkish", + }, + List{ + Id: "uk", + Name: "Ukrainian", + }, + } + return ListData +} diff --git a/utils/langlist-watson.go b/utils/langlist-watson.go new file mode 100644 index 0000000..e346f3b --- /dev/null +++ b/utils/langlist-watson.go @@ -0,0 +1,232 @@ +package utils + +func LangListWatson(listType string) []List { + // IDs got from https://www.loc.gov/standards/iso639-2/php/code_list.php and tested to make sure they work. Exceptions fr-CA zh-CN/TW + var ListData = []List{ + List{ + Id: "ar", + Name: "Arabic", + }, + List{ + Id: "ba", + Name: "Basque", + }, + List{ + Id: "bn", + Name: "Bengali", + }, + List{ + Id: "bs", + Name: "Bosnian", + }, + List{ + Id: "bg", + Name: "Bulgarian", + }, + List{ + Id: "ca", + Name: "Catalan", + }, + List{ + Id: "zh", + Name: "Chinese (Simplified)", + }, + List{ + Id: "zh-TW", + Name: "Chinese (Traditional)", + }, + List{ + Id: "hr", + Name: "Croatian", + }, + List{ + Id: "cs", + Name: "Czech", + }, + List{ + Id: "da", + Name: "Danish", + }, + List{ + Id: "nl", + Name: "Dutch", + }, + List{ + Id: "et", + Name: "Estonian", + }, + List{ + Id: "fi", + Name: "Finnish", + }, + List{ + Id: "fr", + Name: "French", + }, + List{ + Id: "fr-CA", + Name: "Canadian French", + }, + List{ + Id: "de", + Name: "German", + }, + List{ + Id: "el", + Name: "Greek", + }, + List{ + Id: "gu", + Name: "Gujarati", + }, + List{ + Id: "he", + Name: "Hebrew", + }, + List{ + Id: "hi", + Name: "Hindi", + }, + List{ + Id: "hu", + Name: "Hungarian", + }, + List{ + Id: "id", + Name: "Indonesian", + }, + List{ + Id: "ga", + Name: "Irish", + }, + List{ + Id: "it", + Name: "Italian", + }, + List{ + Id: "ja", + Name: "Japanese", + }, + List{ + Id: "kn", + Name: "Kannada", + }, + List{ + Id: "ko", + Name: "Korean", + }, + List{ + Id: "lv", + Name: "Latvian", + }, + List{ + Id: "lt", + Name: "Lithuanian", + }, + List{ + Id: "ms", + Name: "Malay", + }, + List{ + Id: "ml", + Name: "Malayalam", + }, + List{ + Id: "mt", + Name: "Maltese", + }, + List{ + Id: "mr", + Name: "Marathi", + }, + List{ + Id: "cnr", + Name: "Montenegrin", + }, + List{ + Id: "ne", + Name: "Nepali", + }, + List{ + Id: "nb", + Name: "Norwegian", + }, + List{ + Id: "pl", + Name: "Polish", + }, + List{ + Id: "pt", + Name: "Portugese", + }, + List{ + Id: "pa", + Name: "Punjabi", + }, + List{ + Id: "ro", + Name: "Romanian", + }, + List{ + Id: "ru", + Name: "Russian", + }, + List{ + Id: "sr", + Name: "Serbian", + }, + List{ + Id: "si", + Name: "Sinhalese", + }, + List{ + Id: "sk", + Name: "Slovak", + }, + List{ + Id: "sl", + Name: "Slovenian", + }, + List{ + Id: "es", + Name: "Spanish", + }, + List{ + Id: "sv", + Name: "Swedish", + }, + List{ + Id: "ta", + Name: "Tamil", + }, + List{ + Id: "te", + Name: "Telugu", + }, + List{ + Id: "th", + Name: "Thai", + }, + List{ + Id: "tr", + Name: "Turkish", + }, + List{ + Id: "uk", + Name: "Ukrainian", + }, + List{ + Id: "ur", + Name: "Urdu", + }, + List{ + Id: "vi", + Name: "Vietnamese", + }, + List{ + Id: "cy", + Name: "Welsh", + }, + } + return ListData +} diff --git a/utils/langlist-yandex.go b/utils/langlist-yandex.go new file mode 100644 index 0000000..3a86922 --- /dev/null +++ b/utils/langlist-yandex.go @@ -0,0 +1,415 @@ +package utils + +func LangListYandex(listType string) []List { + var ListData = []List{ +List{ +Id: "af", +Name: "Afrikaans", +}, +List{ +Id: "sq", +Name: "Albanian", +}, +List{ +Id: "am", +Name: "Amharic", +}, +List{ +Id: "ar", +Name: "Arabic", +}, +List{ +Id: "hy", +Name: "Armenian", +}, +List{ +Id: "az", +Name: "Azerbaijani", +}, +List{ +Id: "ba", +Name: "Bashkir", +}, +List{ +Id: "eu", +Name: "Basque", +}, +List{ +Id: "be", +Name: "Belarusian", +}, +List{ +Id: "bn", +Name: "Bengali", +}, +List{ +Id: "bs", +Name: "Bosnian", +}, +List{ +Id: "bg", +Name: "Bulgarian", +}, +List{ +Id: "my", +Name: "Burmese", +}, +List{ +Id: "ca", +Name: "Catalan", +}, +List{ +Id: "ceb", +Name: "Cebuano", +}, +List{ +Id: "zh", +Name: "Chinese", +}, +List{ +Id: "cv", +Name: "Chuvash", +}, +List{ +Id: "hr", +Name: "Croatian", +}, +List{ +Id: "cs", +Name: "Czech", +}, +List{ +Id: "da", +Name: "Danish", +}, +List{ +Id: "nl", +Name: "Dutch", +}, +List{ +Id: "sjn", +Name: "Elvish (Sindarin)", +}, +List{ +Id: "emj", +Name: "Emoji", +}, +List{ +Id: "en", +Name: "English", +}, +List{ +Id: "eo", +Name: "Esperanto", +}, +List{ +Id: "et", +Name: "Estonian", +}, +List{ +Id: "fi", +Name: "Finnish", +}, +List{ +Id: "fr", +Name: "French", +}, +List{ +Id: "gl", +Name: "Galician", +}, +List{ +Id: "ka", +Name: "Georgian", +}, +List{ +Id: "de", +Name: "German", +}, +List{ +Id: "el", +Name: "Greek", +}, +List{ +Id: "gu", +Name: "Gujarati", +}, +List{ +Id: "ht", +Name: "Haitian", +}, +List{ +Id: "he", +Name: "Hebrew", +}, +List{ +Id: "mrj", +Name: "Hill Mari", +}, +List{ +Id: "hi", +Name: "Hindi", +}, +List{ +Id: "hu", +Name: "Hungarian", +}, +List{ +Id: "is", +Name: "Icelandic", +}, +List{ +Id: "id", +Name: "Indonesian", +}, +List{ +Id: "ga", +Name: "Irish", +}, +List{ +Id: "it", +Name: "Italian", +}, +List{ +Id: "ja", +Name: "Japanese", +}, +List{ +Id: "jv", +Name: "Javanese", +}, +List{ +Id: "kn", +Name: "Kannada", +}, +List{ +Id: "kazlat", +Name: "Kazakh (Latin)", +}, +List{ +Id: "kk", +Name: "Kazakh", +}, +List{ +Id: "km", +Name: "Khmer", +}, +List{ +Id: "ko", +Name: "Korean", +}, +List{ +Id: "ky", +Name: "Kyrgyz", +}, +List{ +Id: "lo", +Name: "Lao", +}, +List{ +Id: "la", +Name: "Latin", +}, +List{ +Id: "lv", +Name: "Latvian", +}, +List{ +Id: "lt", +Name: "Lithuanian", +}, +List{ +Id: "lb", +Name: "Luxembourgish", +}, +List{ +Id: "mk", +Name: "Macedonian", +}, +List{ +Id: "mg", +Name: "Malagasy", +}, +List{ +Id: "ms", +Name: "Malay", +}, +List{ +Id: "ml", +Name: "Malayalam", +}, +List{ +Id: "mt", +Name: "Maltese", +}, +List{ +Id: "mi", +Name: "Maori", +}, +List{ +Id: "mr", +Name: "Marathi", +}, +List{ +Id: "mhr", +Name: "Mari", +}, +List{ +Id: "mn", +Name: "Mongolian", +}, +List{ +Id: "ne", +Name: "Nepali", +}, +List{ +Id: "no", +Name: "Norwegian", +}, +List{ +Id: "pap", +Name: "Papiamento", +}, +List{ +Id: "fa", +Name: "Persian", +}, +List{ +Id: "pl", +Name: "Polish", +}, +List{ +Id: "pt-BR", +Name: "Portuguese (Brazilian)", +}, +List{ +Id: "pt", +Name: "Portuguese", +}, +List{ +Id: "pa", +Name: "Punjabi", +}, +List{ +Id: "ro", +Name: "Romanian", +}, +List{ +Id: "ru", +Name: "Russian", +}, +List{ +Id: "gd", +Name: "Scottish Gaelic", +}, +List{ +Id: "sr-Latn", +Name: "Serbian (Latin)", +}, +List{ +Id: "sr", +Name: "Serbian", +}, +List{ +Id: "si", +Name: "Sinhalese", +}, +List{ +Id: "sk", +Name: "Slovak", +}, +List{ +Id: "sl", +Name: "Slovenian", +}, +List{ +Id: "es", +Name: "Spanish", +}, +List{ +Id: "su", +Name: "Sundanese", +}, +List{ +Id: "sw", +Name: "Swahili", +}, +List{ +Id: "sv", +Name: "Swedish", +}, +List{ +Id: "tl", +Name: "Tagalog", +}, +List{ +Id: "tg", +Name: "Tajik", +}, +List{ +Id: "ta", +Name: "Tamil", +}, +List{ +Id: "tt", +Name: "Tatar", +}, +List{ +Id: "te", +Name: "Telugu", +}, +List{ +Id: "th", +Name: "Thai", +}, +List{ +Id: "tr", +Name: "Turkish", +}, +List{ +Id: "udm", +Name: "Udmurt", +}, +List{ +Id: "uk", +Name: "Ukrainian", +}, +List{ +Id: "ur", +Name: "Urdu", +}, +List{ +Id: "uzbcyr", +Name: "Uzbek (Cyrillic)", +}, +List{ +Id: "uz", +Name: "Uzbek", +}, +List{ +Id: "vi", +Name: "Vietnamese", +}, +List{ +Id: "cy", +Name: "Welsh", +}, +List{ +Id: "xh", +Name: "Xhosa", +}, +List{ +Id: "sah", +Name: "Yakut", +}, +List{ +Id: "yi", +Name: "Yiddish", +}, +List{ +Id: "zu", +Name: "Zulu", +}, + } + return ListData +} diff --git a/utils/langlist.go b/utils/langlist.go deleted file mode 100644 index 939df5e..0000000 --- a/utils/langlist.go +++ /dev/null @@ -1,526 +0,0 @@ -package utils - -import ( - "github.com/gocolly/colly" - "os" - "strings" -) - -type List struct { - Name string - Id string -} - -func LangListGoogle(listType string) []List { - UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT") - if !ok { - UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" - } - sc := colly.NewCollector(colly.AllowedDomains("translate.google.com"), colly.UserAgent(UserAgent)) - var ListData []List - sc.OnHTML("div.root-container", func(e *colly.HTMLElement) { - e.ForEach("div.language-item", func(i int, el *colly.HTMLElement) { - var ListInfo List - ListInfo.Name = el.ChildText("a") - if listType == "tl" { - ListInfo.Id = strings.TrimPrefix(strings.TrimSuffix(el.ChildAttr("a", "href"), "&hl=en-US"), "./m?sl=en&tl=") - } else { - ListInfo.Id = strings.TrimPrefix(strings.TrimSuffix(el.ChildAttr("a", "href"), "&tl=en&hl=en-US"), "./m?sl=") - } - ListData = append(ListData, ListInfo) - }) - }) - url := "https://translate.google.com/m?sl=en&tl=en&hl=en-US&mui=" + listType - sc.Visit(url) - return ListData -} -func LangListLibreTranslate(listType string) []List { - // TODO: Make it configurable - libreTranslateOut := PostRequest("https://translate.argosopentech.com/languages", []byte("")) - gjsonArr := libreTranslateOut.Array() - var ListData []List - for _, r := range gjsonArr { - code := r.Get("code").String() - name := r.Get("name").String() - - ListData = append(ListData, List{Id: code, Name: name}) - } - if listType == "sl" { - auto := List{ - Id: "auto", - Name: "Detect Language", - } - ListData = append(ListData, auto) - } - return ListData -} -func LangListWatson(listType string) []List { - // IDs got from https://www.loc.gov/standards/iso639-2/php/code_list.php and tested to make sure they work. Exceptions fr-CA zh-CN/TW - var ListData = []List{ - List{ - Id: "ar", - Name: "Arabic", - }, - List{ - Id: "ba", - Name: "Basque", - }, - List{ - Id: "bn", - Name: "Bengali", - }, - List{ - Id: "bs", - Name: "Bosnian", - }, - List{ - Id: "bg", - Name: "Bulgarian", - }, - List{ - Id: "ca", - Name: "Catalan", - }, - List{ - Id: "zh", - Name: "Chinese (Simplified)", - }, - List{ - Id: "zh-TW", - Name: "Chinese (Traditional)", - }, - List{ - Id: "hr", - Name: "Croatian", - }, - List{ - Id: "cs", - Name: "Czech", - }, - List{ - Id: "da", - Name: "Danish", - }, - List{ - Id: "nl", - Name: "Dutch", - }, - List{ - Id: "et", - Name: "Estonian", - }, - List{ - Id: "fi", - Name: "Finnish", - }, - List{ - Id: "fr", - Name: "French", - }, - List{ - Id: "fr-CA", - Name: "Canadian French", - }, - List{ - Id: "de", - Name: "German", - }, - List{ - Id: "el", - Name: "Greek", - }, - List{ - Id: "gu", - Name: "Gujarati", - }, - List{ - Id: "he", - Name: "Hebrew", - }, - List{ - Id: "hi", - Name: "Hindi", - }, - List{ - Id: "hu", - Name: "Hungarian", - }, - List{ - Id: "id", - Name: "Indonesian", - }, - List{ - Id: "ga", - Name: "Irish", - }, - List{ - Id: "it", - Name: "Italian", - }, - List{ - Id: "ja", - Name: "Japanese", - }, - List{ - Id: "kn", - Name: "Kannada", - }, - List{ - Id: "ko", - Name: "Korean", - }, - List{ - Id: "lv", - Name: "Latvian", - }, - List{ - Id: "lt", - Name: "Lithuanian", - }, - List{ - Id: "ms", - Name: "Malay", - }, - List{ - Id: "ml", - Name: "Malayalam", - }, - List{ - Id: "mt", - Name: "Maltese", - }, - List{ - Id: "mr", - Name: "Marathi", - }, - List{ - Id: "cnr", - Name: "Montenegrin", - }, - List{ - Id: "ne", - Name: "Nepali", - }, - List{ - Id: "nb", - Name: "Norwegian", - }, - List{ - Id: "pl", - Name: "Polish", - }, - List{ - Id: "pt", - Name: "Portugese", - }, - List{ - Id: "pa", - Name: "Punjabi", - }, - List{ - Id: "ro", - Name: "Romanian", - }, - List{ - Id: "ru", - Name: "Russian", - }, - List{ - Id: "sr", - Name: "Serbian", - }, - List{ - Id: "si", - Name: "Sinhalese", - }, - List{ - Id: "sk", - Name: "Slovak", - }, - List{ - Id: "sl", - Name: "Slovenian", - }, - List{ - Id: "es", - Name: "Spanish", - }, - List{ - Id: "sv", - Name: "Swedish", - }, - List{ - Id: "ta", - Name: "Tamil", - }, - List{ - Id: "te", - Name: "Telugu", - }, - List{ - Id: "th", - Name: "Thai", - }, - List{ - Id: "tr", - Name: "Turkish", - }, - List{ - Id: "uk", - Name: "Ukrainian", - }, - List{ - Id: "ur", - Name: "Urdu", - }, - List{ - Id: "vi", - Name: "Vietnamese", - }, - List{ - Id: "cy", - Name: "Welsh", - }, - } - return ListData -} -func LangListReverso(listType string) []List { - // IDs got from original simplytranslate-web and trial and error. Usually first three letters of language. - var ListData = []List{ - List{ - Id: "ar", - Name: "Arabic", - }, - List{ - Id: "zh", - Name: "Chinese (Simplified)", - }, - List{ - Id: "cs", - Name: "Czech", - }, - List{ - Id: "da", - Name: "Danish", - }, - List{ - Id: "nl", - Name: "Dutch", - }, - List{ - Id: "en", - Name: "English", - }, - List{ - Id: "fr", - Name: "French", - }, - List{ - Id: "de", - Name: "German", - }, - List{ - Id: "el", - Name: "Greek", - }, - List{ - Id: "he", - Name: "Hebrew", - }, - List{ - Id: "hi", - Name: "Hindi", - }, - List{ - Id: "hu", - Name: "Hungarian", - }, - List{ - Id: "it", - Name: "Italian", - }, - List{ - Id: "ja", - Name: "Japanese", - }, - List{ - Id: "ko", - Name: "Korean", - }, - List{ - Id: "per", - Name: "Persian", - }, - List{ - Id: "pl", - Name: "Polish", - }, - List{ - Id: "pt", - Name: "Portugese", - }, - List{ - Id: "ro", - Name: "Romanian", - }, - List{ - Id: "ru", - Name: "Russian", - }, - List{ - Id: "sk", - Name: "Slovak", - }, - List{ - Id: "es", - Name: "Spanish", - }, - List{ - Id: "sv", - Name: "Swedish", - }, - List{ - Id: "th", - Name: "Thai", - }, - List{ - Id: "tr", - Name: "Turkish", - }, - List{ - Id: "uk", - Name: "Ukrainian", - }, - } - return ListData -} -func LangListDeepl(listType string) []List { - // IDs got from deepl.com/translator - // Every time you change language, the # will get updated with the lang code. - var ListData = []List{ - List{ - Id: "bg", - Name: "Bulgarian", - }, - List{ - Id: "zh", - Name: "Chinese", - }, - List{ - Id: "cs", - Name: "Czech", - }, - List{ - Id: "da", - Name: "Danish", - }, - List{ - Id: "nl", - Name: "Dutch", - }, - List{ - Id: "en", - Name: "English", - }, - List{ - Id: "et", - Name: "Estonian", - }, - List{ - Id: "fi", - Name: "Finnish", - }, - List{ - Id: "fr", - Name: "French", - }, - List{ - Id: "de", - Name: "Germany", - }, - List{ - Id: "el", - Name: "Greek", - }, - List{ - Id: "hu", - Name: "Hungarian", - }, - List{ - Id: "id", - Name: "Indonesian", - }, - List{ - Id: "it", - Name: "Italian", - }, - List{ - Id: "ja", - Name: "Japanese", - }, - List{ - Id: "ko", - Name: "Korean", - }, - List{ - Id: "lv", - Name: "Latvian", - }, - List{ - Id: "lt", - Name: "Lithuanian", - }, - List{ - Id: "nb", - Name: "Norwegian", - }, - List{ - Id: "pl", - Name: "Polish", - }, - List{ - Id: "pt", - Name: "Portugese", - }, - List{ - Id: "ro", - Name: "Romanian", - }, - List{ - Id: "ru", - Name: "Russian", - }, - List{ - Id: "sk", - Name: "Slovak", - }, - List{ - Id: "sl", - Name: "Slovenian", - }, - List{ - Id: "es", - Name: "Spanish", - }, - List{ - Id: "sv", - Name: "Swedish", - }, - List{ - Id: "tr", - Name: "Turkish", - }, - List{ - Id: "uk", - Name: "Ukrainian", - }, - } - if listType == "sl" { - auto := List{ - Id: "auto", - Name: "Detect Language", - } - ListData = append(ListData, auto) - } - return ListData -} diff --git a/utils/retrieve.go b/utils/retrieve.go new file mode 100644 index 0000000..9bd259a --- /dev/null +++ b/utils/retrieve.go @@ -0,0 +1,87 @@ +package utils + +//import ( +// "github.com/gocolly/colly" +// "os" +// "strings" +//) +// +//type List struct { +// Name string +// Id string +//} +//// To get new language lists for google yandex and libertranslate. +//func LangListGoogle(listType string) []List { +// UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT") +// if !ok { +// UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" +// } +// sc := colly.NewCollector(colly.AllowedDomains("translate.google.com"), colly.UserAgent(UserAgent)) +// var ListData []List +// sc.OnHTML("div.root-container", func(e *colly.HTMLElement) { +// e.ForEach("div.language-item", func(i int, el *colly.HTMLElement) { +// var ListInfo List +// ListInfo.Name = el.ChildText("a") +// if listType == "tl" { +// ListInfo.Id = strings.TrimPrefix(strings.TrimSuffix(el.ChildAttr("a", "href"), "&hl=en-US"), "./m?sl=en&tl=") +// } else { +// ListInfo.Id = strings.TrimPrefix(strings.TrimSuffix(el.ChildAttr("a", "href"), "&tl=en&hl=en-US"), "./m?sl=") +// } +// ListData = append(ListData, ListInfo) +// }) +// }) +// url := "https://translate.google.com/m?sl=en&tl=en&hl=en-US&mui=" + listType +// sc.Visit(url) +// return ListData +//} +//func LangListLibreTranslate(listType string) []List { +// // TODO: Make it configurable +// libreTranslateOut := PostRequest("https://translate.argosopentech.com/languages", []byte("")) +// gjsonArr := libreTranslateOut.Array() +// var ListData []List +// for _, r := range gjsonArr { +// code := r.Get("code").String() +// name := r.Get("name").String() +// +// ListData = append(ListData, List{Id: code, Name: name}) +// } +// if listType == "sl" { +// auto := List{ +// Id: "auto", +// Name: "Detect Language", +// } +// ListData = append(ListData, auto) +// } +// return ListData +//} +//func LangListYandex(listType string) []List { +// UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT") +// if !ok { +// UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" +// } +// sc := colly.NewCollector(colly.AllowedDomains("localhost:8000"), colly.UserAgent(UserAgent)) +// var ListData []List +// sc.OnHTML("table.langs", func(e *colly.HTMLElement) { +// if listType == "sl" { +// e.ForEach("select[name='from'] option", func(i int, el *colly.HTMLElement) { +// var ListInfo List +// ListInfo.Name = el.Text +// ListInfo.Id = el.Attr("value") +// ListData = append(ListData, ListInfo) +// }) +// } else { +// e.ForEach("select[name='to'] option", func(i int, el *colly.HTMLElement) { +// var ListInfo List +// ListInfo.Name = el.Text +// ListInfo.Id = el.Attr("value") +// ListData = append(ListData, ListInfo) +// }) +// +// } +// }) +// // Static version of translate.yandex.net nojs/mobile version +// url := "http://localhost:8000/index.html" +// sc.Visit(url) +// return ListData +//} +//