Названия месяцев на выбранном языке

Тема в разделе "OpenCart", создана пользователем Master2KAZ, 1 окт 2018.

  1. Master2KAZ

    Master2KAZ

    Регистрация:
    25 окт 2014
    Сообщения:
    183
    Симпатии:
    72
    Приветствую!
    Есть мультиязычный сайт на ОкСторе 2.3.
    Как вывести дату с названием месяца на выбранном языке?

    Есть ли какая-то стандартная функция, без использования массивов?
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    strftime может форматировать в соответствии с текущей локалью. Надо только локаль предварительно объявить (через setlocale).
     
  3. Master2KAZ

    Master2KAZ

    Регистрация:
    25 окт 2014
    Сообщения:
    183
    Симпатии:
    72
    Колдовал я колдовал, но у меня так ничего и не получилось.
    Пытался через getLanguageByCode подгружать данные текущего языка, оттуда вытащил locale, но так и не получилось вывести.
    Локаль вроде устанавливается, но strftime так нормально и не обрабатывал.
     
  4. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    bro, у меня часто бывают запросы на аналогичный функционал, но кроме как создания своего массива и подключения, в зависимости от текущего $this->config->get('config_language_id') и соотв. подключением своего массивчеГа, то оптимального решения мало где видел, если актуально - подброшу наработки, что бы велик не изобретать, хотя в сети есть куча примеров кода.
     
  5. Master2KAZ

    Master2KAZ

    Регистрация:
    25 окт 2014
    Сообщения:
    183
    Симпатии:
    72
    Да с массивом у меня самого есть. Просто заказчик из Чехии. Сайт будет на трех или 4-х языках, так что либо делать многомерный массив для каждого языка - либо устанавливать универсальное решение. Можно было б использовать intl, но пока неизвестно на каком хосте будет сайт.
     
  6. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    448
    Симпатии:
    119
    в опенкарте только через локализацию

    пихаете в en-gb/en-gb.php

    таким образом будете всегда иметь известный вам массив
    Ну, а по требованию, добавлять в языковые локали

    можно конечно и не массивом :(
    $_['text_month_1'] = '';
    $_['text_month_2'] = '';
    или..
    $_['text0_month_01'] = '';
    $_['text0_month_02'] = '';

    если юзать setlocale

    то посмотрите что вернет
    setlocale(LC_ALL, 0);
    проанлизируйте ваши языковые локали, попадают ли они в этот формат
     
    Baco нравится это.