Skip to content

Commit 10130eb

Browse files
committed
Persian language improvements made by:
* Hajar Kazemi (https://crowdin.com/profile/kazemihajar) * Mahdi Bahrami (https://crowdin.com/profile/farapayam) * rahimz (https://crowdin.com/profile/rahimz)
1 parent 2b49ca5 commit 10130eb

File tree

5 files changed

+6
-7
lines changed

5 files changed

+6
-7
lines changed

fa/django_forms/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ def post_new(request):
281281

282282
## ويرايش فرم
283283

284-
حالا ما می دانیم که چگونه یک فرم جدید اضافه کنیم. اما اگر بخواهیم یک فرم موجود را ویرایش کنیم، چه؟ این کار بسیار شبیه آنچه ما انجام داده‌یم است. بگذارید برخی از چیزهای مهم را سریع بسازیم. (اگر چیزی را درک نمی‌کنید، باید از مربی خود بپرسید یا در فصل‌های قبلی نگاه کنید، زیرا ما قبلاً همه این مراحل را پوشش دادیم.)
284+
حالا ما میدانیم که چگونه یک پست جدید اضافه کنیم. اما اگر بخواهیم یک فرم موجود را ویرایش کنیم، چه؟ این کار بسیار شبیه آنچه ما انجام داده‌یم است. بگذارید برخی از چیزهای مهم را سریع بسازیم. (اگر چیزی را درک نمی‌کنید، باید از مربی خود بپرسید یا در فصل‌های قبلی نگاه کنید، زیرا ما قبلاً همه این مراحل را پوشش دادیم.)
285285

286286
فایل `blog/templates/blog/post_detail.html` را در ویرایشگر کد بازکنید و خط زیر را به آن اضافه کنید
287287

fa/extend_your_application/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
بخش `post_detail` به معنی آن است که جنگو انتظار دارد یک آدرس به نام post_detail، در فایل `blog/urls.py` وجود داشته باشد
4444

45-
حالا معنی `pk=post.pk` چیست؟ `pk` مخفف primary key (کلید اصلی) است که یک نام منحصر به فرد برای هر ردیف از داده‌ها در پایگاه داده می‌باشد. چون ما در مدل `Post` کلید اصلی تعریف نکرده بودیم، جنگو یکی برای ما ساخته است (کلید اصلی به صورت پیش‌فرض عددی است که به ازای هر ردیف از داده‌ها یکی اضافه می‌شود مثلاً 1، 2، 3) و آن را به عنوان یک فیلد به نام `pk` به هر پست ما اضافه کرده‌ است. ما با نوشتن `post.pk` می‌توانیم به کلید اصلی شیء `Post` که قبلاً ساخته ایم، دسترسی پیدا کنیم همانطور که به سایر فیلدها دسترسی پیدا می‌کردیم (مانند `title` و `author`)!
45+
حالا معنی `pk=post.pk` چیست؟ `pk` مخفف primary key (کلید اصلی) است که یک نام منحصر به فرد برای هر ردیف از داده‌ها در پایگاه داده می‌باشد. هر مدل جنگو یک فیلد به عنوان کلید اصلی دارد، و سوای اینکه چه نام دیگری داشته باشد، همواره به عنوان pk قابل ارجاع است. چون ما در مدل `Post` کلید اصلی نساخته بودیم، جنگو یکی برای ما ساخته است (به طور پیشفرض فیلدی که نام آن "id" است، عددی را در خود ذخیره می‌کند که با هر دیتای جدید یکی به آن اضافه می‌شود مثلاً 1، 2، 3 ) و برای هر پست جدید در وبلاگ یکی به آن اضافه می‌کند. ما با نوشتن `post.pk` به کلید اصلی دسترسی پیدا می‌کنیم، همانطور که به فیلدهای دیگر (مانند `title` و `author`) در آبژکت `Post`، دسترسی داشته‌ایم.
4646

4747
حالا وقتی به آدرس http://127.0.0.1:8000/ می‌رویم با خظا مواجه می‌شویم (همانطور که انتظار داشتیم، چرا که ما هنوز برای `post_detail` ، یک آدرس یا یک *view* نساخته ایم). چیزی شبیه به این:
4848

@@ -84,7 +84,7 @@ urlpatterns = [
8484

8585
## اضافه کردن ویو جزییات یک پست
8686

87-
این بار *view* ما یک پارامتر اضافه دریافت کرده است، `pk`. *ویو* ما باید بتواند آن را دریافت کند، درست است؟ پس ما تابع خودمان را به این صورت تعریف می‌کنیم `def post_detail(request, pk):`. توجه کنید که باید دقیقاً همان نامی را استفاده کنیم که در `urls` تعریف کرده‌ایم (`pk`). حذف کردن این متغیر غلط است و باعث بروز خطا خواهد شد!
87+
این بار *view* ما یک پارامتر اضافه دریافت کرده است، `pk`. *ویو* ما باید بتواند آن را دریافت کند، درست است؟ پس ما تابع خودمان را به این صورت تعریف می‌کنیم `def post_detail(request, pk):`. باید توجه داشته باشید که این پارامتر باید دقیقاً همان نامی را داشته باشد که ما در `urls` تعریف کرده‌ایم (`pk`). همچنین توجه کنید که حذف این متغیر، غلط است و باعث ایجاد خطا خواهد شد.
8888

8989
حالا ما می‌خواهیم فقط و فقط یک پست وبلاگی را داشته باشیم. برای اینکار از کوئری ست به شکل زیر استفاده می‌کنیم:
9090

fa/installation/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919
در این آموزش شما یک وبلاگ خواهید ساخت. برای انجام این کار، در خلال روند آموزش، به شما نحوه‌ی نصب نرم‌افزارهای مختلف روی کامپیوترتان و نحوه‌ی راه اندازی چند حساب اینترنتی گفته خواهد شد. این بخش شامل تمام مراحل نصب و دستورالعمل‌های ثبت نام است (که برای بعضی از کارگاه‌ها مفید است).
2020

21-
<!--sec data-title="Chromebook setup (if you're using one)"
22-
data-id="chromebook_setup" data-collapse=true ces-->
21+
<!--sec data-title="Chromebook setup (if you're using one)" data-id="chromebook_setup" data-collapse=true ces-->
2322
{% include "/chromebook_setup/instructions.md" %}
2423
<!--endsec-->
2524

fa/python_installation/instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ data-collapse=true ces-->
6060

6161
{% filename %}خط فرمان{% endfilename %}
6262

63-
$ grep ^NAME= /etc/os-release
63+
$ grep '^NAME=' /etc/os-release
6464

6565

6666
بعد از آن، بسته به نتیجه، یکی از روش‌های نصب زیر را پیگیری کنید.

fa/python_introduction/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ hi()
861861

862862
خب، اولین تابع ما آماده است!
863863

864-
شاید فکر می‌کنید که چرا نام تابع را در انتهای فایل نوشته‌ایم. بخاطر اینکه پایتون فایل را می‌خواند و آن را از بالا به پایین اجرا می‌کند. پس برای استفاده از تابع خود، باید پس از تعریف تابع آن را صدا بزنیم.
864+
شاید فکر می‌کنید که چرا نام تابع را در انتهای فایل نوشته‌ایم. وقتی که ما عبارت `def hi():` و خطوط تو رفته زیر آن را می‌نویسیم، دستورالعمل‌هایی را که باید توسط تابع `hi()` اجرا شوند مشخص می‌کنیم. پایتون این دستورالعمل‌ها را می‌خواند و به یاد می‌آورد اما آن را اجرا نمی‌کند. برای آنکه به پایتون بگوییم که این تابع را اجرا کند، باید تابع را فراخوانی کنیم یا آن را با عبارت `hi()` صدا بزنیم. پایتون فایل را می‌خواند و آن را از بالا به پایین اجرا می‌کند، بنابراین ما باید قبل از صدا زدن آن، عملکرد تابع را در فایل تعریف کرده باشیم.
865865

866866
بیایید این را اجرا کنیم و ببینیم چه اتفاقی می‌افتد:
867867

0 commit comments

Comments
 (0)