OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / johngb / langreg / langreg.go
diff --git a/vendor/github.com/johngb/langreg/langreg.go b/vendor/github.com/johngb/langreg/langreg.go
new file mode 100644 (file)
index 0000000..eb768be
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright 2014 John G. Beckett. All rights reserved.
+// Use of this source code is governed by the MIT
+// license that can be found in the LICENSE file.
+
+// Package langreg is a library for validating ISO 639-1 language
+// and ISO 1366-1_alpa-2 region codes.
+//
+// ISO 639-1 language codes are two charcters long and use only lowercase ASCII
+// character a-z. E.g.:
+//
+//     "en", "es", "ru"
+//
+// ISO 1366-1_alpa-2 region codes are two charcters long and use only uppercase
+// ASCII character A-Z. E.g.:
+//
+//     "US", "UK", "ZA"
+//
+// When combined as a composite language and region code, they are concatented
+// with an underscore. E.g.:
+//
+//     "en_US", "en_ZA", "fr_FR"
+//
+// Any codes not meeting these formatting requirement will fail validation.
+package langreg
+
+// IsValidLangRegCode returns true if the string s is a valid ISO 639-1 language
+// and ISO1366-1_alpa-2 region code separated by an underscore.  E.g. "en_US".
+func IsValidLangRegCode(s string) bool {
+
+       // all valid codes are 5 characters long
+       if len(s) != 5 {
+               return false
+       }
+
+       // the middle (third) character must be a '_' char
+       if s[2] != '_' {
+               return false
+       }
+
+       // check the language code, which should be the first two characters in s
+       if !IsValidLanguageCode(s[:2]) {
+               return false
+       }
+
+       // check the region code, which should be the last two characters in s
+       if !IsValidRegionCode(s[3:]) {
+               return false
+       }
+       return true
+}