使用本地语言的最新更新

问题描述 投票:0回答:1

我想在PHP页面的屏幕上打印最后更新的日期。在线搜索我试图创建一个代码,但是结果以英文显示,而不是以访客的本地语言显示。

<?php
setlocale(LC_TIME,"it_IT");
echo "Ultimo aggiornamento" . date ("g:ia \o\n l jS F Y", getlastmod());
?>

您能帮我一下吗?

php datetime translation updates
1个回答
0
投票

此任务分为两部分。

第一个是解决本地化问题。为此,您可以创建语言文件,例如it.php,en.php等。在文件中,您将得到一个包含翻译的数组。

例如:en.php

return [
    'lastUpdate' => 'Last update',
    'dateTimeFormat' => 'Y-m-d H:i:s'
];

然后it.php

return [
    'lastUpdate' => 'Ultimo aggiornamento',
    'dateTimeFormat' => 'g:ia \o\n l jS F Y'
];

和其他语言文件,以相同的方式。

如果您想在网站上支持太多的语言和文本,也可以使用Google翻译API和php脚本来生成这些文件,但是翻译质量取决于google翻译级别,即不太完美。

然后,一旦您检测/猜测了用户的语言,就可以选择语言文件,并将其用于页面上的文本:

$lang = __DIR__ . "{$userLang}.php";
echo "{$lang['lastUpdate']} " . date ($lang['dateTimeFormat'], getlastmod());

故事的另一部分是语言检测。

使用php,您可以获得user's IP address,然后您可以使用一个表,其中包含哪个IPv4范围属于哪个国家/地区。但这是有问题的。用户可能正在使用浏览器,代理来掩盖IP地址。居住在与其祖国不同的国家,或者只是去了那个国家。因此,在这些情况下,猜测将是不正确的。

更好的方法是在前端使用javascript检查用户的browser or system language。但是它仍然可能会出错,因为用户可能是在借用PC的其他国家/地区,而OS和浏览器的语言也不相同。

因此,如果您在页面上为用户提供一种选择他/她的语言,然后将其存储在cookie中的方式,也很好。

© www.soinside.com 2019 - 2024. All rights reserved.