diff --git a/README.md b/README.md index 504825c..ac8b0b7 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,16 @@ Google Translate TUI go get && go build ``` +## Language in argument + +You can pass `-src` and `-dst` in argument to set source and destination language. + +``` +gtt -src "English" -dst "Chinese (Traditional)" +``` + +See language on [Google Language support](https://cloud.google.com/translate/docs/languages) + ## Key Map `` diff --git a/config.go b/config.go index 9316a23..b0fba39 100644 --- a/config.go +++ b/config.go @@ -1,9 +1,15 @@ package main import ( + "flag" "os" ) +var ( + srcLangArg *string = flag.String("src", "", "Source Language") + dstLangArg *string = flag.String("dst", "", "Destination Language") +) + // Search XDG_CONFIG_HOME or $HOME/.config func configInit() { var defaultConfigPath string @@ -33,8 +39,17 @@ func configInit() { } // setup - translator.SrcLang = config.GetString("source.language") - translator.DstLang = config.GetString("destination.language") + flag.Parse() + if len(*srcLangArg) > 0 { + translator.SrcLang = *srcLangArg + } else { + translator.SrcLang = config.GetString("source.language") + } + if len(*dstLangArg) > 0 { + translator.DstLang = *dstLangArg + } else { + translator.DstLang = config.GetString("destination.language") + } style.Theme = config.GetString("theme") style.Transparent = config.GetBool("transparent") style.SetSrcBorderColor(config.GetString("source.borderColor")). @@ -45,6 +60,18 @@ func configInit() { func updateConfig() { changed := false + // Source language is not passed in argument + if len(*srcLangArg) == 0 && + config.GetString("source.language") != translator.SrcLang { + changed = true + config.Set("source.language", translator.SrcLang) + } + // Destination language is not passed in argument + if len(*dstLangArg) == 0 && + config.GetString("destination.language") != translator.DstLang { + changed = true + config.Set("destination.language", translator.DstLang) + } if config.GetString("theme") != style.Theme { changed = true config.Set("theme", style.Theme) @@ -53,18 +80,10 @@ func updateConfig() { changed = true config.Set("transparent", style.Transparent) } - if config.GetString("source.language") != translator.SrcLang { - changed = true - config.Set("source.language", translator.SrcLang) - } if config.GetString("source.borderColor") != style.SrcBorderStr() { changed = true config.Set("source.borderColor", style.SrcBorderStr()) } - if config.GetString("destination.language") != translator.DstLang { - changed = true - config.Set("destination.language", translator.DstLang) - } if config.GetString("destination.borderColor") != style.DstBorderStr() { changed = true config.Set("destination.borderColor", style.DstBorderStr())