Ho già realizzato una cosa del genere però in PHP (utilizzando un framework fatto da me).
In pratica ho un file di configurazione dove definisco lingua, controller, metodo.
In base alla lingua viene restituito il valore assoluto.
Codice PHP:
protected static $pagina=array(
'es'=>array('n'=>0,'s'=>0,'v'=>3),
'it'=>array('n'=>0,'s'=>0,'v'=>3),
'homepage'=>array( 'n'=>1,'s'=>0,'v'=>1,'canonical'=>TRUE, 'robots'=>1,'priorita'=>"0.8"),
'datadesc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE, 'robots'=>'metodopagine'),
'dataasc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'rilevanzadesc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'rilevanzaasc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'titolodesc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'titoloasc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'tipologiadesc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'tipologiaasc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'statodesc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'statoasc'=>array( 'n'=>2,'s'=>0,'v'=>5,'canonical'=>TRUE),
'ajaxhomecerca'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
'immagini'=>array( 'n'=>1,'s'=>0,'v'=>0, 'robots'=>FALSE),
'ajaximmaginigestione'=>array( 'n'=>2,'s'=>3,'v'=>0),
'ajaxregistraimmagine'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
'ajaxgetimmaginexl'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
'ajaxgetimmaginexs'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
'ajaxgetimmagineupadmin'=>array( 'n'=>2,'s'=>3,'v'=>0, 'robots'=>FALSE),
'verifica'=>array( 'n'=>1,'s'=>0,'v'=>0, 'robots'=>FALSE),
'iscrizione'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
'cambiopassword'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
'confermacambiopassword'=>array( 'n'=>2,'s'=>0,'v'=>0, 'robots'=>FALSE),
In pratica ad una richiesta in una determinata lingua(valore relativo), viene restituito il valore assoluto della pagina.
ogni spazio viene restituito con trattini '-' al posto degli spazi, e vengono sostituiti i caratteri accentati con caratteri semplici.
Infine ho due metodi, uno che mi restituisce il valore relativo in base al valore assoluto e un altro che mi restituisce il valore assoluto in base al valore relativo, in questo modo carico la classe e il metodo corrispondente, e il risultato viene renderizzato tradotto in base alla richiesta dell'utente.