Следите за новостями GitVerse в нашем телеграм-канале

translate

Форк
0

6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
README.md

Translate

This library is an incredibly simple translation system for Go. It is designed to work well with go.elara.ws/logger, and doesn't have nearly as many features as other solutions, because those features are not needed for all applications, and they increase complexity unnecessarily in use cases that don't need it. All this package does is parses TOML files for translations, and then gets the raw text from the files for whatever language you want to translate to.

If you need advanced functionality, such as handling singular/plural words, gender, etc., use other packages such as golang.org/x/text/message or github.com/nicksnyder/go-i18n.

Translation files

Translation files for this package are incredibly simple. They are just TOML files with sections that look like the following:

[[translation]]
id = 458405366
value = 'First test'
[[translation]]
id = 2703638123
value = 'Second test'

The

value
field contains the string you want to use for the given language, and the
id
field is a crc32 checksum of the string that you will input, most commonly the same as the
value
field of the fallback language. For example, if I wanted to add a Russian translation, I'd do something like this:

[[translation]]
id = 458405366
value = 'Первая проверка'

Notice that the ID does not correspond to the checksum of the actual string. Instead, it corresponds to the English string above, because that's the fallback and that's what I'll be using when calling

Translator.TranslateTo()
. To use this translation, you'd do the following:

tr := translate.New(cat)
out := tr.TranslateTo("First test", language.Russian) // out == "Первая проверка"

The checksum is calculated from

"First test"
.

cmd/translate

The

cmd/translate
package contains a command that helps with creating translation files.

To generate IDs corresponding to the value fields in a file, run the following:

translate gen-id <file>

To test your translations, run:

translate translate <dir> <lang> <string>

For example,

translate translate ./testdata ru "First test"

This should output

Первая проверка
.

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.