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

Posted

技术标签:

【中文标题】将 PHP $get_month 从英语翻译成瑞典语【英文标题】:Translating PHP $get_month from english to swedish 【发布时间】:2014-04-03 13:04:59 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

setlocale() 为 PHP 设置语言环境,但月份名称是由 MySQL 生成的,它有自己的设置。尝试更新 MySQL 的语言环境:

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

(这应该替换你的setlocale() 的第一个实例,在你的SELECT ... 语句之前

注意:mysql_* 函数已被贬值,您可能需要考虑改用 mysqli_*

【讨论】:

非常感谢!这行得通!这个档案让我发疯了最长的时间。非常感谢! :D【参考方案2】:

如果只有月份,请将其放入包含月份索引的数组中,并在 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'=&gt;'Januari',...)

【讨论】:

以上是关于将 PHP $get_month 从英语翻译成瑞典语的主要内容,如果未能解决你的问题,请参考以下文章

防止异常消息被翻译成用户的语言?

打开po文件时poEdit编码错误

自动将 Wordpress 从多种语言翻译成英语

相关英语简称

用于翻译同形异义词的 Fasttext 对齐词向量

php代码编译的实现