Saya menggunakan angular-translate untuk i18n di aplikasi AngularJS.
Untuk setiap tampilan aplikasi, ada pengontrol khusus. Di pengontrol di bawah ini, saya menetapkan nilai yang akan ditampilkan sebagai judul halaman.
Kode
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';
}])
Saya memuat file terjemahan menggunakan ekstensi angular-translate-loader-url .
Masalah
Pada pemuatan halaman awal, kunci terjemahan yang ditampilkan, bukan terjemahan untuk kunci itu. Terjemahan adalah Hello, World!
, tapi saya melihat HELLO_WORLD
.
Kedua kalinya saya membuka halaman, semuanya baik-baik saja dan versi terjemahan ditampilkan.
Saya berasumsi bahwa masalahnya ada hubungannya dengan fakta bahwa mungkin file terjemahan belum dimuat saat pengontrol menetapkan nilainya $scope.pageTitle
.
Ucapan
Saat menggunakan <h1>{{ pageTitle | translate }}</h1>
dan $scope.pageTitle = 'HELLO_WORLD';
, terjemahan berfungsi sempurna sejak pertama kali. Masalahnya adalah saya tidak selalu ingin menggunakan terjemahan (misalnya untuk pengontrol kedua saya hanya ingin meneruskan string mentah).
Pertanyaan
Apakah ini masalah / batasan yang diketahui? Bagaimana ini bisa diselesaikan?