88 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ## universal-translator
 | |
| <img align="right" src="https://raw.githubusercontent.com/go-playground/universal-translator/master/logo.png">
 | |
| [](https://coveralls.io/github/go-playground/universal-translator)
 | |
| [](https://goreportcard.com/report/github.com/go-playground/universal-translator)
 | |
| [](https://godoc.org/github.com/go-playground/universal-translator)
 | |
| 
 | |
| 
 | |
| Universal Translator is an i18n Translator for Go/Golang using CLDR data + pluralization rules
 | |
| 
 | |
| Why another i18n library?
 | |
| --------------------------
 | |
| Because none of the plural rules seem to be correct out there, including the previous implementation of this package,
 | |
| so I took it upon myself to create [locales](https://github.com/go-playground/locales) for everyone to use; this package 
 | |
| is a thin wrapper around [locales](https://github.com/go-playground/locales) in order to store and translate text for 
 | |
| use in your applications.
 | |
| 
 | |
| Features
 | |
| --------
 | |
| - [x] Rules generated from the [CLDR](http://cldr.unicode.org/index/downloads) data, v36.0.1
 | |
| - [x] Contains Cardinal, Ordinal and Range Plural Rules
 | |
| - [x] Contains Month, Weekday and Timezone translations built in
 | |
| - [x] Contains Date & Time formatting functions
 | |
| - [x] Contains Number, Currency, Accounting and Percent formatting functions
 | |
| - [x] Supports the "Gregorian" calendar only ( my time isn't unlimited, had to draw the line somewhere )
 | |
| - [x] Support loading translations from files
 | |
| - [x] Exporting translations to file(s), mainly for getting them professionally translated
 | |
| - [ ] Code Generation for translation files -> Go code.. i.e. after it has been professionally translated
 | |
| - [ ] Tests for all languages, I need help with this, please see [here](https://github.com/go-playground/locales/issues/1)
 | |
| 
 | |
| Installation
 | |
| -----------
 | |
| 
 | |
| Use go get 
 | |
| 
 | |
| ```shell
 | |
| go get github.com/go-playground/universal-translator
 | |
| ```
 | |
| 
 | |
| Usage & Documentation
 | |
| -------
 | |
| 
 | |
| Please see https://godoc.org/github.com/go-playground/universal-translator for usage docs
 | |
| 
 | |
| ##### Examples:
 | |
| 
 | |
| - [Basic](https://github.com/go-playground/universal-translator/tree/master/_examples/basic)
 | |
| - [Full - no files](https://github.com/go-playground/universal-translator/tree/master/_examples/full-no-files)
 | |
| - [Full - with files](https://github.com/go-playground/universal-translator/tree/master/_examples/full-with-files)
 | |
| 
 | |
| File formatting
 | |
| --------------
 | |
| All types, Plain substitution, Cardinal, Ordinal and Range translations can all be contained within the same file(s);
 | |
| they are only separated for easy viewing.
 | |
| 
 | |
| ##### Examples:
 | |
| 
 | |
| - [Formats](https://github.com/go-playground/universal-translator/tree/master/_examples/file-formats)
 | |
| 
 | |
| ##### Basic Makeup
 | |
| NOTE: not all fields are needed for all translation types, see [examples](https://github.com/go-playground/universal-translator/tree/master/_examples/file-formats)
 | |
| ```json
 | |
| {
 | |
|     "locale": "en",
 | |
|     "key": "days-left",
 | |
|     "trans": "You have {0} day left.",
 | |
|     "type": "Cardinal",
 | |
|     "rule": "One",
 | |
|     "override": false
 | |
| }
 | |
| ```
 | |
| |Field|Description|
 | |
| |---|---|
 | |
| |locale|The locale for which the translation is for.|
 | |
| |key|The translation key that will be used to store and lookup each translation; normally it is a string or integer.|
 | |
| |trans|The actual translation text.|
 | |
| |type|The type of translation Cardinal, Ordinal, Range or "" for a plain substitution(not required to be defined if plain used)|
 | |
| |rule|The plural rule for which the translation is for eg. One, Two, Few, Many or Other.(not required to be defined if plain used)|
 | |
| |override|If you wish to override an existing translation that has already been registered, set this to 'true'. 99% of the time there is no need to define it.|
 | |
| 
 | |
| Help With Tests
 | |
| ---------------
 | |
| To anyone interesting in helping or contributing, I sure could use some help creating tests for each language.
 | |
| Please see issue [here](https://github.com/go-playground/locales/issues/1) for details.
 | |
| 
 | |
| License
 | |
| ------
 | |
| Distributed under MIT License, please see license file in code for more details.
 |