Skip to content

Latest commit

 

History

History
507 lines (380 loc) · 25.1 KB

File metadata and controls

507 lines (380 loc) · 25.1 KB

Lingo.dev

Lingo.dev - LLM-ਸੰਚਾਲਿਤ ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਲਈ ਓਪਨ-ਸੋਰਸ i18n ਟੂਲਕਿੱਟ


MCPCLICI/CDSDKCompiler

Release License Last Commit Product Hunt #1 DevTool of the Month Product Hunt #1 DevTool of the Week Product Hunt #2 Product of the Day Github trending


ਤੁਰੰਤ ਸ਼ੁਰੂਆਤ

ਟੂਲ ਵਰਤੋਂ ਦਾ ਮਾਮਲਾ ਤੁਰੰਤ ਕਮਾਂਡ
MCP React ਐਪਸ ਲਈ AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ i18n ਸੈੱਟਅੱਪ Prompt: Set up i18n
CLI JSON, YAML, markdown, CSV, PO ਫਾਈਲਾਂ ਦਾ ਅਨੁਵਾਦ ਕਰੋ npx lingo.dev@latest run
CI/CD GitHub Actions ਵਿੱਚ ਸਵੈਚਲਿਤ ਅਨੁਵਾਦ ਪਾਈਪਲਾਈਨ uses: lingodotdev/lingo.dev@main
SDK ਡਾਇਨਾਮਿਕ ਸਮੱਗਰੀ ਲਈ ਰਨਟਾਈਮ ਅਨੁਵਾਦ npm install lingo.dev
Compiler i18n wrappers ਤੋਂ ਬਿਨਾਂ ਬਿਲਡ-ਟਾਈਮ React ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ withLingo() plugin

Lingo.dev MCP

React ਐਪਸ ਵਿੱਚ i18n ਸੈੱਟਅੱਪ ਕਰਨਾ ਬਦਨਾਮ ਤੌਰ 'ਤੇ ਗਲਤੀ-ਪ੍ਰਵਣ ਹੈ - ਤਜਰਬੇਕਾਰ ਡਿਵੈਲਪਰਾਂ ਲਈ ਵੀ। AI ਕੋਡਿੰਗ ਸਹਾਇਕ ਇਸਨੂੰ ਹੋਰ ਵੀ ਮਾੜਾ ਬਣਾਉਂਦੇ ਹਨ: ਉਹ ਗੈਰ-ਮੌਜੂਦ APIs ਦੀ ਕਲਪਨਾ ਕਰਦੇ ਹਨ, ਮਿਡਲਵੇਅਰ ਕੌਂਫਿਗਰੇਸ਼ਨਾਂ ਨੂੰ ਭੁੱਲ ਜਾਂਦੇ ਹਨ, ਰਾਊਟਿੰਗ ਨੂੰ ਤੋੜ ਦਿੰਦੇ ਹਨ, ਜਾਂ ਗੁੰਮ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਅੱਧਾ ਹੱਲ ਲਾਗੂ ਕਰਦੇ ਹਨ। ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ i18n ਸੈੱਟਅੱਪ ਲਈ ਕਈ ਫਾਈਲਾਂ (ਰਾਊਟਿੰਗ, ਮਿਡਲਵੇਅਰ, ਕੰਪੋਨੈਂਟਸ, ਕੌਂਫਿਗਰੇਸ਼ਨ) ਵਿੱਚ ਤਾਲਮੇਲ ਵਾਲੀਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਇੱਕ ਸਟੀਕ ਕ੍ਰਮ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਅਤੇ LLMs ਉਸ ਸੰਦਰਭ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਵਿੱਚ ਸੰਘਰਸ਼ ਕਰਦੇ ਹਨ।

Lingo.dev MCP ਇਸ ਸਮੱਸਿਆ ਨੂੰ AI ਸਹਾਇਕਾਂ ਨੂੰ ਫਰੇਮਵਰਕ-ਵਿਸ਼ੇਸ਼ i18n ਗਿਆਨ ਤੱਕ ਸੰਰਚਿਤ ਪਹੁੰਚ ਦੇ ਕੇ ਹੱਲ ਕਰਦਾ ਹੈ। ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਬਜਾਏ, ਤੁਹਾਡਾ ਸਹਾਇਕ Next.js, React Router, ਅਤੇ TanStack Start ਲਈ ਪ੍ਰਮਾਣਿਤ ਲਾਗੂਕਰਨ ਪੈਟਰਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ।

ਸਮਰਥਿਤ IDEs:

  • Claude Code
  • Cursor
  • GitHub Copilot Agents
  • Codex (OpenAI)

ਸਮਰਥਿਤ ਫਰੇਮਵਰਕ:

  • Next.js (App Router ਅਤੇ Pages Router v13-16)
  • TanStack Start (v1)
  • React Router (v7)

ਵਰਤੋਂ:

ਆਪਣੇ IDE ਵਿੱਚ MCP ਸਰਵਰ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਤੋਂ ਬਾਅਦ (ਕੁਇੱਕਸਟਾਰਟ ਗਾਈਡਾਂ ਦੇਖੋ), ਆਪਣੇ ਸਹਾਇਕ ਨੂੰ ਪ੍ਰੋਂਪਟ ਕਰੋ:

Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'.

ਸਹਾਇਕ ਇਹ ਕਰੇਗਾ:

  1. ਲੋਕੇਲ-ਅਧਾਰਿਤ ਰਾਊਟਿੰਗ ਕੌਂਫਿਗਰ ਕਰੇਗਾ (ਜਿਵੇਂ ਕਿ /en, /es, /pt-BR)
  2. ਭਾਸ਼ਾ ਸਵਿੱਚਿੰਗ ਕੰਪੋਨੈਂਟਸ ਸੈੱਟਅੱਪ ਕਰੇਗਾ
  3. ਆਟੋਮੈਟਿਕ ਲੋਕੇਲ ਖੋਜ ਲਾਗੂ ਕਰੇਗਾ
  4. ਲੋੜੀਂਦੀਆਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫਾਈਲਾਂ ਤਿਆਰ ਕਰੇਗਾ

ਨੋਟ: AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ ਕੋਡ ਜਨਰੇਸ਼ਨ ਗੈਰ-ਨਿਰਧਾਰਕ ਹੈ। ਕਮਿਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤਿਆਰ ਕੀਤੇ ਕੋਡ ਦੀ ਸਮੀਖਿਆ ਕਰੋ।

ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →


Lingo.dev CLI

ਅਨੁਵਾਦਾਂ ਨੂੰ ਸਿੰਕ ਵਿੱਚ ਰੱਖਣਾ ਥਕਾਊ ਹੈ। ਤੁਸੀਂ ਇੱਕ ਨਵੀਂ ਸਟਰਿੰਗ ਜੋੜਦੇ ਹੋ, ਇਸਦਾ ਅਨੁਵਾਦ ਕਰਨਾ ਭੁੱਲ ਜਾਂਦੇ ਹੋ, ਅੰਤਰਰਾਸ਼ਟਰੀ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਟੁੱਟਿਆ UI ਭੇਜ ਦਿੰਦੇ ਹੋ। ਜਾਂ ਤੁਸੀਂ ਅਨੁਵਾਦਕਾਂ ਨੂੰ JSON ਫਾਈਲਾਂ ਭੇਜਦੇ ਹੋ, ਦਿਨਾਂ ਦੀ ਉਡੀਕ ਕਰਦੇ ਹੋ, ਫਿਰ ਮੈਨੁਅਲੀ ਉਹਨਾਂ ਦੇ ਕੰਮ ਨੂੰ ਵਾਪਸ ਮਰਜ ਕਰਦੇ ਹੋ। 10+ ਭਾਸ਼ਾਵਾਂ ਤੱਕ ਸਕੇਲ ਕਰਨ ਦਾ ਮਤਲਬ ਹੈ ਸੈਂਕੜੇ ਫਾਈਲਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਜੋ ਲਗਾਤਾਰ ਸਿੰਕ ਤੋਂ ਬਾਹਰ ਹੋ ਜਾਂਦੀਆਂ ਹਨ।

Lingo.dev CLI ਇਸਨੂੰ ਆਟੋਮੇਟ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਆਪਣੀਆਂ ਅਨੁਵਾਦ ਫਾਈਲਾਂ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੋ, ਇੱਕ ਕਮਾਂਡ ਚਲਾਓ, ਅਤੇ ਹਰ ਲੋਕੇਲ ਅੱਪਡੇਟ ਹੋ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਲਾਕਫਾਈਲ ਟਰੈਕ ਕਰਦੀ ਹੈ ਕਿ ਪਹਿਲਾਂ ਹੀ ਕੀ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸਲਈ ਤੁਸੀਂ ਸਿਰਫ਼ ਨਵੀਂ ਜਾਂ ਬਦਲੀ ਹੋਈ ਸਮੱਗਰੀ ਲਈ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ। JSON, YAML, CSV, PO ਫਾਈਲਾਂ, ਅਤੇ markdown ਨੂੰ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।

ਸੈੱਟਅੱਪ:

# Initialize project
npx lingo.dev@latest init

# Run translations
npx lingo.dev@latest run

ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:

  1. ਕੌਂਫਿਗਰ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਤੋਂ ਅਨੁਵਾਦਯੋਗ ਸਮੱਗਰੀ ਕੱਢਦਾ ਹੈ
  2. ਅਨੁਵਾਦ ਲਈ LLM ਪ੍ਰੋਵਾਈਡਰ ਨੂੰ ਸਮੱਗਰੀ ਭੇਜਦਾ ਹੈ
  3. ਅਨੁਵਾਦਿਤ ਸਮੱਗਰੀ ਨੂੰ ਫਾਈਲਸਿਸਟਮ ਵਿੱਚ ਵਾਪਸ ਲਿਖਦਾ ਹੈ
  4. ਪੂਰੇ ਹੋਏ ਅਨੁਵਾਦਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ i18n.lock ਫਾਈਲ ਬਣਾਉਂਦਾ ਹੈ (ਬੇਲੋੜੀ ਪ੍ਰੋਸੈਸਿੰਗ ਤੋਂ ਬਚਦਾ ਹੈ)

ਕੌਂਫਿਗਰੇਸ਼ਨ:

init ਕਮਾਂਡ ਇੱਕ i18n.json ਫਾਈਲ ਬਣਾਉਂਦੀ ਹੈ। ਲੋਕੇਲਾਂ ਅਤੇ ਬਕੇਟਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ:

{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

provider ਫੀਲਡ ਵਿਕਲਪਿਕ ਹੈ (ਡਿਫਾਲਟ Lingo.dev Engine ਹੈ)। ਕਸਟਮ LLM ਪ੍ਰੋਵਾਈਡਰਾਂ ਲਈ:

{
  "provider": {
    "id": "openai",
    "model": "gpt-4o-mini",
    "prompt": "Translate from {source} to {target}"
  }
}

ਸਮਰਥਿਤ LLM ਪ੍ਰੋਵਾਈਡਰ:

  • Lingo.dev Engine (ਸਿਫਾਰਸ਼ਿਤ)
  • OpenAI
  • Anthropic
  • Google
  • Mistral
  • OpenRouter
  • Ollama

ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →


Lingo.dev CI/CD

ਅਨੁਵਾਦ ਉਹ ਫੀਚਰ ਹੈ ਜੋ ਹਮੇਸ਼ਾ "ਲਗਭਗ ਪੂਰਾ" ਹੁੰਦਾ ਹੈ। ਇੰਜੀਨੀਅਰ ਲੋਕੇਲਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤੇ ਬਿਨਾਂ ਕੋਡ ਮਰਜ਼ ਕਰ ਦਿੰਦੇ ਹਨ। QA ਸਟੇਜਿੰਗ ਵਿੱਚ ਗੁੰਮ ਅਨੁਵਾਦਾਂ ਨੂੰ ਫੜਦਾ ਹੈ - ਜਾਂ ਇਸ ਤੋਂ ਵੀ ਮਾੜਾ, ਯੂਜ਼ਰ ਉਹਨਾਂ ਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਫੜਦੇ ਹਨ। ਮੂਲ ਕਾਰਨ: ਅਨੁਵਾਦ ਇੱਕ ਮੈਨੁਅਲ ਸਟੈਪ ਹੈ ਜਿਸ ਨੂੰ ਡੈੱਡਲਾਈਨ ਦੇ ਦਬਾਅ ਹੇਠ ਛੱਡਣਾ ਆਸਾਨ ਹੈ।

Lingo.dev CI/CD ਅਨੁਵਾਦਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕ ਬਣਾਉਂਦਾ ਹੈ। ਹਰ ਪੁਸ਼ ਅਨੁਵਾਦ ਨੂੰ ਟਰਿੱਗਰ ਕਰਦੀ ਹੈ। ਗੁੰਮ ਸਟਰਿੰਗਾਂ ਕੋਡ ਦੇ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਭਰ ਜਾਂਦੀਆਂ ਹਨ। ਕਿਸੇ ਅਨੁਸ਼ਾਸਨ ਦੀ ਲੋੜ ਨਹੀਂ - ਪਾਈਪਲਾਈਨ ਇਸ ਨੂੰ ਸੰਭਾਲਦੀ ਹੈ।

ਸਮਰਥਿਤ ਪਲੇਟਫਾਰਮ:

  • GitHub Actions
  • GitLab CI/CD
  • Bitbucket Pipelines

GitHub Actions ਸੈੱਟਅੱਪ:

.github/workflows/translate.yml ਬਣਾਓ:

name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

ਸੈੱਟਅੱਪ ਲੋੜਾਂ:

  1. ਰਿਪੋਜ਼ਿਟਰੀ ਸੀਕਰੇਟਸ ਵਿੱਚ LINGODOTDEV_API_KEY ਸ਼ਾਮਲ ਕਰੋ (Settings > Secrets and variables > Actions)
  2. PR ਵਰਕਫਲੋਜ਼ ਲਈ: Settings > Actions > General ਵਿੱਚ "Allow GitHub Actions to create and approve pull requests" ਨੂੰ ਸਮਰੱਥ ਕਰੋ

ਵਰਕਫਲੋ ਵਿਕਲਪ:

ਅਨੁਵਾਦਾਂ ਨੂੰ ਸਿੱਧੇ ਕਮਿਟ ਕਰੋ:

uses: lingodotdev/lingo.dev@main
with:
  api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

ਅਨੁਵਾਦਾਂ ਨਾਲ ਪੁੱਲ ਰਿਕੁਐਸਟਾਂ ਬਣਾਓ:

uses: lingodotdev/lingo.dev@main
with:
  api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
  pull-request: true
env:
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

ਉਪਲਬਧ ਇਨਪੁੱਟਸ:

ਇਨਪੁੱਟ ਡਿਫਾਲਟ ਵੇਰਵਾ
api-key (ਲੋੜੀਂਦਾ) Lingo.dev API ਕੁੰਜੀ
pull-request false ਸਿੱਧੇ ਕਮਿਟ ਕਰਨ ਦੀ ਬਜਾਏ PR ਬਣਾਓ
commit-message "feat: update translations via @LingoDotDev" ਕਸਟਮ ਕਮਿਟ ਸੁਨੇਹਾ
pull-request-title "feat: update translations via @LingoDotDev" ਕਸਟਮ PR ਸਿਰਲੇਖ
working-directory "." ਚਲਾਉਣ ਲਈ ਡਾਇਰੈਕਟਰੀ
parallel false ਸਮਾਨਾਂਤਰ ਪ੍ਰੋਸੈਸਿੰਗ ਸਮਰੱਥ ਕਰੋ

ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →


Lingo.dev SDK

ਸਥਿਰ ਅਨੁਵਾਦ ਫਾਈਲਾਂ UI ਲੇਬਲਾਂ ਲਈ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਉਪਭੋਗਤਾ-ਜਨਰੇਟਿਡ ਸਮੱਗਰੀ ਬਾਰੇ ਕੀ? ਚੈਟ ਸੁਨੇਹੇ, ਉਤਪਾਦ ਵੇਰਵੇ, ਸਹਾਇਤਾ ਟਿਕਟਾਂ - ਉਹ ਸਮੱਗਰੀ ਜੋ ਬਿਲਡ ਸਮੇਂ ਮੌਜੂਦ ਨਹੀਂ ਹੁੰਦੀ, ਪਹਿਲਾਂ ਤੋਂ ਅਨੁਵਾਦਿਤ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਤੁਸੀਂ ਗੈਰ-ਅਨੁਵਾਦਿਤ ਟੈਕਸਟ ਦਿਖਾਉਣ ਜਾਂ ਕਸਟਮ ਅਨੁਵਾਦ ਪਾਈਪਲਾਈਨ ਬਣਾਉਣ ਵਿੱਚ ਫਸ ਜਾਂਦੇ ਹੋ।

Lingo.dev SDK ਰਨਟਾਈਮ ਤੇ ਸਮੱਗਰੀ ਦਾ ਅਨੁਵਾਦ ਕਰਦਾ ਹੈ। ਕੋਈ ਵੀ ਟੈਕਸਟ, ਆਬਜੈਕਟ, ਜਾਂ HTML ਪਾਸ ਕਰੋ ਅਤੇ ਸਥਾਨਿਕ ਸੰਸਕਰਣ ਵਾਪਸ ਪ੍ਰਾਪਤ ਕਰੋ। ਰੀਅਲ-ਟਾਈਮ ਚੈਟ, ਗਤੀਸ਼ੀਲ ਸੂਚਨਾਵਾਂ, ਜਾਂ ਕਿਸੇ ਵੀ ਸਮੱਗਰੀ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ ਜੋ ਡਿਪਲਾਇਮੈਂਟ ਤੋਂ ਬਾਅਦ ਆਉਂਦੀ ਹੈ। JavaScript, PHP, Python, ਅਤੇ Ruby ਲਈ ਉਪਲਬਧ।

ਇੰਸਟਾਲੇਸ਼ਨ:

npm install lingo.dev

ਵਰਤੋਂ:

import { LingoDotDevEngine } from "lingo.dev/sdk";

const lingoDotDev = new LingoDotDevEngine({
  apiKey: process.env.LINGODOTDEV_API_KEY,
});

// Translate objects (preserves structure)
const translated = await lingoDotDev.localizeObject(
  { greeting: "Hello", farewell: "Goodbye" },
  { sourceLocale: "en", targetLocale: "es" },
);
// { greeting: "Hola", farewell: "Adiós" }

// Translate text
const text = await lingoDotDev.localizeText("Hello!", {
  sourceLocale: "en",
  targetLocale: "fr",
});

// Translate to multiple languages at once
const results = await lingoDotDev.batchLocalizeText("Hello!", {
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de"],
});

// Translate chat (preserves speaker names)
const chat = await lingoDotDev.localizeChat(
  [{ name: "Alice", text: "Hello!" }],
  { sourceLocale: "en", targetLocale: "es" },
);

// Translate HTML (preserves markup)
const html = await lingoDotDev.localizeHtml("<h1>Welcome</h1>", {
  sourceLocale: "en",
  targetLocale: "de",
});

// Detect language
const locale = await lingoDotDev.recognizeLocale("Bonjour le monde");
// "fr"

ਉਪਲਬਧ SDKs:

ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →


Lingo.dev Compiler

ਰਵਾਇਤੀ i18n ਦਖਲਅੰਦਾਜ਼ੀ ਵਾਲਾ ਹੈ। ਤੁਸੀਂ ਹਰ ਸਟ੍ਰਿੰਗ ਨੂੰ t() ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਲਪੇਟਦੇ ਹੋ, ਅਨੁਵਾਦ ਕੁੰਜੀਆਂ ਦੀ ਖੋਜ ਕਰਦੇ ਹੋ (home.hero.title.v2), ਸਮਾਨਾਂਤਰ JSON ਫਾਈਲਾਂ ਨੂੰ ਸੰਭਾਲਦੇ ਹੋ, ਅਤੇ ਆਪਣੇ ਕੰਪੋਨੈਂਟਸ ਨੂੰ ਸਥਾਨੀਕਰਨ ਬੋਇਲਰਪਲੇਟ ਨਾਲ ਫੁੱਲਦੇ ਦੇਖਦੇ ਹੋ। ਇਹ ਇੰਨਾ ਥਕਾਊ ਹੈ ਕਿ ਟੀਮਾਂ ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ ਨੂੰ ਉਦੋਂ ਤੱਕ ਮੁਲਤਵੀ ਕਰ ਦਿੰਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਇਹ ਇੱਕ ਵਿਸ਼ਾਲ ਰੀਫੈਕਟਰ ਨਹੀਂ ਬਣ ਜਾਂਦਾ।

Lingo.dev Compiler ਰਸਮੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਖਤਮ ਕਰਦਾ ਹੈ। ਸਾਦੇ ਅੰਗਰੇਜ਼ੀ ਟੈਕਸਟ ਨਾਲ React ਕੰਪੋਨੈਂਟਸ ਲਿਖੋ। Compiler ਬਿਲਡ ਟਾਈਮ 'ਤੇ ਅਨੁਵਾਦਯੋਗ ਸਟ੍ਰਿੰਗਾਂ ਦਾ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ ਅਤੇ ਸਥਾਨਿਕ ਰੂਪਾਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਜਨਰੇਟ ਕਰਦਾ ਹੈ। ਕੋਈ keys ਨਹੀਂ, ਕੋਈ JSON ਫਾਈਲਾਂ ਨਹੀਂ, ਕੋਈ wrapper functions ਨਹੀਂ - ਸਿਰਫ਼ React ਕੋਡ ਜੋ ਕਈ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ।

ਇੰਸਟਾਲੇਸ਼ਨ:

pnpm install @lingo.dev/compiler

ਪ੍ਰਮਾਣਿਕਤਾ:

# Recommended: Sign up at lingo.dev and login
npx lingo.dev@latest login

# Alternative: Add API key to .env
LINGODOTDEV_API_KEY=your_key_here

# Or use direct LLM providers (Groq, OpenAI, Anthropic, Google)
GROQ_API_KEY=your_key

ਸੰਰਚਨਾ (Next.js):

// next.config.ts
import type { NextConfig } from "next";
import { withLingo } from "@lingo.dev/compiler/next";

const nextConfig: NextConfig = {};

export default async function (): Promise<NextConfig> {
  return await withLingo(nextConfig, {
    sourceRoot: "./app",
    sourceLocale: "en",
    targetLocales: ["es", "fr", "de"],
    models: "lingo.dev",
    dev: { usePseudotranslator: true },
  });
}

ਸੰਰਚਨਾ (Vite):

// vite.config.ts
import { lingoCompilerPlugin } from "@lingo.dev/compiler/vite";

export default defineConfig({
  plugins: [
    lingoCompilerPlugin({
      sourceRoot: "src",
      sourceLocale: "en",
      targetLocales: ["es", "fr", "de"],
      models: "lingo.dev",
      dev: { usePseudotranslator: true },
    }),
    react(),
  ],
});

Provider ਸੈੱਟਅੱਪ:

// app/layout.tsx (Next.js)
import { LingoProvider } from "@lingo.dev/compiler/react";

export default function RootLayout({ children }) {
  return (
    <LingoProvider>
      <html>
        <body>{children}</body>
      </html>
    </LingoProvider>
  );
}

ਭਾਸ਼ਾ ਸਵਿੱਚਰ:

import { useLocale, setLocale } from "@lingo.dev/compiler/react";

export function LanguageSwitcher() {
  const locale = useLocale();
  return (
    <select value={locale} onChange={(e) => setLocale(e.target.value)}>
      <option value="en">English</option>
      <option value="es">Español</option>
    </select>
  );
}

ਡਿਵੈਲਪਮੈਂਟ: npm run dev (pseudotranslator ਵਰਤਦਾ ਹੈ, ਕੋਈ API ਕਾਲਾਂ ਨਹੀਂ)

ਪ੍ਰੋਡਕਸ਼ਨ: usePseudotranslator: false ਸੈੱਟ ਕਰੋ, ਫਿਰ next build

.lingo/ ਡਾਇਰੈਕਟਰੀ ਨੂੰ version control ਵਿੱਚ commit ਕਰੋ।

ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ:

  • ਜ਼ੀਰੋ runtime performance cost
  • ਕੋਈ translation keys ਜਾਂ JSON ਫਾਈਲਾਂ ਨਹੀਂ
  • ਕੋਈ t() functions ਜਾਂ <T> wrapper components ਨਹੀਂ
  • JSX ਵਿੱਚ ਅਨੁਵਾਦਯੋਗ ਟੈਕਸਟ ਦਾ ਆਟੋਮੈਟਿਕ ਪਤਾ ਲਗਾਉਣਾ
  • TypeScript ਸਹਾਇਤਾ
  • ਬਹੁਵਚਨਾਂ ਲਈ ICU MessageFormat
  • data-lingo-override attribute ਰਾਹੀਂ ਮੈਨੁਅਲ ਓਵਰਰਾਈਡਸ
  • ਬਿਲਟ-ਇਨ translation editor widget

ਬਿਲਡ ਮੋਡਸ:

  • pseudotranslator: placeholder translations ਨਾਲ ਡਿਵੈਲਪਮੈਂਟ ਮੋਡ (ਕੋਈ API ਖਰਚੇ ਨਹੀਂ)
  • real: LLMs ਵਰਤਦੇ ਹੋਏ ਅਸਲ ਅਨੁਵਾਦ ਜਨਰੇਟ ਕਰੋ
  • cache-only: CI ਤੋਂ ਪਹਿਲਾਂ ਤੋਂ ਜਨਰੇਟ ਕੀਤੇ ਅਨੁਵਾਦਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ (ਕੋਈ API ਕਾਲਾਂ ਨਹੀਂ)

ਸਮਰਥਿਤ ਫਰੇਮਵਰਕਸ:

  • Next.js (React Server Components ਨਾਲ App Router)
  • Vite + React (SPA ਅਤੇ SSR)

ਵਾਧੂ ਫਰੇਮਵਰਕ ਸਹਾਇਤਾ ਯੋਜਨਾਬੱਧ ਹੈ।

ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →


ਯੋਗਦਾਨ

ਯੋਗਦਾਨ ਦਾ ਸਵਾਗਤ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇਹਨਾਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ਾਂ ਦਾ ਪਾਲਣ ਕਰੋ:

  1. ਮੁੱਦੇ: ਬੱਗ ਰਿਪੋਰਟ ਕਰੋ ਜਾਂ ਫੀਚਰ ਦੀ ਬੇਨਤੀ ਕਰੋ
  2. ਪੁੱਲ ਰਿਕੁਐਸਟਾਂ: ਤਬਦੀਲੀਆਂ ਸਬਮਿਟ ਕਰੋ
    • ਹਰੇਕ PR ਲਈ ਇੱਕ changeset ਦੀ ਲੋੜ ਹੈ: pnpm new (ਜਾਂ ਗੈਰ-ਰਿਲੀਜ਼ ਤਬਦੀਲੀਆਂ ਲਈ pnpm new:empty)
    • ਸਬਮਿਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਟੈਸਟ ਪਾਸ ਹੋ ਜਾਣ
  3. ਡਿਵੈਲਪਮੈਂਟ: ਇਹ ਇੱਕ pnpm + turborepo monorepo ਹੈ
    • ਡਿਪੈਂਡੈਂਸੀਆਂ ਇੰਸਟਾਲ ਕਰੋ: pnpm install
    • ਟੈਸਟ ਚਲਾਓ: pnpm test
    • ਬਿਲਡ: pnpm build

ਸਹਾਇਤਾ: Discord ਕਮਿਊਨਿਟੀ

ਸਟਾਰ ਇਤਿਹਾਸ

ਜੇਕਰ ਤੁਹਾਨੂੰ Lingo.dev ਉਪਯੋਗੀ ਲੱਗਦਾ ਹੈ, ਤਾਂ ਸਾਨੂੰ ਇੱਕ ਸਟਾਰ ਦਿਓ ਅਤੇ 10,000 ਸਟਾਰ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਸਾਡੀ ਮਦਦ ਕਰੋ!

[

Star History Chart

](https://www.star-history.com/#lingodotdev/lingo.dev&Date)

ਸਥਾਨਿਕ ਦਸਤਾਵੇਜ਼ੀਕਰਨ

ਉਪਲਬਧ ਅਨੁਵਾਦ:

English中文日本語한국어EspañolFrançaisРусскийУкраїнськаDeutschItalianoالعربيةעבריתहिन्दीPortuguês (Brasil)বাংলাفارسیPolskiTürkçeاردوभोजपुरीঅসমীয়াગુજરાતીमराठीଓଡ଼ିଆਪੰਜਾਬੀසිංහලதமிழ்తెలుగు

ਨਵੀਂ ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰਨਾ:

  1. i18n.json ਵਿੱਚ BCP-47 ਫਾਰਮੈਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਲੋਕੇਲ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ
  2. ਇੱਕ ਪੁੱਲ ਰਿਕੁਐਸਟ ਸਬਮਿਟ ਕਰੋ

BCP-47 ਲੋਕੇਲ ਫਾਰਮੈਟ: language[-Script][-REGION]

  • language: ISO 639-1/2/3 (lowercase): en, zh, bho
  • Script: ISO 15924 (title case): Hans, Hant, Latn
  • REGION: ISO 3166-1 alpha-2 (uppercase): US, CN, IN
  • ਉਦਾਹਰਨਾਂ: en, pt-BR, zh-Hans, sr-Cyrl-RS