【问题标题】:Latest update in local language本地语言的最新更新
【发布时间】:2020-08-23 02:50:22
【问题描述】:

我想在 PHP 页面的屏幕上打印上次更新的日期。在线搜索我尝试创建一个代码,但结果显示为英语而不是访问者的本地语言。

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

你能帮帮我吗?

【问题讨论】:

  • 您想在访问者时区显示日期:时间,还是希望用户以他/她自己的语言获取消息,或两者兼而有之?
  • 嗨@David Hlavati!谢谢你的澄清。我希望用户以他的语言接收消息。例如,我是意大利人,我想用意大利语显示月份和日期等等。

标签: php datetime translation updates


【解决方案1】:

这个任务有两个部分。

第一个是解决本地化问题。为此,您可以创建语言文件,例如 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 translate API 和 php 脚本来生成这些文件,但是翻译质量达到了 google translate 级别,即不是那么完美。

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

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

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

使用 php,您可以获得user's IP address,然后您可以使用包含哪些 IPv4 范围属于哪个国家/地区的表。但这有一个问题。用户可能正在使用 Tor 浏览器、代理、屏蔽 IP 地址。生活在与他/她的祖国不同的国家,或者只是去过那个国家。所以在这些情况下,猜测是不正确的。

更好的方法是在前端使用 javascript 检查用户的browser or system language。但它仍然可能会出错,因为用户可能在不同的国家使用借来的 PC,操作系统和浏览器语言不同。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2013-02-18
    相关资源
    最近更新 更多