curl — оператор переключателя PHP и значения ключа массива

Я пытаюсь создать небольшой прогноз погоды на многоязычном веб-сайте. Я использую PHP curl, и API на английском языке.

У меня проблемы с переводом дней недели.

$atts = shortcode_atts(array(
'language' => ''
), $atts );

/**
* Get translated string for given key
*/
function get_translated_text( $key='' ){$language = $atts['language'];  // de, fr, it

switch ( $language ) {

case 'fr':
$arr = array(
'Sun'   => 'Dim',
'Mon'   => 'Lun',
'Tue'   => 'Mar',
'Wed'   => 'Mer',
'Thu'   => 'Jeu',
'Fri'   => 'Ven',
'Sat'   => 'Sam',
'Today' => 'Auj',
);
break;

case 'de':
$arr = array(
'Sun'   => 'So',
'Mon'   => 'Mo',
'Tue'   => 'Di',
'Wed'   => 'Mi',
'Thu'   => 'Do',
'Fri'   => 'Fr',
'Sat'   => 'Sa',
'Today' => 'Heute',
);
break;

default :
$arr = array(
'Sun'   => 'Dom',
'Mon'   => 'Lun',
'Tue'   => 'Mar',
'Wed'   => 'Mer',
'Thu'   => 'Gio',
'Fri'   => 'Ven',
'Sat'   => 'Sab',
'Today' => 'Oggi',
);
break;

}

$output = '';

if ( ! empty( $key ) && isset( $arr[ $key ] ) ) {
$output = $arr[ $key ];
}

return $output;

}

Вот что я использую для получения дня недели:

<div class="day">
<?php
$dw = date("D", strtotime($day['date']));
echo get_translated_text( $dw );
?>
</div>

Таким образом, get_translated_text () всегда возвращает значение по умолчанию оператора switch (итальянский).

Как мы можем настроить вышеупомянутую функцию, чтобы она возвращала значения ключей на основе значения $ language?

Надеюсь, я правильно объяснила! Любой вклад будет очень ценится.

0

Решение

Спасибо вам за все ваши комментарии.

Как уже упоминалось в комментариях, проблема была с переменной $ atts.

Обновленная функция:

/*
**  Shortcode Arguments
*/
$atts = shortcode_atts(array(
'language' => ''
), $atts );/**
* Get translated string for given key
*/
function get_translated_text( $key='' , $lang ){switch ( $lang ) {

case 'fr':
$arr = array(
'Sun'   => 'Dim',
'Mon'   => 'Lun',
'Tue'   => 'Mar',
'Wed'   => 'Mer',
'Thu'   => 'Jeu',
'Fri'   => 'Ven',
'Sat'   => 'Sam',
'Today' => 'Auj',
);
break;

case 'de':
$arr = array(
'Sun'   => 'So',
'Mon'   => 'Mo',
'Tue'   => 'Di',
'Wed'   => 'Mi',
'Thu'   => 'Do',
'Fri'   => 'Fr',
'Sat'   => 'Sa',
'Today' => 'Heute',
);
break;

case 'ru':
$arr = array(
'Sun'   => 'Вс',
'Mon'   => 'Пн',
'Tue'   => 'Вт',
'Wed'   => 'Ср',
'Thu'   => 'Чт',
'Fri'   => 'Пт',
'Sat'   => 'Сб',
'Today' => 'Сегодня',
);
break;

default :
$arr = array(
'Sun'   => 'Dom',
'Mon'   => 'Lun',
'Tue'   => 'Mar',
'Wed'   => 'Mer',
'Thu'   => 'Gio',
'Fri'   => 'Ven',
'Sat'   => 'Sab',
'Today' => 'Oggi',
);
break;

}

$output = '';

if ( ! empty( $key ) && isset( $arr[ $key ] ) ) {
$output = $arr[ $key ];
}

return $output;

}

Передайте $ lang в качестве аргумента.

<div class="day">
<?php
$lang = $atts['language'];
$dw = date("D", strtotime($day['date']));
echo get_translated_text( $dw, $lang );
?>
</div>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector