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  }