code: func NewUI(config Config) (*UI, error) {
  	translateFunc, err := GetTranslationFunc(config)
  	if err != nil {
  		return nil, err
  	}
  
  	location := time.Now().Location()
  
  	return &UI{
  		In:               os.Stdin,
  		Out:              color.Output,
  		OutForInteration: os.Stdout,
  		Err:              os.Stderr,
  		colorEnabled:     config.ColorEnabled(),
  		translate:        translateFunc,
  		terminalLock:     &sync.Mutex{},
  		Exiter:           realExiter,
  		fileLock:         &sync.Mutex{},
  		Interactor:       realInteract,
  		IsTTY:            config.IsTTY(),
  		TerminalWidth:    config.TerminalWidth(),
  		TimezoneLocation: location,
  	}, nil
  }
docs: // NewUI will return a UI object where Out is set to STDOUT, In is set to
  // STDIN, and Err is set to STDERR