Последнее обновление на местном языке - PullRequest
0 голосов
/ 07 мая 2020

Я хотел бы напечатать на экране на странице PHP дату последнего обновления. При поиске в Интернете я попытался создать код, однако результат отображается на английском языке sh, а не на местном языке посетителя.

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

Не могли бы вы помочь мне?

1 Ответ

1 голос
/ 07 мая 2020

Эта задача состоит из двух частей.

Первая - решить проблему с локализацией. Для этого вы можете создавать языковые файлы, например. 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 вы можете получить IP-адрес пользователя , а затем вы можете использовать таблица, в которой указаны диапазоны IPv4, принадлежащие какой стране. Но с этим есть проблема. Возможно, что пользователь использует браузер, прокси, маскируя IP-адрес. Живет в другой стране, чем его / ее родина, или просто побывал в этой стране. Таким образом, в этих случаях предположение будет неверным.

Лучший способ сделать это - проверить браузер пользователя или язык системы с javascript на стороне интерфейса. Но он все равно может совершать ошибки, поскольку, возможно, пользователь находится в другой стране с заимствованным P C, где язык ОС и браузера отличается.

Так что также хорошо, если вы предоставите пользователю способ на странице, чтобы выбрать его / ее язык, а затем сохранить его в повар ie.

...