// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// DO NOT EDIT THIS FILE. GENERATED BY go generate.
// Edit the documentation in other files and rerun go generate to generate this one.

// gotext is a tool for managing text in Go source code.
//
// Usage:
//
// 	gotext command [arguments]
//
// The commands are:
//
// 	extract     extract strings to be translated from code
// 	rewrite     rewrite rewrites fmt functions to use a message Printer
//
// Use "go help [command]" for more information about a command.
//
// Additional help topics:
//
//
// Use "gotext help [topic]" for more information about that topic.
//
//
// Extract strings to be translated from code
//
// Usage:
//
// 	go extract <package>*
//
//
//
//
// Rewrite rewrites fmt functions to use a message Printer
//
// Usage:
//
// 	go rewrite <package>*
//
// rewrite is typically done once for a project. It rewrites all usages of
// fmt to use x/text's message package whenever a message.Printer is in scope.
// It rewrites Print and Println calls with constant strings to the equivalent
// using Printf to allow translators to reorder arguments.
//
//
package main
