将PHP $ get_month从英语翻译成瑞典语

时间:2014-04-03 13:04:59

标签: php blogs archive setlocale

我有一个英文博客档案,我希望这个月用瑞典语显示。我已经搜索并尝试了类似问题的答案,但没有任何效果。有人可以帮忙吗?

<?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从我的数据库中提取它。有任何想法吗?我真的只需要将要翻译的链接中显示的月份名称。谢谢!

2 个答案:

答案 0 :(得分:1)

setlocale()设置PHP的语言环境,但是月份名称由MySQL生成,它有自己的设置。尝试使用以下命令更新MySQL的区域设置:

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

(这应该在您的setlocale()声明之前替换您的第一个SELECT ...实例

注意:mysql_*函数已弃用,您可能需要考虑使用mysqli_*代替

答案 1 :(得分:0)

如果只是一个月,请将它与月份索引放在一个数组中,并使用谷歌翻译12个月。

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

将其作为索引0

所以当你抓住它时,$ swedish_months [$ get_month]会分区到索引中。除非get_month不是数字,否则您需要相应地调整索引。 (即:array('00'=>'Januari',...)