স্কিপ করে মূল কন্টেন্ট এ যান

অনুবাদ কন্ট্রিবিউশন

ওয়ার্ডপ্রেস প্লেগ্রাউন্ডের ডকুমেন্টেশন অনুবাদ করে বিশ্বব্যাপী দর্শকদের কাছে এটি সহজলভ্য করতে সাহায্য করুন। এই গাইড শুরু করার জন্য আপনার প্রয়োজনীয় সবকিছু প্রদান করে। অনুবাদ কন্ট্রিবিউশন অন্য যেকোনো ডকুমেন্টেশন পরিবর্তনের মতো একই ওয়ার্কফ্লো অনুসরণ করে। আপনি হয় WordPress/wordpress-playground রিপোজিটরি ফর্ক করে আপনার পরিবর্তন সহ একটি পুল রিকোয়েস্ট (PR) তৈরি করতে পারেন অথবা গিটহাব UI ব্যবহার করে সরাসরি পেজ এডিট করতে পারেন।

:::তথ্য কন্ট্রিবিউশন ওয়ার্কফ্লো (ফর্কিং, PR তৈরি ইত্যাদি) সম্পর্কে বিস্তারিত গাইডের জন্য, অনুগ্রহ করে আমাদের ডকুমেন্টেশন কন্ট্রিবিউশন গাইড দেখুন :::

অনুবাদ কীভাবে কাজ করে

প্লেগ্রাউন্ডের ডকুমেন্টেশন সাইট Docusaurus দিয়ে তৈরি, যা ইন্টারন্যাশনালাইজেশন (i18n) ফিচার হ্যান্ডেল করে।

:::তথ্য Docusaurus কীভাবে অনুবাদ ম্যানেজ করে সে সম্পর্কে আরো জানতে, অফিসিয়াল Docusaurus ডকুমেন্টেশনের ইন্টারন্যাশনালাইজেশন সেকশন দেখুন। :::

কনফিগারেশন

সহজলভ্য ভাষাগুলো packages/docs/site/docusaurus.config.js ফাইলে সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ:

i18n: {
defaultLocale: 'en',
path: 'i18n',
locales: ['en', 'fr'],
localeConfigs: {
en: {
label: 'English',
path: 'en',
},
fr: {
label: 'French',
path: 'fr',
},
},
}

ফাইল স্ট্রাকচার

সমস্ত অনুবাদিত ডকুমেন্টেশন পেজ packages/docs/site/i18n/ ডিরেক্টরির মধ্যে অবস্থিত, ভাষা কোড অনুযায়ী সাজানো।

একটি ভাষা সঠিকভাবে কাজ করার জন্য, এর ফাইল স্ট্রাকচার অবশ্যই packages/docs/site/docs-এ পাওয়া মূল ইংরেজি ডকুমেন্টেশনের মতো হতে হবে।

উদাহরণস্বরূপ, docs/main/intro.md-এর স্প্যানিশ (es) অনুবাদ অবশ্যই এখানে রাখতে হবে: packages/docs/site/i18n/es/docusaurus-plugin-content-docs/current/main/intro.md

যদি কোনো নির্দিষ্ট ভাষার জন্য অনুবাদিত ফাইল না থাকে, Docusaurus স্বয়ংক্রিয়ভাবে সেই পেজের ইংরেজি ভার্সনে ফলব্যাক করবে।

অনুবাদ ফাইল জেনারেট করা

একটি নতুন ভাষা যোগ করার সময়, আপনি packages/docs/site ডিরেক্টরি থেকে নিম্নলিখিত কমান্ড চালিয়ে UI স্ট্রিংগুলোর (যেমন বাটন লেবেল এবং নেভিগেশন আইটেম) জন্য প্রয়োজনীয় JSON ফাইল জেনারেট করতে পারেন:

npm run write-translations -- --locale <LANGUAGE_CODE>

সঠিক i18n docusaurus.config.js কনফিগারেশন এবং i18n-এর অধীনে ফাইল থাকলে, প্রজেক্টের রুট থেকে npm run build:docs চালালে প্রতিটি ভাষার জন্য dist-এর অধীনে নির্দিষ্ট ফোল্ডার তৈরি হবে।

লোকালি অনুবাদ টেস্ট করা

একটি বিদ্যমান ভাষার জন্য আপনার পরিবর্তন প্রিভিউ করতে:

  1. উপযুক্ত ভাষা ডিরেক্টরিতে একটি অনুবাদিত ফাইল মডিফাই বা যোগ করুন, যেমন packages/docs/site/i18n/es/docusaurus-plugin-content-docs/current/
  2. /packages/docs/site ডিরেক্টরি থেকে, আপনার টার্গেট ভাষার জন্য লোকাল ডেভেলপমেন্ট সার্ভার চালান। উদাহরণস্বরূপ, স্প্যানিশ (es) টেস্ট করতে:

npm run dev -- --locale es

ভাষা সুইচার

ভাষা সুইচার হলো একটি ড্রপডাউন মেনু যা ইউজারদের তাদের পছন্দের ভাষা সিলেক্ট করতে দেয়।

Documentation Language Switcher

ভাষা সুইচারে একটি ভাষা পাবলিকলি উপলব্ধ করা

আমরা শুধুমাত্র তখনই সুইচারে একটি ভাষা যোগ করার পরামর্শ দিই যখন ডকুমেন্টেশনের একটি উল্লেখযোগ্য অংশ অনুবাদ করা হয়েছে। এটি একটি দুর্বল ইউজার এক্সপেরিয়েন্স এড়িয়ে যায় যেখানে নতুন ভাষায় সুইচ করলে বেশিরভাগ অনুবাদহীন ইংরেজি কনটেন্ট দেখা যায়।

একটি গাইডলাইন হিসেবে, একটি ভাষা শুধুমাত্র তখনই সুইচারে পাবলিকলি উপলব্ধ করা উচিত যখন সম্পূর্ণ "ডকুমেন্টেশন" হাব অনুবাদ করা হয়, এই মূল সেকশনগুলো সহ:

একটি ভাষার জন্য i18n সেটআপ সম্পূর্ণ হলে এবং i18n-এর অধীনে সঠিক ফাইল স্ট্রাকচার থাকলে সমস্ত ভাষা উপলব্ধ হয়।

ধরে নিই fr ভাষা হলো প্রথম ভাষা যেখানে ডকুমেন্টেশন হাব পেজগুলো (দ্রুত শুরু গাইড, প্লেগ্রাউন্ড ওয়েব ইন্সট্যান্স, প্লেগ্রাউন্ড সম্পর্কে, গাইড,...) সম্পূর্ণ ফ্রেঞ্চে অনুবাদ করা হয়েছে, সেই ব্রাঞ্চে docusaurus.config.js এভাবে দেখতে হবে যাতে npm run build:docs সঠিকভাবে fr সাবসাইট জেনারেট করে এবং localeDropdown ভাষা সুইচারে শুধুমাত্র ফ্রেঞ্চ ভাষা দেখায়।

  {
"i18n": {
"defaultLocale": "en",
"path": "i18n",
"locales": [
"en",
"fr"
],
"localeConfigs": {
"en": {
"label": "English",
"path": "en"
},
"fr": {
"label": "French",
"path": "fr"
}
}
}
},
{
"type": "localeDropdown",
"position": "right"
}

অনুবাদ ওয়ার্কফ্লো

একটি পেজ অনুবাদ করতে এই স্টেপগুলো অনুসরণ করুন:

  1. বিদ্যমান অনুবাদ ইস্যু চেক করুন: প্রথমে, রিপোজিটরি ইস্যু সার্চ করুন দেখতে আপনার কাঙ্ক্ষিত ভাষার জন্য একটি ট্র্যাকিং ইস্যু ইতিমধ্যে আছে কিনা। যদি থাকে, আপনি যে পেজ(গুলো) অনুবাদ করতে চান সেগুলো ক্লেইম করতে ইস্যুতে কমেন্ট করুন।
  2. একটি নতুন অনুবাদ ইস্যু তৈরি করুন: যদি কোনো ইস্যু না থাকে, ভাষার জন্য অনুবাদ অগ্রগতি ট্র্যাক করতে একটি নতুন তৈরি করুন। আপনি ইস্যু #2202 অনুসরণ করতে পারেন এবং অগ্রগতি ট্র্যাক করতে নীচের মার্কডাউন চেকলিস্ট ব্যবহার করুন।
  3. ফাইল অনুবাদ করুন:

.

  • The assets are listed at packages/docs/site/static/img/ only place assets inside the translation folder when it requires localized content.

  • Once the translations are ready, check if the docs build script is running properly npm run build:docs. -->

  • আপনার কাছে ডকুমেন্টেশনের সর্বশেষ ভার্সন আছে কিনা চেক করুন

  • মূল .md ফাইল packages/docs/site/docs/... থেকে ভাষা ডিরেক্টরিতে সংশ্লিষ্ট পাথে কপি করুন (যেমন, packages/docs/site/i18n/<LANGUAGE_CODE>/...)। মূল ফাইল স্ট্রাকচার রেপ্লিকেট করা অত্যন্ত গুরুত্বপূর্ণ।

  • নতুন ফাইলের কনটেন্ট অনুবাদ করুন, মূল কনটেন্ট কমেন্ট আউট রেখে <!-- English Content -->

  • অ্যাসেটগুলো packages/docs/site/static/img/-তে তালিকাভুক্ত, শুধুমাত্র লোকালাইজড কনটেন্ট প্রয়োজন হলে অনুবাদ ফোল্ডারে অ্যাসেট রাখুন।

  • অনুবাদ রেডি হলে, ডক্স বিল্ড স্ক্রিপ্ট সঠিকভাবে চলছে কিনা চেক করুন npm run build:docs

  1. আপনার পরিবর্তন সহ একটি পুল রিকোয়েস্ট তৈরি করুন
  • অনুবাদ চিহ্নিত করতে সাহায্য করতে টাইটেলে [i18n] প্রিফিক্স যোগ করুন
  • আপনি যে পেজগুলো অনুবাদ করেছেন সেগুলো বর্ণনা করুন
  • wordpress.slack.com-এ #playground বা #polyglots-এ রিভিউ রিকোয়েস্ট করুন

:::তথ্য আমরা অল্প সংখ্যক অনুবাদিত পেজ সহ পুল রিকোয়েস্ট জমা দেওয়ার জোর সুপারিশ করি। এই পদ্ধতি রিভিউ প্রক্রিয়া সহজ করে এবং আপনার কাজের আরো ধীরে ধীরে এবং ম্যানেজেবল ইন্টিগ্রেশনের সুযোগ দেয়। :::

অনুবাদ ট্র্যাকিং টেমপ্লেট

আপনি আপনার ট্র্যাকিং ইস্যুতে নিম্নলিখিত মার্কডাউন ব্যবহার করতে পারেন:

## Remaining translation pages

<details open>
<summary><h3>Main</h3></summary>

- about
- [ ] build.md #2291
- [ ] index.md #2282
- [ ] launch.md #2292
- [ ] test.md #2302
- contributing
- [ ] code.md #2218
- [ ] coding-standards.md #2219
- [ ] contributor-day.md #2246
- [ ] contributor-badge.md
- [ ] documentation.md #2271
- [ ] translations.md #2201
- guides
- [ ] for-plugin-developers.md #2210
- [ ] for-theme-developers.md #2211
- [ ] index.md #2209
- [ ] providing-content-for-your-demo.md #2213
- [ ] wordpress-native-ios-app.md #2214
- [ ] intro.md #2198
- [ ] quick-start-guide.md #2204
- [ ] resources.md #2207
- [ ] web-instance.md #2208

</details>

<details open>
<summary><h3>Blueprints</h3></summary>

- blueprints
- [ ] 01-index.md #2305
- [ ] 02-using-blueprints.md #2330
- [ ] 03-data-format.md #2340
- [ ] 04-resources.md #2352
- [ ] 05-steps-shorthands.md #2386
- [ ] 05-steps.md #2386
- [ ] 06-bundles.md #2438
- [ ] 07-json-api-and-function-api.md #2438
- [ ] 08-examples.md #2474
- [ ] 09-troubleshoot-and-debug-blueprints.md #2474
- [ ] intro.md #2489
- tutorial
- [ ] 01-what-are-blueprints-what-you-can-do-with-them.md #2511
- [ ] 02-how-to-load-run-blueprints.md #2526
- [ ] 03-build-your-first-blueprint.md
- [ ] index.md #2511
</details>

<details open>
<summary><h3>Developers</h3></summary>

- [ ] developers
- [ ] 03-build-an-app
- [ ] 01-index.md
- [ ] 05-local-development
- [ ] 01-wp-now.md
- [ ] 02-vscode-extension.md
- [ ] 03-php-wasm-node.md
- [ ] intro.md
- [ ] 06-apis
- [ ] 01-index.md
- [ ] javascript-api
- [ ] 01-index.md
- [ ] 02-index-html-vs-remote-html.md
- [ ] 03-playground-api-client.md
- [ ] 04-blueprint-json-in-api-client.md
- [ ] 05-blueprint-functions-in-api-client.md
- [ ] 06-mount-data.md
- [ ] query-api
- [ ] 01-index.md
- [ ] 23-architecture
- [ ] 01-index.md
- [ ] 02-wasm-php-overview.md
- [ ] 03-wasm-php-compiling.md
- [ ] 04-wasm-php-javascript-module.md
- [ ] 05-wasm-php-filesystem.md
- [ ] 07-wasm-asyncify.md
- [ ] 08-browser-concepts.md
- [ ] 09-browser-tab-orchestrates-execution.md
- [ ] 10-browser-iframe-rendering.md
- [ ] 11-browser-php-worker-threads.md
- [ ] 12-browser-service-workers.md
- [ ] 13-browser-scopes.md
- [ ] 14-browser-cross-process-communication.md
- [ ] 15-wordpress.md
- [ ] 16-wordpress-database.md
- [ ] 17-browser-wordpress.md
- [ ] 18-host-your-own-playground.md
- [ ] 24-limitations
- [ ] 01-index.md
- [ ] intro-devs.md
</details>

গিটহাব ওয়েব ইন্টারফেস দিয়ে অনুবাদ করা

আপনি যদি ডেভেলপার টুল ব্যবহার করতে না চান, আপনি সহজেই গিটহাব ওয়েবসাইটে সরাসরি অনুবাদ কন্ট্রিবিউট করতে পারেন। আপনার শুধু একটি ফ্রি গিটহাব অ্যাকাউন্ট দরকার।

এই গাইড আপনাকে দেখাবে কীভাবে একটি বিদ্যমান অনুবাদ আপডেট করবেন এবং একটি সম্পূর্ণ নতুন যোগ করবেন।


বিদ্যমান অনুবাদ আপডেট করা

  1. ফাইলে নেভিগেট করুন। রিপোজিটরিতে যান এবং আপনি যে ফাইল আপডেট করতে চান সেটি খুঁজুন। অনুবাদ ফাইলগুলো তাদের ভাষা কোডের নামে একটি ফোল্ডারে অবস্থিত। উদাহরণস্বরূপ, সমস্ত ফ্রেঞ্চ অনুবাদ packages/docs/site/i18n/fr/docusaurus-plugin-content-docs/current/-এ আছে।
  1. এডিটর ওপেন করুন। আপনি যে ফাইল এডিট করতে চান সেটি সিলেক্ট করুন এবং উপরের ডান কোণে পেন্সিল আইকনে (Edit this file) ক্লিক করুন। Editing existing translation
  1. রিপোজিটরি ফর্ক করুন। গিটহাব স্বয়ংক্রিয়ভাবে আপনাকে Fork this repository করতে বলবে। এটি আপনার জন্য নিরাপদে এডিট করার জন্য একটি পার্সোনাল কপি তৈরি করে। এগিয়ে যেতে বাটনে ক্লিক করুন।
  1. আপনার পরিবর্তন করুন। এডিটর আপনার ব্রাউজারে ওপেন হবে। আপনার উন্নত অনুবাদ দিয়ে টেক্সট আপডেট করুন।
  1. আপনার পরিবর্তন প্রস্তাব করুন। আপনার কাজ শেষ হলে, পেজের নিচে স্ক্রল করুন। আপনার পরিবর্তনের একটি সংক্ষিপ্ত টাইটেল এবং বিবরণ যোগ করুন (যেমন, "ফ্রেঞ্চ অনুবাদে টাইপো ঠিক করা") এবং Propose changes বাটনে ক্লিক করুন।
  1. একটি পুল রিকোয়েস্ট তৈরি করুন। পরবর্তী স্ক্রিনে, Create pull request বাটনে ক্লিক করুন। এটি রিভিউয়ের জন্য প্রজেক্ট মেইনটেইনারদের কাছে আপনার পরিবর্তন জমা দেবে।

একটি নতুন অনুবাদ যোগ করা

  1. সঠিক ফাইল পাথ নির্ধারণ করুন। নতুন ফাইলের পাথ এবং নাম অবশ্যই মূল ইংরেজি ফাইলের মতো হতে হবে।

    • ইংরেজি মূল: packages/docs/site/docs/main/contributing/documentation.md
    • ফ্রেঞ্চ অনুবাদ: packages/docs/site/i18n/fr/docusaurus-plugin-content-docs/current/main/contributing/documentation.md
  1. নতুন ফাইল তৈরি করুন। সঠিক ভাষা ফোল্ডারে নেভিগেট করুন (যেমন, /packages/docs/site/i18n/fr/docusaurus-plugin-content-docs/current/)। ক্লিক করুন Add file > Create new fileCreating a new translation
  • প্রো টিপ: ফাইলনেম বক্সে, আপনি ফোল্ডার নাম টাইপ করে তার পরে / দিয়ে নতুন ফোল্ডার তৈরি করতে পারেন। উদাহরণস্বরূপ, main/contributing/documentation.md টাইপ করলে স্বয়ংক্রিয়ভাবে main এবং contributing ফোল্ডার তৈরি হবে।
  1. রিপোজিটরি ফর্ক করুন। আগের মতোই, গিটহাব আপনাকে Fork this repository করতে বলবে। আপনার পার্সোনাল কপি তৈরি করতে বাটনে ক্লিক করুন।
  1. অনুবাদিত কনটেন্ট যোগ করুন। এডিটর একটি খালি ফাইল নিয়ে ওপেন হবে। রিভিউয়ারদের সুবিধার জন্য, অনুগ্রহ করে মূল ইংরেজি ফাইল থেকে কনটেন্ট কপি করুন এবং এটি আপনার নতুন ফাইলে পেস্ট করুন, কমেন্ট ট্যাগে র‍্যাপ করে। এর নিচে আপনার অনুবাদ যোগ করুন।

    <!--
    This is the original English content.
    It helps reviewers understand the context of the translation.
    -->

    Ceci est le contenu traduit en français.

    GitHub UI Editor

  1. নতুন ফাইল কমিট করুন। আপনার কাজ শেষ হলে, নিচে স্ক্রল করুন। আপনার নতুন ফাইলের জন্য একটি টাইটেল যোগ করুন (যেমন, "Add French translation for documentation.md") এবং Commit new file বাটনে ক্লিক করুন।
  1. একটি পুল রিকোয়েস্ট তৈরি করুন। পরবর্তী স্ক্রিনে, রিভিউয়ের জন্য আপনার নতুন অনুবাদ জমা দিতে Create pull request ক্লিক করুন।

রিভিউ প্রক্রিয়া

রিভিউ প্রক্রিয়া সহজ করতে, অনুগ্রহ করে অনুবাদিত কনটেন্টের ঠিক উপরে মূল ইংরেজি টেক্সট কমেন্ট হিসেবে রাখুন।

<!--
👋 Hi! Welcome to WordPress Playground documentation.

Playground is an online tool to experiment and learn about WordPress. This site (Documentation) is where you will find all the information you need to start using Playground.
-->

👋 Olá! Bem vindo a documentação oficial do WordPress Playground.

WordPress Playground é uma ferramenta online onde podes testar e aprender mais sobre o WordPress. Nesta página(Documentação) irá encontrar todas as informações necessárias para começar a trabalhar com o Playground.

:::তথ্য এই অভ্যাসটি মেইনটেন্যান্স টিমকে পুরনো অনুবাদ চিহ্নিত করতেও সাহায্য করে। যখন মূল ইংরেজি কনটেন্ট আপডেট করা হয়, আমরা কোডবেসে পুরনো টেক্সট (এখন কমেন্টে) সার্চ করতে পারি এবং রিভিউয়ের জন্য সংশ্লিষ্ট অনুবাদ ফ্ল্যাগ করতে পারি। :::

আপনার PR-এর ভাষায় দক্ষ একজন রিভিউয়ার খুঁজে পেতে, আপনি Make WordPress Polyglots ব্লগে একটি রিকোয়েস্ট পোস্ট করতে পারেন। উপযুক্ত জেনারেল ট্রান্সলেশন এডিটরদের (GTEs) নোটিফাই করতে লোকেল ট্যাগ (যেমন, জাপানিজের জন্য #ja) অন্তর্ভুক্ত করতে ভুলবেন না।

যখন PR মার্জ হয়, সেই পেজের অনুবাদিত ভার্সন https://wordpress.github.io/wordpress-playground/{%LANGUAGE%}-এর অধীনে দেখা যাবে, আপনি যদি প্রথমবার কন্ট্রিবিউট করছেন তাহলে আপনার কন্ট্রিবিউটর ব্যাজ রিকোয়েস্ট করুন।