PHP的语言切换器,具有语法简短的二维数组

时间:2019-05-26 11:45:36

标签: php

我喜欢为网站创建三种语言的语言切换器。 最好在速记语法中使用多维数组。

不幸的是,我对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',则转到数组以将'...'定位并选择适当的内容”。

如果有人愿意帮助我,我将不胜感激。预先感谢。

2 个答案:

答案 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

希望我能帮助您解决该问题;