این صفحه به شما نشان میدهد که چگونه مستندات را برای زبانهای مختلف بومیسازی کنید.
شما میتوانید به افزودن یا بهبود محتوای یک محلیسازی موجود کمک کنید. در کانال Kubernetes در Slack، میتوانید برای هر محلیسازی یک کانال پیدا کنید. همچنین یک کانال عمومی در Slack تحت عنوان SIG Docs Localizations وجود دارد که میتوانید در آن سلام کنید.
ابتدا، برای یافتن کد دو حرفی زبان محلیسازی خود، به استاندارد ISO 639-1 مراجعه کنید. برای مثال، کد دو حرفی زبان کرهای «ko» است.
برخی از زبانها از نسخه کوچک کد کشور که توسط ISO-3166 تعریف شده است، همراه با کدهای زبان خود استفاده میکنند. برای مثال، کد زبان پرتغالی برزیلی «pt-br» است.
ابتدا، شاخهی خودتان را ایجاد کنید از مخزن kubernetes/website.
سپس، fork خود را clone کنید و تغییر پوشه دهید:
git clone https://github.com/<username>/website
cd website
پوشه محتوای تارنما شامل زیرپوشه هایی برای هر زبان است. محلیسازی که میخواهید به آن کمک کنید، درون content/<two-letter-code> قرار دارد.
صفحه بومیسازیشدهی انتخابی خود را بر اساس نسخه انگلیسی آن ایجاد یا بهروزرسانی کنید. برای جزئیات بیشتر به بومیسازی محتوا مراجعه کنید.
اگر متوجه یک بیدقتی فنی یا مشکل دیگری در مستندات بالادستی (انگلیسی) شدید، ابتدا باید مستندات بالادستی را اصلاح کنید و سپس با بهروزرسانی بومیسازی که روی آن کار میکنید، اصلاح معادل را تکرار کنید.
تغییرات در یک pull request را به یک محلیسازی واحد محدود کنید. بررسی درخواستهای ادغام که محتوا را در چندین محلیسازی تغییر میدهند، مشکلساز است.
برای پیشنهاد تغییرات در آن بومیسازی، از پیشنهاد بهبود محتوا پیروی کنید. این فرآیند مشابه پیشنهاد تغییرات در محتوای بالادستی (انگلیسی) است.
اگر میخواهید مستندات کوبرنتیز به یک زبان جدید بومیسازی شود، مراحل زیر را باید انجام دهید.
از آنجا که مشارکتکنندگان نمیتوانند درخواستهای ادغام خود را تأیید کنند، برای شروع بومیسازی حداقل به دو مشارکتکننده نیاز دارید.
همه تیمهای محلیسازی باید خودکفا باشند. تارنما کوبرنتیز خوشحال است که میزبان کار شما باشد، اما ترجمه آن و بهروز نگه داشتن محتوای محلیسازی شده موجود به عهده شماست.
شما باید کد دو حرفی زبان خود را بدانید. برای یافتن کد دو حرفی زبان محلی خود، به استاندارد ISO 639-1 مراجعه کنید. برای مثال، کد دو حرفی زبان کرهای «ko» است.
اگر زبانی که میخواهید بومیسازی آن را شروع کنید، در مکانهای مختلفی صحبت میشود و تفاوتهای قابل توجهی بین گونههای مختلف آن وجود دارد، ممکن است منطقی باشد که کد کشور ISO-3166 با حروف کوچک را با کد دو حرفی آن زبان ترکیب کنید. به عنوان مثال، پرتغالی برزیلی به صورت «pt-br» بومیسازی شده است.
وقتی محلیسازی جدیدی را شروع میکنید، باید قبل از اینکه پروژه کوبرنتیز بتواند تغییرات شما را در تارنما زنده منتشر کند، تمام حداقل محتوای مورد نیاز را محلیسازی کنید.
اسناد SIG میتوانند به شما کمک کنند تا روی یک شاخه جداگانه کار کنید تا بتوانید به تدریج به سمت آن هدف حرکت کنید.
به کوبرنتیز SIG اسناد اطلاع دهید که به ایجاد محلیسازی علاقهمند هستید! به کانال SIG Docs در Slack و کانال SIG Docs Localizations در Slack بپیوندید. سایر تیمهای محلیسازی خوشحال میشوند که در شروع کار به شما کمک کنند و به سوالات شما پاسخ دهند.
لطفاً شرکت در جلسه زیرگروه محلیسازی اسناد SIG را نیز در نظر بگیرید. ماموریت زیرگروه محلیسازی اسناد SIG، همکاری در تیمهای محلیسازی اسناد SIG برای همکاری در تعریف و مستندسازی فرآیندهای ایجاد راهنماهای مشارکتی محلیسازی شده است. علاوه بر این، زیرگروه محلیسازی اسناد SIG به دنبال فرصتهایی برای ایجاد و اشتراکگذاری ابزارهای مشترک در بین تیمهای محلیسازی و شناسایی الزامات جدید برای تیم رهبری اسناد SIG است. اگر در مورد این جلسه سؤالی دارید، لطفاً در کانال محلیسازی اسناد SIG سوال کنید.
همچنین میتوانید یک کانال Slack برای محلیسازی خود در مخزن kubernetes/community ایجاد کنید. برای مثالی از اضافه کردن یک کانال Slack،به pull request مربوط به اضافه کردن یک کانال برای زبان فارسی مراجعه کنید.
وقتی یک pull request محلیسازی باز کردید، میتوانید عضو سازمان گیت هاب کوبرنتیز شوید. هر فرد در تیم باید درخواست عضویت سازمان خود را (https://github.com/kubernetes/org/issues/new/choose) در مخزن kubernetes/org ایجاد کند.
در مرحله بعد، تیم محلیسازی کوبرنتیز خود را به sig-docs/teams.yaml اضافه کنید. برای مثالی از اضافه کردن یک تیم محلیسازی، به pull request برای اضافه کردن تیم محلیسازی اسپانیایی مراجعه کنید.
اعضای «@kubernetes/sig-docs--owners» میتوانند pull request هایی را تأیید کنند که محتوا را در پوشه محلیسازی شما (و فقط در داخل) تغییر میدهد: «/content//». برای هر محلیسازی، تیم @Kubernetes/sig-docs-**-reviews تکالیف بررسی درخواست های ادغام جدید را خودکار میکند. اعضای @kubernetes/website-maintainers میتوانند شاخههای محلیسازی جدیدی برای هماهنگی تلاشهای ترجمه ایجاد کنند. اعضای @kubernetes/website-milestone-maintainers میتوانند از /milestone
دستور Prow برای اختصاص یک نقطه عطف به مسائل یا درخواست های ادغام استفاده کنند.
در مرحله بعد، یک برچسب GitHub برای محلیسازی خود در مخزن kubernetes/test-infra اضافه کنید. یک برچسب به شما امکان میدهد مشکلات را فیلتر کرده و درخواستها را برای زبان خاص خود دریافت کنید.
برای مثالی از افزودن برچسب، به pull request مربوط به افزودن برچسب زبان ایتالیایی مراجعه کنید (https://github.com/kubernetes/test-infra/pull/11316).
تارنمای کوبرنتیز از Hugo به عنوان قالب وب خود استفاده میکند. پیکربندی Hugo این تارنما در فایل hugo.toml قرار دارد. برای پشتیبانی از محلیسازی جدید، باید hugo.toml را تغییر دهید.
یک بلوک پیکربندی برای زبان جدید به hugo.toml زیر بلوک [languages] موجود اضافه کنید. برای مثال، بلوک زبان آلمانی به شکل زیر خواهد بود:
[languages.de]
title = "Kubernetes"
languageName = "Deutsch (German)"
weight = 5
contentDir = "content/de"
languagedirection = "ltr"
[languages.de.params]
time_format_blog = "02.01.2006"
language_alternatives = ["en"]
description = "Produktionsreife Container-Orchestrierung"
languageNameLatinScript = "Deutsch"
نوار انتخاب زبان، مقدار مربوط به languageName را فهرست میکند. "نام زبان به خط بومی و زبان (نام زبان انگلیسی به خط لاتین)" را به languageName اختصاص دهید. برای مثال، languageName = "한국어 (کرهای)" یا languageName = "Deutsch (آلمانی)".
میتوان از languageNameLatinScript برای دسترسی به نام زبان به خط لاتین و استفاده از آن در قالب استفاده کرد. "نام زبان به خط لاتین" را به languageNameLatinScript اختصاص دهید. برای مثال، languageNameLatinScript ="Korean" یا languageNameLatinScript ="Deutsch".
پارامتر «وزن» ترتیب زبانها را در نوار انتخاب زبان تعیین میکند. وزن کمتر اولویت دارد و در نتیجه زبان اول ظاهر میشود. هنگام اختصاص پارامتر «وزن»، بررسی بلوک زبانهای موجود و تنظیم وزن آنها برای اطمینان از اینکه نسبت به همه زبانها، از جمله هر زبان جدید اضافه شده، به ترتیب مرتب شدهاند، مهم است.
برای اطلاعات بیشتر در مورد پشتیبانی چند زبانه Hugo، به "حالت چند زبانه" مراجعه کنید.
یک زیرشاخه مختص به زبان مورد نظر را به پوشه content در مخزن اضافه کنید. برای مثال، کد دو حرفی برای زبان آلمانی de است:
mkdir content/de
همچنین باید یک پوشه درون i18n برای [ رشته های محلی شده](# رشتههای-سایت-در-i18n) ایجاد کنید؛ برای مثال به محلی سازی های های موجود نگاه کنید.
برای مثال، برای زبان آلمانی، رشتهها در i18n/de/de.toml قرار دارند.
برای اضافه کردن اصول اخلاقی به زبان خودتان، یک pull request در مخزن cncf/foundation باز کنید.
برای تنظیم نقشهای هر کاربر که در بومیسازی مشارکت دارند، یک فایل OWNERS در زیرشاخهی زبان مربوطه با کد زیر ایجاد کنید:
sig-docs-**-reviews که در افزودن تیم محلیسازی خود در گیتهاب ایجاد شده است.sig-docs-**-owners که در افزودن تیم محلیسازی خود در گیتهاب ایجاد شده است.اطلاعات بیشتر در مورد فایل OWNERS را میتوانید در go.k8s.io/owners بیابید.
فایل OWNERS اسپانیایی با کد زبان es، به این شکل است:
# برای مشاهده اسناد مربوط به مالکین به نشانی https://go.k8s.io/owners مراجعه کنید.
# این پروژه محلیسازی زبان اسپانیایی است.
# تیمها و اعضا در نشانی https://github.com/orgs/kubernetes/teams قابل مشاهده هستند.
reviewers:
- sig-docs-es-reviews
approvers:
- sig-docs-es-owners
labels:
- area/localization
- language/es
پس از افزودن فایل OWNERS مختص زبان، فایل rootOWNERS_ALIASES را با تیمهای جدید کوبرنتیز برای محلیسازی، sig-docs-**-owners و sig-docs-**-reviews بهروزرسانی کنید.
برای هر تیم، لیست کاربران گیتهاب درخواستی را به ترتیب حروف الفبا در اضافه کردن تیم محلیسازی خود در گیتهاب اضافه کنید.
--- a/OWNERS_ALIASES
+++ b/OWNERS_ALIASES
@@ -48,6 +48,14 @@ aliases:
- stewart-yu
- xiangpengzhao
- zhangxiaoyu-zidif
+ sig-docs-es-owners: # Admins for Spanish content
+ - alexbrand
+ - raelga
+ sig-docs-es-reviews: # PR reviews for Spanish content
+ - alexbrand
+ - electrocucaracha
+ - glo-pena
+ - raelga
sig-docs-fr-owners: # Admins for French content
- perriea
- remyleone
در مرحله بعد، یک pull request را باز کنید (pull request) برای افزودن محلی سازی به مخزن «kubernetes/website». pull request قبل از تأیید باید شامل همه حداقل محتوای مورد نیاز باشد.
برای مثالی از افزودن یک محلیسازی جدید، به pull request برای فعالسازی مستندات به زبان فرانسوی مراجعه کنید.
برای راهنمایی سایر مشارکتکنندگان محلیسازی، یک فایل جدید README-**.md به بالاترین سطح kubernetes/website اضافه کنید، که در آن ** کد دو حرفی زبان است. برای مثال، یک فایل README آلمانی به صورت README-de.md خواهد بود.
مشارکت کنندگان بومی سازی را در فایل «README-**.md» بومی سازی شده راهنمایی کنید. همان اطلاعات موجود در «README.md» و همچنین شامل موارد زیر باشد:
پس از ایجاد فایل README محلی، پیوندی از فایل اصلی انگلیسی README.md به فایل اضافه کنید و اطلاعات تماس را به زبان انگلیسی در آن قرار دهید. میتوانید شناسه گیتهاب، نشانی رایانامه، کانال Slack یا روش دیگری برای تماس ارائه دهید. همچنین باید پیوندی به آییننامه رفتار انجمن محلی خود ارائه دهید.
وقتی محلیسازی الزامات گردش کار و حداقل خروجی را برآورده میکند، SIG اسناد موارد زیر را انجام میدهد:
بومیسازی تمام مستندات کوبرنتیز کار بسیار بزرگی است. اشکالی ندارد که از مقیاس کوچک شروع کنید و به مرور زمان آن را گسترش دهید.
حداقل، تمام بومیسازیها باید شامل موارد زیر باشند:
| توضیحات | نشانیهای اینترنتی |
|---|---|
| خانه | همه نشانیهای اینترنتی (URL) عنوان و زیرعنوان |
| نصب | همه نشانیهای اینترنتی (URL) عنوان و زیرعنوان |
| آموزشها | مبانی کوبرنتیز, سلام Minikube |
| رشتههای سایت | تمام رشتههای تارنما در یک فایل TOML جدید و بومیسازیشده |
| انتشارات | همه نشانیهای اینترنتی (URL) عنوان و زیرعنوان |
اسناد ترجمه شده باید در زیرشاخه content/**/ خود قرار گیرند، اما در غیر این صورت، همان مسیر URL منبع انگلیسی را دنبال کنند. به عنوان مثال، برای تهیه آموزش Kubernetes Basics برای ترجمه به آلمانی، یک زیرشاخه در زیر شاخه content/de/ ایجاد کنید و منبع یا پوشه انگلیسی را رونوشت کنید:
mkdir -p content/de/docs/tutorials
cp -ra content/en/docs/tutorials/kubernetes-basics/ content/de/docs/tutorials/
ابزارهای ترجمه میتوانند فرآیند ترجمه را سرعت بخشند. برای مثال، برخی از ویراستاران افزونههایی را برای ترجمه سریع متن ارائه میدهند.
برای اطمینان از دقت دستور زبان و معنی، اعضای تیم محلیسازی شما باید قبل از انتشار، تمام ترجمههای تولید شده توسط ماشین را با دقت بررسی کنند.
پروژه کوبرنتیز توصیه میکند در صورت امکان از تصاویر برداری (SVG) استفاده کنید، زیرا ویرایش این تصاویر برای تیم محلیسازی بسیار آسانتر است. اگر یک تصویر شطرنجی پیدا کردید که نیاز به بومی سازی دارد، ابتدا نسخه انگلیسی را به صورت تصویر برداری مجدد ترسیم کنید و سپس آن را بومی سازی کنید.
هنگام ترجمه متن درون تصاویر SVG (گرافیک برداری مقیاسپذیر)، پیروی از دستورالعملهای خاص برای اطمینان از دقت و حفظ سازگاری در نسخههای مختلف زبان ضروری است. تصاویر SVG معمولاً در مستندات کوبرنتیز برای نشان دادن مفاهیم، گردشهای کاری و نمودارها استفاده میشوند.
شناسایی متن قابل ترجمه: با شناسایی عناصر متنی درون تصویر SVG که نیاز به ترجمه دارند، شروع کنید. این عناصر معمولاً شامل برچسبها، زیرنویسها، حاشیهنویسیها یا هر متنی هستند که اطلاعات را منتقل میکند.
ویرایش فایلهای SVG: فایل های SVG مبتنی بر XML هستند، به این معنی که میتوان آنها را با استفاده از یک ویرایشگر متن ویرایش کرد. با این حال، توجه به این نکته مهم است که اکثر تصاویر مستندات در کوبرنتیز از قبل متن را به منحنی تبدیل میکنند تا از مشکلات سازگاری فونت جلوگیری شود. در چنین مواردی، توصیه میشود از نرمافزارهای تخصصی ویرایش SVG مانند Inkscape برای ویرایش استفاده کنید، فایل SVG را باز کنید و عناصر متنی را که نیاز به ترجمه دارند، پیدا کنید.
ترجمه متن: متن اصلی را با نسخه ترجمه شده به زبان مورد نظر جایگزین کنید. مطمئن شوید که متن ترجمه شده به طور دقیق معنای مورد نظر را منتقل میکند و در فضای موجود در تصویر جای میگیرد. هنگام کار با زبانهایی که از الفبای لاتین استفاده میکنند، باید از خانواده فونت Open Sans استفاده شود. میتوانید فونت Open Sans را از اینجا دریافت کنید: فونت Open Sans.
تبدیل متن به منحنی: همانطور که قبلاً ذکر شد، برای رفع مشکلات سازگاری فونت، توصیه میشود متن ترجمه شده را به منحنی یا مسیر تبدیل کنید. تبدیل متن به منحنی تضمین میکند که تصویر نهایی متن ترجمه شده را به درستی نمایش میدهد، حتی اگر سیستم کاربر فونت دقیق استفاده شده در SVG اصلی را نداشته باشد.
بررسی و آزمایش: پس از انجام ترجمههای لازم و تبدیل متن به منحنی، تصویر SVG بهروزرسانیشده را ذخیره و بررسی کنید تا از نمایش و ترازبندی صحیح متن اطمینان حاصل شود. پیشنمایش تغییرات محلی را بررسی کنید.
بومیسازیها باید بر اساس فایل های انگلیسی از یک نسخه خاص که توسط تیم بومیسازی هدفگذاری شده است، انجام شوند. هر تیم بومیسازی میتواند تصمیم بگیرد که کدام نسخه را هدف قرار دهد، که در زیر به آن نسخه هدف گفته میشود.
برای یافتن فایل های منبع برای نسخه هدف خود:
به مخزن تارنمای کوبرنتیز در نشانی https://github.com/kubernetes/website بروید.
یک شاخه برای نسخه هدف خود از جدول زیر انتخاب کنید:
| نسخه هدف | شاخه |
|---|---|
| آخرین نسخه | main |
| نسخه قبلی | release-1.35 |
| نسخه بعدی | dev-1.37 |
شاخهی «اصلی» محتوای نسخه فعلی v1.36 را در خود جای داده است. تیم انتشار، قبل از انتشار نسخه بعدی، یک شاخه release-1.36 ایجاد میکند: v1.37.
محلیسازیها باید شامل محتویات i18n/en/en.toml
در یک فایل جدید مختص زبان باشند. به عنوان مثال، از زبان آلمانی استفاده میکنیم:
i18n/de/de.toml.
یک پوشه و فایل محلیسازی جدید به i18n/ اضافه کنید. برای مثال، با زبان آلمانی (de):
mkdir -p i18n/de
cp i18n/en/en.toml i18n/de/de.toml
توضیحات بالای فایل را متناسب با محلیسازی خود اصلاح کنید، سپس مقدار هر رشته را ترجمه کنید. برای مثال، این متن جایگزین به زبان آلمانی برای فرم جستجو است:
[ui_search]
other = "Suchen"
بومیسازی رشتههای سایت به شما امکان میدهد متن و ویژگیهای کل سایت را سفارشی کنید: برای مثال، متن حق نشر قانونی در پاورقی هر صفحه.
به عنوان یک تیم محلیسازی، میتوانید با ایجاد یک راهنمای محلیسازی مختص هر زبان، بهترین شیوههایی را که تیمتان دنبال میکند، رسمی کنید.
برای مثال، به راهنمای محلیسازی زبان کرهای مراجعه کنید که شامل مطالبی در مورد موضوعات زیر است:
اگر پروژه محلیسازی به زمان جلسه جداگانهای نیاز دارد، با یکی از اعضای SIG اسناد یا سرپرست فنی تماس بگیرید تا یک جلسه زوم جدید و دعوتنامه تقویمی ایجاد کنید. این کار فقط زمانی لازم است که تیم به اندازه کافی بزرگ باشد که بتواند از پس آن برآید و به یک جلسه جداگانه نیاز داشته باشد.
طبق سیاست CNCF، تیمهای محلیسازی باید جلسات خود را در لیست پخش یوتیوب SIG اسناد بارگذاری کنند. یکی از روسای مشترک یا سرپرست فنی SIG اسناد میتواند تا زمان خودکارسازی این فرآیند توسط SIG اسناد به آنها کمک کند.
از آنجا که پروژههای محلیسازی، تلاشهایی بسیار مشارکتی هستند، ما تیمها را تشویق میکنیم که در شاخههای محلیسازی مشترک کار کنند - به خصوص هنگام شروع کار و زمانی که محلیسازی هنوز فعال نشده است.
برای همکاری در یک شاخه محلیسازی:
یکی از اعضای تیم @kubernetes/website-maintainers یک شاخه محلیسازی از شاخه منبع در https://github.com/kubernetes/website باز میکند.
تأییدکنندگان تیم شما زمانی به تیم @kubernetes/website-maintainers پیوستند که شما تیم محلیسازی خود را به مخزن kubernetes/org اضافه کردید.
ما طرح نامگذاری شاخه زیر را توصیه میکنیم:
dev-<source version>-<language code>.<team milestone>
برای مثال، یک تأییدکننده در یک تیم محلیسازی آلمانی، شاخه محلیسازی dev-1.12-de.1 را مستقیماً در مخزن kubernetes/website، بر اساس شاخه منبع برای کوبرنتیز نسخه ۱.۱۲، باز میکند.
مشارکتکنندگان انفرادی، شاخههای ویژگی را بر اساس شاخه محلیسازی باز میکنند.
برای مثال، یک مشارکتکننده آلمانی یک pull request با تغییرات در kubernetes:dev-1.12-de.1 از username:local-branch-name باز میکند.
تأییدکنندگان، شاخههای ویژگی را بررسی و در شاخه محلیسازی ادغام میکنند.
به صورت دورهای، یک تأییدکننده با باز کردن و تأیید یک pull request جدید، شاخه محلیسازی را با شاخه منبع خود ادغام میکند. قبل از تأیید pull request، حتماً commitها را squash کنید.
مراحل ۱ تا ۴ را در صورت نیاز تا زمان تکمیل بومیسازی تکرار کنید. برای مثال، شاخههای بومیسازی بعدی آلمانی عبارتند از: dev-1.12-de.2، dev-1.12-de.3 و غیره.
تیمها باید محتوای بومیسازیشده را در همان شاخهای که محتوا از آن تهیه شده است، ادغام کنند. برای مثال:
اصلی منبعگیری شده است، باید در شاخه اصلی ادغام شود.release-1.35 منبعگیری شده است، باید در release-1.35 ادغام شود.اصلی ایجاد شده باشد، اما قبل از ایجاد شاخه انتشار جدید release-1.36 با اصلی ادغام نشده باشد، آن را هم در اصلی و هم در شاخه انتشار جدید release-1.36 ادغام کنید. برای ادغام شاخه محلیسازی خود در شاخه انتشار جدید release-1.36، باید شاخه بالادستی شاخه محلیسازی خود را به release-1.36 تغییر دهید.در ابتدای هر مرحله از مراحل پیشرفت تیم، باز کردن یک مسئله برای مقایسه تغییرات بالادستی بین شاخه محلیسازی قبلی و شاخه محلیسازی فعلی مفید است. دو اسکریپت برای مقایسه تغییرات بالادستی وجود دارد.
upstream_changes.py برای بررسی تغییرات اعمال شده در یک فایل خاص مفید است. وdiff_l10n_branches.py برای ایجاد لیستی از فایل های منسوخ شده برای یک شاخه محلیسازی خاص مفید است.در حالی که فقط تأییدکنندگان میتوانند یک شاخه محلیسازی جدید باز کنند و درخواستهای ادغام را ادغام کنند، هر کسی میتواند یک pull request برای یک شاخه محلیسازی جدید باز کند. هیچ مجوز خاصی لازم نیست.
برای اطلاعات بیشتر در مورد کار از طریق Forkها یا مستقیماً از مخزن، به "مخزن را fork و clone کنید" مراجعه کنید.
SIG اسناد از مشارکتها و اصلاحات بالادستی در منبع انگلیسی استقبال میکند.