2013-03-22 20 views

Odpowiedz

7

Aby rozwinąć na odpowiedź Roba próbuje się i18n.js plugin dla require.js, oto kroki Śledziłem (pracuję off szablon startowy Durandal w Visual Studio).

  1. Pobierz i18n.js plugin i umieścić go w folderze App.
  2. Utwórz folder App/nls, w którym należy umieścić pakiety zasobów require.js, np. App/nls/welcomeBundle.js.

    define({ 
        "root": { 
         "displayName": "Welcome to the Durandal Starter Project!" 
        }, 
        "fr-fr": true 
    }); 
    
  3. Zobaczysz dodałem linię do opowiedzenia require.js że jest francuska wersja jest dostępna. Ten zostanie utworzony w App/nls/fr-fr/welcomeBundle.js, który zrobił mi trochę poniżej (zmienił się le: D)

    define({ 
        "displayName": "Welcome to le Durandal Starter Project!" 
    }); 
    
  4. require.js musi być wstępnie skonfigurowany z lokalizacji (nie można zrobić dynamicznie). Więc w pliku main.js oświadczam poniżej getLocale() funkcji, które mogę używać do konfigurowania ustawień regionalnych dla require.js:

    function getLocale() { 
        var locale = 'en-us'; 
        if (localStorage) { 
         var storedLocale = localStorage.getItem('locale'); 
         locale = storedLocale || locale; 
        } 
        return locale; 
    } 
    
    requirejs.config({ 
        paths: { 
         'text': 'durandal/amd/text' 
        }, 
        locale: getLocale() 
    }); 
    
  5. W module welcome.js I następnie załadować paczkę i użyć go do własność displayName:

    define(function(require) { 
        var bundle = require('i18n!nls/welcomeBundle'); 
        return { 
         displayName: bundle.displayName, 
         ... 
        } 
    }); 
    
  6. i wtedy ustawić locale na francuski i przeładować stronę za pomocą JavaScript:

    localStorage.setItem('locale', 'fr-fr'); 
    location.reload(); 
    

nadzieję, że pomoże :)

Edit: 04/04/2013: zaktualizowałem powyższy zainicjować ustawienia regionalne w pliku main.js a nie w module shell.js, jak z jakiegoś powodu ustawienia regionalne nie były używane poprawnie podczas ładowania pakietu w module powłoki. Należy zaznaczyć, że powinien on zostać skonfigurowany tak szybko, jak to możliwe.