Skip to content

Latest commit

 

History

History
98 lines (71 loc) · 3.66 KB

README.md

File metadata and controls

98 lines (71 loc) · 3.66 KB

go-l10n — Localization for humans

english русский

быстрая и простая локализация ваших проектов на Go!

этот пакет базируется на пакете go-l10n от iafan.

Getting Started

as simple as another packages:

go get github.com/xelaj/go-l10n

how to use

примеры кода находятся здесь

главная структура, которую вы будете использовать, это l10n.Pool. На вход она принимает путь до директории с локализацией, имя вашего приложения и основной язык, на который вы будете переводить сообщения.

сообщения берутся из директории, которую вы укажете при инициализации. однако, она должна иметь определенную структуру:

locale
    en_US
        YourApp
            locale.json
            another folder
                locale.json
                third.json
        info.cfg
    ru_RU
        YourApp
            locale.json
            another folder
                locale.json
                third.json
        info.cfg
    ua_UA
        ...
    es_ES
        ...

info.cfg это краткая информация о локали. она записывается в объект l10n.Locale. она хранит в себе следующие параметры:

# name of language on english with ascii symbols only
name=Russian

# localized name of language
translate=Русский

# which language it extends. if you have unsupported locale name, package returns key name
extends=

все три параметра являются опциональными. однако, сам файл в каждой папке с данным названием обязателен.

YourApp по сути реализует неймспейсы различных приложений.

внутри директории вашего приложения вы можете делать абсолютно любую структуру ваших файлов, важно лишь, что бы названия сообщений во всех этих файлах не пересекались. если это произойдет, то будет выбран перевод ближайший к корневой директории

каждый файл локали является json файлом следующими параметрами:

{
    "about":{
        "message":"this is locale file!",
        "description":"use this description to describe message"
    },
    "hello text":{
        "message":"hello!"
    }
}

примеры структуры файлов можете посмотреть здесь

Contributing

пожалуйста, прочитайте информацию о помощи, если хотите помочь. А помощь очень нужна!

Authors

  • Igor Afanasyev - базовая библиотека - iafan
  • Richard Cooperother stuff - ololosha228

License

This project is licensed under the MIT License - see the LICENSE.md file for details