2013-10-14 5 views
16

मैं कोणीय-अनुवाद (पास्कलप्रैच मॉड्यूल) का उपयोग कर रहा हूं।कोणीय अनुवाद स्थिर-लोडर-फ़ाइल पास्कलप्रैच

मैं इसमें उदाहरण के अनुसार काम करने के लिए successed: http://www.ng-newsletter.com/posts/angular-translate.html

हालांकि, मैं लोडर स्थैतिक-फ़ाइलों का उपयोग कर अलग json फ़ाइलों में अपने सभी अनुवाद करना चाहते हैं, लेकिन यह मेरे लिए काम नहीं कर रहा है। मुझे यकीन नहीं है कि मैं यहाँ कर रहा हूँ।

angular.module('myApp.i18n', ['pascalprecht.translate']) 
    .config(['$translateProvider', function ($translateProvider) { 
     /*$translateProvider.translations('en', { 
      HOME: 'Home', 
      COMPANIES: 'Companies', 
      WHAT_TO_DO: 'What to do', 
      ABOUT: 'About us', 
      CONTACT: 'Contact' 
     }) 
     .translations('es', { 
      HOME: 'Inicio', 
      COMPANIES: 'Empresas', 
      WHAT_TO_DO: 'Qué hacer', 
      ABOUT: 'Nosotros', 
      CONTACT: 'Contacto' 
     });*/ 
     $translateProvider.preferredLanguage('es'); 

     $translateProvider.useStaticFilesLoader({ 
      prefix: '/languages/', 
      suffix: '.json' 
     }); 
}]); 

मैं फ़ाइलों को मेरे एप्लिकेशन फ़ोल्डर में जोड़ लिया है::

/ऐप्स/भाषाओं

मेरी कोणीय मॉड्यूल में मैं सिर्फ लोडर स्थैतिक कॉल के साथ काम करने वाले कोड (अब टिप्पणी की) को बदल दिया /en_US.json /app/languages/es.json

जब मैं अपने घर साइट को लोड, मैं अगले त्रुटि कंसोल में देखें:

http://localhost:1234/languages/es.json 404 (Not Found) 

अगर मैं हटाने पहले '/' मेरी उपसर्ग में, इस तरह:

$translateProvider.useStaticFilesLoader({ 
       prefix: 'languages/', 
       suffix: '.json' 
      }); 

फिर, मैं कंसोल में अगले त्रुटि मिलती है:

अप्रत्याशित टोकन एच

क्षमा करें, मैं मुझे लगता है कि यह न करें और यह कैसे काम करना चाहिए।

उत्तर

9

सुनिश्चित करें कि आपका सर्वर .json को जेसन के रूप में भेजता है और सादे पाठ के रूप में नहीं। साथ ही, सुनिश्चित करें कि .json फ़ाइलों के नाम इसी भाषा कुंजी पर निर्भर करते हैं।

आप यहां पढ़ सकते हैं के रूप में: http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading ("staticFilesLoader का उपयोग करना")

कोड मेरे लिए अच्छा लग रहा है, तो एक बार आप मुद्दा यह है कि अपने सर्वर json के रूप में json नहीं भेज रहा है ठीक करने के बाद, चीजों को काम करना चाहिए ।

+0

एमएमएम सुनिश्चित नहीं है कि यह समस्या है। कृपया, सर्वर पर अनुरोध कर रहे यूआरएल पर ध्यान दें: http: // localhost: 1234/languages ​​/ es.json 404 (नहीं मिला)। हालांकि अगर मैं अपने ब्राउज़र में अगला यूआरएल लिखता हूं: http: // localhost: 1234/app/languages ​​/ es.json मुझे एक जेएसएस फ़ाइल मिलती है: [ { होम: 'इनिसियो', \t कंपनियां: 'एम्पेरेस', \t WHAT_TO_DO: 'Qua © hacer', \t के बारे में: 'NOSOTROS', \t संपर्क: 'cONTACTO' } ]। मुझे लगता है कि समस्या यह है कि यह संसाधन नहीं ढूंढ रहा है क्योंकि यह छोड़ रहा है/ऐप। – Rober

+0

फिर उपसर्ग में 'ऐप /' जोड़ें :) – PascalPrecht

+0

वह फिर से इतना आसान नहीं है: यदि मैं उपसर्ग जोड़ता हूं: 'ऐप/भाषा /', तो मुझे यह अजीब त्रुटि मिलती है: http: // localhost: 1234/app/ऐप/भाषाएं/es.json 404 (नहीं मिला)। ध्यान दें कि दो ऐप हैं। और यदि मैं जोड़ता हूं: उपसर्ग: 'ऐप/भाषाएं' 'तो मुझे मिलता है: सिंटेक्स त्रुटि: अप्रत्याशित टोकन एच – Rober

3

मैंने इसे ठीक किया। जैसा कि पास्कल ने टिप्पणियों में कहा था, समस्या यह थी कि जेसन फ़ाइल में गलत प्रारूप था। आपको सभी मूल्यों को डबल कोट्स के बीच रखना होगा।

पथ सही था।

संबंधित मुद्दे