У меня есть этот скрипт:
setLocale(LC_TIME,'fr_FR','fra');
strftime("%d %B %Y);
и вот результат: 10 august 2015
,
Однако мне нужен выход на французском языке. Какие-либо предложения?
Ваш код должен работать. Вы можете сделать это таким образом, если setlocale не работает на вашем сервере, и вы не можете это исправить:
<?php
$mos = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
$index = date("n")-1;
$mo = $mos[$index];
echo date("d ") . $mo . date(" Y");
?>
Результат:
10 октября 2015 г.
Ранее я использовал setlocale()
а также strftime()
тоже, но он показал себя медленным и сложным (особенно из-за побочных эффектов, вы захотите сохранить и восстановить предыдущую локаль впоследствии).
Я закончил с тупым поиском и заменой. Вы можете принять это за вдохновение:
class MyCarbon extends Carbon\Carbon
{
public function fr($format)
{
$replacements = [
'Monday' => 'lundi',
'Tuesday' => 'mardi',
'Wednesday' => 'mercredi',
'Thursday' => 'jeudi',
'Friday' => 'vendredi',
'Saturday' => 'samedi',
'Sunday' => 'dimanche',
'January' => 'janvier',
'February' => 'février',
'March' => 'mars',
'April' => 'avril',
'May' => 'mai',
'June' => 'juin',
'July' => 'juillet',
'August' => 'août',
'September' => 'septembre',
'October' => 'octobre',
'November' => 'novembre',
'December' => 'décembre',
];
$from = array_keys($replacements);
$to = array_values($replacements);
return str_replace($from, $to, $this->format($format));
}
}
Для мета-тега Tittle:
$month = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
$monthindex = date("n")-1;
$month = $month[$monthindex];
$current_date = ucwords(strftime("$month %Y"));