2015-02-02 8 views
6

Sto usando l'ultima versione di angularjs e angular-translate.

Per qualche ragione, non voglio per memorizzare le mie traduzioni in statiche .json file (o en_US.json ru_RU.json)

C'è qualche API angolare-translate che richiede un API REST che a sua volta restituisce i dati json per la traduzione. L'API REST estrae l'archivio delle traduzioni nel database.

risposta

7

Racconto un'occhiata a:.

http://angular-translate.github.io/docs/#/api/pascalprecht.translate $ translateUrlLoader

Per impostazione predefinita verrà utilizzato il parametro querystring ?lang= a passare nella lingua desiderata.

si dovrebbe utilizzare come:

$translateProvider.useUrlLoader("/path/to/my/endpoint"); 
$translationProvider.defaultLanguage("en"); 

Angular-translate poi effettuare una chiamata a /path/to/my/endpoint?lang=en

Se non si desidera un parametro di stringa di query, ma sarebbe piuttosto un parametro di percorso, è possibile crea il tuo caricatore in base a $ translateUrlLoader. Guardando alla fonte, sembra molto banale:

https://github.com/angular-translate/angular-translate/blob/master/src/service/loader-url.js

+0

C'è qualche esempio campione di $ translateUrlLoader? Posso usare $ translateProvider.useUrlLoader invece? – NoobDeveloper

+0

$ translateUrlLoader è la factory utilizzata da $ tranlateProvider.useUrlLoader (...). Ho aggiunto un esempio alla mia risposta. – Martin

+0

Grazie. Qual è la migliore pratica quando si tratta di localizzazione? Devo caricare le traduzioni per pagina o caricare le traduzioni per impostazioni locali specifiche per l'intero sito web in una sola volta? – NoobDeveloper