दस्तावेज़ीकरण

प्राथमिक सेटअप

अपने प्रोजेक्ट में Angular का स्थानीयकरण पैकेज जोड़ने से शुरू करें:

ng add @angular/localize

इस कमांड से निम्नलिखित परिवर्तन होंगे:

  • @angular/localize पैकेज को आपकी निर्भरता में जोड़ें
  • angular.json में polyfills array में "@angular/localize/init" जोड़ें
  • अपने main.ts में निम्नलिखित संदर्भ जोड़ें:
/// <reference types="@angular/localize" />

यह भी extract-i18n कॉन्फ़िगरेशन को angular.json में जोड़ देगा:

"extract-i18n": {
  "builder": "ng-extract-i18n-merge:ng-extract-i18n-merge",
  "options": {
    "buildTarget": "your-app:build",
    "format": "xlf",
    "outputPath": "src/locale",
    "includeContext": true,
    "resetTranslationState": true,
    "targetFiles": [
      "messages.fr.xlf",
      "messages.vi.xlf"
    ]
  }
}

नोट: हम बाद में अपनी वर्कफ़्लो के अनुसार कॉन्फ़िगरेशन में outputPath को संशोधित करेंगे।

Angular i18n CLI Tool

To simplify the management of Angular i18n configuration, you can use our CLI tool:

npm install --save-dev @softwarity/angular-i18n-cli

This tool provides several features to streamline your i18n workflow:

  • Easy initialization of i18n configuration in your Angular project
  • Simple addition and removal of locales
  • Automatic configuration of build settings for each locale
  • Proper setup of XLIFF file formats

अनुवाद उपकरण स्थापित करें

अनुवाद फ़ाइलों का प्रबंधन करने के लिए, हम ng-extract-i18n-merge का उपयोग करेंगे, जो अनुवादों को निकालने और मर्ज करने की प्रक्रिया को सरल बनाता है:

npm install --save-dev ng-extract-i18n-merge

यह उपकरण कई लाभ प्रदान करता है:

  • अपने एप्लिकेशन से अनुवाद करने योग्य स्ट्रिंग्स को स्वचालित रूप से निकालता है
  • एकल चरण में नए अनुवादों को मौजूदा अनुवादों के साथ मिलाता है
  • मौजूदा अनुवादों को अद्यतनों के दौरान बनाए रखता है
  • कई लक्ष्य भाषाओं का समर्थन करता है

कॉन्फ़िगरेशन फ़ाइलें

package.json

"scripts": {
  ...
  "extract-i18n": "ng extract-i18n",
  "build": "ng build --localize"
  ...
}

angular.json

angular.json में i18n कॉन्फ़िगरेशन को अपडेट करें:

"i18n": {
  "sourceLocale": "en",
  "locales": {
    "fr": {
      "translation": "src/locale/messages.fr.xlf"
    },
    "vi": {
      "translation": "src/locale/messages.vi.xlf"
    }
  }
},

फिर मानक extract-i18n कॉन्फ़िगरेशन को ng-extract-i18n-merge से बदलें:

"extract-i18n": {
  "builder": "ng-extract-i18n-merge:ng-extract-i18n-merge",
  "options": {
    "buildTarget": "your-app:build",
    "format": "xlf",
    "outputPath": "src/locale",
    "includeContext": true,
    "resetTranslationState": true,
    "targetFiles": [
      "messages.fr.xlf",
      "messages.vi.xlf"
    ]
  }
}

महत्वपूर्ण कॉन्फ़िगरेशन विकल्प:

  • बिल्डटारगेट: आपके अनुप्रयोग का निर्माण लक्ष्य नाम
  • आउटपुट पथ: अनुवाद फाइलों को स्टोर करने के लिए निर्देशिका
  • includeContext: XLIFF फ़ाइलों में स्रोत फ़ाइल जानकारी शामिल करता है
  • पुनःअनुवाद स्थिति: परिवर्तनों पर सभी अनुवादों को समीक्षा की आवश्यकता के रूप में चिह्नित करें
  • लक्ष्य फ़ाइलें: उत्पन्न करने/अपडेट करने के लिए अनुवाद फ़ाइलों की सूची

Build configurations

प्रत्येक भाषा के लिए निर्माण अनुभाग में कॉन्फ़िगरेशन्स जोड़ें:

"architect": {
  "build": {
    "configurations": {
      "fr": {
        "localize": ["fr"]
      },
      "vi": {
        "localize": ["vi"]
      }
    }
  }
}

अनुवाद के लिए घटकों को तैयार करें

आपके घटकों को अनुवाद के लिए तैयार करने के लिए, आपको उस पाठ को चिह्नित करना होगा जिसे अनुवादित किया जाना चाहिए। Angular इसे करने के लिए दो तरीके प्रदान करता है:

Angular दस्तावेज़: अनुवाद के लिए पाठ को चिह्नित करना

अपने आवेदन को अनुवाद के लिए कैसे तैयार करें, इसके बारे में अधिक जानें।

टेम्पलेट अनुवाद

अपने टेम्पलेट में अनुवाद के लिए पाठ चिह्नित करने के लिए i18n विशेषता का उपयोग करें:

<tag attribute="This is a sample attribute text that needs translation." 
  i18n-attribute="@@ATTRIBUTE_TEXT"
  i18n="@@TAG_TEXT">This is a sample text that needs translation.</tag>
// EXAMPLE
<button title="Title button" i18n-title="@@TITLE_BUTTON"i18n="@@LABEL_BUTTON">label button</button>

@@prefix एक कस्टम ID को परिभाषित करता है जो अनुवाद के लिए है। स्थिरता के लिए SNAKE_CASE का उपयोग करने की सिफारिश की जाती है।

प्रतिनिधि अनुवाद

अपने घटक कोड में पाठ के लिए, $localize टेम्पलेट टैग का उपयोग करें:

import { Component } from '@angular/core';

@Component({
  selector: 'app-example',
  template: '...'
})
export class ExampleComponent {
  title = $localize`:@@PAGE_TITLE:Welcome to our application`;
  errorMessage = $localize`:@@ERROR_MESSAGE:An error occurred while processing your request`;
}

बिल्डिंग और सर्विंग

अनुवाद के साथ निर्माण

अपने एप्लिकेशन को सभी अनुवादों के साथ बनाएं:

npm run build

या किसी विशेष भाषा के लिए निर्माण करें (उदाहरण के रूप में फ़्रेंच का उपयोग करते हुए):

ng build --configuration=fr

विकास सर्वर

आपके आवेदन को विकास के दौरान अनुवादों के साथ सेवा दें:

ng serve --configuration=fr

⚠️ महत्वपूर्ण नोट

नए अनुवाद योग्य सामग्री जोड़ने या मौजूदा अनुवादों में परिवर्तन करने के बाद:

  1. ng extract-i18n - एक ही चरण में सभी अनुवाद फ़ाइलों को निकालने और अपडेट करने के लिए

यह सरल वर्कफ़्लो सुनिश्चित करता है कि आपकी अनुवाद फाइलें हमेशा स्रोत सामग्री के साथ अद्यतित रहें, जिससे अंतरराष्ट्रीयकरण प्रक्रिया अधिक प्रभावी और त्रुटि-मुक्त बनती है।