2014-04-03 4 views
0

영어로 된 블로그 아카이브가 있습니다. 대신 스웨덴어로 월을 표시하고 싶습니다. 비슷한 문제에 대한 검색을 시도했지만 아무 것도 작동하지 않습니다. 누군가 도와 주실 수 있습니까?

<?php 
include 'includes/db_connection.php'; 
setlocale(LC_ALL, 'sv_SE'); 
$result = mysql_query("SELECT FROM_UNIXTIME(timestamp, '%M %Y') AS get_month, COUNT(*) AS entries FROM php_blog GROUP BY get_month ORDER BY timestamp DESC"); ?> 

<ul class="archive_list"> 
<br><br><br><br> 
<ul class="archive_ul"> 
<?php 
while ($row = mysql_fetch_array($result)) { 
setlocale(LC_ALL, 'sv_SE'); 

$get_month = $row['get_month']; 
$entries = $row['entries']; 
echo "<li><a href=\"archive.php?month=" . $get_month . "\">" . $get_month . "</a></li>"; 
} 


//setlocale(LC_ALL, 'sv_SE'); 
//echo utf8_encode (strftime("%A %e %B %Y")); 

?> 

그래서 아래 링크에서 스웨덴어로 표시하려면 월을 대신 표시하고 get_month를 사용하여 데이터베이스에서 추출합니다. 어떤 아이디어? 번역 할 링크에 표시되는 달 이름 만 필요합니다. 감사!

답변

0

달만있는 경우 월 인덱스가있는 배열에 넣고 12 개월 동안 google translate를 사용하십시오. 당신이 잡아 0

의 인덱스로해야합니다

$swedish_months = array('Januari','Februari','Mars','April','Maj','Juni','Juli','Augusti','September','Oktober','november','December');

은 그래서 swedish_months는 [$ get_month] 인덱스로 영역 화됩니다 $. get_month가 숫자가 아닌 한, 인덱스를 적절히 조정해야합니다. (즉 : array('00'=>'Januari',...)

1

setlocale()는 PHP의 로케일을 설정하지만 달의 이름은 자신의 설정이 MySQL이 생성되는 MySQL에의 로케일을 업데이트 시도해보십시오.

mysql_query("SET lc_time_names = 'sv_SE'"); 

(이 첫 번째 교체해야합니다 mysql_* 기능은 감가 상각, 당신이 mysqli_* 인 사용을 고려할 수 있습니다

이 NB 당신의 SELECT ... 문 앞에 setlocale()의 인스턴스 tead

+0

감사합니다. 이것은 효과가있다! 이 아카이브는 나를 가장 오랫동안 미치게 만들었습니다. 고마워! :디 – Sazyline

관련 문제