go mod tidy + gofmt
This commit is contained in:
parent
e559ec9214
commit
9c2eaa6b99
14 changed files with 500 additions and 512 deletions
|
@ -2,8 +2,8 @@ package cmd
|
|||
|
||||
import (
|
||||
"codeberg.org/aryak/simplytranslate/utils"
|
||||
"github.com/spf13/cobra"
|
||||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var file string
|
||||
|
|
|
@ -2,8 +2,8 @@ package cmd
|
|||
|
||||
import (
|
||||
"codeberg.org/aryak/simplytranslate/utils"
|
||||
"github.com/spf13/cobra"
|
||||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var engine string
|
||||
|
@ -51,21 +51,9 @@ var translateCmd = &cobra.Command{
|
|||
}
|
||||
} 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("},")
|
||||
}
|
||||
fmt.Println(utils.LangListYandex(langlist))
|
||||
} 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("},")
|
||||
}
|
||||
fmt.Println(utils.LangListYandex(langlist))
|
||||
} else {
|
||||
fmt.Println(utils.TranslateYandex(dest, source, query))
|
||||
}
|
||||
|
|
4
go.mod
4
go.mod
|
@ -3,9 +3,11 @@ module codeberg.org/aryak/simplytranslate
|
|||
go 1.20
|
||||
|
||||
require (
|
||||
github.com/carlmjohnson/requests v0.23.4
|
||||
github.com/gocolly/colly v1.2.0
|
||||
github.com/gofiber/fiber/v2 v2.47.0
|
||||
github.com/gofiber/template v1.8.0
|
||||
github.com/google/go-querystring v1.1.0
|
||||
github.com/joho/godotenv v1.5.1
|
||||
github.com/otiai10/gosseract/v2 v2.4.0
|
||||
github.com/spf13/cobra v1.7.0
|
||||
|
@ -19,12 +21,10 @@ require (
|
|||
github.com/antchfx/htmlquery v1.3.0 // indirect
|
||||
github.com/antchfx/xmlquery v1.3.17 // indirect
|
||||
github.com/antchfx/xpath v1.2.4 // indirect
|
||||
github.com/carlmjohnson/requests v0.23.4 // indirect
|
||||
github.com/gobwas/glob v0.2.3 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/google/go-cmp v0.5.9 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/kennygrant/sanitize v1.2.4 // indirect
|
||||
|
|
16
go.sum
16
go.sum
|
@ -62,14 +62,11 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
|
|||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
|
||||
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
||||
github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c=
|
||||
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
|
||||
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
|
||||
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
|
||||
github.com/antchfx/htmlquery v1.3.0 h1:5I5yNFOVI+egyia5F2s/5Do2nFWxJz41Tr3DyfKD25E=
|
||||
github.com/antchfx/htmlquery v1.3.0/go.mod h1:zKPDVTMhfOmcwxheXUsx4rKJy8KEY/PU6eXr/2SebQ8=
|
||||
github.com/antchfx/xmlquery v1.3.15 h1:aJConNMi1sMha5G8YJoAIF5P+H+qG1L73bSItWHo8Tw=
|
||||
github.com/antchfx/xmlquery v1.3.15/go.mod h1:zMDv5tIGjOxY/JCNNinnle7V/EwthZ5IT8eeCGJKRWA=
|
||||
github.com/antchfx/xmlquery v1.3.17 h1:d0qWjPp/D+vtRw7ivCwT5ApH/3CkQU8JOeo3245PpTk=
|
||||
github.com/antchfx/xmlquery v1.3.17/go.mod h1:Afkq4JIeXut75taLSuI31ISJ/zeq+3jG7TunF7noreA=
|
||||
github.com/antchfx/xpath v1.2.3/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs=
|
||||
|
@ -149,7 +146,6 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA
|
|||
github.com/gocolly/colly v1.2.0 h1:qRz9YAn8FIH0qzgNUw+HT9UN7wm1oF9OBAilwEWpyrI=
|
||||
github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA=
|
||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/gofiber/fiber/v2 v2.43.0 h1:yit3E4kHf178B60p5CQBa/3v+WVuziWMa/G2ZNyLJB0=
|
||||
github.com/gofiber/fiber/v2 v2.43.0/go.mod h1:mpS1ZNE5jU+u+BA4FbM+KKnUzJ4wzTK+FT2tG3tU+6I=
|
||||
github.com/gofiber/fiber/v2 v2.47.0 h1:EN5lHVCc+Pyqh5OEsk8fzRiifgwpbrP0rulQ4iNf3fs=
|
||||
github.com/gofiber/fiber/v2 v2.47.0/go.mod h1:mbFMVN1lQuzziTkkakgtKKdjfsXSw9BKR5lmcNksUoU=
|
||||
|
@ -272,7 +268,6 @@ github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47
|
|||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
|
||||
|
@ -288,7 +283,6 @@ github.com/kennygrant/sanitize v1.2.4 h1:gN25/otpP5vAsO2djbMhF/LQX6R7+O1TB4yv8Nz
|
|||
github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
|
||||
github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
|
||||
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
|
@ -317,8 +311,6 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
|
|||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
|
||||
github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
|
||||
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
|
||||
|
@ -396,8 +388,6 @@ github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY52
|
|||
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||
github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4=
|
||||
github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA=
|
||||
github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
|
||||
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
|
||||
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
|
||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||
|
@ -434,7 +424,6 @@ github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkC
|
|||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||
github.com/valyala/fasthttp v1.45.0 h1:zPkkzpIn8tdHZUrVa6PzYd0i5verqiPSkgTd3bSUcpA=
|
||||
github.com/valyala/fasthttp v1.45.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA=
|
||||
github.com/valyala/fasthttp v1.48.0 h1:oJWvHb9BIZToTQS3MuQ2R3bJZiNSa2KiNdeI8A+79Tc=
|
||||
github.com/valyala/fasthttp v1.48.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA=
|
||||
|
@ -563,7 +552,6 @@ golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
|||
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=
|
||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
||||
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
|
||||
|
@ -670,7 +658,6 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
|
||||
|
@ -694,7 +681,6 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|||
golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
|
||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
|
||||
|
@ -909,8 +895,6 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
|
|||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
|
|
|
@ -21,7 +21,6 @@ func HandleSourceLanguages(c *fiber.Ctx) error {
|
|||
data = utils.LangListDeepl("sl")
|
||||
} else if engine == "watson" {
|
||||
data = utils.LangListWatson("sl")
|
||||
}
|
||||
} else if engine == "yandex" {
|
||||
data = utils.LangListYandex("sl")
|
||||
}
|
||||
|
@ -43,7 +42,6 @@ func HandleTargetLanguages(c *fiber.Ctx) error {
|
|||
data = utils.LangListDeepl("tl")
|
||||
} else if engine == "watson" {
|
||||
data = utils.LangListWatson("tl")
|
||||
}
|
||||
} else if engine == "yandex" {
|
||||
data = utils.LangListYandex("tl")
|
||||
}
|
||||
|
@ -52,7 +50,7 @@ func HandleTargetLanguages(c *fiber.Ctx) error {
|
|||
func HandleTTS(c *fiber.Ctx) error {
|
||||
engine := c.Query("engine")
|
||||
lang := c.Query("lang")
|
||||
text := c.Query("text")
|
||||
text := c.Query("text")
|
||||
// Why does go not have an andor statement :(
|
||||
if engine == "" {
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
|
@ -67,6 +65,6 @@ func HandleTTS(c *fiber.Ctx) error {
|
|||
} else if engine == "reverso" {
|
||||
data = utils.TTSReverso(lang, text)
|
||||
}
|
||||
c.Set("Content-Type", "audio/mpeg")
|
||||
c.Set("Content-Type", "audio/mpeg")
|
||||
return c.Send([]byte(data))
|
||||
}
|
||||
|
|
|
@ -1,20 +1,27 @@
|
|||
package pages
|
||||
|
||||
import (
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"codeberg.org/aryak/simplytranslate/utils"
|
||||
"fmt"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func HandleIndex(c *fiber.Ctx) error {
|
||||
// Check if all required queries are present
|
||||
m := c.Queries()
|
||||
sl, _ := m["sl"]
|
||||
tl, _ := m["tl"]
|
||||
engine, _ := m["engine"]
|
||||
text, _ := m["text"]
|
||||
if sl != "" && tl != "" && engine != "" && text != "" {
|
||||
fmt.Println("Work")
|
||||
}
|
||||
|
||||
return c.Render("index", fiber.Map{
|
||||
"host": c.Hostname(),
|
||||
"branch": utils.Branch,
|
||||
"version": utils.Version(),
|
||||
"fiberversion": fiber.Version,
|
||||
"goversion": runtime.Version(),
|
||||
"setupstatus": os.Getenv("SIMPLYTRANSLATE_SETUP_COMPLETE"),
|
||||
})
|
||||
}
|
||||
|
|
|
@ -47,8 +47,8 @@ func Serve(port string) {
|
|||
}
|
||||
link := strings.TrimPrefix(err.Error(), "Cannot GET ")
|
||||
err = ctx.Status(code).Render("error", fiber.Map{
|
||||
"error": err,
|
||||
"link": link,
|
||||
"error": err,
|
||||
"link": link,
|
||||
})
|
||||
if err != nil {
|
||||
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
||||
|
|
|
@ -17,14 +17,14 @@ func TranslateGoogle(to string, from string, text string) string {
|
|||
answer = e.Text
|
||||
})
|
||||
type Options struct {
|
||||
To string `url:"tl"`
|
||||
UI string `url:"hl"`
|
||||
From string `url:"sl"`
|
||||
Text string `url:"q"`
|
||||
To string `url:"tl"`
|
||||
UI string `url:"hl"`
|
||||
From string `url:"sl"`
|
||||
Text string `url:"q"`
|
||||
}
|
||||
opt := Options{ to, to, from, text }
|
||||
opt := Options{to, to, from, text}
|
||||
v, _ := query.Values(opt)
|
||||
url := "https://translate.google.com/m?"+v.Encode()
|
||||
url := "https://translate.google.com/m?" + v.Encode()
|
||||
sc.Visit(url)
|
||||
return answer
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ func TranslateReverso(to string, from string, query string) string {
|
|||
return answer
|
||||
}
|
||||
func TranslateLibreTranslate(to string, from string, query string) string {
|
||||
json := []byte(`{"q":"`+query+`","source":"`+from+`","target":"`+to+`"}`)
|
||||
json := []byte(`{"q":"` + query + `","source":"` + from + `","target":"` + to + `"}`)
|
||||
// TODO: Make it configurable
|
||||
libreTranslateOut := PostRequest("https://translate.argosopentech.com/translate", json)
|
||||
gjsonArr := libreTranslateOut.Get("translatedText").Array()
|
||||
|
@ -44,24 +44,24 @@ func TranslateLibreTranslate(to string, from string, query string) string {
|
|||
return answer
|
||||
}
|
||||
func TranslateWatson(to string, from string, query string) string {
|
||||
json := []byte(`{"text":"`+query+`","source":"`+from+`","target":"`+to+`"}`)
|
||||
watsonOut:= PostRequest("https://www.ibm.com/demos/live/watson-language-translator/api/translate/text", json)
|
||||
json := []byte(`{"text":"` + query + `","source":"` + from + `","target":"` + to + `"}`)
|
||||
watsonOut := PostRequest("https://www.ibm.com/demos/live/watson-language-translator/api/translate/text", json)
|
||||
gjsonArr := watsonOut.Get("payload.translations.0.translation").Array()
|
||||
answer := gjsonArr[0].String()
|
||||
return answer
|
||||
}
|
||||
func TranslateYandex(to string, from string, text string) string {
|
||||
type Options struct {
|
||||
Translate string `url:"lang"`
|
||||
Text string `url:"text"`
|
||||
Srv string `url:"srv"`
|
||||
Id string `url:"id"`
|
||||
Reason string `url:"reason"`
|
||||
Translate string `url:"lang"`
|
||||
Text string `url:"text"`
|
||||
Srv string `url:"srv"`
|
||||
Id string `url:"id"`
|
||||
Reason string `url:"reason"`
|
||||
}
|
||||
opt := Options{ from+"-"+to, text, "tr-mobile", "c2317111.64bac36a.ab16ef22.74722d6d6f62696c65-0-0", "submit"}
|
||||
opt := Options{from + "-" + to, text, "tr-mobile", "c2317111.64bac36a.ab16ef22.74722d6d6f62696c65-0-0", "submit"}
|
||||
v, _ := query.Values(opt)
|
||||
|
||||
yandexOut := GetRequest("https://translate.yandex.net/api/v1/tr.json/translate?"+v.Encode())
|
||||
yandexOut := GetRequest("https://translate.yandex.net/api/v1/tr.json/translate?" + v.Encode())
|
||||
gjsonArr := yandexOut.Get("text.0").Array()
|
||||
answer := gjsonArr[0].String()
|
||||
return answer
|
||||
|
|
|
@ -130,4 +130,3 @@ func LangListDeepl(listType string) []List {
|
|||
}
|
||||
return ListData
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ type List struct {
|
|||
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{
|
||||
|
|
|
@ -2,414 +2,414 @@ 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",
|
||||
},
|
||||
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
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ package utils
|
|||
// Name string
|
||||
// Id string
|
||||
//}
|
||||
//// To get new language lists for google yandex and libertranslate.
|
||||
//// To get new language lists for google yandex and libertranslate.
|
||||
//func LangListGoogle(listType string) []List {
|
||||
// UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT")
|
||||
// if !ok {
|
||||
|
@ -42,7 +42,7 @@ package utils
|
|||
// 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" {
|
||||
|
|
78
utils/tts.go
78
utils/tts.go
|
@ -1,29 +1,29 @@
|
|||
package utils
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/base64"
|
||||
"github.com/carlmjohnson/requests"
|
||||
"github.com/google/go-querystring/query"
|
||||
"os"
|
||||
"context"
|
||||
"encoding/base64"
|
||||
)
|
||||
|
||||
type ReversoTTS struct {
|
||||
Id string
|
||||
Id string
|
||||
Voice string
|
||||
}
|
||||
|
||||
func TTSGoogle(lang string, text string) string {
|
||||
type Options struct {
|
||||
Lang string `url:"tl"`
|
||||
Text string `url:"q"`
|
||||
Client string `url:"client"`
|
||||
Lang string `url:"tl"`
|
||||
Text string `url:"q"`
|
||||
Client string `url:"client"`
|
||||
}
|
||||
opt := Options{ lang, text, "tw-ob" }
|
||||
opt := Options{lang, text, "tw-ob"}
|
||||
v, _ := query.Values(opt)
|
||||
|
||||
var file string
|
||||
url := "https://translate.google.com/translate_tts?"+v.Encode()
|
||||
url := "https://translate.google.com/translate_tts?" + v.Encode()
|
||||
err := requests.
|
||||
URL(url).
|
||||
ToString(&file).
|
||||
|
@ -37,105 +37,105 @@ func TTSReverso(lang string, text string) string {
|
|||
var TTSData = []ReversoTTS{
|
||||
// http://voice.reverso.net/RestPronunciation.svc/v1/output=json/GetAvailableVoices with randomized deduplication
|
||||
ReversoTTS{
|
||||
Id: "ar",
|
||||
Id: "ar",
|
||||
Voice: "Mehdi22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "zh",
|
||||
Id: "zh",
|
||||
Voice: "Lulu22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "cz",
|
||||
Id: "cz",
|
||||
Voice: "Eliska22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "dk",
|
||||
Id: "dk",
|
||||
Voice: "Mette22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "nl",
|
||||
Id: "nl",
|
||||
Voice: "Daan22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "en",
|
||||
Id: "en",
|
||||
Voice: "Will22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "fr",
|
||||
Id: "fr",
|
||||
Voice: "Margaux22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "de",
|
||||
Id: "de",
|
||||
Voice: "Andreas22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "gr",
|
||||
Id: "gr",
|
||||
Voice: "Dimitris22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "heb",
|
||||
Id: "heb",
|
||||
Voice: "he-IL-Asaf",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "it",
|
||||
Id: "it",
|
||||
Voice: "Chiara22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "jp",
|
||||
Id: "jp",
|
||||
Voice: "Sakura22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "kr",
|
||||
Id: "kr",
|
||||
Voice: "Minji22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "pl",
|
||||
Id: "pl",
|
||||
Voice: "Monika22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "pt",
|
||||
Id: "pt",
|
||||
Voice: "Celia22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "ro",
|
||||
Id: "ro",
|
||||
Voice: "ro-RO-Andrei",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "ru",
|
||||
Id: "ru",
|
||||
Voice: "Alyona22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "es",
|
||||
Id: "es",
|
||||
Voice: "Antonio22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "se",
|
||||
Id: "se",
|
||||
Voice: "Erik22k",
|
||||
},
|
||||
ReversoTTS{
|
||||
Id: "tr",
|
||||
Id: "tr",
|
||||
Voice: "Ipek22k",
|
||||
},
|
||||
}
|
||||
// https://voice.reverso.net/RestPronunciation.svc/v1/output=json/GetVoiceStream/voiceName=Lulu22k?voiceSpeed=80&inputText=6K%20V6aqM Base64 input text
|
||||
text2 := base64.StdEncoding.EncodeToString([]byte(text))
|
||||
var voice string
|
||||
for _, s := range TTSData {
|
||||
if s.Id == lang {
|
||||
voice = s.Voice
|
||||
break
|
||||
}
|
||||
}
|
||||
var voice string
|
||||
for _, s := range TTSData {
|
||||
if s.Id == lang {
|
||||
voice = s.Voice
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
type Options struct {
|
||||
VoiceSpeed int `url:"voiceSpeed"`
|
||||
Text string `url:"inputText"`
|
||||
VoiceSpeed int `url:"voiceSpeed"`
|
||||
Text string `url:"inputText"`
|
||||
}
|
||||
opt := Options{ 80, text2 }
|
||||
opt := Options{80, text2}
|
||||
v, _ := query.Values(opt)
|
||||
|
||||
var file string
|
||||
url := "https://voice.reverso.net/RestPronunciation.svc/v1/output=json/GetVoiceStream/voiceName="+voice+"?"+v.Encode()
|
||||
url := "https://voice.reverso.net/RestPronunciation.svc/v1/output=json/GetVoiceStream/voiceName=" + voice + "?" + v.Encode()
|
||||
|
||||
UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT")
|
||||
if !ok {
|
||||
|
|
|
@ -2,6 +2,19 @@
|
|||
|
||||
<main>
|
||||
<h2>SimplyTranslate</h2>
|
||||
<h3>Translate</h3>
|
||||
|
||||
<form action="/" method="get">
|
||||
<label for="textin">Text To Translate:</label>
|
||||
<textarea id="textin" name="textin" rows="4" cols="50"></textarea>
|
||||
<input type="checkbox" name="vehicle1" value="Bike">
|
||||
<label for="vehicle1"> I have a bike</label><br>
|
||||
<input type="checkbox" name="vehicle2" value="Car">
|
||||
<label for="vehicle2"> I have a car</label><br>
|
||||
<input type="checkbox" name="vehicle3" value="Boat" checked>
|
||||
<label for="vehicle3"> I have a boat</label><br><br>
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
<h3>Info</h3>
|
||||
{{ if eq .version "unknown, please build with Go 1.13+ or use Git"}} SimplyTranslate
|
||||
version: <code>unknown</code> {{ else }} SimplyTranslate version:
|
||||
|
|
Loading…
Reference in a new issue