Çok dilli URL ulaşmak için en iyi yolu?

0 Cevap php

Ben çok dilli oluyor bir niş sosyal ağ sitesi geliştiriyorum. Bu bizim cari URL yapısı yakında aşağıdaki gibi bir sümüklü böcek için tercüme edilmiş sözcükleri kullanmaya başlamak için ihtiyacınız olacak demektir:

www.example.com/home olur www.example.com/inicio

www.example.com/profile olur www.example.com/perfil

www.example.com/help olur www.example.com/ayuda

Ve böylece. Benim soru: PHP uygulamasında bu desteklemek için en iyi yolu nedir? Gelen istekler için, ben benim router.php dosyasında aşağıdaki gibi bir sözlük yeterli olacağını düşündüm:

<?php
$request = explode("/", trim($_SERVER['REQUEST_URI'], "/"));

// Dictionaries of page slugs.
$slugs = array(
    'es' => array(
        'inicio' => 'home',
        'perfil' => 'profile',
        'ayuda' => 'help',
    )
    // additional languages can be added here
);

// Rewrite any incoming (foreign) requests
if ($host=="www.example.es") { // to be made programmatic
    $lang = "es"; // pick up from locale constant rather being hard-coded
    if (array_key_exists($request[0], $slugs[$lang])) {
        $request[0] = $slugs[$lang][$request[0]];
    }
}

...

Temelde URL segmentleri alır ve eğer varsa bir İngiliz karşı-kısmen karşı hangi maçlar. Eğer değilse, o zaman, normal olarak devam edecek ve büyük olasılıkla bir denetleyicisi olarak 404 URL kesimi için yok neden.

Bu kelime olsa da, ben de geriye dönük uyumlu olması gerekir. Örneğin, benim uygulamada URL'leri oluştururken.

Uygulama şu anda sadece İngilizce olarak Doğal, bunlar sadece kodlanmış olan. Ben aşağıdakileri yapın User nesne getiriliyor Peki, ne zaman ki:

<?php
class User {

    function __construct($id) {
        // fetch user details
        $this->profile_url = ROOT . "/profile/" . $this->username;
    }
}

Daha sonra örneklerini değiştirmek için en iyi yöntemi nedir "/profile/" İspanyol sitede çevrilmiş versiyonunu, yani "/perfil/" almak için kodlanmış ediliyor?

0 Cevap