github.com/liquid-dev/text@v0.3.3-liquid/cmd/gotext/extract.go (about) 1 // Copyright 2016 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main 6 7 import ( 8 "github.com/liquid-dev/text/message/pipeline" 9 ) 10 11 // TODO: 12 // - merge information into existing files 13 // - handle different file formats (PO, XLIFF) 14 // - handle features (gender, plural) 15 // - message rewriting 16 17 func init() { 18 lang = cmdExtract.Flag.String("lang", "en-US", "comma-separated list of languages to process") 19 } 20 21 var cmdExtract = &Command{ 22 Run: runExtract, 23 UsageLine: "extract <package>*", 24 Short: "extracts strings to be translated from code", 25 } 26 27 func runExtract(cmd *Command, config *pipeline.Config, args []string) error { 28 config.Packages = args 29 state, err := pipeline.Extract(config) 30 if err != nil { 31 return wrap(err, "extract failed") 32 } 33 if err := state.Import(); err != nil { 34 return wrap(err, "import failed") 35 } 36 if err := state.Merge(); err != nil { 37 return wrap(err, "merge failed") 38 } 39 return wrap(state.Export(), "export failed") 40 }