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 for everyone to use; this package
is a thin wrapper around locales in order to store and translate text for
use in your applications.
Features
Installation
Use go get
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:
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:
Basic Makeup
NOTE: not all fields are needed for all translation types, see examples
{
"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 for details.
License
Distributed under MIT License, please see license file in code for more details.