Author:
    Creation:2025-03-01Last update:2026-10-27

    आपकी सामग्री का परीक्षण

    यह मार्गदर्शिका दिखाती है कि कैसे अपने शब्दकोशों की पूर्णता को स्वचालित रूप से सत्यापित करें, शिपिंग से पहले गायब अनुवाद पकड़ें, और अपने ऐप में स्थानीयकृत UI का परीक्षण करें।

    आप क्या परीक्षण कर सकते हैं

    • गायब अनुवाद: यदि किसी भी शब्दकोश के लिए आवश्यक स्थानीय भाषाएँ गायब हैं तो CI असफल हो जाएगा।
    • स्थानीयकृत UI रेंडरिंग: किसी विशिष्ट स्थानीय प्रदाता के साथ घटकों को रेंडर करें और दिखाई देने वाले टेक्स्ट/विशेषताओं पर सत्यापन करें।
    • बिल्ड-टाइम ऑडिट: npx intlayer content test को स्थानीय रूप से या CI में चलाएं; आवश्यक अनुवाद गायब होने पर यह गैर-शून्य कोड के साथ बाहर निकलता है।

    त्वरित प्रारंभ: CLI के माध्यम से ऑडिट

    अपने प्रोजेक्ट रूट से ऑडिट चलाएं:

    bash
    npx intlayer content test
    

    उपयोगी फ्लैग्स:

    • --env-file [path]: किसी फ़ाइल से पर्यावरण चर लोड करें।
    • -e, --env [name]: एक पर्यावरण प्रोफ़ाइल चुनें।
    • --base-dir [path]: समाधान के लिए ऐप बेस डायरेक्टरी सेट करें।
    • --verbose: विस्तृत लॉग दिखाएं।
    • --prefix [label]: लॉग लाइनों के लिए उपसर्ग जोड़ें।

    जब कोई आवश्यक स्थानीय भाषा गायब हो तो कमांड कोड 1 के साथ बाहर निकलता है (अपने कॉन्फ़िगरेशन में requiredLocales देखें), और अन्यथा 0 के साथ। आप इसे सीधे CI जॉब्स या कमिट हुक्स को विफल करने के लिए उपयोग कर सकते हैं। नीचे दिया गया प्रोग्रामेटिक टेस्ट एक वैकल्पिक विकल्प है।

    प्रोग्रामेटिक परीक्षण (Vitest/Jest)

    अपने आवश्यक स्थानीय भाषाओं के लिए कोई गायब अनुवाद न होने का सत्यापन करने के लिए Intlayer CLI API का उपयोग करें।

    /* @vitest-environment node */
    import { listMissingTranslations } from "intlayer/cli";
    import { describe, expect, it } from "vitest";
    
    describe("अनुवाद", () => {
      it("कोई आवश्यक स्थानीय भाषा गायब नहीं है", () => {
        const result = listMissingTranslations();
    
        if (result.missingRequiredLocales.length > 0) {
          // जब परीक्षण स्थानीय रूप से या CI में विफल होता है तो सहायक
          console.log(result.missingTranslations);
        }
    
        expect(result.missingRequiredLocales).toHaveLength(0);
      });
    });
    

    Jest समतुल्य:

    import { listMissingTranslations } from "intlayer/cli";
    
    test("कोई आवश्यक स्थानीय भाषा गायब नहीं है", () => {
      const result = listMissingTranslations();
    
      if (result.missingRequiredLocales.length > 0) {
        console.log(result.missingTranslations);
      }
    
      expect(result.missingRequiredLocales).toHaveLength(0);
    });
    

    यह कैसे काम करता है:

    • Intlayer आपकी कॉन्फ़िगरेशन (locales, requiredLocales) और घोषित शब्दकोशों को पढ़ता है, फिर रिपोर्ट करता है:
      • missingTranslations: प्रति-कुंजी, कौन-कौन सी स्थानीय भाषाएँ गायब हैं और किस फ़ाइल से।
      • missingLocales: सभी गायब स्थानीय भाषाओं का संघ।
      • missingRequiredLocales: requiredLocales तक सीमित उपसमूह (या यदि requiredLocales सेट नहीं है तो सभी स्थानीय भाषाएँ)।

    स्थानीयकृत UI का परीक्षण (React / Next.js)

    Intlayer प्रदाता के अंतर्गत घटकों को रेंडर करें और दृश्य सामग्री पर सत्यापन करें।

    React उदाहरण (Testing Library):

    tsx
    import { IntlayerProvider } from "react-intlayer/client";
    import { render, screen } from "@testing-library/react";
    import { MyComponent } from "./MyComponent";
    
    test("अंग्रेज़ी में स्थानीयकृत शीर्षक रेंडर करता है", () => {
      render(
        <IntlayerProvider locale="en-US">
          <MyComponent />
        </IntlayerProvider>
      );
    
      expect(screen.getByText("अपेक्षित अंग्रेज़ी शीर्षक")).toBeInTheDocument();
    });
    

    Next.js (App Router) उदाहरण: फ्रेमवर्क रैपर का उपयोग करें:

    tsx
    import { IntlayerClientProvider } from "next-intlayer/client";
    import { render, screen } from "@testing-library/react";
    import { MyPage } from "./MyPage";
    
    test("फ्रेंच में स्थानीयकृत शीर्षक प्रदर्शित करता है", () => {
      render(
        <IntlayerClientProvider locale="fr-FR">
          <MyPage />
        </IntlayerClientProvider>
      );
      expect(
        screen.getByRole("heading", { name: "Titre attendu" })
      ).toBeInTheDocument();
    });
    

    टिप्स:

    • जब आपको गुणों के लिए कच्चे स्ट्रिंग मानों की आवश्यकता हो (जैसे, aria-label), तो React में useIntlayer द्वारा लौटाए गए .value फ़ील्ड तक पहुँचें।
    • आसान यूनिट परीक्षण और सफाई के लिए शब्दकोशों को घटकों के साथ ही रखें।

    सतत एकीकरण

    CI में CLI ऑडिट चलाएं। आवश्यक अनुवाद गायब होने पर यह जॉब को विफल कर देता है।

    package.json:

    json
    {
      "scripts": {
        "test:i18n": "npx intlayer content test"
      }
    }
    

    वैकल्पिक: Vitest

    json
    {
      "scripts": {
        "test:i18n": "vitest run"
      }
    }
    

    GitHub Actions उदाहरण:

    yaml
    name: CI
    on: [push, pull_request]
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: 20
          - run: npm ci
          - run: npx intlayer content test
    

    वैकल्पिक: परीक्षणों के साथ-साथ एक मानव-पठनीय सारांश के लिए CLI ऑडिट चलाएं:

    bash
    npx intlayer content test --verbose
    

    समस्या निवारण

    • सुनिश्चित करें कि आपका Intlayer कॉन्फ़िगरेशन locales और (वैकल्पिक रूप से) requiredLocales को परिभाषित करता है।
    • यदि आपका ऐप डायनामिक या रिमोट शब्दकोशों का उपयोग करता है, तो ऐसे वातावरण में परीक्षण चलाएं जहां शब्दकोश उपलब्ध हों।
    • मिश्रित मोनोरिपोज़ के लिए, CLI को सही एप्लिकेशन रूट पर इंगित करने के लिए --base-dir का उपयोग करें।