From 38c09b6572ec46964523e4bbf2e309f35f59d1c5 Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Tue, 28 Jul 2026 07:17:06 +0330 Subject: [PATCH 1/4] Fix translation bugs --- library/functions.po | 4 ++-- sphinx.po | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/library/functions.po b/library/functions.po index aa08bd323..d968df564 100644 --- a/library/functions.po +++ b/library/functions.po @@ -2529,7 +2529,7 @@ msgid "" msgstr "" "همهٔ آرگومان‌های غیرکلیدواژه‌ای، همانند :func:`str`، به رشته تبدیل شده و با جداکنندهٔ *sep* از یکدیگر جدا شده و سپس همراه با " "*end* در جریان (stream) نوشته می‌شوند. هر دو مقدار *sep* و *end* باید رشته باشند؛ همچنین می‌توانند ``None`` باشند که در این " -"صورت از مقادیر پیش‌فرض استفاده می‌شود. اگر هیچ *objects*ی ارائه نشود، :func:`print` فقط مقدار *end* را خواهد نوشت." +"صورت از مقادیر پیش‌فرض استفاده می‌شود. اگر هیچ *objects*\\ ی ارائه نشود، :func:`print` فقط مقدار *end* را خواهد نوشت." #: ../../library/functions.rst:1634 msgid "" @@ -3325,7 +3325,7 @@ msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th tuple contains the *i*-th element from each of " "the argument iterables." msgstr "" -"به‌طور دقیق‌تر، :func:`zip` یک تکرارگر از تاپل‌ها برمی‌گرداند که در آن، تاپل *i*ام شامل عنصر *i*ام از هر یک از تکرارپذیرهای " +"به‌طور دقیق‌تر، :func:`zip` یک تکرارگر از تاپل‌ها برمی‌گرداند که در آن، تاپل *i*\\ ام شامل عنصر *i*\\ ام از هر یک از تکرارپذیرهای " "آرگومان‌ها است." #: ../../library/functions.rst:2155 diff --git a/sphinx.po b/sphinx.po index 32942c16c..5b9a3adbe 100644 --- a/sphinx.po +++ b/sphinx.po @@ -251,7 +251,7 @@ msgstr "منسوخ شده از نسخه‌ی %s، در نسخه‌ی %s حذف #: ../../tools/templates/dummy.html:32 msgid ":term:`Soft deprecated` since version %s" -msgstr ":term:`منسوخ‌سازی نرم` از نسخه‌ی %s" +msgstr ":term:`منسوخ‌سازی نرم ` از نسخه‌ی %s" #: ../../tools/templates/dummy.html:36 msgid "in development" From 1544d67182c451fad4c86611cfb7d84c7e929276 Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Tue, 28 Jul 2026 07:20:36 +0330 Subject: [PATCH 2/4] Add build documentation to lint --- .github/workflows/lint.yml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ac706acda..169ee002a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,13 +15,16 @@ jobs: lint: runs-on: ubuntu-latest steps: - - name: Checkout code + - name: Checkout CPython docs uses: actions/checkout@v4 + with: + repository: python/cpython + ref: v3.14.6 - name: Set up Python uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.12' - name: Install sphinx-lint and polib run: pip install sphinx-lint polib @@ -29,15 +32,30 @@ jobs: - name: Install gettext tools run: sudo apt-get install -y gettext + - name: Setup virtual environment + run: make venv + working-directory: ./Doc + + - name: Checkout translation files + uses: actions/checkout@v4 + with: + path: Doc/locales/fa/LC_MESSAGES + - name: Setup problem matcher uses: rffontenelle/sphinx-lint-problem-matcher@v1.0.0 - name: Run sphinx-lint run: sphinx-lint - continue-on-error: true + working-directory: Doc/locales/fa/LC_MESSAGES - name: Check PO file validity run: find . -name '*.po' -exec msgfmt --check {} \; + working-directory: Doc/locales/fa/LC_MESSAGES - name: Check markup preservation - run: python3 scripts/check_markup.py . \ No newline at end of file + run: python3 scripts/check_markup.py . + working-directory: Doc/locales/fa/LC_MESSAGES + + - name: Build documentation + run: make -e SPHINXOPTS="--color -D language='fa' -D gettext_allow_fuzzy_translations=1 -W --keep-going" html + working-directory: ./Doc \ No newline at end of file From 883ed975281e9900c5c23bbe6d9fb1c3b4f7ef5b Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Tue, 28 Jul 2026 07:29:58 +0330 Subject: [PATCH 3/4] Fix linting issues --- scripts/check_markup.py | 2 +- scripts/generate_status_table.py | 2 +- scripts/translation_status.py | 2 +- scripts/update_python_version.py | 2 +- tutorial/appendix.po | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/check_markup.py b/scripts/check_markup.py index 922a7e72b..106674c78 100644 --- a/scripts/check_markup.py +++ b/scripts/check_markup.py @@ -104,4 +104,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/scripts/generate_status_table.py b/scripts/generate_status_table.py index 65b1c83da..2181751bf 100644 --- a/scripts/generate_status_table.py +++ b/scripts/generate_status_table.py @@ -90,4 +90,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/scripts/translation_status.py b/scripts/translation_status.py index 37c4c95bb..4b4b14c33 100644 --- a/scripts/translation_status.py +++ b/scripts/translation_status.py @@ -107,4 +107,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/scripts/update_python_version.py b/scripts/update_python_version.py index b324873e0..bb05ff89c 100644 --- a/scripts/update_python_version.py +++ b/scripts/update_python_version.py @@ -124,4 +124,4 @@ def main() -> None: if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/tutorial/appendix.po b/tutorial/appendix.po index deba246a4..49006a4c4 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -217,11 +217,11 @@ msgid "" "want to use the startup file in a script, you must do this explicitly in the " "script::" msgstr "" -"اگر می خواهید یک فایل راه اندازی اضافی از دایرکتوری فعلی بخوانید، می توانید " -"این کار را در فایل راه اندازی عمومی با کدی مشابه ``if " -"os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`` برنامه " -"ریزی کنید. اگر می خواهید از فایل راه اندازی در یک اسکریپت استفاده کنید، باید " -"این کار را به طور صریح در اسکریپت انجام دهید:" +"اگر می خواهید یک فایل راه اندازی اضافی از دایرکتوری فعلی بخوانید، می توانید" +" این کار را در فایل راه اندازی عمومی با کدی مشابه ``if " +"os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`` برنامه" +" ریزی کنید. اگر می خواهید از فایل راه اندازی در یک اسکریپت استفاده کنید، باید" +" این کار را به طور صریح در اسکریپت انجام دهید:" #: ../../tutorial/appendix.rst:112 msgid "" From 02f1489f9fff952f8dc00572418a95dfded23f34 Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Tue, 28 Jul 2026 07:39:36 +0330 Subject: [PATCH 4/4] Fix sphinx lint --- tutorial/appendix.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 49006a4c4..14aa0cc7b 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -112,7 +112,7 @@ msgid "" "a :keyword:`try` statement." msgstr "" "فشردن کلید وقفه (که معمولاً :kbd:`Control-C` یا :kbd:`Delete` است) در اعلان " -"اصلی یا فرعی، ورودی را لغو کرده و کاربر را به اعلان اصلی بازمی‌گرداند. [#]_ \n" +"اصلی یا فرعی، ورودی را لغو کرده و کاربر را به اعلان اصلی بازمی‌گرداند. [#]_\n" "فشردن کلید وقفه در حین اجرای یک دستور، استثنای :exc:`KeyboardInterrupt` را " "ایجاد می‌کند که می‌توان آن را با دستور :keyword:`try` مدیریت کرد."