Пакет-географ: готов к работе

    Работа над созданием началась ещё в мае, в июле была неплохая рабочая версия, и вот в декабре у нас:

    • Полное соответствие кодов ISO ISO-3166-1 и ISO-3166-2
    • Возможность выбора системы деления – ISO, FIPS или GeoNames
    • Полное покрытие стран и областей мира русскими переводами
    • Логичная изоляция данных от кода, открываем дорогу SDK на других языках
    • Официальный сайт с документацией на русском языке

    Наша цель очень простая – стать стандартной open-source библиотекой географических данных (административных делений и названий). На сегодня ничего подобного нет, каждому разработчику приходится изобретать велосипед заново.

    Если вкратце, то основной плюс от использования библиотеки Географ, это возможность делать что-то вроде:

    use MenaraSolutions\Geographer\State;
    $voronezh = State::build('RU-VOR');
    echo "За окном {$voronezh->getName('ru')}\n";
    echo "Иван живет {$voronezh->inflict('in')->getName()}\n";
    echo "Лена вернулась {$voronezh->inflict('from')->getName()}\n";
    // За окном Воронежская область
    // Иван живет в Воронежской области
    // Лена вернулась из Воронежской области
    

    Если вы считаете, что это очень просто, то знайте, что даже гиганты вроде Facebook и VK до сих пор делают это с ошибками! :)

    • В шаблонах не надо думать о правильном предлоге («в», «во», «на» и так далее)
    • Не надо засорять базу данных и код вторичным для продукта содержимым
    • База данных постоянно правится силами open-source программистов (бесплатно!)

    Отделение данных от кода


    Важным отличием текущей версии стало разделение репозиториев – данные JSON теперь хранятся как отдельный пакет, что позволяет использовать содержимое в других языках программирования. Кроме того, исправления, скажем, на русском языке будут скачиваться только теми, кому действительно нужен русский язык (установлен пакет с русским языком в composer.json).

    Возможность выбора стандарта


    По умолчанию Географ использует систему ISO 3166 для деления по странам и областям. ISO – единственный активно поддерживаемый стандарт на сегодня, поэтому мы рекомендуем использовать его. Тем не менее, стандарт можно выбрать:

    $country->setStandard(DefaultManager::STANDARD_ISO); // ISO
    $country->setStandard(DefaultManager::STANDARD_FIPS); // FIPS 10-4
    $country->setStandard(DefaultManager::STANDARD_GEONAMES); // GeoNames
    

    Участие приветствуется


    Приглашаем к участию разработчиков! Географ – перспективный и полезный пакет. Среди приоритетов SDK для Node.js и Ruby, а также доведение переводов городов на русском до 100%.

    Комментарии, критика и любые другие виды обратной связи также горячо приветствуются.
    Метки:
    • +24
    • 4,8k
    • 6
    Поделиться публикацией
    Похожие публикации
    Комментарии 6
    • 0
      Сайт чего-то лежит, или хабр-эффект поймали.
      • 0
        Хмм, у меня открывается!

        Сайт хостится на AWS S3, это просто набор статических HTML (Gatsby) — там нечему падать особо :)
      • +1
        А есть в пакете такое:
        Андрей — москвич
        Борис — вологжанин

        Павел — из %кривой рог%
        • 0
          Нет, сейчас нет. Если будут многочисленные запросы — добавим :) Отмечу, что большинство таких слов непереводимо — такие названия как правило есть только внутри страны на родном языке.
        • 0

          Как обстоят дела с непризнанными или частично признанными государствами?
          https://ru.wikipedia.org/wiki/Непризнанные_и_частично_признанные_государства

          • +1
            Я ждал этого вопроса :) Так как уже есть поддержка разных стандартов, планируется просто добавить еще один — что-то вроде «дефакто» деления. Так как официальных кодов в этом случае не будет, придется скорее всего какие-то свои уникальные идентификаторы использовать

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.