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?