# Internationalization (i18n) и Localization (l10n) в Go | Max Wiki Site
Информация взята отсюда Альтернативный пакет (https://github.com/nicksnyder/go-i18n). Internationalization (i18n) Localization (l10n) Internationalization (i18n) Для форматирования вывода информации в национальном формате (например, чисел) используются следующие пакеты: golang.org/x/text/language golang.org/x/text/message По-умолчанию, они не установлены. Необходимо их скачать: go get -u golang.org/x/text/language go get -u golang.org/x/text/message Для вывода информации на основании языка используется тип message.Printer. Используется он следующий образом: package main import ( "fmt" [cut: 730 characters, first 591 kept]

# Internationalization (i18n) и Localization (l10n) в Go

Информация взята отсюда

Альтернативный пакет (https://github.com/nicksnyder/go-i18n)
.

## Internationalization (i18n)

Для форматирования вывода информации в национальном формате (например, чисел) используются следующие пакеты:

- golang.org/x/text/language
- golang.org/x/text/message

По-умолчанию, они не установлены. Необходимо их скачать:

    go get -u golang.org/x/text/language
    go get -u golang.org/x/text/message

Для вывода информации на основании языка используется тип `message.Printer`. Используется он следующий образом:

    package main

    import (
        "fmt"

        "golang.org/x/text/language"
        "golang.org/x/text/message"
    )

    func main() {
        p = message.NewPrinter(language.Russian)
        p.Printf("Вы получили %.2f монет.\n", 16521.56)
    }

## Localization (l10n)

Для локализации используются те же пакеты. Чтобы выводить сообщение в зависимости от языка необходимо задать шаблоны используя метод message.SetString().

Пример кода:

    package main

    import (
        "fmt"

        "golang.org/x/text/language"
        "golang.org/x/text/message"
    )

    func init() {
        message.SetString(language.Russian, "You've got %.2f coins.", "Вы получили %.2f монет.")
        message.SetString(language.English, "You've got %.2f coins.", "You've got %.2f coins.")
    }

    func main() {
        p := message.NewPrinter(language.English)
        p.Printf("You've got %.2f coins.", 16521.56)
        fmt.Println()

        p = message.NewPrinter(language.Russian)
        p.Printf("You've got %.2f coins.", 16521.56)
        fmt.Println()
    }