code: func Tr(lang, format string, args ...interface{}) string {
  	var section string
  
  	idx := strings.IndexByte(format, '.')
  	if idx > 0 {
  		section = format[:idx]
  		format = format[idx+1:]
  	}
  
  	value, ok := locales.Get(lang, section, format)
  	if ok {
  		format = value
  	}
  
  	if len(args) > 0 {
  		params := make([]interface{}, 0, len(args))
  		for _, arg := range args {
  			if arg == nil {
  				continue
  			}
  
  			val := reflect.ValueOf(arg)
  			if val.Kind() == reflect.Slice {
  				for i := 0; i < val.Len(); i++ {
  					params = append(params, val.Index(i).Interface())
  				}
  			} else {
  				params = append(params, arg)
  			}
  		}
  		return fmt.Sprintf(format, params...)
  	}
  	return format
  }
docs: // Tr translates content to target language.