FakeURL è un sitema di manipolazione dell'url richiesta a CakePHP in modo da inserire un primo parametro il cui scopo è comunicare al sistema la lingua da utilizzare per soddisfare la richiesta in corso.
L'url: http://www.miosito.it/en/controller/action/ viene interpretato dall'engine FakeURL e utilizzato correttamente dal router CakePHP. Di fatto il parametro di lingua viene rimosso dalla richiesta.
Il parametro di lingua viene scritto nella costante notevole __RQL__1) in modo da poter essere successivamente utilizzato dall'applicazione.
FakeURL non è un vero e proprio sistema multilingua bensì un modo elegante (e SEO firendly) di richiedere al sistema l'utilizzo di una lingua piuttosto di un'altra in un ambiente multilingue
FakeURL utilizza 2 costanti notevoli per gestire il riconoscimento della lingua richiesta:
Questa costante può contenere un elenco (separato da virgole) di nomi di lingua utilizzato per identificare la lingua richiesta.
define('POWER_LANGS','italiano,english,deutche');
Solo queste parole verranno ricercate ed utilizzate come parametro di lingua nell'applicazione. Nel momento in cui il sistema identifica la richiesta di una lingua tra quelle in elenco rimuove il relativo parametro dall'url richiesto e lo salva in __RQL__.
NOTA: se FakeURL non riconosce alcuna lingua tra quelle elencate procede con la ricerca del parametro di lingua a dimensione fissa (paragrafo successivo).
Questa costante definisce la dimensione in caratteri utilizzata da un parametro di lingua. In questo modo diventa possibile utilizzare una qualunque combinazione di n° caratteri come parametro di lingua.
Questa impostazione è utile quando si intende utilizzare il sistema internazionale a 2 o 3 caratteri.
NOTA: utilizzando questo sistema di fatto si elimina la possibilità di utilizzare controllers il cui nome è di n° caratteri. E' comunque previsto un sistema di gestione delle eccezioni. Il sistema di fatto ignora qualunque primo parametro di n° caratteri definito nell'array Configure::read('POWER_LANG_LENGTH_EXCEPTIONS'). Questa gestione delle eccezioni consente l'utilizzo libero di controllers e plugins con un numero arbitrario di caratteri nel nome.
Per disabilitare il sistema di riconoscimento della lingua richiesta FakeURL è sufficiente impostare __RQL__ a “false” nella configurazione generale dell'applicazione.