Преобразовать английское название дня в японское в blade php

#php #laravel-blade #cjk

#php #laravel-blade #cjk

Вопрос:

Как я могу преобразовать английское название дня в японское в blade php? На данный момент у меня есть этот код для преобразования даты в японский в моем шаблоне blade:

 <h5 class="event-date">{{ date("Y", strtotime($event->event_date)) . '年' . date("m", strtotime($event->event_date)) . '月' . date("d", strtotime($event->event_date)) . '日' . ' (' . date("D", strtotime($event->event_date)) . ')' }}</h5>
  

Это выводит:

  20190321日 (Thu)
  

Это их преобразование из Sun-Sat соответственно:

 "日","月","火","水","木","金","土"
  

Но как я могу перевести его на японский? Кроме того, есть ли у вас какие-либо предложения по сокращению моего форматирования в файле blade?

Ответ №1:

Создать файл перевода в resources/lang/jp/days.php :

 <?php
return [
    'Thu' => '木曜日'
];
  

В вашем файле blade используйте это:

 {{ trans('days.' . date("D", strtotime($event->event_date)), [], 'jp') }}
  

Комментарии:

1. Ошибка : Argument 2 passed to IlluminateTranslationTranslator::trans() must be of the type array, null given,

2. Теперь это работает. Но есть ли у вас какие-либо предложения о том, как сократить форматирование моей даты?

Ответ №2:

Вы можете использовать функцию setlocale, чтобы сделать его похожим на японский:

 setlocale(LC_ALL, 'ja.UTF-8');
  

Комментарии:

1. Куда я могу вставить это в файл blade?

2. Просто добавьте верхнюю часть ваших кодов и используйте только функцию strtotime , она автоматически изменит язык.

Ответ №3:

Возможно, это старая тема, но для тех, кто наткнулся на этот пост в поисках ответа, последние версии Carbon (наиболее вероятно, Carbon из Laravel 5.5 ) допускают использование, Carbon::locale('')->translatedFormat('') где locale указывается, какой язык будет использоваться, пока translatedFormat работает аналогично format функции.

Пример:

 $announcement->created_at->locale('ja_JP')->translatedFormat('M d, Y');
// Output: 10月 23, 2022
  

Вот официальный пример Carbon:
locale(‘uk’);

echo $date->translatedFormat(‘g:i a l jS F Y’); // 3:45 дня п’ятниця 16-го березня 2018
amp;token=live-editor-138″ rel=»nofollow noreferrer»>Попробуйте Carbon

Это также можно найти в их документации под таблицей:https://carbon.nesbot.com/docs/#supported-locales