Skip to content

Latest commit

 

History

History
509 lines (382 loc) · 25.8 KB

File metadata and controls

509 lines (382 loc) · 25.8 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 ছেটআপ প্ৰম্পট: 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 wrapper অবিহনে বিল্ড-টাইম React স্থানীয়কৰণ withLingo() প্লাগইন

Lingo.dev MCP

React এপসমূহত i18n ছেটআপ কৰাটো কুখ্যাতভাৱে ত্ৰুটিপ্ৰৱণ - অভিজ্ঞ ডেভেলপাৰসকলৰ বাবেও। AI কোডিং সহায়কসমূহে ইয়াক আৰু বেয়া কৰি তোলে: তেওঁলোকে অস্তিত্বহীন APIসমূহ হেলুচিনেট কৰে, মিডলৱেৰ কনফিগাৰেশ্যন পাহৰি যায়, ৰাউটিং ভাঙি পেলায়, বা হেৰাই যোৱাৰ আগতে আধা সমাধান ইমপ্লিমেণ্ট কৰে। সমস্যাটো হ'ল যে i18n ছেটআপৰ বাবে একাধিক ফাইলৰ (ৰাউটিং, মিডলৱেৰ, কম্পোনেণ্ট, কনফিগাৰেশ্যন) মাজত সমন্বিত পৰিৱৰ্তনৰ এটা সুনিৰ্দিষ্ট ক্ৰমৰ প্ৰয়োজন, আৰু LLMসমূহে সেই প্ৰসংগ বজাই ৰাখিবলৈ সংগ্ৰাম কৰে।

Lingo.dev MCP এ AI সহায়কসমূহক ফ্ৰেমৱৰ্ক-নিৰ্দিষ্ট i18n জ্ঞানৰ গাঁথনিবদ্ধ প্ৰৱেশ প্ৰদান কৰি এইটো সমাধান কৰে। অনুমান কৰাৰ পৰিৱৰ্তে, আপোনাৰ সহায়কে Next.js, React Router, আৰু TanStack Start ৰ বাবে প্ৰমাণিত ইমপ্লিমেণ্টেশ্যন পেটাৰ্ন অনুসৰণ কৰে।

সমৰ্থিত IDEসমূহ:

  • 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 }}

অনুবাদৰ সৈতে pull request সৃষ্টি কৰক:

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"

উপলব্ধ SDK সমূহ:

ডকুমেণ্ট পঢ়ক →


Lingo.dev Compiler

পৰম্পৰাগত i18n আক্ৰমণাত্মক। আপুনি প্ৰতিটো ষ্ট্ৰিং t() ফাংশ্যনত ৰেপ কৰে, অনুবাদ কী উদ্ভাৱন কৰে (home.hero.title.v2), সমান্তৰাল JSON ফাইল মেইণ্টেইন কৰে, আৰু আপোনাৰ কম্পোনেণ্টবোৰ লোকেলাইজেশ্যন বয়লাৰপ্লেটৰ সৈতে ফুলি উঠা দেখে। ই ইমানেই ক্লান্তিকৰ যে টিমসমূহে আন্তৰ্জাতিকীকৰণ পিছুৱাই দিয়ে যেতিয়ালৈকে ই এটা বৃহৎ ৰিফেক্টৰ নহয়।

Lingo.dev Compiler এ আনুষ্ঠানিকতা আঁতৰায়। সাধাৰণ ইংৰাজী টেক্সটৰ সৈতে React কম্পোনেণ্ট লিখক। কম্পাইলাৰে বিল্ড টাইমত অনুবাদযোগ্য ষ্ট্ৰিং চিনাক্ত কৰে আৰু স্বয়ংক্ৰিয়ভাৱে স্থানীয়কৃত ভেৰিয়েণ্ট জেনেৰেট কৰে। কোনো কী নাই, কোনো JSON ফাইল নাই, কোনো ৰেপাৰ ফাংচন নাই - কেৱল 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(),
  ],
});

প্ৰ'ভাইডাৰ ছেটআপ:

// 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/ ডাইৰেক্টৰী ভাৰ্ছন কণ্ট্ৰ'লত কমিট কৰক।

মুখ্য বৈশিষ্ট্যসমূহ:

  • শূন্য ৰানটাইম পাৰফৰ্মেন্স খৰচ
  • কোনো অনুবাদ কী বা JSON ফাইল নাই
  • কোনো t() ফাংচন বা <T> ৰেপাৰ কম্পোনেণ্ট নাই
  • JSX ত অনুবাদযোগ্য টেক্সটৰ স্বয়ংক্ৰিয় চিনাক্তকৰণ
  • TypeScript সমৰ্থন
  • বহুবচনৰ বাবে ICU MessageFormat
  • data-lingo-override এট্ৰিবিউটৰ জৰিয়তে মেনুৱেল অভাৰৰাইড
  • বিল্ট-ইন অনুবাদ এডিটৰ ৱিজেট

বিল্ড ম'ডসমূহ:

  • pseudotranslator: প্লেচহ'ল্ডাৰ অনুবাদৰ সৈতে ডেভেলপমেণ্ট ম'ড (কোনো API খৰচ নাই)
  • real: LLM ব্যৱহাৰ কৰি প্ৰকৃত অনুবাদ জেনেৰেট কৰক
  • cache-only: CI ৰ পৰা পূৰ্ব-জেনেৰেট কৰা অনুবাদ ব্যৱহাৰ কৰি প্ৰডাকশ্যন ম'ড (কোনো API কল নাই)

সমৰ্থিত ফ্ৰেমৱৰ্কসমূহ:

  • Next.js (React Server Components ৰ সৈতে App Router)
  • Vite + React (SPA আৰু SSR)

অতিৰিক্ত ফ্ৰেমৱৰ্ক সমৰ্থন পৰিকল্পিত।

ডকুমেণ্টেশ্যন পঢ়ক →


অৱদান

অৱদান স্বাগতম। অনুগ্ৰহ কৰি এই নিৰ্দেশনাসমূহ অনুসৰণ কৰক:

  1. সমস্যাসমূহ: বাগ ৰিপ'ৰ্ট কৰক বা বৈশিষ্ট্যৰ অনুৰোধ কৰক
  2. পুল ৰিকুৱেষ্টসমূহ: পৰিৱৰ্তনসমূহ জমা দিয়ক
    • প্ৰতিটো PR ৰ বাবে এটা changeset প্ৰয়োজন: pnpm new (বা non-release পৰিৱৰ্তনৰ বাবে 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.jsonBCP-47 ফৰ্মেট ব্যৱহাৰ কৰি locale code যোগ কৰক
  2. এটা pull request জমা দিয়ক

BCP-47 locale ফৰ্মেট: 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