मैं एक AngularJS एप्लिकेशन में i18n के लिए कोणीय-अनुवाद का उपयोग कर रहा हूं ।
प्रत्येक एप्लिकेशन दृश्य के लिए, एक समर्पित नियंत्रक है। नीचे दिए गए नियंत्रकों में, मैंने पृष्ठ शीर्षक के रूप में दिखाए जाने के लिए मूल्य निर्धारित किया है।
कोड
एचटीएमएल
<h1>{{ pageTitle }}</h1>
जावास्क्रिप्ट
.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';
}])
मैं कोणीय-अनुवाद-लोडर-यूआरएल एक्सटेंशन का उपयोग करके अनुवाद फाइलें लोड कर रहा हूं ।
संकट
प्रारंभिक पृष्ठ लोड पर, उस कुंजी के लिए अनुवाद के बजाय अनुवाद कुंजी दिखाई गई है। अनुवाद है Hello, World!
, लेकिन मैं देख रहा हूं HELLO_WORLD
।
दूसरी बार जब मैं पृष्ठ पर जाता हूं, तो सब ठीक है और अनुवादित संस्करण दिखाया गया है।
मुझे लगता है कि इस मुद्दे को इस तथ्य के साथ करना है कि शायद अनुवाद फ़ाइल अभी तक लोड नहीं हुई है जब नियंत्रक मूल्य को असाइन कर रहा है $scope.pageTitle
।
टिप्पणी
उपयोग करते समय <h1>{{ pageTitle | translate }}</h1>
और $scope.pageTitle = 'HELLO_WORLD';
, अनुवाद पहली बार से सही काम करता है। इसके साथ समस्या यह है कि मैं हमेशा अनुवाद का उपयोग नहीं करना चाहता (उदाहरण के लिए, दूसरे नियंत्रक के लिए मैं सिर्फ एक कच्चा स्ट्रिंग पारित करना चाहता हूं)।
सवाल
क्या यह एक ज्ञात मुद्दा / सीमा है? इसे कैसे हल किया जा सकता है?