diff --git a/config/i18n-scripts.json b/config/i18n-scripts.json new file mode 100644 index 000000000..fbcba0e4f --- /dev/null +++ b/config/i18n-scripts.json @@ -0,0 +1,44 @@ +{ + "languageConfig": { + "ar": { + "direction": "rtl", + "script": "arabic", + "fontFamily": "'Noto Naskh Arabic', 'Arabic UI', system-ui, -apple-system" + }, + "bn": { + "direction": "ltr", + "script": "bengali", + "fontFamily": "'Noto Sans Bengali', 'Bangla Sangam MN', system-ui, -apple-system" + }, + "fa": { + "direction": "rtl", + "script": "arabic", + "fontFamily": "'Noto Naskh Arabic', 'Arabic UI', system-ui, -apple-system" + }, + "he": { + "direction": "rtl", + "script": "hebrew", + "fontFamily": "'Noto Sans Hebrew', 'Hebrew UI', system-ui, -apple-system" + }, + "hi": { + "direction": "ltr", + "script": "devanagari", + "fontFamily": "'Noto Sans Devanagari', 'Devanagari Sangam MN', system-ui, -apple-system" + }, + "mr": { + "direction": "ltr", + "script": "devanagari", + "fontFamily": "'Noto Sans Devanagari', 'Devanagari Sangam MN', system-ui, -apple-system" + }, + "ne": { + "direction": "ltr", + "script": "devanagari", + "fontFamily": "'Noto Sans Devanagari', 'Devanagari Sangam MN', system-ui, -apple-system" + }, + "si": { + "direction": "ltr", + "script": "sinhala", + "fontFamily": "'Noto Sans Sinhala', 'Sinhala Sangam MN', system-ui, -apple-system" + } + } +} \ No newline at end of file diff --git a/i18n.json b/i18n.json index ee8737c6d..c5c51e5ab 100644 --- a/i18n.json +++ b/i18n.json @@ -2,25 +2,68 @@ "version": "1.10", "locale": { "source": "en", + "config": { + "direction": "ltr", + "script": "latin" + }, "targets": [ - "ru", - "he", - "fr", - "es", - "de", - "zh-Hans", - "ko", - "ja", - "it", - "ar", - "hi", - "pt-BR", - "uk-UA", - "bn", - "fa", - "pl", - "tr", - "ur" + { + "code": "ar" + }, + { + "code": "bn" + }, + { + "code": "de" + }, + { + "code": "es" + }, + { + "code": "fa" + }, + { + "code": "fr" + }, + { + "code": "he" + }, + { + "code": "hi" + }, + { + "code": "it" + }, + { + "code": "ja" + }, + { + "code": "ko" + }, + { + "code": "mr" + }, + { + "code": "ne" + }, + { + "code": "pl" + }, + { + "code": "pt-BR" + }, + { + "code": "ru" + }, + { + "code": "tr" + }, + { + "code": "uk-UA" + }, + { + "code": "zh-Hans" + } ] }, "buckets": { diff --git a/packages/sdk/src/components/LocalizedText.tsx b/packages/sdk/src/components/LocalizedText.tsx new file mode 100644 index 000000000..349f98652 --- /dev/null +++ b/packages/sdk/src/components/LocalizedText.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { useScriptStyle } from '../hooks/useScriptStyle'; + +interface LocalizedTextProps { + locale: string; + children: React.ReactNode; + className?: string; + style?: React.CSSProperties; + as?: keyof JSX.IntrinsicElements; +} + +export function LocalizedText({ locale, children, className = '', style = {}, as: Component = 'div' }: LocalizedTextProps) { + const { style: scriptStyle } = useScriptStyle(locale); + + return ( + + {children} + + ); +} + +interface LocalizedContentProps { + locale: string; + html: string; + className?: string; + style?: React.CSSProperties; +} + +export function LocalizedContent({ locale, html, className = '', style = {} }: LocalizedContentProps) { + const { style: scriptStyle } = useScriptStyle(locale); + + return ( +
+ ); +} \ No newline at end of file diff --git a/packages/sdk/src/hooks/useScriptStyle.ts b/packages/sdk/src/hooks/useScriptStyle.ts new file mode 100644 index 000000000..02b1d4774 --- /dev/null +++ b/packages/sdk/src/hooks/useScriptStyle.ts @@ -0,0 +1,23 @@ +import { useMemo } from 'react'; +import { getScriptConfig, getScriptStyle } from '../utils/scriptConfig'; + +export function useScriptStyle(locale: string) { + return useMemo(() => { + const config = getScriptConfig(locale); + const style = getScriptStyle(locale); + + return { + config, + style, + isRTL: config?.direction === 'rtl', + hasSpecialScript: Boolean(config?.script && config.script !== 'latin'), + }; + }, [locale]); +} + +export function useScriptDirection(locale: string) { + return useMemo(() => { + const config = getScriptConfig(locale); + return config?.direction || 'ltr'; + }, [locale]); +} \ No newline at end of file diff --git a/packages/sdk/src/utils/scriptConfig.ts b/packages/sdk/src/utils/scriptConfig.ts new file mode 100644 index 000000000..07fe7a67c --- /dev/null +++ b/packages/sdk/src/utils/scriptConfig.ts @@ -0,0 +1,60 @@ +import { readFileSync } from 'fs'; +import { join } from 'path'; + +interface ScriptConfig { + direction: 'ltr' | 'rtl'; + script: string; + fontFamily: string; +} + +interface I18nScriptConfig { + languageConfig: { + [key: string]: ScriptConfig; + } +} + +// Module-level cache for the parsed config +let cachedConfig: I18nScriptConfig | null | undefined = undefined; + +export function getScriptConfig(locale: string): ScriptConfig | null { + try { + if (cachedConfig === undefined) { + const configPath = join(__dirname, '../config/i18n-scripts.json'); + cachedConfig = JSON.parse(readFileSync(configPath, 'utf8')) as I18nScriptConfig; + } + return cachedConfig?.languageConfig[locale] || null; + } catch (error) { + console.error('Error loading script configuration:', error); + cachedConfig = null; + return null; + } +} + +export function getDirectionClass(locale: string): string { + const config = getScriptConfig(locale); + return config?.direction || 'ltr'; +} + +export function getScriptStyle(locale: string): { [key: string]: string } { + const config = getScriptConfig(locale); + if (!config) return {}; + + return { + direction: config.direction, + fontFamily: config.fontFamily, + ...(config.direction === 'rtl' && { + textAlign: 'right', + }), + }; +} + +export function wrapWithScriptStyle(content: string, locale: string): string { + const config = getScriptConfig(locale); + if (!config) return content; + + const style = `direction: ${config.direction}; font-family: ${config.fontFamily}; ${ + config.direction === 'rtl' ? 'text-align: right;' : '' + }`; + + return `
${content}
`; +} \ No newline at end of file diff --git a/readme/mr.md b/readme/mr.md new file mode 100644 index 000000000..311a448f4 --- /dev/null +++ b/readme/mr.md @@ -0,0 +1,196 @@ + + + Lingo.dev + +

+ +

+ + ⚡ Lingo.dev - LLMs सह त्वरित स्थानिकीकरणासाठी मुक्त-स्रोत, AI-संचालित i18n साधने. + +

+ +
+ +

+ Lingo.dev कंपाइलर • + Lingo.dev CLI • + Lingo.dev CI/CD • + Lingo.dev SDK +

+ +

+ + रिलीज + + + परवाना + + + शेवटचा कमिट + + + महिन्यातील #१ DevTool + + + आठवड्यातील #१ उत्पादन + + + दिवसातील #२ उत्पादन + + + Github वर ट्रेंडिंग + +

+ +--- + +## कंपाइलरची ओळख 🆕 + +**Lingo.dev कंपाइलर** हे एक मुफत, मुक्त-स्रोत कंपाइलर मिडलवेअर आहे, जे विद्यमान React कंपोनंट्समध्ये कोणताही बदल न करता बिल्ड टाइमला कोणत्याही React अॅपला बहुभाषिक बनवण्यासाठी डिझाइन केले आहे. + +एकदाच इन्स्टॉल करा: + +```bash +npm install lingo.dev +``` + +तुमच्या बिल्ड कॉन्फिगमध्ये सक्षम करा: + +```js +import lingoCompiler from "lingo.dev/compiler"; + +const existingNextConfig = {}; + +export default lingoCompiler.next({ + sourceLocale: "en", + targetLocales: ["es", "fr"], +})(existingNextConfig); +``` + +`next build` चालवा आणि स्पॅनिश आणि फ्रेंच बंडल्स पॉप आउट पहा ✨ + +संपूर्ण मार्गदर्शनासाठी [डॉक्युमेंटेशन वाचा →](https://lingo.dev/compiler), आणि तुमच्या सेटअपमध्ये मदत मिळवण्यासाठी [आमच्या Discord मध्ये सामील व्हा](https://lingo.dev/go/discord). + +--- + +### या रिपोमध्ये काय आहे? + +| टूल | थोडक्यात | डॉक्युमेंटेशन | +| ----------- | ----------------------------------------------------------------------------- | ---------------------------------------- | +| **कंपाइलर** | बिल्ड-टाइम React स्थानिकीकरण | [/compiler](https://lingo.dev/compiler) | +| **CLI** | वेब आणि मोबाईल अॅप्स, JSON, YAML, मार्कडाउन, + अधिकसाठी एक-कमांड स्थानिकीकरण | [/cli](https://lingo.dev/cli) | +| **CI/CD** | प्रत्येक पुशवर ऑटो-कमिट भाषांतरे + आवश्यक असल्यास पुल रिक्वेस्ट तयार करा | [/ci](https://lingo.dev/ci) | +| **SDK** | वापरकर्ता-निर्मित सामग्रीसाठी रिअलटाइम भाषांतर | [/sdk](https://lingo.dev/sdk) | + +खाली प्रत्येकासाठी त्वरित माहिती दिली आहे 👇 + +--- + +### ⚡️ Lingo.dev CLI + +तुमच्या टर्मिनलमधून थेट कोड आणि सामग्रीचे भाषांतर करा. + +```bash +npx lingo.dev@latest run +``` + +हे प्रत्येक स्ट्रिंगची फिंगरप्रिंट बनवते, निकाल कॅशे करते, आणि फक्त बदललेल्या गोष्टींचे पुन्हा भाषांतर करते. + +ते कसे सेट करायचे ते जाणून घेण्यासाठी [डॉक्युमेंटेशन अनुसरा →](https://lingo.dev/cli). + +--- + +### 🔄 Lingo.dev CI/CD + +स्वयंचलितपणे संपूर्ण भाषांतरे शिप करा. + +```yaml +# .github/workflows/i18n.yml +name: Lingo.dev i18n +on: [push] + +jobs: + i18n: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: lingodotdev/lingo.dev@main + with: + api-key: ${{ secrets.LINGODOTDEV_API_KEY }} +``` + +तुमचे रिपो हिरवे आणि तुमचे उत्पादन मॅन्युअल पायऱ्यांशिवाय बहुभाषिक ठेवते. + +[डॉक्युमेंटेशन वाचा →](https://lingo.dev/ci) + +--- + +### 🧩 Lingo.dev SDK + +डायनॅमिक सामग्रीसाठी प्रति-विनंती तात्काळ भाषांतर. + +```ts +import { LingoDotDevEngine } from "lingo.dev/sdk"; + +const lingoDotDev = new LingoDotDevEngine({ + apiKey: "your-api-key-here", +}); + +const content = { + greeting: "Hello", + farewell: "Goodbye", + message: "Welcome to our platform", +}; + +const translated = await lingoDotDev.localizeObject(content, { + sourceLocale: "en", + targetLocale: "es", +}); +// Returns: { greeting: "Hola", farewell: "Adiós", message: "Bienvenido a nuestra plataforma" } +``` + +चॅट, वापरकर्ता टिप्पण्या आणि इतर रिअल-टाइम फ्लोसाठी उत्कृष्ट. + +[डॉक्युमेंटेशन वाचा →](https://lingo.dev/sdk) + +--- + +## 🤝 समुदाय + +आम्ही समुदाय-चालित आहोत आणि योगदानांचे स्वागत करतो! + +- एखादा विचार आहे? [एक इश्यू उघडा](https://github.com/lingodotdev/lingo.dev/issues) +- काहीतरी दुरुस्त करायचे आहे? [एक PR पाठवा](https://github.com/lingodotdev/lingo.dev/pulls) +- मदत हवी आहे? [आमच्या Discord मध्ये सामील व्हा](https://lingo.dev/go/discord) + +## ⭐ स्टार इतिहास + +जर तुम्हाला आमचे काम आवडत असेल, तर आम्हाला एक ⭐ द्या आणि ३,००० स्टार्सपर्यंत पोहोचण्यात आमची मदत करा! 🌟 + +[ + +![स्टार इतिहास चार्ट](https://api.star-history.com/svg?repos=lingodotdev/lingo.dev&type=Date) + +](https://www.star-history.com/#lingodotdev/lingo.dev&Date) + +## 🌐 इतर भाषांमध्ये रीडमी + +[English](https://github.com/lingodotdev/lingo.dev) • [中文](/readme/zh-Hans.md) • [日本語](/readme/ja.md) • [한국어](/readme/ko.md) • [Español](/readme/es.md) • [Français](/readme/fr.md) • [Русский](/readme/ru.md) • [Українська](/readme/uk-UA.md) • [Deutsch](/readme/de.md) • [Italiano](/readme/it.md) • [العربية](/readme/ar.md) • [עברית](/readme/he.md) • [हिन्दी](/readme/hi.md) • [বাংলা](/readme/bn.md) • [मराठी](/readme/mr.md) • [فارسی](/readme/fa.md) + +तुमची भाषा दिसत नाही? ती [`i18n.json`](./i18n.json) मध्ये जोडा आणि एक PR उघडा! + +---]]> \ No newline at end of file diff --git a/readme/ne.md b/readme/ne.md new file mode 100644 index 000000000..f882c2c4d --- /dev/null +++ b/readme/ne.md @@ -0,0 +1,115 @@ + + + Lingo.dev + +

+ +

+ + ⚡ Lingo.dev - खुला-स्रोत, AI-संचालित i18n टुलकिट LLMs को साथमा तत्काल स्थानीयकरणको लागि। + +

+ +
+ +

+ Lingo.dev कम्पाइलर • + Lingo.dev CLI • + Lingo.dev CI/CD • + Lingo.dev SDK +

+ +

+ + रिलिज + + + लाइसेन्स + + + अन्तिम कमिट + + + मासको #१ DevTool + + + हप्ताको #१ उत्पादन + + + दिनको #२ उत्पादन + + + Github मा ट्रेन्डिङ + +

+ +--- + +## कम्पाइलरसँग भेट्नुहोस् 🆕 + +**Lingo.dev कम्पाइलर** एक निःशुल्क, खुला-स्रोत कम्पाइलर मिडलवेयर हो, जुन कुनै पनि React एपलाई बिल्ड समयमा बहुभाषी बनाउन डिजाइन गरिएको छ, विद्यमान React कम्पोनेन्टहरूमा कुनै परिवर्तन गर्न आवश्यक छैन। + +एक पटक स्थापना गर्नुहोस्: + +```bash +npm install lingo.dev +``` + +तपाईंको बिल्ड कन्फिगमा सक्षम गर्नुहोस्: + +```js +import lingoCompiler from "lingo.dev/compiler"; + +const existingNextConfig = {}; + +export default lingoCompiler.next({ + sourceLocale: "en", + targetLocales: ["es", "fr"], +})(existingNextConfig); +``` + +`next build` चलाउनुहोस् र स्पेनिश र फ्रेन्च बन्डलहरू पप आउट हेर्नुहोस् ✨ + +पूर्ण गाइडको लागि [डकुमेन्टेसन पढ्नुहोस् →](https://lingo.dev/compiler), र तपाईंको सेटअपमा मद्दत प्राप्त गर्न [हाम्रो Discord मा सामेल हुनुहोस्](https://lingo.dev/go/discord)। + +--- + +### यो रिपोमा के-के छ? + +| टुल | संक्षिप्तमा | डकुमेन्टेसन | +| ------------ | --------------------------------------------------------------------------- | ----------------------------------------- | +| **कम्पाइलर** | बिल्ड-टाइम React स्थानीयकरण | [/compiler](https://lingo.dev/compiler) | +| **CLI** | वेब र मोबाइल एप्स, JSON, YAML, markdown र अन्यको लागि एक-कमान्ड स्थानीयकरण | [/cli](https://lingo.dev/cli) | +| **CI/CD** | हरेक पुशमा अटो-कमिट अनुवाद + आवश्यक भएमा पुल रिक्वेस्ट सिर्जना | [/ci](https://lingo.dev/ci) | +| **SDK** | प्रयोगकर्ता-सिर्जित सामग्रीको लागि रियलटाइम अनुवाद | [/sdk](https://lingo.dev/sdk) | + +तल प्रत्येकको लागि द्रुत जानकारी छ 👇 + +--- + +### ⚡️ Lingo.dev CLI + +सिधै तपाईंको टर्मिनलबाट कोड र सामग्री अनुवाद गर्नुहोस्। + +```bash +npx lingo.dev@latest run +``` + +यसले हरेक स्ट्रिङको फिंगरप्रिन्ट बनाउँछ, नतिजाहरू क्यास गर्छ, र केवल परिवर्तन भएका कुराहरूको मात्र पुन: अनुवाद गर्छ। + +यसलाई कसरी सेटअप गर्ने भन्ने जान्न [डकुमेन्टेसन पछ्याउनुहोस् →](https://lingo.dev/cli)। + +---]]> \ No newline at end of file diff --git a/readme/or.md b/readme/or.md index dd244b7a5..4b639da54 100644 --- a/readme/or.md +++ b/readme/or.md @@ -1,4 +1,4 @@ -

+ - ⚡ Lingo.dev - LLM ସହିତ ଶୀଘ୍ର ସ୍ଥାନୀୟକରଣ ପାଇଁ ଓପନ୍ ସୋର୍ସ, AI-ପାୱାର୍ଡ i୧୮n - ଟୁଲ୍କିଟ୍। + ⚡ Lingo.dev - ଓପନ-ସୋର୍ସ, AI-ସଂଚାଳିତ i18n ଟୁଲକିଟ୍ LLMs ସହିତ ତତ୍କାଳ ସ୍ଥାନୀୟକରଣ ପାଇଁ।


- Lingo.dev Compiler • - Lingo.dev MCP • + Lingo.dev କମ୍ପାଇଲରLingo.dev CLILingo.dev CI/CDLingo.dev SDK @@ -29,7 +27,7 @@ ମୁକ୍ତି @@ -44,21 +42,33 @@ alt="ଶେଷ କମିଟ୍" /> + + ମାସର #୧ DevTool + + + ସପ୍ତାହର #୧ ଉତ୍ପାଦ + + + ଦିନର #୨ ଉତ୍ପାଦ + + + Github ରେ ଟ୍ରେଣ୍ଡିଂ +

--- -## କମ୍ପାଇଲର୍ ବିଷୟରେ ଜାଣନ୍ତୁ 🆕 +## କମ୍ପାଇଲର ସହ ଭେଟନ୍ତୁ 🆕 -**Lingo.dev କମ୍ପାଇଲର୍** ଏକ ମାଗଣା, ଓପନ୍ ସୋର୍ସ ଉପକରଣ ଯାହାକି ଯେକୌଣସି React ଆପ୍ଲିକେସନ୍ କୁ ଏକାଧିକ ଭାଷା ସମର୍ଥନ କରିବାରେ ସାହାଯ୍ୟ କରେ | ଏହା ଆପ୍ଲିକେସନ୍ କୁ ବିଲ୍ଡ ସମୟରେ ଅନୁବାଦ କରିଥାଏ, କୌଣସି ବିଦ୍ୟମାନ React ଉପାଦାନକୁ ପରିବର୍ତ୍ତନ କରିବାର ଆବଶ୍ୟକତା ନାହିଁ | +**Lingo.dev କମ୍ପାଇଲର** ଏକ ମୁକ୍ତ, ଓପନ-ସୋର୍ସ କମ୍ପାଇଲର ମିଡଲୱେର, ଯାହା ବିଦ୍ୟମାନ React କମ୍ପୋନେଣ୍ଟଗୁଡ଼ିକରେ କୌଣସି ପରିବର୍ତ୍ତନ ଆବଶ୍ୟକ ନକରି ବିଲ୍ଡ ସମୟରେ ଯେକୌଣସି React ଆପ୍‌କୁ ବହୁଭାଷୀ କରିବା ପାଇଁ ଡିଜାଇନ୍ କରାଯାଇଛି। -ଥରେ ଏହା ସଂସ୍ଥାପିତ ହେଲେ: +ଥରେ ଇନଷ୍ଟଲ୍ କରନ୍ତୁ: ```bash npm install lingo.dev ``` -ଆପଣଙ୍କ ବିଲ୍ଡ କନଫିଗରେ, ଏହାକୁ ସକ୍ରିୟ କରନ୍ତୁ: +ଆପଣଙ୍କ ବିଲ୍ଡ କନଫିଗ୍‌ରେ ସକ୍ଷମ କରନ୍ତୁ: ```js import lingoCompiler from "lingo.dev/compiler"; @@ -71,114 +81,35 @@ export default lingoCompiler.next({ })(existingNextConfig); ``` -`next build` କମାଣ୍ଡ ଚଲାନ୍ତୁ ଏବଂ ଆପଣ ସ୍ପେନୀୟ ଏବଂ ଫରାସୀ ବଣ୍ଡଲଗୁଡ଼ିକ ଦେଖିବାକୁ ପାଇବେ। ✨ +`next build` ଚଲାନ୍ତୁ ଏବଂ ସ୍ପାନିଶ୍ ଓ ଫ୍ରେଞ୍ଚ ବଣ୍ଡଲଗୁଡ଼ିକ ପପ୍ ଆଉଟ୍ ଦେଖନ୍ତୁ ✨ -[ଦଲିଲଟି ପଢନ୍ତୁ। →](https://lingo.dev/compiler) ସମ୍ପୂର୍ଣ୍ଣ ଗାଇଡ୍ ପାଇଁ, ଏବଂ [ଆମର Discord ମୁଁ ଯୋଗ ଦେବି।](https://lingo.dev/go/discord) ଆପଣଙ୍କ ସେଟଅପ୍‌ରେ ସାହାଯ୍ୟ ପାଇଁ। +ସମ୍ପୂର୍ଣ୍ଣ ଗାଇଡ୍ ପାଇଁ [ଡକ୍ୟୁମେଣ୍ଟେସନ୍ ପଢ଼ନ୍ତୁ →](https://lingo.dev/compiler), ଏବଂ ଆପଣଙ୍କ ସେଟଅପ୍‌ରେ ସହାୟତା ପାଇବା ପାଇଁ [ଆମ Discord ରେ ଯୋଗ ଦିଅନ୍ତୁ](https://lingo.dev/go/discord)। --- -### ଏହି ରେପୋରେ କ’ଣ ଅଛି? +### ଏହି ରିପୋରେ କ'ଣ ଅଛି? -| ଉପକରଣ | ସଂକ୍ଷିପ୍ତ ବର୍ଣ୍ଣନା | ଡକ୍ୟୁମେଣ୍ଟ୍ | | -| -------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------- | --- | -| **ସଙ୍କଳନକାରୀ** | ନିର୍ମାଣ ସମୟ React ସ୍ଥାନୀକରଣ | [/compiler](https://lingo.dev/compiler) | -| **CLI** | ୱେବ୍ ଏବଂ ମୋବାଇଲ୍ ଆପ୍ସ, JSON, YAML, ମାର୍କଡାଉନ୍, + ଅଧିକ ପାଇଁ ଏକ-ଆଦେଶ ସ୍ଥାନୀକରଣ | [/cli](https://lingo.dev/cli) | -| **CI/CD** | ପ୍ରତ୍ୟେକ ପୁଶ୍ ଉପରେ ଅନୁବାଦଗୁଡ଼ିକୁ ସ୍ୱୟଂକ୍ରିୟ ଭାବେ କମିଟ୍ କରନ୍ତୁ। + ଆବଶ୍ୟକ ଅନୁସାରେ ଏକ ପୁଲ୍ ଅନୁରୋଧ ସୃଷ୍ଟିକରନ୍ତୁ। | [/ci](https://lingo.dev/ci) | -| **SDK** | ଉପଭୋକ୍ତାଙ୍କ ଦ୍ୱାରା ସୃଷ୍ଟି ହୋଇଥିବା ବିଷୟବସ୍ତୁ ପାଇଁ ରିଅଲଟାଇମ୍ ଅନୁବାଦ | [/sdk](https://lingo.dev/sdk) | +| ଟୁଲ୍ | ସଂକ୍ଷିପ୍ତରେ | ଡକ୍ୟୁମେଣ୍ଟେସନ୍ | +| ------------ | ----------------------------------------------------------------------------- | ------------------------------------------ | +| **କମ୍ପାଇଲର** | ବିଲ୍ଡ-ଟାଇମ୍ React ସ୍ଥାନୀୟକରଣ | [/compiler](https://lingo.dev/compiler) | +| **CLI** | ୱେବ୍ ଓ ମୋବାଇଲ୍ ଆପ୍ସ, JSON, YAML, markdown ଏବଂ ଅଧିକ ପାଇଁ ଏକ-କମାଣ୍ଡ ସ୍ଥାନୀୟକରଣ | [/cli](https://lingo.dev/cli) | +| **CI/CD** | ପ୍ରତ୍ୟେକ ପୁଶ୍‌ରେ ଅଟୋ-କମିଟ୍ ଅନୁବାଦ + ଆବଶ୍ୟକ ହେଲେ ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ତିଆରି | [/ci](https://lingo.dev/ci) | +| **SDK** | ବ୍ୟବହାରକାରୀ-ସୃଷ୍ଟି ସାମଗ୍ରୀ ପାଇଁ ରିୟଲଟାଇମ୍ ଅନୁବାଦ | [/sdk](https://lingo.dev/sdk) | -ପ୍ରତ୍ୟେକଟି କ’ଣ ପାଇଁ ତାହାର ଏକ ସଂକ୍ଷିପ୍ତ ସାରାଂଶ ନିମ୍ନରେ ଦିଆଯାଇଛି 👇 +ତଳେ ପ୍ରତ୍ୟେକ ପାଇଁ ଦ୍ରୁତ ସୂଚନା ଦିଆଯାଇଛି 👇 --- ### ⚡️ Lingo.dev CLI -ଆପଣ ନିଜ କମାଣ୍ଡ ଲାଇନରୁ ସିଧାସଳଖ କୋଡ୍ ଏବଂ ବିଷୟବସ୍ତୁ ଅନୁବାଦ କରିପାରିବେ | +ସିଧାସଳଖ ଆପଣଙ୍କ ଟର୍ମିନାଲରୁ କୋଡ୍ ଓ ବିଷୟବସ୍ତୁ ଅନୁବାଦ କରନ୍ତୁ। ```bash npx lingo.dev@latest run ``` -ଏହି ପ୍ରକ୍ରିୟା ପ୍ରତ୍ୟେକ ଷ୍ଟ୍ରିଙ୍ଗକୁ ଚିହ୍ନଟ କରି, ଫଳାଫଳଗୁଡ଼ିକୁ ସଂରକ୍ଷଣ କରି ଏବଂ କେବଳ ପରିବର୍ତ୍ତନ ହୋଇଥିବା ଅଂଶଗୁଡ଼ିକୁ ପୁନଃ ଅନୁବାଦ କରି କାର୍ଯ୍ୟ କରିଥାଏ | - -[[ଏହି ଡକ୍ୟୁମେଣ୍ଟ ଯାଞ୍ଚ କରନ୍ତୁ] →](https://lingo.dev/cli) କିପରି ଆରମ୍ଭ କରିବେ ଜାଣିବା ପାଇଁ - ---- - -### 🔄 Lingo.dev CI/CD - -ଆପଣାମୁହଁରେ ତ୍ରୁଟିଶୂନ୍ୟ ଅନୁବାଦ ପ୍ରଦାନ କରନ୍ତୁ। - -```yaml -# .github/workflows/i18n.yml -name: Lingo.dev i18n -on: [push] - -jobs: - i18n: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -ମାନୁଆଲ୍ ଷ୍ଟେପ୍ ବିନା ତୁମର ରେପୋ ସବୁଜ ଏବଂ ତୁମର ଉତ୍ପାଦକୁ ବହୁଭାଷୀ ରଖେ | - -[ଅଧିକ ବିବରଣୀ ପାଇଁ ଡକ୍ୟୁମେଣ୍ଟ ଯାଞ୍ଚ କରନ୍ତୁ →](https://lingo.dev/ci) - ---- - -### 🧩 Lingo.dev SDK - -ଗତିଶୀଳ ବିଷୟବସ୍ତୁ ପାଇଁ ତତକ୍ଷଣାତ୍ ଅନୁରୋଧ ଅନୁବାଦ | - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: "your-api-key-here", -}); - -const content = { - greeting: "Hello", - farewell: "Goodbye", - message: "Welcome to our platform", -}; - -const translated = await lingoDotDev.localizeObject(content, { - sourceLocale: "en", - targetLocale: "es", -}); -// Returns: { greeting: "Hola", farewell: "Adiós", message: "Bienvenido a nuestra plataforma" } -``` - -ଏହି ଉପକରଣଟି ଚାଟ୍, ଉପଭୋକ୍ତାଙ୍କ ମନ୍ତବ୍ୟ ଏବଂ ଅନ୍ୟାନ୍ୟ ଗତିଶୀଳ ପ୍ରବାହ ପରି ରିଅଲ୍-ଟାଇମରେ ବିଷୟବସ୍ତୁ ଅନୁବାଦ କରିବା ପାଇଁ ବହୁତ ଭଲ। - -[ଏଠାରେ ଡକ୍ୟୁମେଣ୍ଟେସନ୍ ଯାଞ୍ଚ କରନ୍ତୁ →](https://lingo.dev/sdk) - ---- - -## 🤝 ସମ୍ପ୍ରଦାୟ - -ଆମେ ଏକ ସମ୍ପ୍ରଦାୟ ଦ୍ୱାରା ପରିଚାଳିତ ଗୋଷ୍ଠୀ ଏବଂ ଅବଦାନକୁ ସ୍ୱାଗତ କରୁ! - -- ଯଦି ଆପଣଙ୍କର କୌଣସି ଧାରଣା ଅଛି, [ଏକ ପ୍ରସଙ୍ଗ ଖୋଲନ୍ତୁ](https://github.com/lingodotdev/lingo.dev/issues) -- ଯଦି ଆପଣ କିଛି ଠିକ୍ କରିବାକୁ ଚାହୁଁଛନ୍ତି, [ଏକ PR ପଠାନ୍ତୁ](https://github.com/lingodotdev/lingo.dev/pulls) -- ଯଦି ଆପଣଙ୍କୁ ସହାୟତା ଦରକାର, [ଆମର Discord ରେ ଯୋଗ ଦିଅନ୍ତୁ](https://lingo.dev/go/discord) - -## ⭐ ତାରା ଇତିହାସ - -ଯଦି ତୁମେ ଆମର କାମ ପସନ୍ଦ କରୁଛ, ଆମକୁ ଏକ give ଦିଅ ଏବଂ 5,000 ତାରକା ପାଖରେ ପହଞ୍ଚିବାରେ ସାହାଯ୍ୟ କର! - -[ - -![ତାରା ଇତିହାସ ଚାର୍ଟ](https://api.star-history.com/svg?repos=lingodotdev/lingo.dev&type=Date) - -](https://www.star-history.com/#lingodotdev/lingo.dev&Date) - -## 🌐 ଅନ୍ୟ ଭାଷାରେ ପ Read ଼ନ୍ତୁ | +ଏହା ପ୍ରତ୍ୟେକ ଷ୍ଟ୍ରିଙ୍ଗର ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ତିଆରି କରେ, ଫଳାଫଳଗୁଡ଼ିକୁ କ୍ୟାଶ୍ କରେ, ଏବଂ କେବଳ ପରିବର୍ତ୍ତିତ ଜିନିଷଗୁଡ଼ିକର ପୁନଃ ଅନୁବାଦ କରେ। -[English](https://github.com/lingodotdev/lingo.dev) • [中文](/readme/zh-Hans.md) • [日本語](/readme/ja.md) • [한국어](/readme/ko.md) • [Español](/readme/es.md) • [Français](/readme/fr.md) • [Русский](/readme/ru.md) • [Українська](/readme/uk-UA.md) • [Deutsch](/readme/de.md) • [Italiano](/readme/it.md) • [العربية](/readme/ar.md) • [עברית](/readme/he.md) • [हिन्दी](/readme/hi.md) • [বাংলা](/readme/bn.md) • [فارسی](/readme/fa.md) • [Bhojpuri](/readme/bho.md) +ଏହାକୁ କିପରି ସେଟ୍ ଅପ୍ କରିବେ ଜାଣିବା ପାଇଁ [ଡକ୍ୟୁମେଣ୍ଟେସନ୍ ଅନୁସରଣ କରନ୍ତୁ →](https://lingo.dev/cli)। -ଯଦି ଆପଣଙ୍କର ଭାଷା ତାଲିକାଭୁକ୍ତ ହୋଇନାହିଁ? ଏହା [`i18n.json`](./i18n.json) ଏକ PR ଯୋଡନ୍ତୁ ଏବଂ ଖୋଲନ୍ତୁ! +---]]> diff --git a/readme/si.md b/readme/si.md new file mode 100644 index 000000000..d59d60a87 --- /dev/null +++ b/readme/si.md @@ -0,0 +1,196 @@ + + + Lingo.dev + +

+ +

+ + ⚡ Lingo.dev - විවෘත-මූලාශ්‍ර, AI-බලගැන්වූ i18n මෙවලම් කට්ටලය LLMs සමඟ ක්ෂණික දේශීයකරණය සඳහා. + +

+ +
+ +

+ Lingo.dev සංකලකය • + Lingo.dev CLI • + Lingo.dev CI/CD • + Lingo.dev SDK +

+ +

+ + නිකුතුව + + + බලපත්‍රය + + + අවසන් කොමිට් + + + මාසයේ #1 DevTool + + + සතියේ #1 නිෂ්පාදනය + + + දවසේ #2 නිෂ්පාදනය + + + Github හි ප්‍රවණතා + +

+ +--- + +## සංකලකය හමුවන්න 🆕 + +**Lingo.dev සංකලකය** යනු නොමිලේ ලබාගත හැකි, විවෘත-මූලාශ්‍ර සංකලක මැදිවැර (middleware) එකකි, පවතින React සංරචක වෙනස් කිරීමකින් තොරව ගොඩනැගීමේ කාලයේදී ඕනෑම React යෙදුමක් බහුභාෂා සහිත කිරීමට නිර්මාණය කර ඇත. + +එක් වරක් ස්ථාපනය කරන්න: + +```bash +npm install lingo.dev +``` + +ඔබේ ගොඩනැගීමේ වින්‍යාසයේ සක්‍රිය කරන්න: + +```js +import lingoCompiler from "lingo.dev/compiler"; + +const existingNextConfig = {}; + +export default lingoCompiler.next({ + sourceLocale: "en", + targetLocales: ["es", "fr"], +})(existingNextConfig); +``` + +`next build` ධාවනය කර ස්පාඤ්ඤ සහ ප්‍රංශ බන්ඩල පැන නැගෙනු බලන්න ✨ + +සම්පූර්ණ මාර්ගෝපදේශය සඳහා [ලේඛන කියවන්න →](https://lingo.dev/compiler), සහ ඔබේ පිහිටුවීම සඳහා උපකාර ලබා ගැනීමට [අපගේ Discord වෙත එක්වන්න](https://lingo.dev/go/discord). + +--- + +### මෙම ගබඩාවේ ඇත්තේ කුමක්ද? + +| මෙවලම | කෙටි විස්තරය | ලේඛන | +| ------------ | -------------------------------------------------------------------------- | ---------------------------------------- | +| **සංකලකය** | ගොඩනැගීම්-කාල React දේශීයකරණය | [/compiler](https://lingo.dev/compiler) | +| **CLI** | වෙබ් හා ජංගම යෙදුම්, JSON, YAML, markdown, + තවත් දෑ සඳහා එක-විධාන දේශීයකරණය | [/cli](https://lingo.dev/cli) | +| **CI/CD** | සෑම push එකකටම ස්වයංක්‍රීය-කොමිට් පරිවර්තන + අවශ්‍ය නම් pull requests නිර්මාණය | [/ci](https://lingo.dev/ci) | +| **SDK** | පරිශීලක-ජනිත අන්තර්ගතය සඳහා තත්‍ය-කාලීන පරිවර්තනය | [/sdk](https://lingo.dev/sdk) | + +පහත සඳහන්වන්නේ එක් එක් දෑ සඳහා ක්ෂණික විස්තරයි 👇 + +--- + +### ⚡️ Lingo.dev CLI + +ඔබේ අග්‍රය (terminal) වෙතින් කේතය සහ අන්තර්ගතය කෙලින්ම පරිවර්තනය කරන්න. + +```bash +npx lingo.dev@latest run +``` + +එය සෑම පේළියක්ම ඇඟිලි සලකුණු කරයි, ප්‍රතිඵල සංචිත කරයි, සහ වෙනස් වූ දෑ පමණක් නැවත පරිවර්තනය කරයි. + +එය පිහිටුවන්නේ කෙසේදැයි දැනගැනීමට [ලේඛන අනුගමනය කරන්න →](https://lingo.dev/cli). + +--- + +### 🔄 Lingo.dev CI/CD + +ස්වයංක්‍රීයව සම්පූර්ණ පරිවර්තන යවන්න. + +```yaml +# .github/workflows/i18n.yml +name: Lingo.dev i18n +on: [push] + +jobs: + i18n: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: lingodotdev/lingo.dev@main + with: + api-key: ${{ secrets.LINGODOTDEV_API_KEY }} +``` + +මාර්ගපෙන්වූ පියවර නොමැතිව ඔබේ ගබඩාව කොළ පැහැයෙන් සහ ඔබේ නිෂ්පාදනය බහුභාෂා සහිතව තබයි. + +[ලේඛන කියවන්න →](https://lingo.dev/ci) + +--- + +### 🧩 Lingo.dev SDK + +ගතික අන්තර්ගතය සඳහා ඉල්ලුම්-පදනම් වූ ක්ෂණික පරිවර්තනය. + +```ts +import { LingoDotDevEngine } from "lingo.dev/sdk"; + +const lingoDotDev = new LingoDotDevEngine({ + apiKey: "your-api-key-here", +}); + +const content = { + greeting: "Hello", + farewell: "Goodbye", + message: "Welcome to our platform", +}; + +const translated = await lingoDotDev.localizeObject(content, { + sourceLocale: "en", + targetLocale: "es", +}); +// Returns: { greeting: "Hola", farewell: "Adiós", message: "Bienvenido a nuestra plataforma" } +``` + +පිළිසඳර, පරිශීලක අදහස් සහ වෙනත් තත්‍ය-කාලීන ගලායාම් සඳහා විශිෂ්ටයි. + +[ලේඛන කියවන්න →](https://lingo.dev/sdk) + +--- + +## 🤝 ප්‍රජාව + +අපි ප්‍රජාව විසින් මෙහෙයවන අතර දායකත්වයන් අගය කරමු! + +- අදහසක් තිබේද? [ගැටලුවක් විවෘත කරන්න](https://github.com/lingodotdev/lingo.dev/issues) +- යමක් නිවැරදි කිරීමට අවශ්‍යද? [PR එකක් යවන්න](https://github.com/lingodotdev/lingo.dev/pulls) +- උදව් අවශ්‍යද? [අපගේ Discord වෙත එක්වන්න](https://lingo.dev/go/discord) + +## ⭐ තරු ඉතිහාසය + +ඔබට අපගේ කාර්යය රුචි නම්, අපට තරුවක් ⭐ ලබා දී තරු 3,000 ක් කරා ළඟා වීමට උදව් කරන්න! 🌟 + +[ + +![තරු ඉතිහාස ප්‍රස්තාරය](https://api.star-history.com/svg?repos=lingodotdev/lingo.dev&type=Date) + +](https://www.star-history.com/#lingodotdev/lingo.dev&Date) + +## 🌐 වෙනත් භාෂාවලින් README + +[English](https://github.com/lingodotdev/lingo.dev) • [中文](/readme/zh-Hans.md) • [日本語](/readme/ja.md) • [한국어](/readme/ko.md) • [Español](/readme/es.md) • [Français](/readme/fr.md) • [Русский](/readme/ru.md) • [Українська](/readme/uk-UA.md) • [Deutsch](/readme/de.md) • [Italiano](/readme/it.md) • [العربية](/readme/ar.md) • [עברית](/readme/he.md) • [हिन्दी](/readme/hi.md) • [বাংলা](/readme/bn.md) • [සිංහල](/readme/si.md) • [فارسی](/readme/fa.md) + +ඔබේ භාෂාව නොපෙනේද? එය [`i18n.json`](./i18n.json) වෙත එක් කර PR එකක් විවෘත කරන්න! + +---]]> \ No newline at end of file