Estoy usando angular-translate para i18n en una aplicación AngularJS.
Para cada vista de la aplicación, hay un controlador dedicado. En los controladores siguientes, configuro el valor que se mostrará como título de la página.
Código
HTML
<h1>{{ pageTitle }}</h1>
JavaScript
.controller('FirstPageCtrl', ['$scope', '$filter', function ($scope, $filter) {
$scope.pageTitle = $filter('translate')('HELLO_WORLD');
}])
.controller('SecondPageCtrl', ['$scope', '$filter', function ($scope, $filter) {
$scope.pageTitle = 'Second page title';
}])
Estoy cargando los archivos de traducción usando la extensión angular-translate-loader-url .
Problema
En la carga de la página inicial, se muestra la clave de traducción en lugar de la traducción de esa clave. La traducción es Hello, World!
, pero estoy viendo HELLO_WORLD
.
La segunda vez que voy a la página, todo está bien y se muestra la versión traducida.
Supongo que el problema tiene que ver con el hecho de que tal vez el archivo de traducción aún no esté cargado cuando el controlador asigna el valor a $scope.pageTitle
.
Observación
Al usar <h1>{{ pageTitle | translate }}</h1>
y $scope.pageTitle = 'HELLO_WORLD';
, la traducción funciona perfectamente desde la primera vez. El problema con esto es que no siempre quiero usar traducciones (por ejemplo, para el segundo controlador solo quiero pasar una cadena sin procesar).
Pregunta
¿Es este un problema / limitación conocido? ¿Cómo se puede solucionar esto?