Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add fa/index.mdx, fa/getting-started.mdx, and fa/why-bloc.mdx #4170

Merged
merged 8 commits into from
May 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ const locales = {
label: 'العربية',
lang: 'ar',
},
fa: {
label: 'فارسی',
lang: 'fa',
},
};

// https://astro.build/config
Expand Down
35 changes: 35 additions & 0 deletions docs/src/content/docs/fa/getting-started.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: شروع شدن
description: همه چیزی که برای شروع ساختن با استفاده از بلوک نیاز دارید.
---

import InstallationTabs from '~/components/getting-started/InstallationTabs.astro';
import ImportTabs from '~/components/getting-started/ImportTabs.astro';

## بسته‌ها

اکوسیستم بلوک از بسته های متعددی تشکیل شده است که در زیر فهرست شده اند:

| بسته | توصیف | لینک |
| ------------------------------------------------------------------------------------------ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| [angular_bloc](https://github.com/felangel/bloc/tree/master/packages/angular_bloc) | اجزای AngularDart | [![pub package](https://img.shields.io/pub/v/angular_bloc.svg)](https://pub.dev/packages/angular_bloc) |
| [bloc](https://github.com/felangel/bloc/tree/master/packages/bloc) | API‌های اصلی Dart | [![pub package](https://img.shields.io/pub/v/bloc.svg)](https://pub.dev/packages/bloc) |
| [bloc_concurrency](https://github.com/felangel/bloc/tree/master/packages/bloc_concurrency) | تبدیل‌کننده‌های رویداد | [![pub package](https://img.shields.io/pub/v/bloc_concurrency.svg)](https://pub.dev/packages/bloc_concurrency) |
| [bloc_test](https://github.com/felangel/bloc/tree/master/packages/bloc_test) | API های تست | [![pub package](https://img.shields.io/pub/v/bloc_test.svg)](https://pub.dev/packages/bloc_test) |
| [flutter_bloc](https://github.com/felangel/bloc/tree/master/packages/flutter_bloc) | ویجت ها فلاتر | [![pub package](https://img.shields.io/pub/v/flutter_bloc.svg)](https://pub.dev/packages/flutter_bloc) |
| [hydrated_bloc](https://github.com/felangel/bloc/tree/master/packages/hydrated_bloc) | پشتیبانی از حافظه پنهان/ماندگاری | [![pub package](https://img.shields.io/pub/v/hydrated_bloc.svg)](https://pub.dev/packages/hydrated_bloc) |
| [replay_bloc](https://github.com/felangel/bloc/tree/master/packages/replay_bloc) | پشتیبانی از واگَرد/اَزنو (Undo/Redo) | [![pub package](https://img.shields.io/pub/v/replay_bloc.svg)](https://pub.dev/packages/replay_bloc) |

## نصب

<InstallationTabs />

:::note
برای شروع استفاده از بلوک، باید [SDK دارت](https://dart.dev/get-dart) را در دستگاه خود نصب کنید.
:::

## وارد کردن (Imports)

حالا که با موفقیت bloc را نصب کردیم، می‌توانیم `main.dart` خود را ایجاد کنیم و بسته `bloc` مربوطه را وارد کنیم.

<ImportTabs />
85 changes: 85 additions & 0 deletions docs/src/content/docs/fa/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
template: splash
title: Bloc State Management Library
description: Official documentation for the bloc state management library. Support for Dart, Flutter, and AngularDart. Includes examples and tutorials.
banner:
content: |
✨ از
<a href="https://shop.bloclibrary.dev">فروشگاه بلوک</a> دیدن کنید✨
editUrl: false
lastUpdated: false
hero:
title: Bloc <sup><span style="font-size:0.4em">v8.1.4</span></sup>
tagline: یک کتابخانه مدیریت وضعیت قابل پیش بینی برای دارت.
image:
alt: Bloc logo
file: ~/assets/bloc.svg
actions:
- text: شروع کنید
link: /fa/getting-started/
variant: primary
icon: rocket
- text: نمایش در گیت‌هاب
link: https://github.com/felangel/bloc
icon: github
variant: secondary
---

import { CardGrid } from '@astrojs/starlight/components';
import SponsorsGrid from '~/components/landing/SponsorsGrid.astro';
import Card from '~/components/landing/Card.astro';
import ListCard from '~/components/landing/ListCard.astro';
import SplitCard from '~/components/landing/SplitCard.astro';
import Discord from '~/components/landing/Discord.astro';

<SponsorsGrid
sponsoredBy="با 💖 حمایت شده توسط"
becomeASponsor="اسپانسر شوید"
/>

<hr />

<CardGrid>

<SplitCard title="شروع کنید" icon="rocket">
```sh
# بلوک را به پروژه خود اضافه کنید.
dart pub add bloc
```

[راهنمای شروع کار](/fa/getting-started) ما, دستورالعمل‌های گام به گامی را برای شروع استفاده از Bloc در عرض چند دقیقه ارائه می‌دهد.

</SplitCard>

<Card title="با یک تور راهنمایی همراه باشید" icon="star">
[آموزش های رسمی](/fa/tutorials/flutter-counter) را تکمیل کنید تا بهترین روش ها
(Best practices) را بیاموزید و انواع برنامه های مختلف را با پشتیبانی Bloc
بسازید.
</Card>

<Card title="ساخت با بلوک" icon="laptop">
[برنامه های نمونه](https://github.com/felangel/bloc/tree/master/examples) با
کیفیت بالا و کاملاً آزمایش شده مانند شمارنده، تایمر، لیست بی نهایت، آب و هوا،
انجام کار و موارد دیگر را بررسی کنید!
</Card>

<ListCard title="یادگیری" icon="open-book">

- [چرا بلوک؟](/fa/why-bloc)
- [مفاهیم اصلی](/fa/bloc-concepts)
- [معماری](/fa/architecture)
- [تست کردن](/fa/testing)
- [قراردادهای نامگذاری](/fa/naming-conventions)

</ListCard>

<ListCard title="یکپارچه سازی ها" icon="puzzle">
- [یکپارچگی با VSCode](https://marketplace.visualstudio.com/items?itemName=FelixAngelov.bloc)
- [یکپارچگی با IntelliJ](https://plugins.jetbrains.com/plugin/12129-bloc)
- [یکپارچگی با ابزار خط فرمان Mason CLI](https://github.com/felangel/bloc/blob/master/bricks/README.md)
- [قالب‌های سفارشی](https://brickhub.dev/search?q=bloc)
- [ابزارهای توسعه‌دهندگان](https://github.com/felangel/bloc/issues/2748)
</ListCard>
</CardGrid>

<Discord joinDiscord="به Discord ما بپیوندید" />
31 changes: 31 additions & 0 deletions docs/src/content/docs/fa/why-bloc.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: چرا Bloc؟
description: یک مروری بر ویژگی‌هایی که باعث می‌شود بلاک یک راه حل مدیریت وضعیت قوی باشد.
sidebar:
order: 1
---

Bloc به شما امکان می‌دهد به راحتی لایه نمایش (Presentation) را از منطق کسب و کار (Business logic) جدا کنید، که این امر باعث می‌شود کد شما قابلیت هایی مانند _سرعت بالا_، _آزمون آسان_ و _قابل استفاده مجدد_ را داشته باشد.

وقتی اپلیکیشن‌های با کیفیت تولید می‌شوند، مدیریت وضعیت (state) به مسئله‌ای حیاتی تبدیل می‌شود.

ما به عنوان توسعه دهندگان می خواهیم:

- بدانیم درخواست ما در هر مقطع زمانی در چه وضعیتی است.
- به راحتی هر مورد را آزمایش کنیم تا مطمئن شوید برنامه ما به درستی پاسخ می دهد.
- هر تعامل کاربر را در برنامه خود ثبت کنیم تا بتوانیم تصمیمات مبتنی بر داده را اتخاذ کنیم.
- به صورت بهینه و کارآمد کار کنیم و اجزای مختلف را, هم در داخل برنامه‌ی خود و هم در برنامه‌های دیگر استفاده مجدد کنیم.
- امکان کار همزمان برای چندین توسعه‌دهنده و بدون هیچ مشکلی در یک کد پایه با رعایت الگوها و قواعد مشترک، فراهم باشد.
- برنامه های سریع و پاسخگو ایجاد کنیم.

بلاک برای برآورده کردن همه این نیازها و بسیاری دیگر طراحی شده است.

همچنین، راه‌حل‌های مدیریت وضعیت (State management) مختلفی وجود دارد و تصمیم گیری برای استفاده از یکی از آن‌ها ممکن است یک وظیفه سخت باشد. هیچ راه‌حل مدیریت وضعیتی کامل و بی‌نقص وجود ندارد! مهم این است که شما یکی را انتخاب کنید که برای تیم و پروژه شما بهترین عمل کند.

Bloc با در نظر گرفتن سه ارزش اصلی طراحی شده است:

- **ساده:** ساده درک شود و می‌تواند و توسط توسعه‌دهندگان با سطوح مهارتی متفاوت استفاده شود.
- **قدرتمند:** با ترکیب کردن اجزای کوچکتر، به شما کمک می‌کند برنامه‌های شگفت‌انگیز و پیچیده‌ای را ایجاد کنید.
- **قابل آزمایش:** با امکان تست آسان و سریع هر جنبه‌ای از برنامه، میتوان با اطمینان بیشتری به بهبود و تغییرات نرم‌افزاری پرداخت.

بطور کلی، Bloc سعی می‌کند با تنظیم زمانی که یک تغییر وضعیت می‌تواند رخ دهد و اجرای یک روش یکتا برای تغییر وضعیت در سراسر برنامه، تغییرات وضعیت را قابل پیش‌بینی کند.