我喜欢为网站创建三种语言的语言切换器。 最好在速记语法中使用多维数组。
不幸的是,我对PHP完全陌生,因此很难找到一个脚本,仅出于我的目的对其进行编辑。
这种情况,我想是一个标准用例: 有一个网站使用3种语言(例如,我为每个语言使用3个不同的页面)。
https://example.tld/de/
https://example.tld/en/
https://example.tld/fr/
https://example.tld/de/zimmer
https://example.tld/en/rooms
https://example.tld/fr/chambres
https://example.tld/de/seminarbereich
https://example.tld/en/seminar-area
https://example.tld/fr/zone-seminaires
我可以使用以下二维数组来解决任务吗?
$myarray = [
['de', 'en', 'fr'], //language and as well the first part of the url
['Sprachumschalter', 'Language Switcher', 'Sélecteur de langue'], //aria-label
['Diese Seite auf Deutsch', 'This page in English', 'Cette page en français'], //title
['', '', ''], // page 1, start page of each language
['zimmer', 'rooms', 'chambres'], // page 2
['seminarbereich', 'seminar-area', 'zone-seminaires'] // page 3
]
每页上以HTML5格式显示的结果应为-在此处以“房间”页的形式出现:
<nav aria-label="Sprachumschalter">
<ol>
<li class="aktiv"><a href="/de/zimmer" lang="de" title="Diese Seite auf Deutsch">de</a></li>
<li><a href="/en/rooms" lang="en" title="This page in English">en</a></li>
<li><a href="/fr/chambres" lang="fr" title="Cette page en Français">fr</a></li>
</ol>
</nav>
能否给我一个提示,在哪里可以找到一个脚本,该脚本使用类似的二维数组来实现此目的?
我想我需要一个“询问”的脚本
“如果第一个url为'de',则转到数组以将'...'定位并选择适当的内容”。
如果有人愿意帮助我,我将不胜感激。预先感谢。
答案 0 :(得分:0)
您可以使用gettext代替多维数组
答案 1 :(得分:0)
尝试这样更改您的结构:
$array = [
["de"] => [
["label"] => "Sprachumschalter",
["title"] => "Diese Seite auf Deutsch",
["page"] => ["", "zimmer", "seminarbereich"]
],
["en"] => [
["label"] => "Language Switcher",
["title"] => "This page in English",
["page"] => ["", "rooms", "seminar-area"]
],
["fr"] => [
["label"] => "Sélecteur de langue",
["title"] => "Cette page en français",
["page"] => ["", "chambres", "zone-seminaires"]
]
]
获取PHP中的URI段
https://example.tld/language/
$uriSegments = explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
echo $uriSegments[1]; //returns language
$language = $uriSegments[1];
因此,您可以在arra中访问以下信息:
echo $array[$language]; // get language
echo $array[$language]["label"]; //get label
因此,要获取您的页面,您可以创建一个从0开始的计数器;
$counterPage = 0;
echo $array[$language]["page"][$counterPage]; //get the page
希望我能帮助您解决该问题;