summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go')
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go82
1 files changed, 82 insertions, 0 deletions
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go
new file mode 100644
index 000000000..f57ea8175
--- /dev/null
+++ b/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go
@@ -0,0 +1,82 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "os"
+)
+
+func usage() {
+ fmt.Printf(`goi18n formats and merges translation files.
+
+Usage:
+
+ goi18n [options] [files...]
+
+Translation files:
+
+ A translation file contains the strings and translations for a single language.
+
+ Translation file names must have a suffix of a supported format (e.g. .json) and
+ contain a valid language tag as defined by RFC 5646 (e.g. en-us, fr, zh-hant, etc.).
+
+ For each language represented by at least one input translation file, goi18n will produce 2 output files:
+
+ xx-yy.all.format
+ This file contains all strings for the language (translated and untranslated).
+ Use this file when loading strings at runtime.
+
+ xx-yy.untranslated.format
+ This file contains the strings that have not been translated for this language.
+ The translations for the strings in this file will be extracted from the source language.
+ After they are translated, merge them back into xx-yy.all.format using goi18n.
+
+Merging:
+
+ goi18n will merge multiple translation files for the same language.
+ Duplicate translations will be merged into the existing translation.
+ Non-empty fields in the duplicate translation will overwrite those fields in the existing translation.
+ Empty fields in the duplicate translation are ignored.
+
+Adding a new language:
+
+ To produce translation files for a new language, create an empty translation file with the
+ appropriate name and pass it in to goi18n.
+
+Options:
+
+ -sourceLanguage tag
+ goi18n uses the strings from this language to seed the translations for other languages.
+ Default: en-us
+
+ -outdir directory
+ goi18n writes the output translation files to this directory.
+ Default: .
+
+ -format format
+ goi18n encodes the output translation files in this format.
+ Supported formats: json, yaml
+ Default: json
+
+`)
+ os.Exit(1)
+}
+
+func main() {
+ flag.Usage = usage
+ sourceLanguage := flag.String("sourceLanguage", "en-us", "")
+ outdir := flag.String("outdir", ".", "")
+ format := flag.String("format", "json", "")
+ flag.Parse()
+
+ mc := &mergeCommand{
+ translationFiles: flag.Args(),
+ sourceLanguageTag: *sourceLanguage,
+ outdir: *outdir,
+ format: *format,
+ }
+ if err := mc.execute(); err != nil {
+ fmt.Println(err.Error())
+ os.Exit(1)
+ }
+}