From 60ae61d74a8eb2fb05bc7eebe3ab7f85d77bd7db Mon Sep 17 00:00:00 2001 From: Ali Rasouli Date: Mon, 20 Dec 2021 23:02:40 +0330 Subject: [PATCH] Add Farsi to Translations --- README.md | 1 + README_es.md | 1 + README_fa.md | 209 ++++++++++++++++++++++++++++++++++++++++++++++++ README_fr.md | 1 + README_ja.md | 1 + README_ko.md | 1 + README_ptBR.md | 1 + README_ro.md | 1 + README_ru.md | 1 + README_tr.md | 1 + README_zh-CN.md | 1 + README_zh-TW.md | 1 + README_zh.md | 1 + 13 files changed, 221 insertions(+) create mode 100644 README_fa.md diff --git a/README.md b/README.md index 3727c11a..37e86ef6 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Translations: * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## Overview diff --git a/README_es.md b/README_es.md index d96eb203..df2adf24 100644 --- a/README_es.md +++ b/README_es.md @@ -14,6 +14,7 @@ Traducciones: * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## Resumen diff --git a/README_fa.md b/README_fa.md new file mode 100644 index 00000000..bac2b223 --- /dev/null +++ b/README_fa.md @@ -0,0 +1,209 @@ +# چیدمان استاندارد پروژه ی Go + +ترجمه ها : + +* [한국어 문서](README_ko.md) +* [简体中文](README_zh.md) +* [正體中文](README_zh-TW.md) +* [简体中文](README_zh-CN.md) - ??? +* [Français](README_fr.md) +* [日本語](README_ja.md) +* [Portuguese](README_ptBR.md) +* [Español](README_es.md) +* [Română](README_ro.md) +* [Русский](README_ru.md) +* [Türkçe](README_tr.md) +* [فارسی](README_fa.md) + + + + ## ‫ بررسی اجمالی + +‫این یک چیدمان ابتدایی برای پروژه هایست که با Go نوشته می شوند . **`این یک استاندارد رسمی تعیین شده توسط تیم اصلی توسعه دهنده ی Go نمیباشد`**؛ به هر حال این مجموعه ای از الگو های رایج چیدمان پروژه های قدیمی و در حال گسترش اکوسیستم Go می باشد. بعضی از این الگو ها از دیگری محبوب تر هستند . همچنین دارای چند بهبود جزئی در کنار تعدادی پوشه ی پشتیبانی که در هر پروژه ی بزرگ در دنیای واقعی رایج است . + +‫**`اگر در حال یادگیری زبان Go هستید یا در حال ساخت یک PoC (Proof of Concept یا اثبات فرضیه) و یا یک پروژه ی ساده برای خودتان ٬این چیدمان زیاد از حد است . بجای آن با یک چیز ساده تر شروع کنید (یک فایل 'main.go' و 'go.mod' هم بیش از حد نیاز شماست ) .`** همین طور که پروژه ی شما در حال گسترش است مطمئن شوید که کد شما ساختار خوبی پیدا کرده است در غیر این در انتها با یک کد نا مرتب با تعداد زیادی وابستگی پنهان و گلوبال استیت مواجه میشوید. هر چقدر تعداد افراد بیشتری روی پروژه ی شما کار میکنند به ساختار بیشتری نیاز دارید. این زمانی است که شما نیاز دارید یه راه حل معمول برای مدیریت پیکج ها/کتابخانه ها معرفی کنید . وقتی که یک پروژه ی open source انجام میدهید و یا میدانید که افراد دیگری هم کد شما را در پروژه ی خود ایمپورت میکنند آن زمان مهم است که پکیج ها و کد های خصوصی (internal) داشته باشید . این ریپازیتوری را کلون کنید هر چیز که نیاز دارید را نگه دارید و بقیه را حذف کنید . هر چیزی که اینجا قرار داده شده دلیلش آن نیست که باید حتما از آن استفاده کنید . تمام این الگو ها برای همه ی پروژه ها مورد نیاز نیستند . حتی الگو ی `vendor` هم در تمام پروژه ها رایج نیست . + +‫با استفاده از Go ورژن ۱.۱۴ [`Go Modules`](https://github.com/golang/go/wiki/Modules) بالاخره آماده انجام کار هستیم . از [`Go Modules`](https://blog.golang.org/using-go-modules) استفاده کنید مگر اینکه دلیل خاصی برای عدم استفاده از آن دارید و اگر استفاده میکنید لازم نیست نگران $GOPATH باشید و یا جایی که پروژه را ذخیره میکنید . فایل پایه ی `go.mod` میزبانی ریپازیتوری شما را در گیتهاب در نظر میگیرد ولی این الزامی نیست . مسیر ماژول ٬ هر چیزی میتواند باشد اگر چه که اولین بخش مسیر باید یک نقطه در نام خود داشته باشد (در نسخه ی فعلی Go دیگر مجبور به اعمال این نیستید ولی اگر از نسخه های کمی قدیمی تر استفاده میکنید اگر بیلد شما شکست خورد تعحب نکنید).اگر میخواهید بیشتر درباره آن بخوانید ٬ به این issue ها رجوع کنید [`37554`](https://github.com/golang/go/issues/37554) و [`32819`](https://github.com/golang/go/issues/32819) . + +‫این چیدمان پروژه از عمد عمومی است و سعی در تحمیل ساختار خاصی را در Go ندارد . + +‫این ریپازیتوری حاصل تلاش جمعی از افراد داخل انجمن Go میباشد . اگر الگو ی جدیدی مد نظر دارید یا اینکه الگوی قبلی نیاز به بروزرسانی دارد یک issue باز کنید. + +‫اگر برای نامگذاری یا فرمت کردن و یا استایل به کمک نباز دارید رجوع کنید به [`gofmt`](https://golang.org/cmd/gofmt/) and [`golint`](https://github.com/golang/lint). همچنین این دستورالعمل ها و توصیه ها سبک کد زدن Go را حتما مطالعه کنید : +* https://talks.golang.org/2014/names.slide +* https://golang.org/doc/effective_go.html#names +* https://blog.golang.org/package-names +* https://github.com/golang/go/wiki/CodeReviewComments +* [دستورالعمل سبک کد زنی Go](https://rakyll.org/style-packages) (rakyll/JBD) + +‫برای اطلاعات بیشتر به این مقاله رجوع کنید : [`چیدمان پروژه Go`](https://medium.com/golang-learn/go-project-layout-e5213cdcfaa2). + +‫اطلاعات بیشتر درباره نامگذاری و سازماندهی پکیج ها و همچنین سایر توصیه های ساختار کد: +* [GopherCon EU 2018: Peter Bourgon - Best Practices for Industrial Programming (بهترین روش ها برای برنامه نویسی صنعتی)](https://www.youtube.com/watch?v=PTE4VJIdHPg) +* [GopherCon Russia 2018: Ashley McNamara + Brian Ketelsen - Go best practices (روش های منتخب گو).](https://www.youtube.com/watch?v=MzTcsI6tn-0) +* [GopherCon 2017: Edward Muller - Go Anti-Patterns (ضد الگو های گو)](https://www.youtube.com/watch?v=ltqV6pDKZD8) +* [GopherCon 2018: Kat Zien - How Do You Structure Your Go Apps (چگونه برنامه های گو خود را ساختاربندی کنید)](https://www.youtube.com/watch?v=oL6JBUk6tj0) + +## ‫ پوشه های Go + +### `/cmd` + +‫برنامه های اصلی پروژه + +‫نام پوشه ٬ برای هر برنامه ٬ باید با نام فایل اجرایی (executable) که میخواهید داشته باشید تطابق داشته باشد (بطور مثال `/cmd/myapp`). + +‫داخل پوشه ی برنامه کد زیادی قرار ندهید . اگر فکر میکنید که کد میتواند داخل پروژه های دیگر هم ایمپورت و استفاده شود آن را در پوشه ی `/pkg` قرار دهید. اگر کد قابل استفاده مجدد نیست یا اینکه نمیخواهید دیگران از آن استفاده کنند داخل پوشه `/internal` قرارش دهید . اگر بفهمید دیگران توانایی انجام چه کارهایی را دارند شگفت زده خواهید شد بنابراین در رابطه با نیات خود صریح باشید! + +‫ داشتن یک فایل `main` برای ایمپورت و فراخوانی کد های پوشه های `/internal` و `/pkg` و اینکه هیچ کار دیگری انجام ندهد بسیار رایج است. + +‫رجوع کنید به [`/cmd`](cmd/README.md) برای دیدن مثال ها . + +### `/internal` + +‫برنامه ها و کد های خصوصی . این کدی است که شما نمیخواهید دیگران از آن استفاده کنند . توجه کنید که این الگو توسط خود کامپایلر Go اعمال شده است . برای اطلاعات بیشتر رجوع کنید به 1.4 [`release notes`](https://golang.org/doc/go1.4#internalpackages) . توجه کنید که شما فقط به یک پوشه `internal` در روت پروژه محدود نیستید . شما میتوانید در پوشه بندی پروژه ی خود بیشتر از یک پوشه ی `internal` داشته باشید. + +‫می توانید به صورت اختیاری کمی ساختار اضافی به پکیج های internal خود اضافه کنید تا کد داخلی اشتراک گذاری شده و اشتراک گذاری نشده خود را جدا کنید. در کل نیازی نیست (مخصوصا برای پروژه های کوچک), اما خوب است که سرنخ های دیداری از نحوه ی استفاده از کد مد نظر داشته باشید . کد برنامه ی اصلی شما میتواند در پوشه `/internal/app` قرار بگیرد (مثال `/internal/app/myapp`) و کد مشترک این برنامه ها در `/internal/pkg` قرار بگیرد (مثال `/internal/pkg/myprivlib`). + +### `/pkg` + +‫کد کتابخانه هایی که برنامه های خارجی هم میتوانند استفاده کنند (e.g., `/pkg/mypubliclib`). پروژه های دیگر این کد را ایمپورت میکنند با اطمینان از اینکه این کدها کار میکنند, پس قبل از اینکه چیزی در این پوشه قرار دهید حتما از کاکردشان اطمینان حاصل کنید :-) توجه کنید که پوشه ی `internal` راه بهتری برای اطمینان حاصل کردن از اینکه دیگران نمیتوانند آن کد را ایمپورت کنند هستند ٬ چون توسط خود Go اعمال شده است. پوشه ی `/pkg` همچنان راه خوبی است که صریح بیان کنید که کد داخل آن قابل استفاده برای دیگران است. مقاله ی [`I'll take pkg over internal`](https://travisjeffery.com/b/2019/11/i-ll-take-pkg-over-internal/) نوشته شده توسط Travis Jeffery بررسی اجمالی خوبی از دایرکتوری های `pkg` و `internal` و زمانی که ممکن است استفاده از آنها منطقی باشد ارائه می دهد. +همچنین راهی برای دسته بندی کد Go در یک مکان برای زمانی که پوشه ی اصلی پروژه ی شما حاوی تعداد زیادی مؤلفه (component) و پوشه غیر Go است که اجرای ابزارهای مختلف Go را آسان تر می کند. (همانطور که در این گفتگو ها به آن اشاره شد : +* [GopherCon EU 2018: Best Practices for Industrial Programming(بهترین روش های برنامه نویسی صنعتی)](https://www.youtube.com/watch?v=PTE4VJIdHPg) +* [GopherCon 2018: Kat Zien - How Do You Structure Your Go Apps(چگونه برنامه های گو خود را ساختار بندی کنید)](https://www.youtube.com/watch?v=oL6JBUk6tj0) +* [GoLab 2018 - Massimiliano Pippi - Project layout patterns in Go(الگوی چیدمان پروژه در گو)](https://www.youtube.com/watch?v=3gQa1LWwuzk) + +‫به پوشه ی [`/pkg`](pkg/README.md) رجوع کنید اگر میخواهید بدانید کدام یک از ریپازیتوری های معروف Go از این الگو ی چیدمان استفاده میکنند . این یک الگوی چیدمان رایج است، اما توسط همه پذیرفته نشده است و برخی در جامعه ی Go آن را توصیه نمی‌کنند. + +‫اگر پروژه ی شما کوچک است و اضافه کردن یک پوشه چندان تاثیرگذار نخواهد بود مشکلی ندارد که از آن استفاده نکنید (مگر اینکه خیلی تمایل داشته باشید :-)). وقتی به اندازه کافی بزرگ شد و دایرکتوری ریشه شما بسیار شلوغ شد، به آن فکر کنید (مخصوصا زمانی که مولفه های زیادی به زبانی غیر از Go دارید). + +‫ریشه یابی نامگذاری پوشه `pkg` : سورس قدیمی Go از `pkg` برای پکیج هایش استفاده میکرد و بعد از آن تعداد زیادی از پروژه های Go شروع به کپی برداری (اسکلی حلال) از روی آن کردند (رجوع کنید به [`این`](https://twitter.com/bradfitz/status/1039512487538970624) توییت از Brad Fitzpatrick ). + +### `/vendor` + +‫وابستگی های برنامه (به صورت دستی یا توسط ابزار مدیریت وابستگی مورد علاقه شما مانند ابزار داخلی جدید مدیریت می شود [`Go Modules`](https://github.com/golang/go/wiki/Modules)). دستور `go mod vendor` پوشه ی `/vendor` را برای شما خواهد ساخت. توجه کنید که شاید نیاز داشته باشید بیرق (flag :)) `mod=vendor-` را به دستور `go build` تان اضافه کنید اگر از Go ورژن 1.14 ٬ که در آن به صورت پیش فرض فعال است ٬ استفاده نمیکنید . + +‫اگر در حال ساخت لایبری هستید ٬ وابستگی های برنامه خود را کامیت نکنید . + +‫توجه کنید که از ورژن [`1.13`](https://golang.org/doc/go1.13#modules) Go قابلیت پروکسی ماژول را اضافه کرد (از [`https://proxy.golang.org`](https://proxy.golang.org) به عنوان ماژول پراکسی پیش فرض استفاده می شود). در این باره بیشتر بخوانید [`here`](https://blog.golang.org/module-mirror-launch) برای اینکه ببینید آیا با تمام نیازها و محدودیت های شما مطابقت دارد یا خیر. اگر مطابقت پیدا کرد به پوشه ی `vendor` به طور کل نیاز پیدا نخواهید کرد. + +## پوش های سرویس برنامه + +### `/api` + +‫مشخصات OpenAPI/Swagger، فایل های JSON schema، فایل های تعریف پروتکل. + +‫رجوع کنید به پوشه ی [`/api`](api/README.md) برای دیدن مثال ها. + +## پوشه های وب اپلیکیشن ها + +### `/web` + +‫اجزا ی اختصاصی وب اپلیکیشن : asset های استاتیک وب , قالب های سمت سرور و SPAs. + +## پوشه های رایج برنامه + +### `/configs` + +‫پیکربندی قالب های فایل یا پیکربندی های پیش فرض . + +‫فایل `confd` یا `consul-template` های خود را در اینجا قرار دهید. + +### `/init` + +‫مقداردهی اولیه ی سیستم (systemd, upstart, sysv) و پراسس منیجر ها (runit, supervisord) پیکربندی. + +### `/scripts` + +‫اسکریپت هایی برای انجام عملیات های مختلف ساخت، نصب، تجزیه و تحلیل و غیره . + +‫این اسکریپت ها Makefile سطح ریشه (root) را کوچک و ساده نگه می دارند (مثال [`https://github.com/hashicorp/terraform/blob/master/Makefile`](https://github.com/hashicorp/terraform/blob/master/Makefile)). + +‫رجوع کنید به پوشه ی [`/scripts`](scripts/README.md) در دیدن مثال ها. + +### `/build` + +‫بسته بندی و ادغام مداوم (Packaging and Continuous Integration). + +‫پیکربندی سرور ابری (AMI), کانتینر (Docker), سیستم عامل (deb, rpm, pkg) خود را در پوشه ی `/build/package` قرار دهید. + +‫پیکربندی و اسکریپت های CI (travis, circle, drone) خود را در پوشه ی `/build/ci` قرار دهید. توجه کنید که بعضی از ابزار های CI در رابطه با پوشه ی پیکربندی هایشان خیلی حساس هستند (مثال Travis CI) . سعی کنید فایل های پیکربندی را در پوشه ی `/build/ci` قرار دهید و وصلشان کنید به پوشه ای که ابزار CI انتظار دارد آن ها را در آنجا بیابد (زمانی که ممکن است). + +### `/deployments` + +‫پیکربندی ها و الگوهای استقرار سیستم IaaS، PaaS و container orchestration (docker-compose, kubernetes/helm, mesos, terraform, bosh). توجه کنید که در گروهی از ریپازیتوری ها (مخصوصا آن هایی که با kubernates دیپلوی شده اند) این پوشه `/deploy` نام دارد. + +### `/test` + +‫برنامه‌های تست خارجی اضافی و داده‌های آزمایشی. هر طور که تمایل دارید پوشه ی `/test` را ساختار بندی کنید. برای پروژه های بزرگتر داشتن یک پوشه data منطقی است. بطور مثال میتوانید `/test/data` یا `/test/testdata` را استفاده کنید اگر میخواهید که Go داده ها را نادیده بگیرد. توجه کنید که Go فایل ها یا پوشه هایی که با "." یا "_" شروع شده اند هم نادیده میگیرد, بنابراین از نظر نحوه نامگذاری پوشه های داده های آزمایشی خود انعطاف بیشتری دارید. + +‫رجوع کنید به پوشه ی [`/test`](test/README.md) برای دیدن مثال ها. + +## بقیه ی پوشه ها + +### `/docs` + +‫طراحی و مستندات کاربر (علاوه بر مستندات ایجاد شده توسط godoc). + +‫رجوع کنید به پوشه ی [`/docs`](docs/README.md) برای دیدن مثال ها. + +### `/tools` + +‫ابزارهای پشتیبانی این پروژه توجه داشته باشید که این ابزارها می توانند کد را از دایرکتوری های `/pkg` و `/internal` ایمپورت شوند. + +‫رجوع کنید به پوشه ی [`/tools`](tools/README.md) برای دیدن مثال ها. + +### `/examples` + +‫مثال های برنامه ها و/یا کتابخانه های عمومی شما. + + +‫رجوع کنید به پوشه ی [`/examples`](examples/README.md) برای دیدن مثال ها. + +### `/third_party` + +‫ابزارهای کمکی خارجی، کد فورک شده و سایر ابزارهای شخص ثالث (مانند Swagger UI). + +### `/githooks` + +‫هوک های گیت . + +### `/assets` + +‫سایر asset ها برای همراهی با ریپازیتوری شما (تصاویر، لوگو ها و غیره). + +### `/website` + +‫اگر از GitHub Pages استفاده نمی کنید، اینجا جاییست که می توانید داده های وب سایت پروژه خود را قرار دهید. + +‫رجوع کنید به پوشه ی [`/website`](website/README.md) برای دیدن مثال ها. + +## پوشه هایی که نباید داشته باشید + +### `/src` + +‫ البته بعضی از پروژه های Go پوشه ی `src` را دارند, ولی این زمانی اتفاق میافتد که توسعه دهنده از دنیای جاوا آمده باشد ٬ در آنجا این الگو ی رایج است. اگر می توانید به خودتان کمک کنید سعی کنید از این الگوی جاوا استفاده نکنید. شما واقعاً نمی خواهید کد یا پروژه های Go شما شبیه جاوا باشد :-) + +‫این پوشه `/src` که در بالاترین سطح پوشه بندی پروژه قرار دارد را با پوشه ی `src/` که Go در اینجا ([`How to Write Go Code`](https://golang.org/doc/code.html)) برای فضاهای کاری خود استفاده می کند اشتباه نگیرید . متغیر محیطی `$GOPATH` اشاره میکند به محطی کاری (فعلی) شما (در سیستم عامل های غیر از ویندوز به صورت پیش فرض به `$HOME/go` اشاره میکند). این فضای کاری شامل پوشه های سطح بالای `/pkg` ٬ `bin` و `/src` می شود. پروژه ی شما در نهایت زیرمجموعه پوشه ی `/src` قرار میگیرد ٬ پس اگر شما پوشه ی `/src` در پروژه ی خود داشته باشید مسیر پروژه ی شما به این صورت در می آید: `/some/path/to/workspace/src/your_project/src/your_code.go`. توجه داشته باشید که در Go ورژن 1.11 میتوانید خارج از `GOPATH` پروژه داشته باشید ٬ اما هنوز به این معنی نیست که استفاده از این الگوی چیدمان ایده خوبی است. + + +## Badges + +‫* [Go Report Card](https://goreportcard.com/) - کد شما را با `gofmt`, `go vet`, `gocyclo`, `golint`, `ineffassign`, `license` و `misspell` اسکن میکند. `github.com/golang-standards/project-layout` را با مرجع پروژه خود تعویض کنید. + +‫ [![Go Report Card](https://goreportcard.com/badge/github.com/golang-standards/project-layout?style=flat-square)](https://goreportcard.com/report/github.com/golang-standards/project-layout) + +‫* ~~[GoDoc](http://godoc.org) - این نسخه آنلاین مستندات تولید شده GoDoc شما را ارائه می دهد. لینک را تغییر دهید تا به پروژه شما اشاره کند.~~ + +‫ [![Go Doc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/golang-standards/project-layout) + +‫* [Pkg.go.dev](https://pkg.go.dev) - Pkg.go.dev یک مکان جدید برای اکتشاف Go و مستندات است. شما میتواد یک badge با استفاده از [badge generation tool](https://pkg.go.dev/badge) درست کنید. + +‫ [![PkgGoDev](https://pkg.go.dev/badge/github.com/golang-standards/project-layout)](https://pkg.go.dev/github.com/golang-standards/project-layout) + +‫* release - اخرین شماره از منتشر شده ی شما را نشان خواهد داد. لینک گیتهاب را عوض کنید تا به سمت پروژه ی شما هدایت کند. + +‫ [![Release](https://img.shields.io/github/release/golang-standards/project-layout.svg?style=flat-square)](https://github.com/golang-standards/project-layout/releases/latest) + +## ‫ یادداشت + +‫ یک قالب پروژه ی خود رای با مثال ها یا تنظیمات قابل استفاده مجدد٬ اسکریپت و کد های بیشتر در دست ساخت است diff --git a/README_fr.md b/README_fr.md index 530bc5c2..75e810c2 100644 --- a/README_fr.md +++ b/README_fr.md @@ -14,6 +14,7 @@ Traductions: * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## Introduction diff --git a/README_ja.md b/README_ja.md index 1ef23eee..c27a3ba0 100644 --- a/README_ja.md +++ b/README_ja.md @@ -14,6 +14,7 @@ * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## 概要 diff --git a/README_ko.md b/README_ko.md index f2c557c6..2a7dfc7c 100644 --- a/README_ko.md +++ b/README_ko.md @@ -14,6 +14,7 @@ * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## 개요 diff --git a/README_ptBR.md b/README_ptBR.md index 80b9e8cd..a0692d43 100644 --- a/README_ptBR.md +++ b/README_ptBR.md @@ -14,6 +14,7 @@ Traduções: * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## Visão geral diff --git a/README_ro.md b/README_ro.md index 0078d413..9ea3f010 100644 --- a/README_ro.md +++ b/README_ro.md @@ -14,6 +14,7 @@ Traduceri: * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## General diff --git a/README_ru.md b/README_ru.md index 61f68f72..86ce9c71 100755 --- a/README_ru.md +++ b/README_ru.md @@ -14,6 +14,7 @@ Translations: * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## Overview diff --git a/README_tr.md b/README_tr.md index 9d943066..d8622f44 100644 --- a/README_tr.md +++ b/README_tr.md @@ -14,6 +14,7 @@ * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) ## Genel Bakış: diff --git a/README_zh-CN.md b/README_zh-CN.md index 24c8df6f..c2cbe17c 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -12,6 +12,7 @@ * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) 这是Go应用程序项目的基础布局。这不是Go核心开发团队定义的官方标准;无论是在经典项目还是在新兴的项目中,这都是Go生态系统中一组常见的项目布局模式。这其中有一些模式比另外的一些更受欢迎。它通过几个支撑目录为任何足够大规模的实际应用程序提供一些增强功能。 diff --git a/README_zh-TW.md b/README_zh-TW.md index 8c297087..309ea140 100644 --- a/README_zh-TW.md +++ b/README_zh-TW.md @@ -14,6 +14,7 @@ * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) 這是 Go 應用程式專案的基本目錄結構。它不是核心 Go 開發團隊定義的官方標準;然而,它是 Go 生態系統中一組常見的老專案和新專案的目錄結構。其中一些目錄結構比其他目錄結構更受歡迎。這個專案目錄結構還有一些細微的改進,可以支援任何大型且實用的應用程式目錄結構。 diff --git a/README_zh.md b/README_zh.md index 92579760..4a8e302e 100644 --- a/README_zh.md +++ b/README_zh.md @@ -14,6 +14,7 @@ * [Română](README_ro.md) * [Русский](README_ru.md) * [Türkçe](README_tr.md) +* [فارسی](README_fa.md) 这是 Go 应用程序项目的基本布局。它不是核心 Go 开发团队定义的官方标准;然而,它是 Go 生态系统中一组常见的老项目和新项目的布局模式。其中一些模式比其他模式更受欢迎。它还具有许多小的增强,以及对任何足够大的实际应用程序通用的几个支持目录。