mirror of
				https://github.com/42wim/matterbridge.git
				synced 2025-10-31 13:57:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			824 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			824 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package language
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| )
 | |
| 
 | |
| // Plural represents a language pluralization form as defined here:
 | |
| // http://cldr.unicode.org/index/cldr-spec/plural-rules
 | |
| type Plural string
 | |
| 
 | |
| // All defined plural categories.
 | |
| const (
 | |
| 	Invalid Plural = "invalid"
 | |
| 	Zero           = "zero"
 | |
| 	One            = "one"
 | |
| 	Two            = "two"
 | |
| 	Few            = "few"
 | |
| 	Many           = "many"
 | |
| 	Other          = "other"
 | |
| )
 | |
| 
 | |
| // NewPlural returns src as a Plural
 | |
| // or Invalid and a non-nil error if src is not a valid Plural.
 | |
| func NewPlural(src string) (Plural, error) {
 | |
| 	switch src {
 | |
| 	case "zero":
 | |
| 		return Zero, nil
 | |
| 	case "one":
 | |
| 		return One, nil
 | |
| 	case "two":
 | |
| 		return Two, nil
 | |
| 	case "few":
 | |
| 		return Few, nil
 | |
| 	case "many":
 | |
| 		return Many, nil
 | |
| 	case "other":
 | |
| 		return Other, nil
 | |
| 	}
 | |
| 	return Invalid, fmt.Errorf("invalid plural category %s", src)
 | |
| }
 | 
