|
|
- package main
-
- import (
- "fmt"
- "os"
- "strings"
- )
-
- type locale struct {
- language string
- region string
- }
-
- func getLocales() map[locale]struct{} {
-
- supportedLocales := make(map[locale]struct{}, 5)
- supportedLocales[locale{"en", "US"}] = struct{}{}
- supportedLocales[locale{"en", "CN"}] = struct{}{}
- supportedLocales[locale{"fr", "CN"}] = struct{}{}
- supportedLocales[locale{"fr", "FR"}] = struct{}{}
- supportedLocales[locale{"ru", "RU"}] = struct{}{}
- return supportedLocales
-
- }
-
- func localExists(l locale) bool {
-
- _, exists := getLocales()[l]
- return exists
-
- }
-
- func main() {
-
- if len(os.Args) != 2 {
- fmt.Println("No locale passed")
- os.Exit(1)
- }
-
- localeParts := strings.Split(os.Args[1], "_")
- if len(localeParts) != 2 {
- fmt.Printf("Invalid locale passed: %v\n", os.Args[1])
- os.Exit(1)
- }
-
- passedLocale := locale{
- language: localeParts[0],
- region: localeParts[1],
- }
-
- if !localExists(passedLocale) {
- fmt.Printf("Locale not supported: %v\n", os.Args[1])
- os.Exit(1)
- }
- fmt.Println("Locale passed is supported")
-
- }
|