Bir AngularJS uygulamasında i18n için angular-translate kullanıyorum .
Her uygulama görünümü için özel bir denetleyici vardır. Aşağıdaki kontrolörlerde sayfa başlığı olarak gösterilecek değeri ayarladım.
kod
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';
}])
Angular-translate-loader-url uzantısını kullanarak çeviri dosyalarını yüklüyorum .
Sorun
İlk sayfa yüklemesinde, bu anahtarın çevirisi yerine çeviri anahtarı gösterilir. Tercüme Hello, World!
, ama görüyorum HELLO_WORLD
.
Sayfaya ikinci kez gittiğimde her şey yolunda ve çevrilmiş versiyon gösteriliyor.
Sorunun, denetleyici değeri atarken çeviri dosyasının henüz yüklenmemiş olması gerçeğiyle ilgili olduğunu varsayıyorum $scope.pageTitle
.
düşünce
Kullanırken <h1>{{ pageTitle | translate }}</h1>
ve $scope.pageTitle = 'HELLO_WORLD';
çeviri eserler ilk andan itibaren mükemmel. Bununla ilgili sorun, her zaman çevirileri kullanmak istemememdir (örneğin, ikinci denetleyici için sadece bir ham dizge geçmek istiyorum).
Soru
Bu bilinen bir sorun / sınırlama mı? Bu nasıl çözülebilir?