我正在尝试在多语种网站上建立一个小天气预报。我使用的是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 :(得分: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>